Testing and Tuning Detections
A detection you never fired on purpose is a guess, not a control.
What you will learn
- -Prove a detection fires using an atomic test
- -Measure technique coverage with the ATT&CK Navigator
- -Kill false positives with baselining and scoped exclusions
You deployed a detection for dumping and marked the ticket done. Six months later, during a real , you discover it never fired because the field it keyed on was empty the whole time. The rule looked correct. Nobody ever made the attack happen and watched the light up. An untested detection is a hope, and hope is not a security .
Testing a detection is simple in concept: run the attacker behavior in a controlled place and confirm the alert fires. The tool that makes this repeatable is Atomic Red Team.
Fire the technique, watch the alert
Atomic Red Team is a library of small, precise tests mapped to techniques. Each atomic runs one specific behavior, so you can trigger exactly the thing your detection targets and nothing else. Its runner, Invoke-Atomic, drives them.
$Invoke-AtomicTest T1003.001 -ShowDetails$Invoke-AtomicTest T1003.001 -GetPrereqs$Invoke-AtomicTest T1003.001$Invoke-AtomicTest T1003.001 -CleanupRun the test, then open your alert console. Fired? Good, the detection works end to end. Silent? Now you have a real bug to chase: wrong log source, a field that is not being collected, a typo in the condition, or the simply not generating the event you assumed it did. Every one of those is better found on a test box than in an incident.
Measure coverage honestly
Testing one rule is good. Knowing which techniques you cover and which you are blind to is the point. The MITRE ATT&CK Navigator gives you a heat map of the matrix where you color each technique by whether you have a tested detection for it. Green where you fire, red where you are exposed.
The honest version colors a technique green only after an atomic test proved the detection fires, not because someone believes a rule exists. Coverage you have not tested is coverage you do not have. A wall of green squares that were never validated is worse than a red map, because it tells leadership you are protected when you are not.
Kill false positives at the source
A detection that survives testing still has to survive contact with real traffic. The way you tune is baselining: run the detection in a monitor-only mode over a week or two of normal activity, collect everything it would have fired on, and sort the benign from the real.
The benign hits are your exclusion list. A backup service that reads files like , a config-management tool that spawns , an admin whose daily job trips the rule. an exclusion to that exact source and leave the detection armed for everyone else.
When you tune, carve out the specific account, host, or hash that is benign. Do not widen the exclusion to the technique itself. "Ignore all PowerShell from this one signed patch agent" keeps your coverage. "Ignore all PowerShell" hands the attacker a documented blind spot.
Invoke-Atomic executes genuine offensive behavior: it dumps credentials, modifies the , drops tools. Run atomics only on isolated lab machines or a range built for it, never on production or a shared host without change control and written approval. And always run the cleanup step so you do not leave a test artifact that looks like a real compromise.
Your ATT&CK Navigator shows a technique green because a rule for it exists in the repo, but no one ever fired the technique to confirm it alerts. What is the honest status?