Another process's /proc memory named on a Linux command line
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 descriptionShow less
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.
Nobody has run this in a real environment and said what happened.
Verdicts from engineers who deployed it
0 castNo 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.