Skip to content

Commit 0aada01

Browse files
committed
refactor(rules): Rename and improve Potential process doppelganging injection rule
Make the rule more robust against false positives by checking that the process name is different than the base executable path, and also check the callstack to deduce the process is created from the low-level API function.
1 parent c4deeca commit 0aada01

File tree

2 files changed

+39
-58
lines changed

2 files changed

+39
-58
lines changed

rules/defense_evasion_potential_process_doppelganging_injection.yml

Lines changed: 0 additions & 58 deletions
This file was deleted.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Process creation via NTFS transaction
2+
id: eb34cf6e-ccc3-4bce-bbcf-013720640a28
3+
version: 2.0.0
4+
description: |
5+
Adversaries may inject malicious code into process by abusing NTFS transactions
6+
to avoid writing the final executable image to disk. Attackers exploit TxF API
7+
and low-level process creation internals to evade traditional file-based detection.
8+
labels:
9+
tactic.id: TA0005
10+
tactic.name: Defense Evasion
11+
tactic.ref: https://attack.mitre.org/tactics/TA0005/
12+
technique.id: T1055
13+
technique.name: Process Injection
14+
technique.ref: https://attack.mitre.org/techniques/T1055/
15+
subtechnique.id: T1055.013
16+
subtechnique.name: Process Doppelganging
17+
subtechnique.ref: https://attack.mitre.org/techniques/T1055/013/
18+
references:
19+
- https://www.ired.team/offensive-security/code-injection-process-injection/process-doppelganging
20+
- https://www.malwarebytes.com/blog/news/2018/08/process-doppelganging-meets-process-hollowing_osiris
21+
22+
condition: >
23+
sequence
24+
maxspan 2m
25+
|create_file and
26+
evt.pid != 4 and thread.callstack.symbols imatches
27+
(
28+
'kernel32.dll!CreateFileTransacted*',
29+
'ntdll.dll!RtlSetCurrentTransaction'
30+
)
31+
| by file.name
32+
|spawn_process and
33+
ps.name != base(ps.exe) and
34+
thread.callstack.symbols not imatches ('ntdll.dll!*CreateUserProcess')
35+
| by ps.name
36+
action:
37+
- name: kill
38+
39+
min-engine-version: 3.0.0

0 commit comments

Comments
 (0)