skip to content

ATT&CK lists mitigations for a technique and your estate implements all of them. Is it handled?

level: seniorimportance: should knowfreq 42%

answer

  1. a class is not a configuration
  2. the list is a prompt, not an audit
  3. some pages say preventive controls do not apply
  4. no severity field for it to reduce

basics

~20 s

No. The mitigations section is an unordered list of general control classes, not a specification and not a completeness claim. Some techniques carry an explicit note that preventive controls cannot mitigate them, because they abuse legitimate functionality.

solid answer

~50 s

No, for three reasons. First, a mitigation entry names a **control class** — privileged account management, password policies, disabling a feature — not a configuration. Implementing the class somewhere is not implementing it everywhere at the strength this behaviour requires, and the page cannot tell you about your exceptions. Second, the list is neither exhaustive nor ordered, and a number of techniques carry an explicit statement that they cannot be readily mitigated with preventive controls because they abuse legitimate system functionality; for those the list is thin by design, and its thinness is not a verdict either way. Third, there is no severity or residual-risk field for a mitigation to reduce, so "we have them all" cannot settle an ordering argument, because the ordering was never in the catalogue. This is the fully-patched claim in catalogue clothing.

go deeper

for a junior

Know that a mitigation entry names a broad class of defence rather than a configuration, and that a technique page never certifies an estate against the behaviour it describes.

for a middle

Explain the three separate claims hidden in we have them all: that the class is implemented, that the list is complete, and that the technique is therefore lower priority. Say why the page supports none of them.

for a senior

Show how you convert the claim into something checkable, naming the precondition the behaviour cannot substitute, the scope where it has been removed, and the exceptions with owners, rather than accepting a list as an audit result.

for a principal

Own the habit at organisation scale: recognise fully patched and fully mitigated as the same structural argument, and insist that assurance statements name a scope and an exception list rather than the completion of an external list.

## What a mitigation entry actually is Each mitigation on a technique page is a named class of defence with an `M####` identifier — things at the altitude of *privileged account management*, *password policies*, *multi-factor authentication*, *disable or remove feature or program*. It is a pointer to a family of controls, written to be true across every estate that could ever read the page. That generality is exactly what makes it useless as a completeness test: a sentence that must hold for a two-person company and a global bank cannot also specify what either of them must configure. So "we have all of them" decomposes into three separate claims, and the page supports none of them. ## Claim one: the class is implemented Usually true, and usually irrelevant. Every organisation of any size has *some* privileged account management. The question the technique poses is whether the control removes the specific thing the behaviour depends on, in the places where the behaviour would occur. A control class implemented for the datacentre and not for the three legacy hosts nobody owns is, from the adversary's point of view, not implemented — they only need the exception. The catalogue does not know your exceptions and cannot ask about them. ## Claim two: the list is complete The mitigations section is not an exhaustive specification of everything that would frustrate the behaviour, and it is not ordered by effectiveness. Two entries on a page can be wildly unequal: one may remove the precondition the technique cannot substitute, the other may merely raise the cost slightly. Nothing on the page distinguishes them, because there is no effectiveness field any more than there is a severity field. More pointedly, some techniques carry an explicit note that they **cannot be easily mitigated with preventive controls**, because the behaviour consists of legitimate system functionality being used as designed. There the list is short or effectively empty, and reading emptiness as "nothing can be done" is the mirror-image error to reading a full list as "everything is done". What it actually means is that the leverage has moved: away from blocking the behaviour, toward removing the precondition it depends on, constraining what it can reach, or making the operator substitute something more expensive. ## Claim three: therefore the ordering is settled This is the part the argument is usually smuggling. "We have all the mitigations, so this technique is not a concern" is a statement about *rank*, and rank is precisely what the catalogue does not hold. There is no severity value for the mitigations to have reduced, and no residual figure left over after they are applied. The page cannot certify your estate against a behaviour any more than it can rate that behaviour's danger, and the sentence quietly assumes both. ## How to make the claim checkable Rewrite it in terms the estate can answer. Instead of *we implement every listed mitigation*, say what the behaviour cannot do without, and then state where that thing has been removed and where it has not: *this behaviour requires X; X is unavailable on every host in scope except these nine, which are owned by that team and tracked*. Now the claim has a subject, a scope, an exception list and an owner, and someone can disagree with it on facts. That rewriting is also the honest version of the mitigations section's real value. It is a prompt — a short list of the defence families that are usually relevant to this behaviour, so you do not start from a blank page. It is a good prompt. It is not an audit. ## The pattern to recognise "We are fully patched, so we are safe" and "we have every listed mitigation, so it is handled" are the same argument. Both substitute the completion of a list someone else wrote for a claim about your own estate, and both are attractive because the list is finite and the estate is not. Naming that structure out loud is usually the strongest thing you can say in the room.

  • How would you rewrite that claim so it can actually be checked?
    Name the precondition the behaviour cannot substitute, then state where it has been removed and where it has not: this behaviour needs X, X is unavailable everywhere in scope except these nine hosts, which are owned and tracked. That version has a scope, an exception list and an owner, so someone can disagree with it on facts.
  • A technique's mitigations section is nearly empty. Does that mean nothing can be done about it?
    No. It usually means the behaviour is legitimate system functionality used as designed, so blocking it at the technique level is not available. The leverage moves to removing the precondition it depends on, limiting what it can reach once it succeeds, and forcing the operator onto a more expensive substitute.
  • Two mitigations are listed on the same page. Which is the stronger one?
    The page will not tell you, because there is no effectiveness ordering any more than there is a severity value. You decide it locally by asking which control removes something the behaviour cannot substitute in your estate, and which merely raises its cost a little.

saying these in an interview costs you the question

  • Treats the mitigations list as a compliance checklist
  • Reads an empty mitigations section as nothing can be done
  • Assumes implementing a control class means it is everywhere
  • Says the technique is closed because the page is satisfied
  • Believes mitigations reduce a stored severity on the page

context