Skip to content

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

Siemphony’s repertoire

Archive written to a shared or world-writable staging directory

Siemphony@siemphonymediumT1074unverified
Detects an archive file appearing in one of the directories an operator reaches for when consolidating collected data before exfiltration. AN0040 describes two things — the compression step and the staging location — and this rule takes the location, because that is what separates Data Staged from ordinary archiving: the same 7-Zip invocation is unremarkable in a user's documents folder and is the technique when the output lands somewhere every account on the host can read. The path list is MITRE's StagingDirectoryList knob populated here with the shared and machine-scope directories, and it deliberately omits `\AppData\Local\Temp\`: every installer and browser download extracts an archive there, and including it would bury the signal in routine software activity rather than surface it. Because the match is on the written file and not on the writing process, an archive produced by a hand-rolled tool with no recognisable name still matches, while a staged folder of loose uncompressed files does not. Note the audit prerequisite — this category is fed either by Sysmon EventID 11, whose FileCreate rules in the common shipped configurations filter these paths out, or by Security 4663, which needs the *Audit File System* subcategory **and** a SACL on each of these folders. Neither is on in a default install, and neither is in the MS or CIS baselines, so an empty result here means nothing is being recorded. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0014, 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

Sentinel · KQL

Run this as a search.

DeviceFileEvents| where ((FolderPath contains "\\Users\\Public\\" or FolderPath contains "\\ProgramData\\" or FolderPath contains "\\Windows\\Temp\\" or FolderPath contains "\\PerfLogs\\" or FolderPath contains "\\$Recycle.Bin\\" or FolderPath contains "\\Windows\\Tasks\\") and (FolderPath endswith ".7z" or FolderPath endswith ".rar" or FolderPath endswith ".zip" or FolderPath endswith ".cab" or FolderPath endswith ".tar" or FolderPath endswith ".gz" or FolderPath endswith ".tgz" or FolderPath endswith ".iso"))

Splunk · SPL

Run this as a search.

index=* ((TargetFilename="*\\Users\\Public\\*" OR TargetFilename="*\\ProgramData\\*" OR TargetFilename="*\\Windows\\Temp\\*" OR TargetFilename="*\\PerfLogs\\*" OR TargetFilename="*\\$Recycle.Bin\\*" OR TargetFilename="*\\Windows\\Tasks\\*") AND (TargetFilename="*.7z" OR TargetFilename="*.rar" OR TargetFilename="*.zip" OR TargetFilename="*.cab" OR TargetFilename="*.tar" OR TargetFilename="*.gz" OR TargetFilename="*.tgz" OR TargetFilename="*.iso"))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(file.path) LIKE "*\\\\users\\\\public\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\programdata\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\windows\\\\temp\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\perflogs\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\$recycle.bin\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\windows\\\\tasks\\\\*") AND (TO_LOWER(file.path) LIKE "*.7z" OR TO_LOWER(file.path) LIKE "*.rar" OR TO_LOWER(file.path) LIKE "*.zip" OR TO_LOWER(file.path) LIKE "*.cab" OR TO_LOWER(file.path) LIKE "*.tar" OR TO_LOWER(file.path) LIKE "*.gz" OR TO_LOWER(file.path) LIKE "*.tgz" OR TO_LOWER(file.path) LIKE "*.iso"))

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="7">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="TargetFilename" type="pcre2">(?i)(\\Users\\Public\\|\\ProgramData\\|\\Windows\\Temp\\|\\PerfLogs\\|\\\$Recycle\.Bin\\|\\Windows\\Tasks\\)</field>    <field name="TargetFilename" type="pcre2">(?i)(\.7z$|\.rar$|\.zip$|\.cab$|\.tar$|\.gz$|\.tgz$|\.iso$)</field>    <description>Archive written to a shared or world-writable staging directory</description>    <mitre>      <id>T1074</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.