Skip to content

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

Siemphony’s repertoire

Archive file created in an uncommon staging directory

Matches the file-write half of MITRE's AN1458: an archive or compressed container appearing in a directory that is a staging spot rather than a normal place for software to unpack itself. It carries no process gate on purpose, because the corpus already covers the utility-execution half under T1560.001 and the artefact is what remains visible when the compression is done by a third-party library or a custom method instead of a named tool. MITRE's ArchiveExtensions and SuspiciousDirectories knobs are populated here with the author's own lists, and the per-user and ProgramData temp trees are left out of them because installer extraction dominates those paths. Sysmon EventID 11 carries no file size, so MITRE's FileSizeThresholdMB knob has no representation and a single compressed document looks the same here as a staged collection. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0526, 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 file created in an uncommon staging directoryid: 6f295040-5233-463d-8b1b-1147c0f8eea1status: experimentaldescription: |  Matches the file-write half of MITRE's AN1458: an archive or compressed  container appearing in a directory that is a staging spot rather than a normal  place for software to unpack itself. It carries no process gate on purpose,  because the corpus already covers the utility-execution half under T1560.001  and the artefact is what remains visible when the compression is done by a  third-party library or a custom method instead of a named tool. MITRE's  ArchiveExtensions and SuspiciousDirectories knobs are populated here with the  author's own lists, and the per-user and ProgramData temp trees are left out  of them because installer extraction dominates those paths. Sysmon EventID 11  carries no file size, so MITRE's FileSizeThresholdMB knob has no  representation and a single compressed document looks the same here as a  staged collection.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0526, 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/T1560  - https://attack.mitre.org/detectionstrategies/DET0526author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags:  - attack.collection  - attack.t1560logsource:  category: file_event  product: windowsdetection:  selection_extension:    TargetFilename|endswith:      - '.7z'      - '.rar'      - '.zip'      - '.tar'      - '.gz'      - '.tgz'      - '.bz2'      - '.cab'      - '.arj'  selection_directory:    TargetFilename|contains:      - '\Users\Public\'      - '\PerfLogs\'      - '\Windows\Temp\'      - '\Windows\Tasks\'      - '\Windows\debug\'      - '\Windows\addins\'      - '\$Recycle.Bin\'  condition: selection_extension and selection_directoryfalsepositives:  - "Windows servicing and vendor patch agents, which use the Windows Temp directory as scratch space and write cabinet and zip payloads into it on every update cycle. On a patched fleet this is the highest-volume match by a wide margin, and it is the reason the rule is not levelled above low."  - "Diagnostic and log-collection tooling that packages its output to a fixed path. Helpdesk collectors, vendor support bundles and crash-report packagers routinely drop a zip in the Windows Temp directory or in the Public profile."  - "People sharing files through the Public profile, which is the documented location for content every account on the machine can read. An archive landing there is ordinary desktop behaviour and matches with nothing else required."  - "Scheduled tasks and service accounts that compress their own working data in place, for example an application writing a rotated log archive under the Windows Temp directory rather than into its own install path."level: low

Sentinel · KQL

Run this as a search.

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

Splunk · SPL

Run this as a search.

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

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((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 "*.tar" OR TO_LOWER(file.path) LIKE "*.gz" OR TO_LOWER(file.path) LIKE "*.tgz" OR TO_LOWER(file.path) LIKE "*.bz2" OR TO_LOWER(file.path) LIKE "*.cab" OR TO_LOWER(file.path) LIKE "*.arj") AND (TO_LOWER(file.path) LIKE "*\\\\users\\\\public\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\perflogs\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\windows\\\\temp\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\windows\\\\tasks\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\windows\\\\debug\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\windows\\\\addins\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\$recycle.bin\\\\*"))

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)(\.7z$|\.rar$|\.zip$|\.tar$|\.gz$|\.tgz$|\.bz2$|\.cab$|\.arj$)</field>    <field name="TargetFilename" type="pcre2">(?i)(\\Users\\Public\\|\\PerfLogs\\|\\Windows\\Temp\\|\\Windows\\Tasks\\|\\Windows\\debug\\|\\Windows\\addins\\|\\\$Recycle\.Bin\\)</field>    <description>Archive file created in an uncommon staging directory</description>    <mitre>      <id>T1560</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.