Skip to content

Siemphony is in beta and still being built. How a rule earns its badge.

Siemphony’s repertoire

New process reaches System integrity from a non-system parent

Matches the result AN1253 describes rather than the API call that produces it: a new process whose own IntegrityLevel is System, spawned by a parent that is not one of the process-hosting binaries Windows itself uses to start SYSTEM work. CreateProcessWithTokenW, CreateProcessAsUserW and runas.exe all converge on this same signature regardless of which one was used, which is the point — this rule does not require a runas command line, because that path is already covered separately by T1134.001 in this corpus and repeating it here would double-count the same event under two technique IDs. The filter is MITRE's ParentChildUserMismatch knob turned into an allowlist of parents that legitimately start SYSTEM processes (services.exe, wininit.exe, smss.exe, csrss.exe, winlogon.exe, userinit.exe, lsass.exe, svchost.exe, taskhostw.exe, WmiPrvSE.exe, TrustedInstaller.exe — the last four added because native Windows services hosted in svchost.exe, and the Task Scheduler/WMI/servicing helpers they hand off to, are the single most common legitimate source of System-integrity children on a real endpoint; without them this rule would have alerted on routine OS background activity far louder than any false positive named below); anything else reaching System integrity is the anomaly the analytic asks for. This cannot see IntegrityEscalationDelta as MITRE frames it (a jump measured against the parent's own integrity) because that would require reading the parent's own process_creation event, a cross-event join lib/sigma does not support — the proxy here is coarser: any non-allowlisted parent producing a System-integrity child, not specifically a jump from Medium or Low. The brief also maps this analytic onto Security 4688, but 4688 has no IntegrityLevel field at all — only TokenElevationType, which encodes UAC elevation type, not integrity level — so a 4688-only feed cannot run this rule even with a field mapping; it requires genuine Sysmon EventID 1 telemetry. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0456, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

The detection

The 4 SIEM queries below are previews produced by Siemphony’s own translator, not pySigma, and none has been executed against a real backend — review before you deploy.

detection.yml

title: New process reaches System integrity from a non-system parentid: 28d6b737-2a7e-4c41-8f46-eeb745612e6cstatus: experimentaldescription: |  Matches the result AN1253 describes rather than the API call that produces  it: a new process whose own IntegrityLevel is System, spawned by a parent  that is not one of the process-hosting binaries Windows itself uses to start  SYSTEM work. CreateProcessWithTokenW, CreateProcessAsUserW and runas.exe all  converge on this same signature regardless of which one was used, which is  the point — this rule does not require a runas command line, because that  path is already covered separately by T1134.001 in this corpus and repeating  it here would double-count the same event under two technique IDs. The  filter is MITRE's ParentChildUserMismatch knob turned into an allowlist of  parents that legitimately start SYSTEM processes (services.exe, wininit.exe,  smss.exe, csrss.exe, winlogon.exe, userinit.exe, lsass.exe, svchost.exe,  taskhostw.exe, WmiPrvSE.exe, TrustedInstaller.exe — the last four added  because native Windows services hosted in svchost.exe, and the Task  Scheduler/WMI/servicing helpers they hand off to, are the single most common  legitimate source of System-integrity children on a real endpoint; without  them this rule would have alerted on routine OS background activity far  louder than any false positive named below); anything else reaching System  integrity is the anomaly the analytic asks for. This cannot  see IntegrityEscalationDelta as MITRE frames it (a jump measured against the  parent's own integrity) because that would require reading the parent's own  process_creation event, a cross-event join lib/sigma does not support — the  proxy here is coarser: any non-allowlisted parent producing a System-integrity  child, not specifically a jump from Medium or Low. The brief also maps this  analytic onto Security 4688, but 4688 has no IntegrityLevel field at all —  only TokenElevationType, which encodes UAC elevation type, not integrity  level — so a 4688-only feed cannot run this rule even with a field mapping;  it requires genuine Sysmon EventID 1 telemetry.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0456, not hand-written and not tested by its author. Any lab result is on this rule's own page.references:  - https://attack.mitre.org/techniques/T1134/002  - https://attack.mitre.org/detectionstrategies/DET0456author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-17tags:  - attack.defense-evasion  - attack.privilege-escalation  - attack.t1134.002logsource:  category: process_creation  product: windowsdetection:  selection:    IntegrityLevel: 'System'  filter_known_system_parents:    ParentImage|endswith:      - '\services.exe'      - '\wininit.exe'      - '\smss.exe'      - '\csrss.exe'      - '\winlogon.exe'      - '\userinit.exe'      - '\lsass.exe'      - '\svchost.exe'      - '\taskhostw.exe'      - '\WmiPrvSE.exe'      - '\TrustedInstaller.exe'      # Microsoft's own management agents, on stable in-box paths. Both host      # SYSTEM-integrity children by design and sit on virtually every managed      # Windows estate, so their absence made this the loudest rule in the      # corpus against a benign baseline — it fired on ordinary ConfigMgr and      # Intune script execution. Same intent as the entries above: things that      # legitimately host a SYSTEM process.      - '\CcmExec.exe'      - '\Microsoft.Management.Services.IntuneWindowsAgent.exe'  condition: selection and not filter_known_system_parentsfalsepositives:  - "Endpoint management, patching and backup agents whose updater or repair component relaunches its own service host with System integrity from a parent binary not on the allowlist above (e.g. a vendor-installed driver service hosting its own executable rather than svchost.exe)."  - "PsExec and similar legitimate remote-administration tooling run with the -s (system) flag, which produces a System-integrity child whose immediate parent is the PsExec-installed service binary itself rather than services.exe, if that installed binary's path is not already on the allowlist above."  - "Driver installation and hardware-enablement helpers that legitimately run with System integrity when launched from Device Manager or a plug-and-play event, if their parent is not one of the allowlisted system-hosting binaries."level: medium

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where (ProcessIntegrityLevel =~ "System" and not ((InitiatingProcessFolderPath endswith "\\services.exe" or InitiatingProcessFolderPath endswith "\\wininit.exe" or InitiatingProcessFolderPath endswith "\\smss.exe" or InitiatingProcessFolderPath endswith "\\csrss.exe" or InitiatingProcessFolderPath endswith "\\winlogon.exe" or InitiatingProcessFolderPath endswith "\\userinit.exe" or InitiatingProcessFolderPath endswith "\\lsass.exe" or InitiatingProcessFolderPath endswith "\\svchost.exe" or InitiatingProcessFolderPath endswith "\\taskhostw.exe" or InitiatingProcessFolderPath endswith "\\WmiPrvSE.exe" or InitiatingProcessFolderPath endswith "\\TrustedInstaller.exe" or InitiatingProcessFolderPath endswith "\\CcmExec.exe" or InitiatingProcessFolderPath endswith "\\Microsoft.Management.Services.IntuneWindowsAgent.exe")))

