Skip to content

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

Siemphony’s repertoire

Zone.Identifier stream stamped onto a container or disk image file

Siemphony@siemphonylowT1553.005unverified
AN0712 wants a three-way correlation: a container/archive/disk-image file arriving from the Internet, its contained files failing to inherit Zone.Identifier once extracted or mounted, and an untrusted binary executing from inside it. MITRE's TimeWindow knob names the join and Sigma has no operator to hold it together, and no logsource in this brief carries process_creation at all — only file_event, a 4670/4656 permission-change pairing, and create_stream_hash — so the execution leg is unreachable from here regardless of what the analytic description asks for. What a single event CAN carry is the precursor: the moment the container file itself is tagged with the Internet zone, which is the precondition for this bypass to matter at all (a container built locally never triggers it). This rule matches Sysmon EventID 15 where the streamed file is one of the watched container/archive/disk-image extensions and the stream content records ZoneId=3, the Internet zone specifically (not Intranet, Trusted or Restricted). It cannot see whether files subsequently extracted or mounted from that container inherited MOTW or not — that absence is not an event Sigma can match on — so a hit here means "an archive arrived from the Internet," not "MOTW was bypassed"; treat it as a lead for a manual check of the contents, not as confirmation of the technique. EventID 15 is not emitted by a bare Sysmon install, and most shipped configurations restrict stream hashing to a short extension list that excludes archive and disk-image types, so confirm MITRE's WatchedExtensions knob is actually configured to cover these before relying on silence. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0257, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

The detection

The 3 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

Splunk · SPL

Run this as a search.

index=* ((TargetFilename="*.iso:Zone.Identifier" OR TargetFilename="*.img:Zone.Identifier" OR TargetFilename="*.vhd:Zone.Identifier" OR TargetFilename="*.vhdx:Zone.Identifier" OR TargetFilename="*.zip:Zone.Identifier" OR TargetFilename="*.rar:Zone.Identifier" OR TargetFilename="*.7z:Zone.Identifier" OR TargetFilename="*.gz:Zone.Identifier" OR TargetFilename="*.arj:Zone.Identifier") AND Contents="*ZoneId=3*")

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(file.path) LIKE "*.iso:zone.identifier" OR TO_LOWER(file.path) LIKE "*.img:zone.identifier" OR TO_LOWER(file.path) LIKE "*.vhd:zone.identifier" OR TO_LOWER(file.path) LIKE "*.vhdx:zone.identifier" OR TO_LOWER(file.path) LIKE "*.zip:zone.identifier" OR TO_LOWER(file.path) LIKE "*.rar:zone.identifier" OR TO_LOWER(file.path) LIKE "*.7z:zone.identifier" OR TO_LOWER(file.path) LIKE "*.gz:zone.identifier" OR TO_LOWER(file.path) LIKE "*.arj:zone.identifier") AND TO_LOWER(Contents) LIKE "*zoneid=3*")

Wazuh · XML rule

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

<group name="sigma,windows,create_stream_hash,">  <!-- 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)(\.iso:Zone\.Identifier$|\.img:Zone\.Identifier$|\.vhd:Zone\.Identifier$|\.vhdx:Zone\.Identifier$|\.zip:Zone\.Identifier$|\.rar:Zone\.Identifier$|\.7z:Zone\.Identifier$|\.gz:Zone\.Identifier$|\.arj:Zone\.Identifier$)</field>    <field name="Contents" type="pcre2">(?i)ZoneId=3</field>    <description>Zone.Identifier stream stamped onto a container or disk image file</description>    <mitre>      <id>T1553.005</id>    </mitre>  </rule></group>

Sentinel · KQL

Run this as a search.

Sentinel cannot express this construct. No Sentinel table is modelled for this logsource ({"category":"create_stream_hash","product":"windows"}), so there is nothing honest to query. Pick a logsource this translator maps, or write the KQL by hand. The Sigma source is on the first tab, unchanged.

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.