SOC attack detection and response rules for Splunk SIEM with MITRE ATT&CK mapping, investigation queries, and incident response playbooks
Security Operation Center (SOC) attack detection and response rules for Splunk SIEM. Each rule includes comprehensive SPL queries, MITRE ATT&CK mapping, false positive tuning guidance, investigation queries, and incident response playbooks.
- 170+ detection rules across Windows AD, RHEL Linux, Apache Web Server, and recent threat campaigns
- MITRE ATT&CK mapped -- every rule tagged with technique IDs and tactics
- Investigation queries -- ready-to-run SPL for SOC analyst triage
- Incident response playbooks -- step-by-step response procedures per attack type
Detection-Engineering/
├── README.md
├── docs/
│ └── banner.svg
└── splunk_rules/
├── credential_access/
│ ├── adcs_attack_detection.yml
│ ├── dcsync_attack_detection.yml
│ ├── golden_ticket_attack_detection.yml
│ ├── gpo_modification_detection.yml
│ ├── kerberoasting_attack_detection.yml
│ ├── lsass_credential_dumping_detection.yml
│ ├── ntds_dit_extraction_detection.yml
│ ├── pass_the_hash_detection.yml
│ ├── password_spraying_detection.yml
│ └── privileged_group_membership_modification_detection.yml
├── apache_webserver/
│ ├── apache_path_traversal_detection.yml
│ ├── apache_web_shell_detection.yml
│ ├── apache_sqli_xss_detection.yml
│ ├── apache_brute_force_dos_detection.yml
│ ├── apache_reconnaissance_detection.yml
│ └── apache_exploitation_detection.yml
├── recent_attacks/
│ └── cve_2026_21509_apt28_operation_neusploit_detection.yml
└── rhel_linux/
├── rhel_privilege_escalation_detection.yml
├── rhel_persistence_detection.yml
├── rhel_credential_access_detection.yml
├── rhel_defense_evasion_detection.yml
├── rhel_execution_detection.yml
├── rhel_lateral_movement_detection.yml
├── rhel_discovery_enumeration_detection.yml
└── rhel_exfiltration_detection.yml
| Rule File | Attack Technique | MITRE ID | Severity | Detection Vectors |
|---|---|---|---|---|
adcs_attack_detection.yml |
ADCS Certificate Abuse (ESC1-ESC13) | T1649 | CRITICAL | 9 rules + 5 investigation queries |
dcsync_attack_detection.yml |
DCSync Credential Dumping | T1003.006 | CRITICAL | 5 rules + 4 investigation queries |
golden_ticket_attack_detection.yml |
Golden Ticket Kerberos Forgery | T1558.001 | CRITICAL | 6 rules + 8 investigation queries |
gpo_modification_detection.yml |
GPO Modification / Domain Policy Abuse | T1484.001 | CRITICAL | 7 rules + 8 investigation queries |
kerberoasting_attack_detection.yml |
Kerberoasting + AS-REP Roasting | T1558.003, T1558.004 | CRITICAL | 7 rules + 5 investigation queries |
lsass_credential_dumping_detection.yml |
LSASS Memory Credential Dumping | T1003.001 | CRITICAL | 7 rules + 5 investigation queries |
ntds_dit_extraction_detection.yml |
NTDS.dit Database Extraction | T1003.003 | CRITICAL | 8 rules + 8 investigation queries |
pass_the_hash_detection.yml |
Pass-the-Hash Lateral Movement | T1550.002 | CRITICAL | 6 rules + 5 investigation queries |
password_spraying_detection.yml |
Password Spraying + Brute Force | T1110.003, T1110.001 | HIGH–CRITICAL | 7 rules + 4 investigation queries |
privileged_group_membership_modification_detection.yml |
Privileged AD Group Modification | T1098.001 | CRITICAL | 6 rules + 7 investigation queries |
Each detection rule file (YAML) includes:
- Rule metadata — name, description, MITRE ATT&CK mapping, confidence, risk score
- Splunk SPL query — ready-to-deploy correlation search
- Schedule configuration — cron, time window, throttle settings
- Splunk ES actions — notable event creation, risk scoring
- False positive guidance — known FPs and tuning instructions
- Investigation queries — manual IR queries for deeper analysis
- Response playbook — step-by-step incident response procedure
File: splunk_rules/credential_access/dcsync_attack_detection.yml
Detects DCSync credential dumping (MITRE T1003.006) through 5 complementary detection rules:
| Rule | Detection Method | Event IDs | Confidence |
|---|---|---|---|
| Rule 1 | User account performing replication | 4662 + 4624 | HIGH |
| Rule 2 | Replication from non-DC source IP | 4662 + 4624 + DC lookup | HIGH |
| Rule 3 | Replication permissions granted | 5136 | HIGH |
| Rule 4 | Bulk replication burst (volume anomaly) | 4662 | MEDIUM-HIGH |
| Rule 5 | DRSUAPI network traffic from non-DC | Network Traffic model | HIGH |
- Audit Policy — Enable "Audit Directory Service Access" (Success) on all DCs
- SACL — Configure auditing on domain root for replication extended rights
- Log Forwarding — Splunk Universal Forwarder on all DCs forwarding Security logs
- DC IP Lookup —
dc_ip_list.csvfor Rules 2 and 5
- Copy the SPL query from Rule 1 into Splunk > Search & Reporting
- Replace
YOURDC01$,YOURDC02$with your actual DC machine account names - Add any Azure AD Connect service accounts (
MSOL_*) to the exclusion list - Save as a scheduled search or Splunk ES correlation search
- Test with a 24-hour lookback to verify baseline before enabling alerts
File: splunk_rules/credential_access/adcs_attack_detection.yml
Detects Active Directory Certificate Services abuse (MITRE T1649) through 9 complementary detection rules covering ESC1 through ESC13:
| Rule | Detection Method | Event IDs | ESC Variant | Confidence |
|---|---|---|---|---|
| Rule 1 | Certificate issued with SAN mismatch | 4887 | ESC1 | HIGH |
| Rule 2 | Suspicious PKINIT certificate authentication | 4768 | ESC1/ESC3 | HIGH |
| Rule 3 | Certificate template modification | 5136 | ESC4 | HIGH |
| Rule 4 | EDITF_ATTRIBUTESUBJECTALTNAME2 flag | 4688, 4104, 4657 | ESC6 | CRITICAL |
| Rule 5 | Machine PKINIT from unexpected IP | 4768 | ESC8 | HIGH |
| Rule 6 | Vulnerable template detection (daily audit) | 4898 | ESC2/ESC3 | MEDIUM |
| Rule 7 | ADCS attack tool detection | 4688, 4104 | All | HIGH |
| Rule 8 | OID group link modification | 5136 | ESC13 | HIGH |
| Rule 9 | CA configuration change | 4890, 4876 | ESC5/ESC7 | MEDIUM-HIGH |
- Audit Policy — Enable "Audit Certification Services" (Success + Failure) on all CAs
- Audit Policy — Enable "Audit Directory Service Changes" (Success) on all DCs
- Log Forwarding — Splunk Universal Forwarder on all CAs and DCs forwarding Security logs
- Machine IP Lookup —
machine_ip_list.csvfor Rule 5 (machine account to expected IP mapping) - Certificate Template Auditing — Enable object access auditing on certificate template objects in AD
- Copy the SPL query from Rule 1 into Splunk > Search & Reporting
- Replace
YOUR-CA-01with your actual CA server hostname - Add legitimate enrollment service accounts to the exclusion list
- Save as a scheduled search or Splunk ES correlation search
- Test with a 7-day lookback to establish a baseline of normal certificate issuance
- Deploy Rules 6 and 9 first (lower noise) before enabling the higher-fidelity rules
File: splunk_rules/credential_access/kerberoasting_attack_detection.yml
Detects Kerberoasting (MITRE T1558.003) and AS-REP Roasting (MITRE T1558.004) through 7 complementary detection rules:
| Rule | Detection Method | Event IDs | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | RC4 encryption downgrade in TGS request | 4769 | T1558.003 | HIGH |
| Rule 2 | Bulk TGS requests — volume anomaly (spray) | 4769 | T1558.003 | HIGH |
| Rule 3 | Privileged service account targeted (adminCount=1) | 4769 | T1558.003 | HIGH |
| Rule 4 | AS-REP Roasting — pre-auth disabled account | 4768 | T1558.004 | HIGH |
| Rule 5 | Kerberoasting tool execution (Rubeus, Invoke-Kerberoast, Impacket) | 4688, 4104 | T1558.003/004 | HIGH |
| Rule 6 | RC4 TGS from external or non-standard source | 4769 | T1558.003 | HIGH |
| Rule 7 | SPN enumeration precursor — LDAP/PowerShell | 1644, 4688, 4104 | T1087.002 | MEDIUM |
- Audit Policy — Enable "Audit Kerberos Service Ticket Operations" (Success + Failure) on all DCs
- Audit Policy — Enable "Audit Kerberos Authentication Service" (Success + Failure) on all DCs
- Command-Line Logging — Enable process creation with command-line logging via GPO on all endpoints
- PowerShell Logging — Enable Script Block Logging via GPO on all endpoints
- Log Forwarding — Splunk Universal Forwarder on all DCs and endpoints forwarding Security + PowerShell logs
- Privileged SPN Lookup —
privileged_spn_accounts.csvin Splunk for Rule 3 (scheduled AD export)
- Start with Rule 1 (RC4 downgrade) — highest-confidence, lowest noise in AES-enforced environments
- Baseline your environment for legitimate RC4 consumers before enabling (run as report for 14 days first)
- Build the
privileged_spn_accounts.csvlookup from AD (adminCount=1+servicePrincipalNameset) - Deploy Rule 4 (AS-REP Roasting) immediately —
PreAuthType=0should never occur in hardened AD - Deploy Rule 5 (tool detection) immediately — zero expected false positives from legitimate tooling
- Tune Rule 2 volume threshold (default 10 SPNs/15 min) using your environment baseline
File: splunk_rules/credential_access/lsass_credential_dumping_detection.yml
Detects OS credential dumping via LSASS process memory (MITRE T1003.001) through 7 complementary detection rules covering Mimikatz, Sysinternals ProcDump, comsvcs.dll MiniDump (LOLBAS), Task Manager dumps, WerFault abuse, and SSP/DLL injection:
| Rule | Detection Method | Event IDs | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | Sysmon ProcessAccess to lsass.exe — suspicious GrantedAccess bitmask | Sysmon 10 | T1003.001 | HIGH |
| Rule 2 | LSASS memory dump file created in suspicious path | Sysmon 11 | T1003.001 | HIGH |
| Rule 3 | Mimikatz binary, CLI syntax, or Invoke-Mimikatz detected | 4688, Sysmon 1, 4104 | T1003.001 | HIGH |
| Rule 4 | ProcDump / comsvcs.dll MiniDump / createdump / WerFault targeting LSASS | 4688, Sysmon 1 | T1003.001, T1218.011 | HIGH |
| Rule 5 | Unsigned or unexpected DLL loaded into lsass.exe process space | Sysmon 7 | T1003.001, T1547.005 | MEDIUM-HIGH |
| Rule 6 | WDigest UseLogonCredential registry key enabled — plaintext credential staging | Sysmon 13, 4657 | T1003.001, T1112 | HIGH |
| Rule 7 | SeDebugPrivilege acquired by non-system process — Mimikatz precursor | 4703 | T1134.001 | MEDIUM |
- Sysmon Deployment — Deploy Sysmon with LSASS ProcessAccess (Event 10), FileCreate for .dmp (Event 11), ImageLoad into lsass.exe (Event 7), and RegistryValueSet (Event 13) rules enabled
- Audit Policy — Enable "Audit Process Creation" (Success) with command-line logging on all endpoints
- PowerShell Logging — Enable Script Block Logging via GPO on all endpoints
- Audit Token Rights — Enable "Audit Token Right Adjusted" (Event 4703) for Rule 7
- Log Forwarding — Splunk Universal Forwarder on all endpoints forwarding Security + Sysmon + PowerShell logs
- LSASS Allowlist — Build
lsass_access_allowlist.csvwith known-legitimate processes (EDR/AV agents, Windows system processes)
- Deploy Rule 3 (Mimikatz CLI syntax) and Rule 4 (ProcDump/comsvcs.dll) first — zero noise, immediate value
- Deploy Rule 6 (WDigest enable) immediately — no false positives, and gives advance warning before dumping occurs
- Deploy Rule 2 (dump file creation) next — low noise, catches the output artifact regardless of tool used
- Build your
lsass_access_allowlist.csvby monitoring Rule 1 (Sysmon Event 10) in report mode for 7 days to identify legitimate LSASS callers in your environment - Enable Rule 1 (GrantedAccess) after allowlist is built — highest fidelity, requires tuning
- Enable LSASS PPL (
RunAsPPL=1) and Credential Guard to reduce attack surface while detection is being tuned
File: splunk_rules/credential_access/pass_the_hash_detection.yml
Detects Pass-the-Hash lateral movement (MITRE T1550.002) through 6 complementary detection rules covering classic NTLM hash replay, Mimikatz sekurlsa::pth, Overpass-the-Hash, Impacket tool signatures, and chained TTP correlation with LSASS dumps:
| Rule | Detection Method | Event IDs | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | Classic PtH — NTLM Type 3, null subject SID, KeyLength=0 | 4624 | T1550.002 | HIGH |
| Rule 2 | Mimikatz sekurlsa::pth — LogonType 9 + seclogo process | 4624 | T1550.002 | HIGH |
| Rule 3 | Rapid NTLM lateral movement — single source, 5+ targets in 5 min | 4624 | T1021.002 | HIGH |
| Rule 4 | Impacket tool signatures (psexec/smbexec/wmiexec hardcoded strings) | 7045, 4697, 5140 | T1550.002 | HIGH |
| Rule 5 | Overpass-the-Hash — RC4 TGT request via NT hash conversion | 4768 | T1550.002 | MEDIUM-HIGH |
| Rule 6 | Chained TTP — LSASS access then NTLM logon from same source | Sysmon 10 + 4624 | T1003.001 + T1550.002 | HIGH |
- Audit Policy — Enable "Audit Logon" (Success + Failure) on all domain-joined hosts
- Audit Policy — Enable "Audit Special Logon" (Success) on all hosts
- Audit Policy — Enable "Audit Kerberos Authentication Service" (Success + Failure) on all DCs
- Log Forwarding — Splunk Universal Forwarder on all hosts forwarding Security logs
- Sysmon — Deploy Sysmon with ProcessAccess (Event 10) for LSASS — required for Rule 6
- Lookup Tables —
dc_ip_list.csv(DC IPs) +legacy_ntlm_hosts.csv(legitimate NTLM consumers)
- Deploy Rule 2 (Mimikatz LogonType 9 / seclogo) immediately — zero expected false positives
- Deploy Rule 4 (Impacket signatures) immediately — hardcoded tool strings have near-zero FP rate
- Deploy Rule 1 (classic PtH) after building
legacy_ntlm_hosts.csvto suppress legitimate NTLM sources - Enable Rule 3 (rapid lateral movement) after confirming the 5-target threshold fits your environment
- Tune Rule 5 (Overpass-the-Hash) only after enforcing AES encryption domain-wide (disabling RC4)
- Enable Rule 6 (chained TTP) after Sysmon LSASS ProcessAccess monitoring is in place
File: splunk_rules/credential_access/password_spraying_detection.yml
Detects Password Spraying (MITRE T1110.003) and Brute Force (T1110.001) attacks through 7 complementary detection rules covering Kerberos and NTLM spray, account lockout storms, spray hit confirmation, username enumeration, and slow low-cadence APT spray patterns:
| Rule | Detection Method | Event IDs | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | Kerberos spray — 4771 Status=0x18, ≥10 accounts in 5 min | 4771 | T1110.003 | HIGH |
| Rule 2 | NTLM spray at DC — 4776 Status=0xC000006A, ≥10 accounts in 5 min | 4776 | T1110.003 | HIGH |
| Rule 3 | Single-account brute force — 4625, ≥20 failures, dc(account)≤2 | 4625 | T1110.001 | HIGH |
| Rule 4 | Account lockout storm — ≥5 locked accounts in 10 min | 4740 | T1110.003 | MEDIUM-HIGH |
| Rule 5 | Spray hit — failures ≥10 + success from same IP within 30 min | 4625 + 4624 | T1110.003 | HIGH |
| Rule 6 | Kerberos username enumeration — 4768 Status=0x6, ≥10 accounts in 2 min | 4768 | T1087.002 | HIGH |
| Rule 7 | Slow APT spray — 24h window, ≥20 accounts, <4 attempts/account | 4771, 4776 | T1110.003 | MEDIUM |
- Audit Policy — Enable "Audit Kerberos Authentication Service" (Success + Failure) on all DCs
- Audit Policy — Enable "Audit Credential Validation" (Success + Failure) on all DCs
- Audit Policy — Enable "Audit Logon" (Success + Failure) on all DCs and endpoints
- Audit Policy — Enable "Audit Account Lockout" (Success) on all DCs
- Log Forwarding — Splunk Universal Forwarder on all DCs and endpoints forwarding Security logs
- Deploy Rule 5 (spray hit) first — confirms successful compromise, highest priority alert
- Deploy Rule 1 (Kerberos 4771) immediately — Kerberos spray is the most common modern technique
- Deploy Rule 4 (lockout storm) immediately — even lagging, mass lockouts need immediate response
- Run Rule 7 (slow spray) in report mode for 30 days before alerting to baseline your environment
- Tune the dc(account) threshold in Rule 1 (default: 10 accounts / 5 min) using 14-day baseline data
File: splunk_rules/credential_access/privileged_group_membership_modification_detection.yml
Detects unauthorized modifications to privileged Active Directory groups (MITRE T1098.001) through 6 complementary detection rules covering all group types, direct LDAP writes, bulk escalation patterns, nested group abuse, and AdminSDHolder persistence:
| Rule | Detection Method | Event IDs | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | Member added to privileged group (all scope types) | 4728, 4732, 4756 | T1098.001 | HIGH |
| Rule 2 | Direct LDAP 'member' attribute write to privileged group | 5136 | T1098.001 | HIGH |
| Rule 3 | Bulk escalation — ≥3 privileged groups modified in 10 min | 4728, 4732, 4756 | T1098.001 | HIGH |
| Rule 4 | Nested group added to privileged group (inherited privilege) | 4728, 4732, 4756 | T1098.001 | MEDIUM-HIGH |
| Rule 5 | AdminSDHolder ACL modification — covert persistent privilege | 5136 | T1098.001 | HIGH |
| Rule 6 | Masquerade group creation mimicking privileged group name | 4731 | T1098.001 | MEDIUM |
- Audit Policy — Enable "Audit Security Group Management" (Success) on all DCs
- Audit Policy — Enable "Audit Directory Service Changes" (Success) on all DCs
- SACL — Configure auditing on CN=AdminSDHolder for Rule 5
- Log Forwarding — Splunk Universal Forwarder on all DCs forwarding Security logs
- Lookup Tables —
privileged_group_admin_allowlist.csvfor known-legitimate GPO admin accounts
- Deploy Rule 1 immediately — direct group additions are the core detection with highest value
- Deploy Rule 5 (AdminSDHolder) immediately — no false positives; very rare legitimate modification
- Deploy Rule 2 (LDAP direct write) to catch BloodHound-based attacks that bypass standard events
- Build the
privileged_group_admin_allowlist.csvlookup to suppress IAM provisioning tool accounts - Enable Rule 3 (bulk escalation) after confirming the 3-group threshold does not fire during planned AD migrations
File: splunk_rules/credential_access/golden_ticket_attack_detection.yml
Detects Golden Ticket Kerberos forgery attacks (MITRE T1558.001) through 6 complementary detection rules. Golden Tickets are forged TGTs signed with the KRBTGT hash — no Event 4768 is generated by the KDC, making detection rely on secondary indicators:
| Rule | Detection Method | Event IDs | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | RC4 TGT in AES-enforced environment | 4768 | T1558.001 | HIGH |
| Rule 2 | RC4 TGS request in AES-enforced environment | 4769 | T1558.001 | MEDIUM-HIGH |
| Rule 3 | TGS request without preceding TGT issuance (forged TGT presented) | 4769 (absent 4768) | T1558.001 | HIGH |
| Rule 4 | Special privilege Kerberos logon with no TGT issuance | 4672 + 4624 (absent 4768) | T1558.001 | HIGH |
| Rule 5 | Anomalous krbtgt service ticket request | 4769 | T1558.001 | MEDIUM-HIGH |
| Rule 6 | TGT/TGS encryption type mismatch (AES TGT + RC4 TGS) | 4768 + 4769 | T1558.001 | MEDIUM |
- Audit Policy — Enable "Audit Kerberos Authentication Service" (Success + Failure) on all DCs
- Audit Policy — Enable "Audit Kerberos Service Ticket Operations" (Success + Failure) on all DCs
- Audit Policy — Enable "Audit Special Logon" (Success) on all hosts
- AES Enforcement — Domain-wide RC4 disablement via GPO required for Rule 1 and 2 to be effective
- Log Forwarding — All DC Security logs in one Splunk index (critical for absence-of-TGT correlation)
- Lookup Tables —
rc4_tgt_allowlist.csv(legacy RC4 consumers) +privileged_accounts.csv(Rule 3 scope)
- Deploy Rule 3 (TGS without TGT) scoped to privileged accounts only — highest-fidelity indicator
- Deploy Rule 4 (special privilege without TGT) — combination of 4672 + 4624 + absent 4768 is definitive
- Enable Rules 1 and 2 (RC4 anomalies) ONLY after fully enforcing AES domain-wide and building allowlists
- Run Rules 1 and 2 in report mode for 14 days first to eliminate legacy RC4 consumers from scope
- For environments without AES enforcement: focus on Rules 3, 4, and 6 (encryption-agnostic indicators)
File: splunk_rules/credential_access/ntds_dit_extraction_detection.yml
Detects NTDS.dit Active Directory database extraction (MITRE T1003.003) through 8 complementary detection rules covering all major extraction techniques — ntdsutil IFM, VSS-based copies, LOLBin abuse, PowerShell WMI, and file-level SACL auditing:
| Rule | Detection Method | Event IDs | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | ntdsutil IFM execution on DC | 4688, Sysmon 1 | T1003.003 | HIGH |
| Rule 2 | vssadmin shadow copy creation on DC | 4688, Sysmon 1 | T1003.003 | HIGH |
| Rule 3 | diskshadow /s script mode on DC | 4688, Sysmon 1 | T1003.003 | HIGH |
| Rule 4 | esentutl /y /vss copy of NTDS.dit | 4688, Sysmon 1 | T1003.003 | HIGH |
| Rule 5 | PowerShell Win32_ShadowCopy + NTDS file copy | 4104 | T1003.003 | HIGH |
| Rule 6 | ntds.dit file created outside NTDS directory | Sysmon 11 | T1003.003 | HIGH |
| Rule 7 | NTDS.dit direct file access via SACL audit | 4663 | T1003.003 | MEDIUM-HIGH |
| Rule 8 | Multi-stage correlation — VSS creation + ntds.dit copy | Sysmon 1 + 11 | T1003.003 | HIGH |
- Process Creation Logging — Enable "Audit Process Creation" (Success) with command-line on all DCs
- PowerShell Logging — Enable Script Block Logging via GPO on all DCs
- Sysmon Deployment — Deploy Sysmon on DCs with ProcessCreate (Event 1), FileCreate (Event 11)
- SACL on NTDS.dit — Configure
Everyone: Read Dataauditing on%SystemRoot%\NTDS\ntds.ditfor Rule 7 - Log Forwarding — Splunk Universal Forwarder on all DCs forwarding Security + Sysmon + PowerShell logs
- DC Hostname Lookup —
dc_hostnames.csvto restrict vssadmin/diskshadow alerts to DCs only
- Deploy Rule 1 (ntdsutil IFM) immediately — highest fidelity, almost no legitimate use outside DCPromo
- Deploy Rule 6 (ntds.dit outside NTDS path via Sysmon 11) — tool-agnostic, catches any extraction method
- Deploy Rule 8 (kill chain correlation) for the highest-confidence, lowest-FP combined indicator
- Deploy Rules 2–5 after populating
dc_hostnames.csvto avoid false positives on non-DC servers - Configure SACL on NTDS.dit on all DCs to enable Rule 7 (file-level access audit)
File: splunk_rules/credential_access/gpo_modification_detection.yml
Detects malicious Group Policy Object modification (MITRE T1484.001) through 7 complementary detection rules covering AD-layer GPO changes, SYSVOL payload injection, built-in policy tampering, security control disabling, and kill-chain correlation:
| Rule | Detection Method | Event IDs | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | Unauthorized GPO attribute modification in AD | 5136 | T1484.001 | HIGH |
| Rule 2 | New GPO created and linked to domain root or DC OU | 5137 + 5136 | T1484.001 | HIGH |
| Rule 3 | Malicious script/task file written to SYSVOL GPO directory | Sysmon 11 | T1484.001 | HIGH |
| Rule 4 | SharpGPOAbuse / StandIn / PowerGPOAbuse tool detection | 4688, Sysmon 1, 4104 | T1484.001 | HIGH |
| Rule 5 | Default Domain Policy or Default DC Policy modified | 5136 | T1484.001 | HIGH |
| Rule 6 | GPO used to disable Windows security controls (Defender, Firewall, WDigest) | 5136, Sysmon 11 | T1484.001, T1562.001 | HIGH |
| Rule 7 | Multi-stage kill chain — AD GPO change + SYSVOL write correlated | 5136 + Sysmon 11 | T1484.001 | HIGH |
- Audit Policy — Enable "Audit Directory Service Changes" (Success) on all DCs
- Audit Policy — Enable "Audit Directory Service Object Created" (Success) for Event 5137
- Sysmon Deployment — Deploy Sysmon on DCs with FileCreate (Event 11) targeting SYSVOL paths
- Process Creation Logging — Enable "Audit Process Creation" with command-line on all DCs/endpoints
- PowerShell Logging — Enable Script Block Logging via GPO for PowerShell-based GPO abuse detection
- Lookup Tables —
gpo_admin_allowlist.csvwith authorised GPO administrator accounts
- Deploy Rule 5 (Default Domain/DC Policy) immediately — any change here has domain-wide impact
- Deploy Rule 3 (SYSVOL payload write via Sysmon 11) — tool-agnostic, catches the payload regardless of attack method
- Deploy Rule 4 (tool signatures) immediately — SharpGPOAbuse/StandIn strings have zero FP rate
- Deploy Rule 6 (security control disabling) — disable-Defender patterns require no baseline period
- Build
gpo_admin_allowlist.csvbefore enabling Rule 1 to suppress legitimate GPO administrators - Enable Rule 7 (kill chain) after Rules 1 and 3 are confirmed operational
Detection rules for Red Hat Enterprise Linux attack techniques across 8 MITRE ATT&CK tactics. Covers the full attack lifecycle from initial discovery through privilege escalation, persistence, credential access, defense evasion, execution, lateral movement, and exfiltration. 63 detection rules + 40 investigation queries + 8 incident response playbooks.
| Rule File | Attack Technique | MITRE ID | Severity | Detection Vectors |
|---|---|---|---|---|
rhel_privilege_escalation_detection.yml |
Sudo Abuse, SUID/SGID, Kernel Exploits, Container Escape | T1548.003, T1548.001, T1068, T1611 | HIGH–CRITICAL | 8 rules + 5 investigation queries |
rhel_persistence_detection.yml |
Cron, Systemd, SSH Keys, PAM, LD_PRELOAD, Shell Profiles | T1053.003, T1543.002, T1098.004, T1556.003, T1574.006, T1546.004 | HIGH–CRITICAL | 9 rules + 5 investigation queries |
rhel_credential_access_detection.yml |
Shadow File, SSH Key Theft, Brute Force, Ptrace, Keylogger | T1003.008, T1552.004, T1110.001, T1003, T1056.001 | HIGH–CRITICAL | 8 rules + 5 investigation queries |
rhel_defense_evasion_detection.yml |
Auditd Tampering, Log Deletion, SELinux, Rootkits, Timestomping | T1562.001, T1070.002, T1070.006, T1014, T1036.004 | HIGH–CRITICAL | 9 rules + 5 investigation queries |
rhel_execution_detection.yml |
Reverse Shells, Webshells, Fileless, Log4Shell, Ptrace Injection | T1059.004, T1059.006, T1620, T1505.003, T1055.008, T1203 | HIGH–CRITICAL | 8 rules + 5 investigation queries |
rhel_lateral_movement_detection.yml |
SSH Tunneling, Agent Forwarding, SCP/Rsync, Network Scanning | T1021.004, T1572, T1563.001, T1072, T1046, T1210 | MEDIUM–CRITICAL | 7 rules + 5 investigation queries |
rhel_discovery_enumeration_detection.yml |
LinPEAS/LinEnum, System Recon, User Enum, Container Discovery | T1059.004, T1082, T1087.001, T1016, T1518.001, T1613 | MEDIUM–HIGH | 7 rules + 5 investigation queries |
rhel_exfiltration_detection.yml |
DNS Tunneling, HTTP Upload, Archive Staging, Encoded Data | T1560.001, T1048.003, T1048.002, T1132.001, T1119 | HIGH–CRITICAL | 7 rules + 5 investigation queries |
File: splunk_rules/rhel_linux/rhel_privilege_escalation_detection.yml
Detects Linux privilege escalation techniques (MITRE T1548, T1068, T1611) through 8 complementary detection rules:
| Rule | Detection Method | Data Source | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | Sudo abuse — unauthorized sudo, sudo to root shell | auditd EXECVE | T1548.003 | HIGH |
| Rule 2 | Sudoers file modification — visudo bypass, echo injection | auditd SYSCALL/PATH | T1548.003 | HIGH |
| Rule 3 | SUID/SGID binary exploitation — find/vim/nmap/python | auditd EXECVE | T1548.001 | HIGH |
| Rule 4 | Kernel exploit indicators — dirty pipe/cow, exploit compilation | auditd EXECVE, syslog | T1068 | CRITICAL |
| Rule 5 | Linux capabilities abuse — cap_setuid, cap_dac_override | auditd EXECVE | T1548 | HIGH |
| Rule 6 | PwnKit / Polkit exploitation (CVE-2021-4034) | auditd EXECVE, syslog | T1068 | CRITICAL |
| Rule 7 | Container escape to host — nsenter, mount /proc, chroot | auditd EXECVE | T1611 | CRITICAL |
| Rule 8 | Cgroup escape — notify_on_release abuse | auditd EXECVE/SYSCALL | T1611 | CRITICAL |
File: splunk_rules/rhel_linux/rhel_persistence_detection.yml
Detects Linux persistence mechanisms (MITRE T1053, T1543, T1098, T1556, T1574, T1546, T1037, T1547) through 9 complementary detection rules:
| Rule | Detection Method | Data Source | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | Malicious cron job — reverse shells, download-and-execute | auditd SYSCALL/PATH | T1053.003 | HIGH |
| Rule 2 | Rogue systemd service — ExecStart pointing to /tmp, /dev/shm | auditd SYSCALL, syslog | T1543.002 | HIGH |
| Rule 3 | SSH authorized_keys injection — unauthorized key addition | auditd SYSCALL/PATH | T1098.004 | HIGH |
| Rule 4 | PAM backdoor module — pam_exec, custom .so in /lib/security | auditd SYSCALL | T1556.003 | CRITICAL |
| Rule 5 | LD_PRELOAD hijacking — /etc/ld.so.preload, LD_PRELOAD env | auditd EXECVE, SYSCALL | T1574.006 | CRITICAL |
| Rule 6 | Shell profile backdoor — .bashrc, .bash_profile, /etc/profile.d | auditd SYSCALL/PATH | T1546.004 | HIGH |
| Rule 7 | Malicious at job scheduling | auditd EXECVE | T1053.002 | HIGH |
| Rule 8 | Init script / rc.local persistence | auditd SYSCALL | T1037.004 | HIGH |
| Rule 9 | Kernel module persistence — insmod, modprobe from non-standard path | auditd SYSCALL | T1547.006 | CRITICAL |
File: splunk_rules/rhel_linux/rhel_credential_access_detection.yml
Detects Linux credential theft techniques (MITRE T1003, T1552, T1110, T1056, T1558) through 8 complementary detection rules:
| Rule | Detection Method | Data Source | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | /etc/shadow access — unshadow, cat/cp shadow, john/hashcat | auditd SYSCALL/EXECVE | T1003.008 | CRITICAL |
| Rule 2 | SSH private key theft — copying id_rsa, .pem from .ssh dirs | auditd SYSCALL/EXECVE | T1552.004 | HIGH |
| Rule 3 | SSH brute force — ≥10 failed auth in 5 min from single source | linux_secure | T1110.001 | HIGH |
| Rule 4 | Ptrace-based credential dumping — gdb attach, strace on sshd | auditd SYSCALL | T1003 | HIGH |
| Rule 5 | Keylogger installation — xinput, logkeys, pam_tty_audit | auditd EXECVE | T1056.001 | HIGH |
| Rule 6 | Credential files in non-standard locations — .netrc, .pgpass, .my.cnf | auditd EXECVE | T1552.001 | MEDIUM-HIGH |
| Rule 7 | Kerberos keytab theft — ktutil, klist, keytab file copy | auditd EXECVE/SYSCALL | T1558.004 | HIGH |
| Rule 8 | LDAP credential harvesting — ldapsearch with password attributes | auditd EXECVE | T1003 | HIGH |
File: splunk_rules/rhel_linux/rhel_defense_evasion_detection.yml
Detects Linux defense evasion techniques (MITRE T1562, T1070, T1014, T1036) through 9 complementary detection rules:
| Rule | Detection Method | Data Source | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | Auditd tampering — service stop, auditctl -e 0, config modification | auditd SYSCALL/EXECVE | T1562.001 | CRITICAL |
| Rule 2 | Log deletion — rm/shred/truncate on /var/log files | auditd EXECVE | T1070.002 | CRITICAL |
| Rule 3 | Timestomping — touch -t, touch -r to alter file timestamps | auditd EXECVE | T1070.006 | HIGH |
| Rule 4 | SELinux disabling — setenforce 0, SELINUX=disabled | auditd EXECVE, syslog | T1562.001 | CRITICAL |
| Rule 5 | Firewall tampering — iptables -F, firewalld stop, ufw disable | auditd EXECVE | T1562.004 | HIGH |
| Rule 6 | Rootkit indicators — hidden kernel modules, /dev/shm binaries, LD_PRELOAD | auditd EXECVE, syslog | T1014 | CRITICAL |
| Rule 7 | Process masquerading — renamed binaries mimicking system processes | sysmon_linux Event 1 | T1036.004 | HIGH |
| Rule 8 | History tampering — HISTFILE=/dev/null, unset HISTFILE, history -c | auditd EXECVE | T1070.003 | HIGH |
| Rule 9 | Binary replacement — overwriting system binaries (ps, ls, netstat) | auditd SYSCALL/PATH | T1036.005 | CRITICAL |
File: splunk_rules/rhel_linux/rhel_execution_detection.yml
Detects Linux malicious execution techniques (MITRE T1059, T1620, T1505, T1105, T1055, T1203) through 8 complementary detection rules:
| Rule | Detection Method | Data Source | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | Reverse shell execution — bash -i, nc -e, python pty.spawn | auditd EXECVE | T1059.004 | CRITICAL |
| Rule 2 | Suspicious script interpreters — python/perl/ruby one-liners from /tmp | auditd EXECVE | T1059.006 | HIGH |
| Rule 3 | Fileless execution — memfd_create, /proc/self/fd, shm_open | auditd SYSCALL/EXECVE | T1620 | CRITICAL |
| Rule 4 | Webshell execution — www-data/apache spawning shell commands | auditd EXECVE | T1505.003 | CRITICAL |
| Rule 5 | Download-and-execute — curl/wget piped to bash/sh | auditd EXECVE | T1105 | HIGH |
| Rule 6 | Cron-based suspicious execution — cron spawning network tools | auditd EXECVE, syslog | T1053.003 | HIGH |
| Rule 7 | Ptrace code injection — PTRACE_POKETEXT into running processes | auditd SYSCALL | T1055.008 | CRITICAL |
| Rule 8 | Application exploitation — Log4Shell, Struts, Spring indicators | syslog, auditd | T1203 | CRITICAL |
File: splunk_rules/rhel_linux/rhel_lateral_movement_detection.yml
Detects Linux lateral movement techniques (MITRE T1021, T1572, T1563, T1072, T1105, T1046, T1210) through 7 complementary detection rules:
| Rule | Detection Method | Data Source | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | Unusual outbound SSH — connections to non-standard ports or IPs | auditd EXECVE, sysmon_linux Event 3 | T1021.004 | MEDIUM-HIGH |
| Rule 2 | SSH tunneling — dynamic (-D) and local (-L) port forwarding | auditd EXECVE | T1572 | HIGH |
| Rule 3 | SSH agent forwarding abuse — ForwardAgent, SSH_AUTH_SOCK hijack | auditd EXECVE | T1563.001 | HIGH |
| Rule 4 | Config management abuse — Ansible/Puppet/Salt ad-hoc commands | auditd EXECVE | T1072 | MEDIUM-HIGH |
| Rule 5 | Suspicious SCP/rsync — bulk file transfer to external hosts | auditd EXECVE, sysmon_linux | T1105 | HIGH |
| Rule 6 | Internal network scanning — nmap, masscan, zmap from non-scanner hosts | auditd EXECVE | T1046 | HIGH |
| Rule 7 | Internal service exploitation — exploit frameworks targeting internal IPs | auditd EXECVE, sysmon_linux | T1210 | CRITICAL |
File: splunk_rules/rhel_linux/rhel_discovery_enumeration_detection.yml
Detects Linux reconnaissance and discovery techniques (MITRE T1059, T1082, T1087, T1016, T1518, T1083, T1613) through 7 complementary detection rules:
| Rule | Detection Method | Data Source | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | LinPEAS / LinEnum execution — known enumeration script names and hashes | auditd EXECVE | T1059.004 | HIGH |
| Rule 2 | System information discovery burst — ≥5 recon commands in 2 min | auditd EXECVE | T1082 | HIGH |
| Rule 3 | User and group enumeration — /etc/passwd read, getent, id commands | auditd EXECVE | T1087.001 | MEDIUM |
| Rule 4 | Network configuration discovery — ip route, ss, netstat, arp -a | auditd EXECVE | T1016 | MEDIUM |
| Rule 5 | Security software discovery — querying AV, EDR, audit daemon status | auditd EXECVE | T1518.001 | HIGH |
| Rule 6 | Sensitive file discovery — find / -name *.pem, locate shadow | auditd EXECVE | T1083 | HIGH |
| Rule 7 | Container and cloud metadata discovery — docker inspect, curl 169.254 | auditd EXECVE | T1613 | HIGH |
File: splunk_rules/rhel_linux/rhel_exfiltration_detection.yml
Detects Linux data exfiltration techniques (MITRE T1560, T1048, T1132, T1119) through 7 complementary detection rules:
| Rule | Detection Method | Data Source | Technique | Confidence |
|---|---|---|---|---|
| Rule 1 | Archive staging — tar/zip of sensitive directories (/etc, /home, DB dumps) | auditd EXECVE | T1560.001 | HIGH |
| Rule 2 | DNS tunneling exfiltration — iodine, dnscat2, dns2tcp, high TXT query volume | auditd EXECVE, sysmon_linux | T1048.003 | CRITICAL |
| Rule 3 | HTTP exfiltration — curl/wget POST with file upload to external hosts | auditd EXECVE | T1048.002 | HIGH |
| Rule 4 | SSH/SCP exfiltration — bulk SCP/sftp to external IPs | auditd EXECVE | T1048 | HIGH |
| Rule 5 | Encoded data staging — base64/xxd/openssl encoding of sensitive files | auditd EXECVE | T1132.001 | HIGH |
| Rule 6 | Automated collection — scripted find/grep harvesting credentials and configs | auditd EXECVE | T1119 | HIGH |
| Rule 7 | Alternative protocol exfiltration — netcat, socat, /dev/tcp to external IPs | auditd EXECVE | T1048 | CRITICAL |
All RHEL rules rely on the following Splunk data sources:
| Sourcetype | Description | Index |
|---|---|---|
linux:audit |
auditd EXECVE, SYSCALL, PATH events (primary source) | linux |
syslog |
/var/log/messages, syslog daemon output | linux |
linux_secure |
/var/log/secure — SSH auth, sudo, PAM events | linux |
sysmon_linux |
Sysmon for Linux — Events 1 (ProcessCreate), 3 (NetworkConnect), 11 (FileCreate) | linux |
- auditd Configuration — Deploy comprehensive audit rules covering EXECVE, SYSCALL, PATH, and key file watches (
-w /etc/shadow -p rwa,-w /etc/sudoers -p wa, etc.) - Sysmon for Linux — Deploy Sysmon for Linux on all RHEL hosts for process, network, and file creation telemetry
- Log Forwarding — Splunk Universal Forwarder on all RHEL hosts forwarding
/var/log/audit/audit.log,/var/log/secure,/var/log/messages - Lookup Tables:
linux_bastion_hosts.csv— bastion/jump hosts and configuration management serverslinux_admin_accounts.csv— authorized admin and sudo accountslinux_server_inventory.csv— host roles, environments, and expected services
- Deploy Defense Evasion rules first — if an attacker disables auditd or deletes logs, all other detections fail
- Deploy Privilege Escalation rules next — sudo abuse and kernel exploits are the most common RHEL attack patterns
- Deploy Execution rules (reverse shells, webshells) for immediate high-fidelity alerting
- Deploy Persistence rules to catch implant installation (cron, systemd, SSH keys)
- Deploy Credential Access rules — shadow file access and SSH key theft are critical indicators
- Deploy Lateral Movement and Exfiltration rules last — these benefit from the bastion host lookup table being fully populated
- Run Discovery/Enumeration rules in report mode for 14 days before alerting to establish a baseline of normal admin activity
Detection rules for attacks targeting Apache HTTP Server across 6 attack categories. Covers the full web attack lifecycle from reconnaissance through exploitation, persistence, and denial of service. 37 detection rules + 24 investigation queries + 6 incident response playbooks.
| Rule File | Attack Category | MITRE Techniques | Severity | Detection Vectors |
|---|---|---|---|---|
apache_path_traversal_detection.yml |
Path Traversal, LFI, CVE-2021-41773/42013 | T1190, T1083, T1005 | HIGH--CRITICAL | 5 rules + 5 investigation queries |
apache_web_shell_detection.yml |
Web Shell Upload, Execution, Beaconing | T1505.003, T1059.004, T1071.001 | HIGH--CRITICAL | 7 rules + 5 investigation queries |
apache_sqli_xss_detection.yml |
SQL Injection, XSS, Scanner Detection | T1190, T1059.007 | HIGH--CRITICAL | 6 rules + 4 investigation queries |
apache_brute_force_dos_detection.yml |
HTTP Brute Force, Credential Stuffing, DDoS | T1110, T1498, T1499 | MEDIUM--CRITICAL | 6 rules + 5 investigation queries |
apache_reconnaissance_detection.yml |
Scanner Fingerprinting, Directory Enum, Probing | T1595.002, T1083, T1046 | MEDIUM--HIGH | 6 rules + 4 investigation queries |
apache_exploitation_detection.yml |
Shellshock, Log4Shell, Struts, SSRF, SSTI | T1190, T1059.004, T1210 | HIGH--CRITICAL | 7 rules + 5 investigation queries |
File: splunk_rules/apache_webserver/apache_path_traversal_detection.yml
| Rule | Detection Method | CVE | Confidence |
|---|---|---|---|
| Rule 1 | CVE-2021-41773 Apache 2.4.49 .%2e normalization bypass | CVE-2021-41773 | VERY HIGH |
| Rule 2 | CVE-2021-42013 Apache 2.4.50 double-encoding bypass (%%32%65) | CVE-2021-42013 | VERY HIGH |
| Rule 3 | Generic directory traversal (../, %2e%2e, overlong UTF-8, %c0%ae) | -- | HIGH |
| Rule 4 | Null byte injection (%00) for extension bypass | -- | HIGH |
| Rule 5 | Local File Inclusion via /proc/self/environ | -- | HIGH |
File: splunk_rules/apache_webserver/apache_web_shell_detection.yml
| Rule | Detection Method | Shell Coverage | Confidence |
|---|---|---|---|
| Rule 1 | File upload via HTTP POST to writable web directory | All | HIGH |
| Rule 2 | Script file created in web root by Apache process (Sysmon/auditd) | All | VERY HIGH |
| Rule 3 | Suspicious URI parameters (cmd=, exec=, base64 payloads) | China Chopper, Godzilla, Behinder | HIGH |
| Rule 4 | Apache process spawning OS commands (server-side) | All | VERY HIGH |
| Rule 5 | Known web shell file hash matching (SHA256 lookup) | All | VERY HIGH |
| Rule 6 | Periodic POST beaconing to single script file (C2 pattern) | Godzilla, Behinder, Weevely | MEDIUM-HIGH |
| Rule 7 | Script access from unusual geographic source | All | MEDIUM |
File: splunk_rules/apache_webserver/apache_sqli_xss_detection.yml
| Rule | Detection Method | Attack Type | Confidence |
|---|---|---|---|
| Rule 1 | UNION SELECT, INTO OUTFILE, INFORMATION_SCHEMA | UNION-based SQLi | HIGH |
| Rule 2 | SLEEP(), BENCHMARK(), WAITFOR, pg_sleep(), boolean-based | Blind/Time-based SQLi | HIGH |
| Rule 3 | ' OR 1=1--, admin'--, tautology bypasses | Auth Bypass SQLi | HIGH |
| Rule 4 | <script>, javascript:, onerror=, event handlers |
Reflected XSS | HIGH |
| Rule 5 | High-volume diverse payloads from single IP (sqlmap, XSSer) | Automated Scanner | HIGH |
| Rule 6 | MySQL/PostgreSQL/Oracle/MSSQL error messages in error log | Error-based SQLi | VERY HIGH |
File: splunk_rules/apache_webserver/apache_brute_force_dos_detection.yml
| Rule | Detection Method | Attack Type | Confidence |
|---|---|---|---|
| Rule 1 | HTTP 401 storm from single IP (20+ in 5 min) | Basic/Digest Auth Brute Force | HIGH |
| Rule 2 | Rapid POST to login endpoints (15+ in 5 min) | Web Login Brute Force | HIGH |
| Rule 3 | Many unique IPs, 1-3 attempts each (distributed) | Credential Stuffing | MEDIUM-HIGH |
| Rule 4 | MaxRequestWorkers exhaustion, scoreboard full | Slowloris / Slow HTTP DoS | HIGH |
| Rule 5 | 500+ requests/min from single IP | HTTP Flood DDoS | HIGH |
| Rule 6 | 20+ unique 403 paths from single IP | Access Control Probing | MEDIUM-HIGH |
File: splunk_rules/apache_webserver/apache_reconnaissance_detection.yml
| Rule | Detection Method | Tool Coverage | Confidence |
|---|---|---|---|
| Rule 1 | Known scanner User-Agent matching | Nikto, Nmap, Nuclei, WPScan, SQLMap, Burp, ZAP, Acunetix | HIGH |
| Rule 2 | 50+ unique 404 paths in 5 min (forced browsing) | DirBuster, Gobuster, ffuf, feroxbuster | HIGH |
| Rule 3 | Probing .git, .env, .htpasswd, phpinfo, backups, server-status | All | HIGH |
| Rule 4 | OPTIONS, TRACE, DEBUG, PUT, DELETE method probing | All | MEDIUM-HIGH |
| Rule 5 | Admin panel discovery (/admin, /phpmyadmin, /jenkins, /grafana) | All | HIGH |
| Rule 6 | WordPress user, plugin, and REST API enumeration | WPScan, custom | HIGH |
File: splunk_rules/apache_webserver/apache_exploitation_detection.yml
| Rule | Detection Method | CVE / Attack | Confidence |
|---|---|---|---|
| Rule 1 | Shellshock () { :; }; in HTTP headers targeting CGI | CVE-2014-6271 | VERY HIGH |
| Rule 2 | Log4Shell ${jndi:ldap://} and obfuscated variants | CVE-2021-44228 | VERY HIGH |
| Rule 3 | Apache Struts OGNL injection in Content-Type | CVE-2017-5638 | VERY HIGH |
| Rule 4 | SSRF targeting cloud metadata, internal IPs, file:// | CVE-2021-40438, generic | HIGH |
| Rule 5 | HTTP request smuggling (CL.TE / TE.CL desync) | Generic | HIGH |
| Rule 6 | Server-Side Template Injection (Jinja2, Twig, Freemarker) | Generic SSTI | HIGH |
| Rule 7 | OS command injection via pipe, semicolon, backtick | Generic | HIGH |
All Apache detection rules rely on the following Splunk data sources:
| Sourcetype | Description | Index |
|---|---|---|
access_combined |
Apache Combined Log Format access logs (primary) | web |
access_common |
Apache Common Log Format access logs | web |
apache:error |
Apache error log (mod_security, SQL errors, connection exhaustion) | web |
sysmon_linux |
Sysmon for Linux — process creation, file creation, network connections | linux |
linux:audit |
auditd EXECVE, SYSCALL, file watch events | linux |
- Apache Access Logs -- Forward access logs in Combined Log Format to Splunk (index=web, sourcetype=access_combined)
- Apache Error Logs -- Forward error logs to Splunk (index=web, sourcetype=apache:error)
- Sysmon for Linux -- Deploy on web servers for process creation (Event 1), file creation (Event 11), and image load (Event 7) telemetry
- auditd -- Configure file watches on web root directories:
-w /var/www -p wa -k web_write - Lookup Tables:
webshell_hashes.csv-- known web shell SHA256 hashes from threat intel feeds- Scanner/pentest IP allowlists for false positive suppression
- Deploy Exploitation rules first (Shellshock, Log4Shell, Struts) -- zero false positives, immediate critical alerting
- Deploy Path Traversal rules (CVE-2021-41773/42013) -- near-zero FP, catches active exploitation
- Deploy Web Shell Rule 4 (Apache spawning OS commands) -- highest-confidence server-side indicator
- Deploy SQLi/XSS rules -- tune UNION/blind SQLi thresholds during a 7-day baseline
- Deploy Brute Force rules after baselining normal login failure rates
- Deploy Reconnaissance rules last -- informational, useful for threat profiling
Detection rules for active threat campaigns and recently disclosed CVEs.
| Rule File | Threat Actor / CVE | MITRE ID | Severity | Detection Vectors |
|---|---|---|---|---|
cve_2026_21509_apt28_operation_neusploit_detection.yml |
UAC-0001 (APT28) / CVE-2026-21509 | T1203, T1559.001, T1547.012, T1071.001 | CRITICAL | 12 rules + 7 investigation queries + IR playbook |
File: splunk_rules/recent_attacks/cve_2026_21509_apt28_operation_neusploit_detection.yml
Detects APT28 (UAC-0001) exploitation of CVE-2026-21509 (Microsoft Office OLE Security Feature Bypass via Shell.Explorer.1 COM object) through 12 detection rules covering two attack variants -- MiniDoor (Outlook email stealer) and PixyNetLoader (COM-hijacking loader with steganographic shellcode):
| Rule | Detection Method | Data Source | Confidence |
|---|---|---|---|
| Rule 1 | Office child process spawning cmd/powershell/mshta | Sysmon 1, 4688 | HIGH |
| Rule 2 | Office outbound connections to non-standard ports | Sysmon 3 | HIGH |
| Rule 3 | Known C2 domains (freefoodaid.com, wellnesscaremed.com) | DNS, Proxy | CRITICAL |
| Rule 4 | File hash IOC matching (12 SHA256 + 6 MD5) | Sysmon 1/7/11 | CRITICAL |
| Rule 5 | PixyNetLoader COM hijacking (CLSID D9144DCD) | Sysmon 13 | CRITICAL |
| Rule 6 | MiniDoor Outlook macro security downgrade | Sysmon 13 | HIGH |
| Rule 7 | File staging in suspicious paths (AppData, Temp) | Sysmon 11 | HIGH |
| Rule 8 | OneDriveHealth scheduled task persistence | Sysmon 1, 4698 | HIGH |
| Rule 9 | Outlook VBA email theft indicators | Sysmon 1, 4104 | HIGH |
| Rule 10 | Explorer.exe suspicious DLL side-load | Sysmon 7 | HIGH |
| Rule 11 | Shell.Explorer.1 COM instantiation from Office | Sysmon 1, 4104 | HIGH |
| Rule 12 | Full kill chain correlation (multi-stage) | Combined | CRITICAL |
- Splunk Enterprise 8.x+ or Splunk Cloud
- Splunk Enterprise Security (ES) recommended for notable events and risk framework
- Windows Security Event Logs from all endpoints (sourcetype:
XmlWinEventLog:Security) - Sysmon deployed on all endpoints (sourcetype:
XmlWinEventLog:Microsoft-Windows-Sysmon/Operational) - PowerShell logs from all endpoints (sourcetype:
XmlWinEventLog:Microsoft-Windows-PowerShell/Operational) - PowerShell 5.1+ on endpoints for audit policy configuration
- auditd deployed and configured on all RHEL hosts (sourcetype:
linux:audit) - Sysmon for Linux deployed on all RHEL hosts (sourcetype:
sysmon_linux) - SSH/PAM logs forwarded from all RHEL hosts (sourcetype:
linux_secure) - Syslog forwarded from all RHEL hosts (sourcetype:
syslog) - Splunk Universal Forwarder on all RHEL hosts
- Apache access logs in Combined Log Format (sourcetype:
access_combined) - Apache error logs (sourcetype:
apache:error) - Sysmon for Linux on web servers for process and file creation telemetry (sourcetype:
sysmon_linux) - auditd with file watches on web root directories (sourcetype:
linux:audit) - Splunk Universal Forwarder on all Apache web servers