Every detection rule makes a bet: the observable it targets will be present when the attack occurs. The DML model helps you evaluate whether that bet is likely to pay off.
The DML Scale
DML-7: TTP (Tactics, Techniques, Procedures) ← Hardest to evade
DML-6: Tactic
DML-5: Tool
DML-4: Host Artifact
DML-3: Network Artifact
DML-2: Domain Name
DML-1: IP Address
DML-0: Hash Value ← Easiest to evade
Each level corresponds to how much effort the attacker must expend to evade the detection. DML-0 requires zero effort; DML-7 requires redesigning the attack.
Level-by-Level Analysis
DML-0: Hash Value
detection:
selection:
Hashes|contains: 'sha256=3395856ce81f2b7382dee72602f798b642f14d5f61b66c7d9a06ca03f1f7f30'
Who uses it: Threat intel feeds, endpoint blocklists. Evasion: Compile with different compiler settings, pad with null bytes, change a string literal. Takes an attacker < 5 minutes. When to use: For high-confidence IOC blocking, never for primary detection.
DML-1 and DML-2: IP Address and Domain
detection:
selection:
DestinationIp: "185.220.101.47" # DML-1
# or
QueryName: "malicious-c2.example.com" # DML-2
Evasion: Rotate IP (trivial with cloud infrastructure), register new domain (cost: $10, time: minutes). When to use: Tactical blocking during active incident; never as primary long-term detection.
DML-3: Network Artifact
detection:
selection:
UserAgent: "Mozilla/5.0 (compatible; MSIE 9.0)" # IE9 UA in 2026 = suspicious
# or
uri|contains: "/jquery-3.3.1.min.js" # CS default malleable profile
Evasion: Modify C2 configuration (malleable profile in Cobalt Strike). Takes 30 minutes and a redeployment. When to use: Good for detecting default C2 tool configurations — many attackers use tools with default profiles.
DML-4: Host Artifact
detection:
selection:
TargetFilename|contains: '\AppData\Local\Temp\PSEXESVC.exe'
# or
RegistryKey|contains: 'HKLM\SYSTEM\CurrentControlSet\Services\PSEXESVC'
Evasion: Change the service name in PsExec, modify default file paths. Takes minutes and a tool rebuild. When to use: Good coverage for attackers using default configurations; breaks when sophisticated actors customize.
DML-5: Tool
detection:
selection:
# Detecting Mimikatz behavior regardless of binary name
GrantedAccess: '0x1fffff' # PROCESS_ALL_ACCESS — Mimikatz lsadump default
CallTrace|contains:
- 'dbghelp.dll'
- 'MiniDumpWriteDump'
Evasion: Switch to a different LSASS dumping tool (Process Hacker, TaskManager, comsvcs.dll). When to use: Excellent for detecting commonly used tools; layer with DML-6/7 for robustness.
DML-6: Tactic
detection:
selection:
# Detecting credential dumping tactic regardless of tool
TargetImage|endswith: '\lsass.exe'
GrantedAccess|contains:
- '0x1fffff' # PROCESS_ALL_ACCESS
- '0x1010' # PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_VM_READ
filter_legitimate:
SourceImage|startswith:
- 'C:\Windows\System32\'
- 'C:\Windows\SysWOW64\'
condition: selection and not filter_legitimate
Evasion: Use a technique that doesn’t require direct LSASS access (e.g., DCSync via LDAP, shadow copy extraction). Requires a different attack path, not just a different tool.
DML-7: TTP
detection:
# Detecting the OS primitive: any memory read of LSASS by a non-privileged process
selection:
EventID: 10 # Sysmon: ProcessAccess
TargetImage|endswith: '\lsass.exe'
filter_system_processes:
SourceImage|startswith:
- 'C:\Windows\System32\'
- 'C:\Program Files\Windows Defender\'
- 'C:\Program Files\CrowdStrike\'
condition: selection and not filter_system_processes
Evasion: To dump LSASS credentials, the attacker must at some point read LSASS memory (or use a remote technique that makes a domain controller do it on their behalf). This detection targets the OS operation itself. Evading it requires a fundamentally different credential access approach (DCSync, GPP passwords, ADCS abuse), not just a different tool.
Scoring Your Detection Coverage by DML
Audit each rule in your detection library and assign a DML level:
Rule inventory DML distribution:
DML-0 (hash): 12 rules 8% ← too many (these are IOC blocks, not detections)
DML-1/2 (IP/domain): 18 rules 12%
DML-3 (network): 8 rules 5%
DML-4 (host): 65 rules 43% ← most rules live here
DML-5 (tool): 30 rules 20%
DML-6 (tactic): 14 rules 9%
DML-7 (TTP): 3 rules 3% ← want more here
Total: 150 rules
Improvement target: Shift the distribution toward DML-5 through DML-7 over 6–12 months. DML-4 rules are valuable but fragile — each should have a DML-6/7 complement.
The DML Model— Ryan Stillions