Skip to content

Siemphony is in beta and still being built. What ships today, and what does not.

Siemphony’s repertoire

Executable written into a protected program directory

Siemphony@siemphonylowT1554unverified
Matches the binary-modification half of AN0949: a file create or overwrite of an .exe, .dll, .sys or .ocx underneath the system directories or the Program Files trees, by a writer that is not part of the Windows servicing or antimalware update path. The rule is written in the Sysmon-shaped `file_event` vocabulary (`TargetFilename`, `Image`); the brief also lists Security 4688 for the execution half of the same analytic, which is a different feed with a different field set and is not authored here. Path terms use `contains` rather than `startswith` so the rule is not pinned to the C: drive. Three limits worth stating: Sysmon EventID 11 fires on create and overwrite, so patching an existing binary in place — IAT hooking or an entry-point patch — may produce no event at all; the excluded-writer list includes msiexec.exe because it is the loudest legitimate writer, which also removes MSI-delivered tampering from view; and the correlation MITRE describes, a write followed by execution of an anomalously signed image inside the `TimeWindow` knob, needs both a join and a signature attribute that Sigma has neither of. Sysmon file-create logging is scoped entirely by your Sysmon configuration, and the common public configs filter most writes under System32 — confirm .exe and .dll creation in these paths is included before reading silence as clean. UNVERIFIED — derived from MITRE ATT&CK DET0336 and never executed against logs.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

Sentinel · KQL

Run this as a search.

DeviceFileEvents| where (((FolderPath contains "\\Windows\\System32\\" or FolderPath contains "\\Windows\\SysWOW64\\" or FolderPath contains "\\Program Files\\" or FolderPath contains "\\Program Files (x86)\\") and (FolderPath endswith ".exe" or FolderPath endswith ".dll" or FolderPath endswith ".sys" or FolderPath endswith ".ocx")) and not ((InitiatingProcessFolderPath endswith "\\TiWorker.exe" or InitiatingProcessFolderPath endswith "\\TrustedInstaller.exe" or InitiatingProcessFolderPath endswith "\\poqexec.exe" or InitiatingProcessFolderPath endswith "\\msiexec.exe" or InitiatingProcessFolderPath endswith "\\wusa.exe" or InitiatingProcessFolderPath endswith "\\MsMpEng.exe" or InitiatingProcessFolderPath endswith "\\MpSigStub.exe")))

Splunk · SPL

Run this as a search.

index=* (((TargetFilename="*\\Windows\\System32\\*" OR TargetFilename="*\\Windows\\SysWOW64\\*" OR TargetFilename="*\\Program Files\\*" OR TargetFilename="*\\Program Files (x86)\\*") AND (TargetFilename="*.exe" OR TargetFilename="*.dll" OR TargetFilename="*.sys" OR TargetFilename="*.ocx")) AND NOT ((Image="*\\TiWorker.exe" OR Image="*\\TrustedInstaller.exe" OR Image="*\\poqexec.exe" OR Image="*\\msiexec.exe" OR Image="*\\wusa.exe" OR Image="*\\MsMpEng.exe" OR Image="*\\MpSigStub.exe")))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (((TO_LOWER(file.path) LIKE "*\\\\windows\\\\system32\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\windows\\\\syswow64\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\program files\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\program files (x86)\\\\*") AND (TO_LOWER(file.path) LIKE "*.exe" OR TO_LOWER(file.path) LIKE "*.dll" OR TO_LOWER(file.path) LIKE "*.sys" OR TO_LOWER(file.path) LIKE "*.ocx")) AND NOT ((TO_LOWER(process.executable) LIKE "*\\\\tiworker.exe" OR TO_LOWER(process.executable) LIKE "*\\\\trustedinstaller.exe" OR TO_LOWER(process.executable) LIKE "*\\\\poqexec.exe" OR TO_LOWER(process.executable) LIKE "*\\\\msiexec.exe" OR TO_LOWER(process.executable) LIKE "*\\\\wusa.exe" OR TO_LOWER(process.executable) LIKE "*\\\\msmpeng.exe" OR TO_LOWER(process.executable) LIKE "*\\\\mpsigstub.exe")))

Wazuh · XML rule

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

<group name="sigma,windows,file_event,">  <!-- Rule ids must be unique on your manager; 100000+ is the user range. -->  <rule id="100000" level="5">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="TargetFilename" type="pcre2">(?i)(\\Windows\\System32\\|\\Windows\\SysWOW64\\|\\Program Files\\|\\Program Files \(x86\)\\)</field>    <field name="TargetFilename" type="pcre2">(?i)(\.exe$|\.dll$|\.sys$|\.ocx$)</field>    <field name="Image" negate="yes" type="pcre2">(?i)(\\TiWorker\.exe$|\\TrustedInstaller\.exe$|\\poqexec\.exe$|\\msiexec\.exe$|\\wusa\.exe$|\\MsMpEng\.exe$|\\MpSigStub\.exe$)</field>    <description>Executable written into a protected program directory</description>    <mitre>      <id>T1554</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.