Skip to content

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

Siemphony’s repertoire

Process invoked with a path inside the local mail spool

Takes the Linux leg of AN0189 (DET0070) rather than the Windows or Office-app legs, because those two are already the mechanism of a published sibling: T1566.001 keys on the Outlook secure-temp cache path and T1566.003 keys on a messaging-client Image list, and both are Windows-only artefacts that a Linux host never produces; AN0191's Office-spawns-a-script-host pattern is also out of scope here, since the T1566.001 rule in this corpus already notes that pattern belongs to T1203/T1204. What is left, and what no sibling covers, is a process launched with a path under the local mail spool or a user's Maildir on its command line — evidence that something was run straight out of a delivered message rather than through a mail client's own attachment handler. `/var/spool/mail/` is added here alongside MITRE's `/var/mail` and `~/Maildir` examples because it is the RHEL-family spool location and MITRE names only the Debian-family one; that value is authored, not sourced. Mail delivery agents write to this same path on every message received, which would otherwise dominate the result set, so `filter_mda` excludes procmail, dovecot, sendmail and postfix by Image name — MITRE's `MonitoredMailPaths` knob is populated with the two directories, `AttachmentHashBaseline` has no equivalent Sigma construct and is not attempted. auditd does not record execve out of the box; without an explicit `-a always,exit -F arch=b64 -S execve` rule this rule is blind, not quiet. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0070, 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: Process invoked with a path inside the local mail spoolid: 5dd9f853-d6cd-4b1d-9a4d-fd9503f4331estatus: experimentaldescription: |  Takes the Linux leg of AN0189 (DET0070) rather than the Windows or Office-app  legs, because those two are already the mechanism of a published sibling:  T1566.001 keys on the Outlook secure-temp cache path and T1566.003 keys on a  messaging-client Image list, and both are Windows-only artefacts that a Linux  host never produces; AN0191's Office-spawns-a-script-host pattern is also out  of scope here, since the T1566.001 rule in this corpus already notes that  pattern belongs to T1203/T1204. What is left, and what no sibling covers, is  a process launched with a path under the local mail spool or a user's Maildir  on its command line — evidence that something was run straight out of a  delivered message rather than through a mail client's own attachment handler.  `/var/spool/mail/` is added here alongside MITRE's `/var/mail` and `~/Maildir`  examples because it is the RHEL-family spool location and MITRE names only the  Debian-family one; that value is authored, not sourced. Mail delivery agents  write to this same path on every message received, which would otherwise  dominate the result set, so `filter_mda` excludes procmail, dovecot, sendmail  and postfix by Image name — MITRE's `MonitoredMailPaths` knob is populated  with the two directories, `AttachmentHashBaseline` has no equivalent Sigma  construct and is not attempted. auditd does not record execve out of the box;  without an explicit `-a always,exit -F arch=b64 -S execve` rule this rule is  blind, not quiet.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0070, 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/T1566  - https://attack.mitre.org/detectionstrategies/DET0070author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags:  - attack.initial-access  - attack.t1566logsource:  category: process_creation  product: linuxdetection:  selection:    CommandLine|contains:      - '/var/mail/'      - '/var/spool/mail/'      - '/Maildir/'  filter_mda:    Image|endswith:      - '/procmail'      - '/dovecot'      - '/sendmail'      - '/postfix'  condition: selection and not filter_mdafalsepositives:  - "IMAP or POP retrieval tools such as fetchmail or getmail, which run as ordinary processes and reference the local spool or Maildir path on their command line on every scheduled sync, and are not covered by the MDA filter because their binary names differ from it."  - "Mail scanning and antivirus integrations such as amavisd or ClamAV milters that open and inspect messages in place inside the spool directory as part of normal delivery-time filtering, producing a hit for every message that passes through the host."  - "Backup, archival and mailbox-migration jobs that tar, rsync or copy a user's Maildir on a schedule, matching the path on every run without anything having been executed from it."  - "System administration and troubleshooting, where an operator runs ls, find or grep against a spool directory to diagnose a delivery problem and the path lands on the command line without any attachment being run."level: medium

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where ((ProcessCommandLine contains "/var/mail/" or ProcessCommandLine contains "/var/spool/mail/" or ProcessCommandLine contains "/Maildir/") and not ((FolderPath endswith "/procmail" or FolderPath endswith "/dovecot" or FolderPath endswith "/sendmail" or FolderPath endswith "/postfix")))

Splunk · SPL

Run this as a search.

index=* ((CommandLine="*/var/mail/*" OR CommandLine="*/var/spool/mail/*" OR CommandLine="*/Maildir/*") AND NOT ((Image="*/procmail" OR Image="*/dovecot" OR Image="*/sendmail" OR Image="*/postfix")))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(process.command_line) LIKE "*/var/mail/*" OR TO_LOWER(process.command_line) LIKE "*/var/spool/mail/*" OR TO_LOWER(process.command_line) LIKE "*/maildir/*") AND NOT ((TO_LOWER(process.executable) LIKE "*/procmail" OR TO_LOWER(process.executable) LIKE "*/dovecot" OR TO_LOWER(process.executable) LIKE "*/sendmail" OR TO_LOWER(process.executable) LIKE "*/postfix")))

Wazuh · XML rule

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

<group name="sigma,linux,process_creation,">  <!-- 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 linux so this only evaluates relevant events. -->    <field name="CommandLine" type="pcre2">(?i)(/var/mail/|/var/spool/mail/|/Maildir/)</field>    <field name="Image" negate="yes" type="pcre2">(?i)(/procmail$|/dovecot$|/sendmail$|/postfix$)</field>    <description>Process invoked with a path inside the local mail spool</description>    <mitre>      <id>T1566</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.