Skip to content

feat(detect): MITRE ATLAS 5.6 agentic coverage — 40 new community rules, built-in catalog, rules list, enforced mappings (v0.14.0) - #30

Merged
efij merged 1 commit into
mainfrom
feat/mitre-coverage
Sep 3, 2026
Merged

feat(detect): MITRE ATLAS 5.6 agentic coverage — 40 new community rules, built-in catalog, rules list, enforced mappings (v0.14.0)#30
efij merged 1 commit into
mainfrom
feat/mitre-coverage

Conversation

@efij

@efij efij commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Why

Audit of the shipped detections against MITRE ATLAS 5.6.0 and ATT&CK found: zero ATLAS mappings in the rule packs, only 2 CRITICAL rules, and no rules at all for the ATLAS agentic technique family (AML.T0080 context poisoning, T0081 agent config modification, T0083 credentials from agent config, T0084 agent config discovery, T0086 exfiltration via tool invocation, T0090 credential dumping, T0101 destruction via tool invocation, T0103 deploy agent, T0110 tool poisoning). Several built-ins still pointed at pre-5.x IDs (plugin compromise instead of tool poisoning).

What

  • community-pack v3: +40 rules → 77 total, 58 HIGH/CRITICAL, every one mapped; mitre_atlas added to 22 existing rules. Starter pack v2.
  • Built-in mappings completed/updated across detect, mcpaudit, provenance (see CHANGELOG 0.14.0).
  • internal/catalog: machine-readable index of all 51 built-in rules. Test fails the build when a RuleID in source has no catalog entry (or vice versa), when a HIGH/CRITICAL rule has no mapping, or when an ATLAS ID is not a real technique.
  • Embedded ATLAS 5.6.0 technique table (scripts/gen-atlas-ids.sh), rulepack.ValidATLAS.
  • Hit/miss sample table for every new rule (internal/rulepack/mitre_test.go, ~120 samples).
  • agentdfir rules list [--packs dir] [--json].
  • docs/detection-coverage.md, generated from the binary by scripts/coverage-matrix.sh.

Result

Rules (built-in + packs) 132 (51 + 81)
HIGH/CRITICAL 88, 86 mapped (2 exempt by name: ORPHAN_AGENT, CROSS_SESSION_MESSAGE — topology/evidence rules)
Distinct ATLAS techniques 27 (was 3)
Distinct ATT&CK techniques 65

go test ./... green locally; shellcheck clean; packs validate with the real loader.

…es, built-in catalog, rules list, enforced mappings

Every HIGH/CRITICAL detection now maps to MITRE ATLAS and/or ATT&CK, and the agentic ATLAS family (AML.T0080-T0110) is covered.

- rules/community-pack.json v3: +40 rules (77 total, 58 HIGH/CRITICAL, all mapped); mitre_atlas added to 22 existing rules; starter-pack v2.
- Built-in mappings: ATLAS added to DESTRUCTIVE_COMMAND, POTENTIAL_DATA_EXFILTRATION, AGENT_SELF_MODIFICATION, PERMISSION_*, SENSITIVE_FILE_READ, SECRET_ACCESS, UNEXPECTED_NETWORK_DESTINATION, AGENT_SPAWN_EXPLOSION, SHELL_EXECUTION; poisoning rules re-pointed to AML.T0099/T0110/T0080.000; invisible Unicode to AML.T0068.
- internal/catalog: machine-readable index of all 51 built-in rules; test fails when a RuleID in source has no catalog entry or vice versa, when a HIGH/CRITICAL rule lacks a mapping, or when an ATLAS ID is not real.
- internal/rulepack: embedded ATLAS 5.6.0 technique table (scripts/gen-atlas-ids.sh), ValidATLAS/ATLASName, mitre_test.go with a hit/miss sample per new rule.
- CLI: agentdfir rules list [--packs dir] [--json].
- docs/detection-coverage.md generated by scripts/coverage-matrix.sh; README/llms/site updated; version 0.14.0.
@efij
efij merged commit c524ed4 into main Sep 3, 2026
5 checks passed
@efij
efij deleted the feat/mitre-coverage branch September 3, 2026 12:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant