Skip to content

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

Siemphony’s repertoire

Another process's /proc memory named on a Linux command line

Siemphony@siemphonymediumT1003.007unverified
Matches a process launched with the /proc memory interface of a numbered PID in its arguments — /proc/<pid>/mem, /proc/<pid>/maps or /proc/<pid>/smaps — which is the shape AN1631 describes when it talks about multi-step access to another process's memory to scrape credential material. The match sits on CommandLine and not on Image on purpose: the published tooling for this is shell and Python (mimipenguin ships as both, and the technique description itself is a grep-and-cut one-liner), so on any process-creation feed the executable is /bin/bash or /usr/bin/python3 and a selector keyed on a tool name would never fire. MITRE supplies the `AccessedFilePath` knob; restricting it to a numeric PID is authored here, because /proc/self/mem and /proc/self/maps are self-inspection performed constantly by language runtimes, container sandboxes and CI test suites, and the credential case in this analytic is one process reading a *different* process's address space. The three auditd log sources in the brief were not used. auditd file watches are inode-based and /proc's per-PID entries are created and destroyed with every process, so there is no stable path to watch; the syscall-filter form (-F dir=/proc -F perm=r) does load but then records every read of /proc, which on any host means every ps, top, monitoring agent and container-runtime poll. The ptrace and process_vm_readv leg is a SYSCALL record carrying exe and a numeric syscall value but no path at all, so it cannot say whose memory was read and could not carry MITRE's `AccessedFilePath` knob. Two limits follow from using process creation: a compiled implant that opens /proc/<pid>/mem through a path it builds at runtime puts nothing in argv and is invisible here, and MITRE's `UserContext` knob is not applied, since root reading /proc is also how most legitimate agents work. Prerequisite: Sysmon for Linux is a separate agent that no distribution installs by default, so a host running stock auditd alone produces nothing this rule can read. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0593, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

The detection

The 2 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

Splunk · SPL

Run this as a search.

index=* | where match(CommandLine, "/proc/[0-9]+/(mem|maps|smaps)")

Wazuh · XML rule

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

<group name="sigma,linux,">  <!-- 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)/proc/[0-9]+/(mem|maps|smaps)</field>    <description>Another process's /proc memory named on a Linux command line</description>    <mitre>      <id>T1003.007</id>    </mitre>  </rule></group>

Sentinel · KQL

Run this as a search.

Sentinel cannot express this construct. No Sentinel table is modelled for this logsource ({"product":"linux","service":"sysmon"}), so there is nothing honest to query. Pick a logsource this translator maps, or write the KQL by hand. The Sigma source is on the first tab, unchanged.

Elastic · ES|QL

Run this as a search.

Elastic cannot express this construct. ES|QL RLIKE uses Lucene regexp syntax, which has no case-insensitive flag, and Sigma regexes are case-insensitive. Use |contains/|startswith/|endswith, or write the ES|QL by hand. The Sigma source is on the first tab, unchanged.

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.