Cross-source coverage
T1036.009 / ATT&CK
Masquerading: Break Process Trees
7 rules across 2 sources.
From MITRE ATT&CK 19.2
An adversary may attempt to evade process tree-based analysis by modifying executed malware's parent process ID (PPID). If endpoint protection software leverages the “parent-child" relationship for detection, breaking this relationship could result in the adversary’s behavior not being associated with previous process tree activity. On Unix-based systems breaking this process tree is common practice for administrators to execute software using scripts and programs.
On Linux systems, adversaries may execute a series of Native API calls to alter malware's process tree. For example, adversaries can execute their payload without any arguments, call the fork() API call twice, then have the parent process exit. This creates a grandchild process with no parent process that is immediately adopted by the init system process (PID 1), which successfully disconnects the execution of the adversary's payload from its previous process tree.
Another example is using the “daemon” syscall to detach from the current parent process and run in the background.
- Tactics
- Stealth
- Platforms
- Linux · macOS
- Telemetry
-
auditd:SYSCALLmacos:unifiedlogfs:fsusage
How MITRE says to detect it DET0443
Detection Strategy for Masquerading via Breaking Process Trees
Linux Analytic 1223
Detects anomalous process execution patterns where a process's parent terminates quickly after process creation or is re-parented to 'init' (PID 1), often indicating double-fork or daemon-style detachment. These behaviors sever the parent-child relationship and obscure the execution origin in process tree analysis.
auditd:SYSCALLfork/clone/daemon syscall tracingauditd:SYSCALLexecve of re-parented process
macOS Analytic 1224
Detects execution patterns where a child process is detached from its original parent, often showing up under 'launchd' (PID 1) with no parent lineage. These breakages in the process tree are indicative of evasive techniques using `daemon()`, `fork()` or background execution flags.
macos:unifiedlogProcess creation with parent PID of 1 (launchd)fs:fsusageDetached process execution with no associated parent
elastic/detection-rules
5 rules| Detection | Severity | Format |
|---|---|---|
| Tampering with RUNNER_TRACKING_ID in GitHub Actions Runners | Medium | Elastic TOML |
| Unusual Execution from Kernel Thread (kthreadd) Parent | Medium | Elastic TOML |
| Unusual Parent-Child Relationship | Medium | Elastic TOML |
| Direct Process Execution via Background Utility | Low | Elastic TOML |
| Process Backgrounded by Unusual Parent | Low | Elastic TOML |
splunk/security_content
2 rules| Detection | Severity | Format |
|---|---|---|
| Windows Svchost.exe Parent Process Anomaly | Undefined | SPL |
| Windows Unusual SysWOW64 Process Run System32 Executable | Undefined | SPL |