Splunk · SPL

Run this as a search.

index=* (IntegrityLevel="System" AND NOT ((ParentImage="*\\services.exe" OR ParentImage="*\\wininit.exe" OR ParentImage="*\\smss.exe" OR ParentImage="*\\csrss.exe" OR ParentImage="*\\winlogon.exe" OR ParentImage="*\\userinit.exe" OR ParentImage="*\\lsass.exe" OR ParentImage="*\\svchost.exe" OR ParentImage="*\\taskhostw.exe" OR ParentImage="*\\WmiPrvSE.exe" OR ParentImage="*\\TrustedInstaller.exe" OR ParentImage="*\\CcmExec.exe" OR ParentImage="*\\Microsoft.Management.Services.IntuneWindowsAgent.exe")))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (TO_LOWER(winlog.event_data.IntegrityLevel) == "system" AND NOT ((TO_LOWER(process.parent.executable) LIKE "*\\\\services.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\wininit.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\smss.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\csrss.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\winlogon.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\userinit.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\lsass.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\svchost.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\taskhostw.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\wmiprvse.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\trustedinstaller.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\ccmexec.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\microsoft.management.services.intunewindowsagent.exe")))

Wazuh · XML rule

Deploy to your manager — this is a rule, not a search.

<group name="sigma,windows,process_creation,">  <!-- Rule ids must be unique on your manager; 100000+ is the user range. -->  <rule id="100000" level="7">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="IntegrityLevel" type="pcre2">(?i)^System$</field>    <field name="ParentImage" negate="yes" type="pcre2">(?i)(\\services\.exe$|\\wininit\.exe$|\\smss\.exe$|\\csrss\.exe$|\\winlogon\.exe$|\\userinit\.exe$|\\lsass\.exe$|\\svchost\.exe$|\\taskhostw\.exe$|\\WmiPrvSE\.exe$|\\TrustedInstaller\.exe$|\\CcmExec\.exe$|\\Microsoft\.Management\.Services\.IntuneWindowsAgent\.exe$)</field>    <description>New process reaches System integrity from a non-system parent</description>    <mitre>      <id>T1134.002</id>    </mitre>  </rule></group>

Verdicts · reactions · comments

Community

Verdicts from engineers who actually deployed it, and the conversation around it.

Log in to react
Not yet reported on

Nobody has run this in a real environment and said what happened.

Verdicts from engineers who deployed it

0 cast

No verdicts reported yet. The first one is worth more than the tenth — say what you ran it against.

Log in to report a verdict.

Log in to join the discussion.

No comments yet. Someone who deploys this will have something to say about it.