Detection engineering is the practice of building, validating and maintaining the logic that identifies malicious activity in an environment, treated as an engineering discipline with version control, testing and measurable coverage rather than as ad-hoc rule writing. Its output is detection content that runs in a SIEM, EDR or XDR platform and has been shown to work against real data before analysts see the first alert.
In most organisations detection engineering evolved separately from exposure management, and the separation is expensive. Log sources are onboarded broadly and use cases designed for breadth, so the result is generic content that treats every alert as equally important regardless of whether the underlying weakness is exploitable. Alert volume rises, false positives rise with it, and the usual response is more tuning, which does not address why the alerts were low-value.
Meanwhile the rules a team actually needs sit in a backlog measured in months, because writing one correctly means reading the schema as it is rather than as documented, validating against real data, and back-testing. In the middle sits a gap that usually has no owner: an exposure confirmed exploitable that cannot be fixed for three weeks because of a change window. It is the highest-risk state in the environment and often has no compensating detection.
The classes are not ranked, and a corpus built entirely from one of them fails predictably. Atomic and signature logic is precise and short-lived; behavioural and statistical logic is durable and expensive to tune.
Detection content can be triggered by several different things, and the trigger determines most of what makes a rule useful. A framework gap produces content answering how a technique would be spotted in general. Alert history answers what has been noisy or missed. A simulated attack answers what an emulation plan produces. Threat intelligence answers what a reported campaign looks like, if it touches software actually installed.
A validated exposure produces something narrower: an attacker could demonstrably do this specific thing on these assets, so what would it look like if they tried. That rule is scoped to real assets, inherits its priority from a demonstrated risk, and has a defined end when the exposure closes. A mature programme uses several of these sources; the difference is that only the last has a built-in expiry.
Consider a rule detecting a suspicious PowerShell invocation. The logic is correct, it converts cleanly to the platform query language, and it shows as a green cell against the relevant ATT&CK technique. It also matches nothing, ever, because script block logging is enabled on the workstation fleet and not on the server estate where the technique would matter. The dashboard reports coverage; the environment has none.
Two checks would have caught it: schema validation, asking whether the fields exist and are populated, and a telemetry check, asking whether the hosts in scope send them. Back-testing catches the opposite failure - logic that is valid but too broad, such as a rule keying on a command-line fragment a deployment tool uses nightly. Running it over ninety days of history surfaces that before an analyst does.
An internal application server runs a component with a confirmed unauthenticated deserialisation flaw. Exploitation has been demonstrated against the same build in a controlled test, the vendor fix exists, and the change window is nineteen days away. Until then the exposure is known, proven and open.
A compensating detection is scoped to that condition rather than to the technique in general. The population is the twelve hosts running the component, not the estate. The logic keys on behaviour the exploit has to produce rather than the payload it uses: the application service account spawning a child process, which it never does in normal operation, and an outbound connection to a destination outside the recorded set. Both are back-tested against ninety days of history, which establishes that the normal rate is zero.
The rule carries the exposure identifier as its reason for existing, an owner, and an end condition: once the component is patched on all twelve hosts it is retired. Detection is not a substitute for the fix. It removes the case where exploitation during the wait goes unobserved.
MITRE ATT&CK is the common reference for expressing which adversary techniques an environment can observe, and ATT&CK Navigator is how coverage is usually visualised. Sigma, maintained by the SigmaHQ project, is the widely used vendor-neutral format for detection logic, with converters that emit the query languages of major platforms. Open schema efforts such as the Open Cybersecurity Schema Framework matter because schema validation is only tractable where field names are predictable.
Does detection engineering replace a SIEM? No. It produces the content that runs inside the SIEM, EDR and XDR platforms already deployed, while alerting, triage and response stay with those platforms. Authoring in a neutral format keeps the logic reviewable rather than locked to one syntax.
How is a rule validated before it goes live? Two checks. Schema validation confirms the fields the logic depends on exist, are populated, and are shipped by the hosts in scope. Back-testing runs the logic against historical logs to establish what it would have caught and how much noise it would have produced.
What does exposure-derived detection mean? The trigger for writing the rule was a specific weakness shown to be exploitable on identified assets, rather than a generic template. The rule has a documented reason for existing and a defined end when the exposure closes.
Can detection engineering reduce log ingestion cost? It can make the decision answerable. Log optimisation identifies ingested sources that no active detection references, which is what is needed to right-size retention without opening a gap.
What is the difference between a detection and an alert? A detection is the logic; an alert is one output of it. The distinction matters for measurement: a corpus is judged on mapped technique coverage, validation status and rule provenance, whereas alert counts describe activity volume and rule precision, not how much of the attack surface can be observed.