Sigma to Microsoft Defender XDR
Paste a Sigma rule, get an advanced hunting query for Defender XDR. Free, no sign-up, with the table and column mapping shown.
Worked examples on Microsoft Defender XDR
Real published rules run through the same engine as the tool above — including the ones it cannot take whole.
Base64 Encoding Via Built-In Windows Utilitywindows / process_creationClean
Sigma
title: Base64 Encoding Via Built-In Windows Utility id: 7c1e0a34-2b5f-4d18-9a63-0c8b1f4e5a71 status: experimental description: | A sample rule for the huntrule.com converter. Detects a built-in utility being asked to base64-encode a file, which is a common way to stage data before moving it off a host. It exercises the `windash` modifier, where one flag has to be matched in both its dash and slash spellings. author: HuntRule Team date: 2026-08-01 tags: - attack.collection - attack.t1560.001 logsource: category: process_creation product: windows detection: selection_img: - Image|endswith: '\certutil.exe' - OriginalFileName: 'CertUtil.exe' selection_cli: CommandLine|contains|windash: '-encode' condition: all of selection_* falsepositives: - Administrative scripts that legitimately encode files level: medium license: DRL-1.1Microsoft Defender XDR · KQL
// huntrule.com — sigma 7c1e0a34-2b5f-4d18-9a63-0c8b1f4e5a71 — HuntRule Team — DRL-1.1 DeviceProcessEvents | where (FolderPath endswith @"\certutil.exe" or ProcessVersionInfoOriginalFileName =~ @"CertUtil.exe") and (ProcessCommandLine contains @"-encode" or ProcessCommandLine contains @"/encode" or ProcessCommandLine contains @"–encode" or ProcessCommandLine contains @"—encode" or ProcessCommandLine contains @"―encode")Every condition converted cleanly to Microsoft Defender XDR KQL. 2/2 conditions
PowerShell Download Cradle On The Command Linewindows / process_creationClean
Sigma
title: PowerShell Download Cradle On The Command Line id: 1f9d4c02-6a77-4e5b-8c31-2d0af7b96e48 status: experimental description: | A sample rule for the huntrule.com converter. Detects the download-and-run pattern where a remote payload is fetched and executed in one command. It exercises a value list under a single field, which every backend has to expand into its own OR form. author: HuntRule Team date: 2026-08-01 tags: - attack.execution - attack.t1059.001 logsource: category: process_creation product: windows detection: selection_fetch: CommandLine|contains: - '.DownloadString(' - '.DownloadFile(' - 'Invoke-WebRequest ' - 'Invoke-RestMethod ' selection_run: CommandLine|contains: - '| IEX' - 'IEX (' - 'Invoke-Expression' condition: all of selection_* falsepositives: - Installers and package managers that fetch and run their own payloads level: high license: DRL-1.1Microsoft Defender XDR · KQL
// huntrule.com — sigma 1f9d4c02-6a77-4e5b-8c31-2d0af7b96e48 — HuntRule Team — DRL-1.1 DeviceProcessEvents | where (ProcessCommandLine contains @".DownloadString(" or ProcessCommandLine contains @".DownloadFile(" or ProcessCommandLine contains @"Invoke-WebRequest " or ProcessCommandLine contains @"Invoke-RestMethod ") and (ProcessCommandLine contains @"| IEX" or ProcessCommandLine contains @"IEX (" or ProcessCommandLine contains @"Invoke-Expression")Every condition converted cleanly to Microsoft Defender XDR KQL. 2/2 conditions
Registry Import With A Suspicious Pathwindows / process_creationClean
Sigma
title: Registry Import With A Suspicious Path id: 5b3a8e91-4c26-4f70-b1d8-6e97c30a2f5d status: experimental description: | A sample rule for the huntrule.com converter. Detects a registry import whose argument does not look like an ordinary file path. It exercises a regular expression alongside a `not` filter, so the report has both a regex to check against the target's engine and a negated branch to place. author: HuntRule Team date: 2026-08-01 tags: - attack.defense-evasion - attack.t1112 logsource: category: process_creation product: windows detection: selection_img: - Image|endswith: '\regedit.exe' - OriginalFileName: 'REGEDIT.EXE' selection_cli: CommandLine|contains: '.reg' CommandLine|re: ':[^ \\]' filter_flags: CommandLine|contains|windash: - ' -e ' - ' -a ' condition: all of selection_* and not filter_flags falsepositives: - Scripted registry maintenance level: high license: DRL-1.1Microsoft Defender XDR · KQL
// huntrule.com — sigma 5b3a8e91-4c26-4f70-b1d8-6e97c30a2f5d — HuntRule Team — DRL-1.1 DeviceProcessEvents | where (FolderPath endswith @"\regedit.exe" or ProcessVersionInfoOriginalFileName =~ @"REGEDIT.EXE") and ProcessCommandLine contains @".reg" and ProcessCommandLine matches regex @":[^ \\]" and (not(ProcessCommandLine contains @" -e " or ProcessCommandLine contains @" /e " or ProcessCommandLine contains @" –e " or ProcessCommandLine contains @" —e " or ProcessCommandLine contains @" ―e " or ProcessCommandLine contains @" -a " or ProcessCommandLine contains @" /a " or ProcessCommandLine contains @" –a " or ProcessCommandLine contains @" —a " or ProcessCommandLine contains @" ―a "))Every condition converted cleanly to Microsoft Defender XDR KQL. 3/3 conditions
File Copy Through The Print Utilitywindows / process_creationClean
Sigma
title: File Copy Through The Print Utility id: 3e6c17b8-9f40-4a2d-85e1-7b4d0c9a6f23 status: experimental description: | A sample rule for the huntrule.com converter. Detects the print utility being used to copy an executable rather than to print. It exercises `startswith` together with `contains|all`, where several substrings must all appear in one field. author: HuntRule Team date: 2026-08-01 tags: - attack.defense-evasion - attack.t1218 logsource: category: process_creation product: windows detection: selection: Image|endswith: '\print.exe' CommandLine|startswith: 'print' CommandLine|contains|all: - '/D' - '.exe' filter_self: CommandLine|contains: 'print.exe' condition: selection and not filter_self falsepositives: - Printing a file whose name ends in .exe level: medium license: DRL-1.1Microsoft Defender XDR · KQL
// huntrule.com — sigma 3e6c17b8-9f40-4a2d-85e1-7b4d0c9a6f23 — HuntRule Team — DRL-1.1 DeviceProcessEvents | where FolderPath endswith @"\print.exe" and ProcessCommandLine startswith @"print" and ProcessCommandLine contains @"/D" and ProcessCommandLine contains @".exe" and (ProcessCommandLine !contains @"print.exe")Every condition converted cleanly to Microsoft Defender XDR KQL. 2/2 conditions
What to know about Microsoft Defender XDR KQL
Defender XDR speaks the same Kusto that Sentinel does, and almost nothing else about the two is the same. Sentinel queries a workspace whose tables you chose; Defender queries a closed schema where every column belongs to a named `Device*` table and there is no way to add one. That difference is why this page exists separately: a converter that treats Defender as Sentinel with different field names will emit queries that parse, run, and return the wrong rows.
The trap has a name and it is `InitiatingProcess`. On `DeviceProcessEvents`, those columns describe the **parent** of the process that was created. On `DeviceNetworkEvents`, `DeviceFileEvents` and every other table, the same columns describe **the process performing the action** — which is Sigma's `Image`, not Sigma's `ParentImage`. The field map here is keyed by field *and table* for exactly this reason, and the table is chosen from the rule's log source before a single field is resolved, so the column a clause binds to and the table the query opens with can never disagree.
This is also the one target that refuses rather than approximates. Advanced hunting has no `EventID` column at all, so a Sigma rule that selects on an event ID is answered by the table rather than by a field; and where a Sigma field has no verified Defender column, the conversion fails with the field named instead of quietly dropping the clause. That is stricter than the other targets on this site and it costs coverage — a little over sixty rules in the public Sigma catalogue are refused on this ground. It is the right trade for a schema you cannot extend: a dropped clause here does not produce a narrower query, it produces a broader one, and a broader detection rule that still looks green is the failure worth paying to avoid.
How it works
- Step 1
Paste the rule
Drop a Sigma rule into the left pane, or open a .yml file. The tool says what it thinks you pasted before anything is sent.
- Step 2
Pick your SIEM
Choose the target dialect. Every shipped target is free and none of them are behind a sign-up.
- Step 3
Read the report
The query comes back with the log-source profile that was used, every field it renamed, and anything the target could not express.
- Step 4
Verify, then deploy
Run it against your own telemetry in audit mode before it alerts on anything.
Questions
Paste the Sigma rule into the tool on this page and press Convert. It returns KQL for Microsoft Defender XDR, the log-source profile it matched, the field map it applied, and anything Microsoft Defender XDR cannot express. Free, no sign-up.
It is chosen from the rule's log source, not from its fields: process creation opens DeviceProcessEvents, network connection opens DeviceNetworkEvents. Defender has no EventID column, so the table is what selects the event type. The report names the table it used.
Because a field in it has no verified Defender column. Advanced hunting's schema is closed, so this target refuses rather than dropping the clause — dropping it would widen the rule, not narrow it. The report names the exact field.
It will run if your field names match the profile shown in the report. Whether it matches the right events depends on your own telemetry, so verify it before deploying. The coverage figure tells you how much of the rule made it into the query.
The other pair
The same tool, with a different target preselected.
- Sigma to SplunkSPLSearch Processing Language against a CIM-normalised index.
- Sigma to Microsoft SentinelKQLKusto over Sentinel's analytics tables.
- Sigma to Elastic SecurityKQLKibana Query Language over ECS-mapped indices — the Kibana default.
- Sigma to Elastic SecurityLuceneLucene query_string — required when the rule uses a regular expression.
- Sigma to CrowdStrike FalconCQLCrowdStrike Query Language for Falcon LogScale and Next-Gen SIEM.
Every rule in the detection catalog is written in Sigma, so any of them converts to Microsoft Defender XDR here.