🛡️ Top 25 EDR Detection Rules
🔴 Process Execution & Parent-Child Chains
1. Suspicious Child Process from Office Applications
- Trigger:
winword.exe,excel.exe,outlook.exespawningcmd.exe,powershell.exe,wscript.exe - Why: Macro-based malware execution
- Fields:
parent_process_name,child_process_name,command_line
2. PowerShell Spawned from Unusual Parents
- Trigger:
services.exe,wmiprvse.exe,svchost.exe,wsmprovhost.exe,mmc.exespawningpowershell.exeSplunk - Why: Lateral movement / remote code execution
- Fields:
parent_process_name,process_name,command_line
3. Suspicious Explorer.exe Child Process
- Trigger:
explorer.exespawningcscript.exe,wscript.exe,powershell.exe,rundll32.exe,mshta.exe,regsvr32.exeDetection.FYI - Why: DCOM abuse / Living-off-the-Land
- Fields:
parent_process,process_name,parent_args
4. Microsoft Exchange Worker Spawning Shell
- Trigger:
w3wp.exewith AppPoolMSExchange*spawningcmd.exe,powershell.exe,pwsh.exeGitHub - Why: Web shell exploitation / ProxyShell/ProxyLogon
- Fields:
parent_process,process_name,process_args
5. Event Viewer Suspicious Child Process
- Trigger:
eventvwr.exespawningcmd.exe,powershell.exe,mshta.exeManageEngine - Why: UAC bypass / privilege escalation
- Fields:
parent_process_name,child_process_name,command_line
6. WMI Provider Spawning Command Shell
- Trigger:
wmiprvse.exe→cmd.exe,powershell.exe,rundll32.exe - Why: Fileless remote execution and lateral movement —
wmiprvse.exespawning PowerShell or CMD is a key artifact Medium - Fields:
parent_process,process_name,network_connection
🟠 Command Line & Script Execution
7. Encoded PowerShell Command (-enc / -e)
- Trigger:
powershell.exewith-e,-en,-enc, or-w hidden -eflags in command line ManageEngine - Why: Obfuscated payload delivery
- Fields:
process_name,command_line,parent_process_name
8. PowerShell Download Cradle
- Trigger:
powershell.execommand_line containsInvoke-WebRequest,IEX,DownloadString,WebClient - Why: Adversaries frequently abuse PowerShell’s ability to download and run code remotely — detection focuses on process starts and parent/child relationships enriched by command-line parameters Red Canary
- Fields:
command_line,process_name,network_destination
9. Base64 Encoded PowerShell
- Trigger:
powershell.exe+command_linecontainsbase64 - Why: Base64 encoding isn’t inherently suspicious but is a key indicator — worth monitoring as it detects a wide variety of malicious activity Red Canary
- Fields:
command_line,process_name,user
10. LOLBAS Abuse — Certutil for Download
- Trigger:
certutil.exewith-urlcache,-decode,-fflags - Why: Abusing trusted Windows binaries to download malware
- Fields:
process_name,command_line,network_connection
11. Scheduled Task Created via schtasks.exe
- Trigger:
schtasks.exe /createwith/sc,/tr,/ru SYSTEM - Why: Adversaries including Ryuk ransomware and NOBELIUM leverage
schtasks.exefor lateral movement, persistence, and execution Splunk - Fields:
command_line,parent_process,user,task_name_entropy
12. Service Installation via sc.exe / services.exe
- Trigger:
sc.exe createor Event ID 7045 (new service installed) - Why: EDR must alert on new services installed outside maintenance windows — often linked to privilege escalation or lateral movement CyberDefenders
- Fields:
command_line,service_name,binary_path,user
🟡 Persistence & Registry
13. Registry Run Key Modification
- Trigger: Write to
HKLM\Software\Microsoft\Windows\CurrentVersion\RunorHKCU\...\Run - Why: Registry Run Keys are one of the most common persistence mechanisms — EDR should alert on all modifications to these keys CyberDefenders
- Fields:
registry_key,registry_value,process_name,user
14. Startup Folder File Drop
- Trigger: File created in
C:\Users\*\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ - Why: Persistence without registry changes
- Fields:
file_path,parent_process,file_hash
15. WMI Event Subscription Creation
- Trigger: WMI class
__EventFilter,__EventConsumer,__FilterToConsumerBindingcreated - Why: Fileless persistence — survives reboots, no disk artifacts
- Fields:
wmi_namespace,query,consumer_command,process_name
🔵 Credential Access
16. LSASS Memory Access (Mimikatz Pattern)
- Trigger: Process (non-system) opens handle to
lsass.exewithPROCESS_VM_READ - Why: Credential dumping — maps to MITRE T1003.001
- Fields:
target_process,source_process,access_rights,user
17. SAM/NTDS Database Access
- Trigger: Access to
C:\Windows\System32\config\SAM,NTDS.dit - Why: Offline credential harvesting
- Fields:
file_path,process_name,user,timestamp
18. Suspicious Token Manipulation / SeDebugPrivilege
- Trigger: Process requesting
SeDebugPrivilege,SeImpersonatePrivilege - Why: Indicators of privilege escalation — look for processes requesting uncommon privileges, especially low-privilege processes spawning elevated children CyberDefenders
- Fields:
privilege_name,process_name,parent_process,integrity_level
🟢 Network & Lateral Movement
19. Suspicious Network Connection from Non-Browser Process
- Trigger:
powershell.exe,cmd.exe,mshta.exe,wscript.exemaking outbound connections on ports 80/443/4444/8080 - Why: C2 beaconing / data exfiltration
- Fields:
process_name,destination_ip,destination_port,protocol
20. SMB Lateral Movement — PsExec Pattern
- Trigger:
psexec.exeorPSEXESVCservice creation +C$/ADMIN$share access - Why: Adversaries abuse
psexec.py(Impacket) using administrative shares and hardcoded parameters — a reliable detection signature Splunk - Fields:
process_name,command_line,remote_host,share_name
21. RDP Brute Force / Unusual RDP Login
- Trigger: Multiple failed Event ID 4625 + success 4624 Type 10 (RemoteInteractive) from single IP
- Why: Brute force leading to unauthorized RDP access
- Fields:
source_ip,destination_host,logon_type,account_name,failure_count
22. WinRM / WSMan Suspicious Child Process
- Trigger:
WSMProvHost.exeas parent ofcmd.exe,powershell.exe,rundll32.exeMedium - Why: PowerShell Remoting abuse for lateral movement
- Fields:
parent_process,child_process,command_line,source_host
⚫ Defense Evasion
23. Rundll32 / Regsvr32 with Unusual Arguments
- Trigger:
rundll32.exeorregsvr32.exeloading from%TEMP%,%APPDATA%, network paths, or scrobj.dll - Why: Proxy execution to bypass application whitelisting
- Fields:
command_line,loaded_dll,network_connection,parent_process
24. Process Injection Indicators
- Trigger:
VirtualAllocEx+WriteProcessMemory+CreateRemoteThreadAPI calls across processes - Why: Code injection to hide in legitimate processes (T1055)
- Fields:
source_process,target_process,api_calls,memory_region
25. Volume Shadow Copy Deletion
- Trigger:
vssadmin.exe delete shadows,wmic shadowcopy delete,bcdedit /set recoveryenabled No - Why: Pre-ransomware step — disables recovery options
- Fields:
command_line,process_name,parent_process,user
📊 Quick Reference Table
| # | Rule Name | Key Fields | MITRE Tactic |
|---|---|---|---|
| 1 | Office App Spawning Shell | parent_process, child_process | Execution |
| 2 | PS from Unusual Parent | parent_process, command_line | Lateral Movement |
| 3 | Explorer DCOM Abuse | parent_args, process_name | Defense Evasion |
| 4 | Exchange Worker Shell | parent_process, process_name | Initial Access |
| 5 | Eventvwr Child Process | parent_process, child_process | Privilege Escalation |
| 6 | WMI Shell Spawn | parent_process, network | Lateral Movement |
| 7 | Encoded PowerShell | command_line (-enc) | Execution |
| 8 | PS Download Cradle | command_line, destination | Execution |
| 9 | Base64 PowerShell | command_line | Defense Evasion |
| 10 | Certutil Download | command_line, network | Defense Evasion |
| 11 | schtasks Creation | command_line, task_name | Persistence |
| 12 | Service Installation | service_name, binary_path | Persistence |
| 13 | Run Key Modification | registry_key, process | Persistence |
| 14 | Startup Folder Drop | file_path, hash | Persistence |
| 15 | WMI Event Subscription | wmi_class, consumer | Persistence |
| 16 | LSASS Access | target_process, access_rights | Credential Access |
| 17 | SAM/NTDS Access | file_path, process | Credential Access |
| 18 | Token Manipulation | privilege_name, integrity | Privilege Escalation |
| 19 | Non-Browser Network | process, dest_ip, port | C2 / Exfiltration |
| 20 | PsExec SMB Pattern | command_line, share | Lateral Movement |
| 21 | RDP Brute Force | source_ip, logon_type | Initial Access |
| 22 | WinRM Child Process | parent_process, child | Lateral Movement |
| 23 | Rundll32 Abuse | command_line, dll_path | Defense Evasion |
| 24 | Process Injection | api_calls, target_process | Defense Evasion |
| 25 | Shadow Copy Deletion | command_line, vssadmin | Impact |
These rules are the backbone of detection engineering