Detect mining pool and miner arguments in process command lines
Matches process creation whose command line carries a cryptocurrency mining configuration: a `stratum://` pool URL, the donation, rig-identity and NiceHash switches that miner families expose, or a RandomX/Monero algorithm selection. MITRE names `Image` as a mutable element for this analytic — campaigns rename and masquerade the binary — so the logic sits entirely on `CommandLine`, which the pool configuration cannot be stripped from and still mine. Sustained CPU consumption and the persistent pool connection are the analytic's real discriminators; neither a resource threshold nor a duration is expressible in Sigma, so this catches the launch rather than the sustained load. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0540, 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 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
Sentinel · KQL
Run this as a search.
DeviceProcessEvents| where (ProcessCommandLine contains "stratum+tcp://" or ProcessCommandLine contains "stratum+ssl://" or ProcessCommandLine contains "stratum1+tcp://" or ProcessCommandLine contains "stratum2+tcp://" or ProcessCommandLine contains "--donate-level" or ProcessCommandLine contains "--nicehash" or ProcessCommandLine contains "--rig-id" or ProcessCommandLine contains "--algo=rx/0" or ProcessCommandLine contains "--algo=randomx" or ProcessCommandLine contains "--coin=monero" or ProcessCommandLine contains "xmrig" or ProcessCommandLine contains "minerd")
Splunk · SPL
Run this as a search.
index=* (CommandLine="*stratum+tcp://*" OR CommandLine="*stratum+ssl://*" OR CommandLine="*stratum1+tcp://*" OR CommandLine="*stratum2+tcp://*" OR CommandLine="*--donate-level*" OR CommandLine="*--nicehash*" OR CommandLine="*--rig-id*" OR CommandLine="*--algo=rx/0*" OR CommandLine="*--algo=randomx*" OR CommandLine="*--coin=monero*" OR CommandLine="*xmrig*" OR CommandLine="*minerd*")Elastic · ES|QL
Run this as a search.
FROM logs-*| WHERE (TO_LOWER(process.command_line) LIKE "*stratum+tcp://*" OR TO_LOWER(process.command_line) LIKE "*stratum+ssl://*" OR TO_LOWER(process.command_line) LIKE "*stratum1+tcp://*" OR TO_LOWER(process.command_line) LIKE "*stratum2+tcp://*" OR TO_LOWER(process.command_line) LIKE "*--donate-level*" OR TO_LOWER(process.command_line) LIKE "*--nicehash*" OR TO_LOWER(process.command_line) LIKE "*--rig-id*" OR TO_LOWER(process.command_line) LIKE "*--algo=rx/0*" OR TO_LOWER(process.command_line) LIKE "*--algo=randomx*" OR TO_LOWER(process.command_line) LIKE "*--coin=monero*" OR TO_LOWER(process.command_line) LIKE "*xmrig*" OR TO_LOWER(process.command_line) LIKE "*minerd*")
Wazuh · XML rule
Deploy to your manager — this is a rule, not a search.
<group name="sigma,windows,process_creation,"> <!-- Rule ids must be unique on your manager; 100000+ is the user range. --> <rule id="100000" level="12"> <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. --> <field name="CommandLine" type="pcre2">(?i)(stratum\+tcp://|stratum\+ssl://|stratum1\+tcp://|stratum2\+tcp://|--donate-level|--nicehash|--rig-id|--algo=rx/0|--algo=randomx|--coin=monero|xmrig|minerd)</field> <description>Detect mining pool and miner arguments in process command lines</description> <mitre> <id>T1496.001</id> </mitre> </rule></group>
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.