Source overview
elastic/detection-rules
Official Elastic SIEM detection rules — TOML wrapping EQL/KQL/Lucene queries, mapped to ATT&CK.
elastic-detection-rules
· Elastic TOML
· upstream repo ↗
· Elastic License 2.0
How detections work here
Elastic's own detection content, run as scheduled queries against Elasticsearch by the Detection Engine. This is the model most of this index assumes: a query, a lookback window, an interval.
Do not confuse it with elastic-protections-artifacts, which ships inside the Elastic Defend agent and runs on the endpoint.
How rules are written
TOML, with [metadata] and [rule] tables. The important field is
language, because this source carries several query languages — kuery,
eql, esql — and the rule's type selects which engine runs it. That is why
this is one of the few sources here with a meaningful content-type breakdown:
query, eql, esql, threshold, new_terms, machine_learning and
threat_match are genuinely different detection mechanisms, not labels.
index declares the indices searched and from the lookback (now-9m).
risk_score is a 1–100 integer, which we preserve and also bucket into this
site's five-level severity — both are shown on a rule's page.
Reading a rule on this site
Two prose fields map to distinct places, and the distinction is worth knowing:
setup becomes the implementation guide (what you must configure before the
rule works), while note becomes triage notes (what to do when it fires).
Elastic's note fields are unusually thorough investigation guides, often
longer than the rule itself.
ATT&CK comes from the [[rule.threat]] blocks and is generally complete.
Gotchas
type = "machine_learning"rules have no readable query — they reference a trained job by name. The rule tells you what it alerts on, not how it decides.- Every rule is scoped to specific
indexpatterns and Elastic integrations. A rule is only deployable if you are shipping that integration's data in that shape. - Some investigation guides are noted upstream as generated with AI assistance and reviewed. Read them as a starting point.
Rungs
Reaches TTPs — 199 rules, 9.5% 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.
- Atomic IOCs 9
- Network & Host Artifacts 129
- Tools 0
- TTPs 199
- Not a detection 0
- Pending classification 1748
Shares are of all 2085 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.
Platforms
endpoint 985 windows 458 sentinel_one_cloud_funnel 437 crowdstrike 328 m365_defender 262 system 254 aws 212 azure 148 +54 more
Content types
eql 972 query 456 esql 282 new_terms 232 machine_learning 106 threshold 28