Skip to content

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

Siemphony’s repertoire

Process executed from a filename with a trailing space

AN0812 asks for "file execution where the file name contains a trailing space to masquerade as a known executable," citing how command-line interpreters handle trailing whitespace differently from the GUI dispatch behaviour the technique is best known for on macOS. This rule takes the literal, single-event form of that claim on the {category: process_creation, product: linux} logsource — the same raw-auditd-normalised shape (Image, CommandLine) used throughout this corpus — and matches an executed `Image` whose resolved path ends in a literal space character. `Image` is the auditd pipeline's resolved absolute path of the file that was actually execve'd, so this reads the real, on-disk filename rather than however it was quoted on a command line, which is the more literal reading of the technique: the file's own name carries the trailing space, not the way it was invoked. This is deliberately narrow and says nothing about *why* a trailing space would help an adversary on Linux specifically — unlike macOS's Finder, Linux has no extension-based double-click dispatch for this to bypass, and MITRE's own description is written primarily around that macOS mechanism; AN0812's own text frames the Linux angle as evading a command-line interpreter or a naive extension check rather than an exec reroute, and this rule only asserts the checkable fact — a trailing-space filename was executed — not the more specific evasion story. Two of MITRE's three knobs go unpopulated: ExecutableNameTrailingSpace *is* the selector below, so there is nothing further to add; TimeWindow, aimed at flagging off-hours execution to cut noise, needs a time-of-day comparison lib/sigma has no function for, so it is not attempted; and UserContext (untrusted or lower-privileged users) is left to the reviewer, since a blanket privilege filter here would need a per-estate notion of "untrusted" this brief does not supply. The second Linux logsource in the same analytic, {product: linux, service: syslog}, is not attempted: no rule in this corpus has an established Sigma field vocabulary for it. AN0813, the macOS leg, is not attempted either: its only logsource, {product: macos, service: unifiedlog}, is unstandardised in this pipeline — the same blocker already recorded against that exact source for T1037.002, T1059.002, T1548.004 and T1546.006 — despite macOS being where MITRE's own narrative example (Finder double-click dispatch) actually applies. Prerequisite: raw auditd does not record execve by default; this returns nothing until a rule such as `-a always,exit -F arch=b64 -S execve -k exec` is loaded, and zero rows reads as quiet when it actually means blind. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0292, 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 executed from a filename with a trailing spaceid: 86016c01-d63d-4cfd-9de3-c1e3f2488e1bstatus: experimentaldescription: |  AN0812 asks for "file execution where the file name contains a trailing  space to masquerade as a known executable," citing how command-line  interpreters handle trailing whitespace differently from the GUI dispatch  behaviour the technique is best known for on macOS. This rule takes the  literal, single-event form of that claim on the {category: process_creation,  product: linux} logsource — the same raw-auditd-normalised shape (Image,  CommandLine) used throughout this corpus — and matches an executed `Image`  whose resolved path ends in a literal space character. `Image` is the  auditd pipeline's resolved absolute path of the file that was actually  execve'd, so this reads the real, on-disk filename rather than however it  was quoted on a command line, which is the more literal reading of the  technique: the file's own name carries the trailing space, not the way it  was invoked. This is deliberately narrow and says nothing about *why* a  trailing space would help an adversary on Linux specifically — unlike  macOS's Finder, Linux has no extension-based double-click dispatch for this  to bypass, and MITRE's own description is written primarily around that  macOS mechanism; AN0812's own text frames the Linux angle as evading a  command-line interpreter or a naive extension check rather than an exec  reroute, and this rule only asserts the checkable fact — a trailing-space  filename was executed — not the more specific evasion story. Two of MITRE's  three knobs go unpopulated: ExecutableNameTrailingSpace *is* the selector  below, so there is nothing further to add; TimeWindow, aimed at flagging  off-hours execution to cut noise, needs a time-of-day comparison lib/sigma  has no function for, so it is not attempted; and UserContext (untrusted or  lower-privileged users) is left to the reviewer, since a blanket privilege  filter here would need a per-estate notion of "untrusted" this brief does  not supply. The second Linux logsource in the same analytic, {product:  linux, service: syslog}, is not attempted: no rule in this corpus has an  established Sigma field vocabulary for it. AN0813, the macOS leg, is not  attempted either: its only logsource, {product: macos, service: unifiedlog},  is unstandardised in this pipeline — the same blocker already recorded  against that exact source for T1037.002, T1059.002, T1548.004 and  T1546.006 — despite macOS being where MITRE's own narrative example (Finder  double-click dispatch) actually applies. Prerequisite: raw auditd does not  record execve by default; this returns nothing until a rule such as  `-a always,exit -F arch=b64 -S execve -k exec` is loaded, and zero rows  reads as quiet when it actually means blind.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0292, 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/T1036/006  - https://attack.mitre.org/detectionstrategies/DET0292author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-18tags:  - attack.defense-evasion  - attack.t1036.006logsource:  category: process_creation  product: linuxdetection:  selection:    Image|endswith: ' '  condition: selectionfalsepositives:  - "A user renaming or creating a file through a graphical file manager (GNOME Files, a desktop drag-and-drop) who leaves an accidental trailing space, then runs it from a terminal that inherits the exact quoted path, including the space — an ordinary mistake rather than adversarial activity."  - "Build or packaging tooling that extracts an archive originally created on Windows or macOS where a file legitimately ends in a trailing space, then a shell script globs for and executes files in that directory without trimming whitespace from the matched names."  - "Filesystem or backup-software test suites that intentionally exercise trailing-space and other odd-filename edge cases by creating and then running a binary named with a trailing space as part of automated test coverage."level: medium

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where FolderPath endswith " "

Splunk · SPL

Run this as a search.

index=* Image="* "

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE TO_LOWER(process.executable) LIKE "* "

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="Image" type="pcre2">(?i) $</field>    <description>Process executed from a filename with a trailing space</description>    <mitre>      <id>T1036.006</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.