sentinel-xdr-alert-parity-validator
Skill6.2k starsChanged 16 days agoMITView on GitHub
Perform strict lab-only parity validation between a Microsoft Sentinel Analytic Rule and its migrated Defender XDR Custom Detection.
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 6 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use this skill only in a non-production lab after conversion, structural validation, deployment, and mock-data review have succeeded.
- Distinctive: line 20
no alert from the benign control records.
- Distinctive: line 31
Never use production telemetry or a production workspace.
- Distinctive: line 32
Do not wait with fixed sleeps.
- Very specific: line 34
Always run complete-alert-parity or abort-alert-parity.
- Distinctive: line 90
Use the targeted command for troubleshooting a subset or rerunning one detection.
- Very specific: line 102
Prefer suitable tools advertised by the official Sentinel Triage MCP for both capture queries.
- Distinctive: line 154
If capture cannot be completed:
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Validate Analytic Rule and Custom Detection alert parity
Use this skill only in a non-production lab after conversion, structural validation, deployment, and mock-data review have succeeded.
Acceptance criteria
Parity is strict. For every selected rule, require:
- the same number of alerts;
- the same normalized scenario match keys;
- the same severity and tactics;
- the same normalized entities;
- the same decisive matched-event evidence; and
- no alert from the benign control records.
Any mismatch fails migration validation. Do not silently accept differences caused by schedule, lookback, grouping, suppression, thresholds, or entity mapping. Align those settings or report an explicit platform limitation.
Safety and lifecycle
- Both rules must be disabled before the test starts.
- Require a unique marker that occurs in the reviewed mock payload.
- Enable only explicitly selected converted rules.
- Never use production telemetry or a production workspace.
- Do not wait with fixed sleeps. Start the run, then query when the platforms expose the alerts.
- Always run
complete-alert-parityorabort-alert-parity; both force every test rule back to disabled.
Full qualification batch
For internal solution qualification, deploy every reviewed AR/CD pair in the current approved package selection disabled, then prepare one fixture per selected detection. A partial package's selected list is authoritative; do not add excluded detections or let their failures block parity for selected pairs. Retain the plan hash and selected paths with parity evidence, and describe the result as selected-subset parity only. Full-inventory parity is not proven by a partial run.
{
"fixtures": [
{
"detection": "Detection.yaml",
"contract": "contracts/stream.json",
"payload": "mocks/detection.json",
"scenarioMarker": "unique-detection-marker",
"expectedMatchKeys": ["expected-malicious-key"]
}
]
}Paths are resolved relative to the batch-plan file. The plan must cover every selected converted detection exactly once.
Start the batch:
sentinel-xdr-migration start-alert-parity-batch `
--solution "<solution-path>" `
--workspace-resource-id "<workspace-arm-id>" `
--plan "<qualification-plan.json>"The command verifies all ARs and CDs are disabled, enables all reviewed pairs, ingests every fixture, and emits a separate capture plan and expected-key set for each detection. If enablement or any ingestion fails, it disables all rules before returning the failure.
Targeted start
sentinel-xdr-migration start-alert-parity `
--solution "<solution-path>" `
--workspace-resource-id "<workspace-arm-id>" `
--contract "<ingestion-contract>" `
--payload "<reviewed-mock-json>" `
--scenario-marker "<unique-marker>" `
--expected-match-key "<expected-malicious-key>" `
--detection "<Detection.yaml>"Use the targeted command for troubleshooting a subset or rerunning one detection. It:
- verifies the AR and CD both exist and are disabled;
- enables both through Azure Resource Manager and Microsoft Graph;
- ingests the payload through
azure-monitor-logs-ingestion; - writes
Solutions/<solution>/Logs/sentinel-xdr-migration/<run-id>/alert-parity-state.json; and - emits Sentinel and Advanced Hunting capture queries.
Capture alerts
Prefer suitable tools advertised by the official Sentinel Triage MCP for both
capture queries. Fall back to Log Analytics CLI/API for SecurityAlert and
Microsoft Graph for AlertInfo/AlertEvidence only for provider-level
failures. A genuine KQL error is not a reason to change providers.
Normalize each platform result into:
{
"results": [
{
"detection": "Detection.yaml",
"analyticRule": {
"alerts": [
{
"matchKey": "stable-event-or-correlation-key",
"severity": "high",
"tactics": ["Exfiltration"],
"entities": {},
"evidence": {}
}
]
},
"customDetection": {
"alerts": []
}
}
]
}Platform alert IDs are not comparable. matchKey must be derived from stable
mock-event or aggregation keys. Normalize entity names and evidence fields to
the same semantic shape before comparison; never remove a differing value to
manufacture parity.
The declared expected match-key set is authoritative. If both platforms alert
on the same benign control key, parity still fails. Repeat
--expected-match-key when multiple malicious alerts are expected; when it is
omitted, the scenario marker is the sole expected key.
Complete or abort
sentinel-xdr-migration complete-alert-parity `
--solution "<solution-path>" `
--results "<normalized-results.json>"This writes alert-parity-report.json and disables all selected rules even
when parsing or comparison fails.
If capture cannot be completed:
sentinel-xdr-migration abort-alert-parity --solution "<solution-path>"Trending
More talk lately.about the whole repository
Who's talking about Azure/Azure-Sentinel
- @github-trending.bsky.social“📦 Azure / Azure-Sentinel ⭐ 4,774 (+3) 🗒 Python Cloud-native SIEM for intelligent security analytics for …”Bluesky · Feb 12, 2025 · 2 likes
- pulumi/pulumi-cloud-requests“Logs automated export into Azure Storage Account and/or Log Analytics Workspace”GitHub · Aug 9, 2024 · 2 reactions
- octocat/Spoon-Knife“**Describe the bug**”GitHub · Jun 11, 2022 · 2 reactions
- redaliscbe/Azure-Sentinel“Feature 1”GitHub · Jul 8, 2026 · 1 reactions
- Stack Overflow“How do I search through the in Sentinel Workbooks stored queries?”Stack Overflow · Aug 12, 2024 · 1 votes
The biggest 5 of 57 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 57
Talked about on GitHub, Stack Overflow and Bluesky (57 times).
On GitHub · 43
- Aug 9, 2024Logs automated export into Azure Storage Account and/or Log Analytics Workspace — pulumi/pulumi-cloud-requests2 reactions · 1 comment
- Jun 11, 2022**Describe the bug** — octocat/Spoon-Knife2 reactions
- Jul 8, 2026Feature 1 — redaliscbe/Azure-Sentinel1 reaction
- Dec 3, 2020Updat the Entity eum to include all the new types — wortell/AZSentinel1 reaction
- Oct 29, 2026Daily catalog: Iwatobi, SCuBA, AI scanning, and GCP detections — amcamillo/Cybersecurity_Tools0 reactions
38 more on GitHub
- Oct 15, 2026Support reviewed workbook updates with clean public artifacts and local audit evidence — oferInbar/Azure-Sentinel0 reactions
- Sep 28, 2026Mxdr 5375 v1 sentinel ccf multitenant — V1ManagedServices/Azure-Sentinel0 reactions
- Sep 22, 2026Main to master — idoshabi07/Azure-Sentinel0 reactions
- Sep 22, 2026Main — idoshabi07/Azure-Sentinel0 reactions
- Sep 15, 2026Release/3.75.0 — ccx-mss/Azure-Sentinel0 reactions
- Sep 14, 2026Release/3.75.0 — ccx-mss/Azure-Sentinel0 reactions · 1 comment
- Sep 9, 2026Create connector-builder-agent configuration — fuqing04/Azure-Sentinel0 reactions
- Aug 16, 2026Add dual-signal containment gate community plugin — Azure/Security-Copilot0 reactions
- Aug 16, 2026Add dual_signal_containment_gate custom function — phantomcyber/playbooks0 reactions
- Aug 10, 2026Semperis Lightning 4.1.0: merge CCF into existing offer (Function App + CCF) — MitchellGulledge3/Azure-Sentinel0 reactions · 5 comments
- Aug 10, 2026RFPD-77178: log ingestion api (v3.0) — recordedfuture/Azure-Sentinel0 reactions
- Jun 4, 2026Change api — adutt-commvault/Azure-Sentinel0 reactions
- May 21, 2026Update README with contribution guidelines and resources — vikorium/Azure-Sentinel0 reactions
- May 18, 2026Add weekly Azure Sentinel connector report workflow — fuqing04/sentinel-agent-runner0 reactions
- Mar 17, 2026Feat sar 46819 — sonraisecurity/Azure-Sentinel0 reactions
- Feb 27, 2026Update requirements.txt — daneshelias01/Azure-Sentinel0 reactions
- Jan 20, 2026test — BC-47/Azure-Sentinel0 reactions
- Jan 16, 2026Add new entry to ExclusionListForASimTests.csv — v-sabiraj/Azure-Sentinel0 reactions
- Mar 13, 2025Create Cholitas — GravityFallsInc/GravityFalls_Sentinel0 reactions
- Sep 10, 2024Patch-1 — mpmisha/Azure-Sentinel0 reactions
- Jul 11, 2024 - added metadata tags to incident description — synack/Azure-Sentinel0 reactions
- Jan 12, 2024Added local changes for test — SmitR01/Azure-Sentinel0 reactions
- Nov 9, 2023Create dsdsadasda — aviatam/Azure-Sentinel0 reactions · 1 comment
- Aug 24, 2023Praveenthepro patch 1 1 — praveenthepro/Azure-Sentinel0 reactions
- Jul 31, 2023seraphic security connector — LihiAtzmoni1/Azure-Sentinel0 reactions · 1 comment
- Jun 1, 2023Automation test — cohesity/Azure-Sentinel0 reactions
- May 4, 2023Just a demo branch to show right structure of the installation and co… — cohesity/Azure-Sentinel0 reactions
- Dec 6, 2022Cmmc2.0 — cwling75/AzureSentinel0 reactions
- Dec 2, 2022Just initialize this new branch for Cohesity internal collaboration/r… — cohesity/Azure-Sentinel0 reactions · 4 comments
- Aug 5, 2022Create intrigus-lgtm.txt — intrigus-lgtm/Azure-Sentinel0 reactions
- Jun 7, 2022Yaronfr/log4j 1 — qusaiismail/Sentinel0 reactions
- May 30, 2022test new script — sivanguetta/Azure-Sentinel0 reactions · 1 comment
- May 30, 2022test — sivanguetta/Azure-Sentinel0 reactions · 1 comment
- May 26, 2022Run ASIM testers on 'eco-connector-test' workspace — sivanguetta/Azure-Sentinel0 reactions · 1 comment
- May 19, 2022Run ASIM testers on 'eco-connector-test' workspace — sivanguetta/Azure-Sentinel0 reactions · 1 comment
- May 2, 2022[Asim] test kqlFuncYaml2Arm on ASimProcessEvent folder — sivanguetta/Azure-Sentinel0 reactions · 1 comment
- Apr 26, 2022Test GitHub action that generates ARM templates from KQL — sivanguetta/Azure-Sentinel0 reactions
- Feb 14, 2022Google Workspace connector: Don't use pickle — r4vi/Azure-Sentinel0 reactions
On Stack Overflow · 13
- Aug 12, 2024How do I search through the in Sentinel Workbooks stored queries?1 vote
- Apr 3, 2019Azure log analytics: monitoring successful sign-ins following repeated sign-in failures1 vote
- Sep 29, 2024KQL for exfiltration of files/data ...almost there but slightly wrong0 votes · 1 answer
- Aug 8, 2024How do I search through the in Sentinel Workbooks stored queries?0 votes
- May 1, 2024Trying to set Azure Activity Log from Tenant Root(all subscriptions) getting Resource Provider Error0 votes · 1 answer
8 more on Stack Overflow
- Apr 11, 2024Azure Sentinel Incident Trigger in Logic Apps Automation Delay0 votes
- Nov 17, 2023Need Assistance with collecting O365 Audit Logs with function app and directing them to Event Hub0 votes · 1 answer
- Oct 21, 2022Azure Sentinel Sample data CSV0 votes · 1 answer
- Oct 12, 2022AZURE sentinel query to log off Azure remote session for user0 votes
- Feb 4, 2022Integration issues with Microsoft Sentinel and ServiceNow and Get Etag0 votes
- Dec 13, 2021How to detect when a security incident occurs0 votes
- Jul 1, 2021Download multiple file from GitHub public repos without git0 votes
- Feb 13, 2020Creating a Pull Request in Azure sentinel Repository0 votes · 1 answer
On Bluesky · 1
- Feb 12, 2025📦 Azure / Azure-Sentinel ⭐ 4,774 (+3) 🗒 Python Cloud-native SIEM for intelligent security analytics for your entire enterprise. — @github-trending.bsky.social2 likes and reposts
In this repository30 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- Tools/Microsoft-Sentinel-Classic-CLv1-Tables-Impact-Assessment/.github/copilot-instructions.mdCopilot instructions
- .cursor/rules/sentinel-xdr-migration.mdcCursor rule
- sentinel-xdr-migrationSkill
- asim-parser-create-parameter-parserSkill
- asim-parser-create-parserSkill
- asim-parser-creator-orchestratorSkill
- asim-parser-filter-validatorSkill
- asim-parser-github-pr-packagerSkill
- asim-parser-la-deployerSkill
- asim-parser-pr-reviewerSkill
- asim-parser-user-prompterSkill
- asim-parser-validatorSkill
- az-cli-command-runnerSkill
- azure-monitor-logs-ingestionSkill
- log-analytics-workspace-queryerSkill
- run-solution-analyzerSkill
- sentinel-solution-mock-data-generationSkill
- sentinel-solution-optional-testingSkill
- sentinel-xdr-dependency-helperSkill
- sentinel-xdr-detection-validatorSkill
- sentinel-xdr-end-to-end-orchestratorSkill
- sentinel-xdr-migration-orchestratorSkill
- sentinel-xdr-rule-converterSkill
- sentinel-xdr-solution-deployerSkill
- sentinel-xdr-solution-packagerSkill
- solution-release-notes-updaterSkill
- update-solution-analyzerSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

