Source overview

splunk/security_content

Splunk's official ESCU — SPL searches with YAML metadata, mapped to ATT&CK and Cyber Kill Chain.

splunk-security-content · SPL · upstream repo ↗ · Apache 2.0

Rules indexed 2162 19 deprecated hidden · include
ATT&CK techniques 377
Newest rule 2026-10-09 checked 2026-10-11

How detections work here

Splunk's Security Research team publishes SPL searches as YAML, run on a schedule by Enterprise Security. Query against a store, on an interval — the familiar model.

The organizing idea that is not familiar is the analytic story: detections are grouped into named narratives (a campaign, a malware family, a technique cluster) rather than standing alone, and adopting a story means adopting its searches together.

How rules are written

YAML with the SPL in a search field:

name: Cisco Secure Firewall - Binary File Type Download
type: Anomaly
status: production
data_source:
    - Cisco Secure Firewall Threat Defense File Event
search: |
    `cisco_secure_firewall` EventType=FileEvent FileDirection="Download"
    | stats count ... by FileDirection FileType src dest
    | `cisco_secure_firewall___binary_file_type_download_filter`
how_to_implement: |
    This search requires ... Replace the macro definition with
    configurations for your Splunk environment.
known_false_positives: IT admins or developers may legitimately download ...

Two conventions matter more than the SPL itself:

  • Macros in backticks. A leading macro like `cisco_secure_firewall` stands in for your index/sourcetype configuration, and every search ends with a ..._filter macro that exists so you can suppress known false positives without editing the search. Neither is defined in the rule — you define them.
  • type distinguishes TTP (behavior with a known technique), Anomaly (statistically unusual, expect tuning), Hunting (not meant to alert as-is) and Correlation. Treating a Hunting search as a production detection is the most common misuse.

Reading a rule on this site

how_to_implement becomes the implementation guide on a rule's page and known_false_positives becomes tuning notes. Both are load-bearing here — a Splunk search without its macros configured does not run at all.

data_source names the specific log source and add-on required.

Gotchas

  • No search here works out of the box. The macros are placeholders by design. how_to_implement is not optional reading.
  • type: Hunting searches are exploratory and will return volume. Check the content type before scheduling one as an alert.

Rungs

Reaches TTPs — 1075 rules, 49.7% of the ruleset. A rung is claimed at 20 rules and 1.0% of the source, so that one rule cannot speak for a small ruleset and a rounding error cannot speak for a large one.

Shares are of all 2162 live rules in this source, including the atomic-IOC and non-detection content the count above hides by default. The pending band is drawn to scale for the same reason: it is the width of what no classifier has read, and a bar without it would look more complete than the index is. What the rungs mean.


Severity

Status


Platforms

Splunk Cloud 2162 Splunk Enterprise 2162 Splunk Enterprise Security 2162

Content types

TTP 1060 Anomaly 867 Hunting 220 Correlation 15


Recently modified

all →
Jscript Execution Using Cscript App 2026-10-09
Ping Sleep Batch Command 2026-10-09
Possible Lateral Movement PowerShell Spawn 2026-10-09
Svchost LOLBAS Execution Process Spawn 2026-10-09
Vbscript Execution Using Wscript App 2026-10-09

Detection rules belong to the projects that publish them and remain under their own licenses. This site indexes and links to them; it claims no rights in them.