Skip to content

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

Siemphony’s repertoire

Archive written to a shared or world-writable staging directory

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

title: Archive written to a shared or world-writable staging directoryid: bb06ea25-58cd-49c6-a15e-2d03a5fcbcc1status: experimentaldescription: |  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.references:  - https://attack.mitre.org/techniques/T1074  - https://attack.mitre.org/detectionstrategies/DET0014author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags:  - attack.collection  - attack.t1074logsource:  category: file_event  product: windowsdetection:  selection_staging_path:    TargetFilename|contains:      - '\Users\Public\'      - '\ProgramData\'      - '\Windows\Temp\'      - '\PerfLogs\'      - '\$Recycle.Bin\'      - '\Windows\Tasks\'  selection_archive_extension:    TargetFilename|endswith:      - '.7z'      - '.rar'      - '.zip'      - '.cab'      - '.tar'      - '.gz'      - '.tgz'      - '.iso'  condition: selection_staging_path and selection_archive_extensionfalsepositives:  - "Software distribution, patching and endpoint agents, which stage compressed payloads under ProgramData and the Windows Temp folder on every managed host. This is the rule's top talker fleet-wide and it is the reason the level is not higher; suppress by the writing process or by the vendor's own subfolder rather than by removing ProgramData, which would take the technique's most-used location with it."  - "Windows servicing itself, which writes .cab files into the Windows Temp folder during update installation and component repair, producing bursts on patch day across the whole estate."  - "Backup, log-collection and vendor diagnostic collectors that archive a directory into a shared location before uploading it — the same write, the same extension and often the same tool an operator would use, separated only by the account and the schedule behind it."  - "Users treating the Public user folder as the intended file-sharing location on a shared workstation, which is what that folder is for. MITRE's TimeWindow knob is aimed at the batch shape of real staging, many files in quick succession, and that burst quality is the thing to key on rather than any single write."level: medium

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.