skip to content

What are the four questions in Shostack's four-question threat modeling frame?

level: juniorimportance: must knowfreq 80%

answer

  1. four, in a fixed order, then repeat
  2. starts with the system, not the attacker
  3. each answer scopes the next question
  4. the last one is about your own work
  5. a loop with a definition of done

basics

~20 s

What are we working on? What can go wrong? What are we going to do about it? Did we do a good enough job? They run in that order and repeat as a loop, not a one-off checklist.

solid answer

~40 s

Four questions, asked in order. One, *what are we working on* - a shared model of the system: its components, its data flows and its trust boundaries. Two, *what can go wrong* - threats enumerated against that model. Three, *what are we going to do about it* - a decision per threat, with an owner. Four, *did we do a good enough job* - a check on the modeling work itself. The order carries weight: threats are only ever enumerated against a model, so question one bounds everything downstream of it. It is a loop rather than a form: question four either closes the pass or sends you back to whichever question was answered badly. The frame is deliberately method-neutral - it tells you what to ask, not which enumeration technique answers question two.

go deeper

for a junior

Be ready to say all four questions, in order, and to say that they repeat. Interviewers use a missing fourth question as a quick tell that you have read about threat modeling rather than done it.

for a middle

Explain what each question hands back - a model, a threat list, a decision per threat, evidence - and why question two cannot be answered before question one has produced something to enumerate against.

for a senior

Show that you drive the loop against the system as it actually runs and that you re-enter it when the architecture changes, rather than filing one set of answers at kickoff.

for a principal

Be ready to argue for a method-neutral frame across many teams: it gives everyone the same four checkpoints and the same definition of done while leaving the detail of question two to the team that owns the system.

## The frame Shostack's four questions are the smallest complete description of what a threat modeling exercise does. In their usual wording: 1. **What are we working on?** 2. **What can go wrong?** 3. **What are we going to do about it?** 4. **Did we do a good enough job?** They are also the spine of the Threat Modeling Manifesto, which is why almost every modern description of the practice reduces to them. Their value is that they are short enough to remember in a design review and general enough to apply to a mobile client, a batch pipeline or a cluster. ## What each question hands back **Question one produces a model.** Not a document, a *model*: what the parts of the system are, what data moves between them, who runs each part, and where control changes hands. The answer is normally a data-flow diagram with trust boundaries drawn on it, agreed by the people who actually build the thing. The critical property is that it describes the system as it is or as it is about to be, not as an old design document once described it. **Question two produces threats.** Given the model, what could an attacker in some position do to some asset. This is where a structured enumeration technique fits: the frame deliberately does not pick one for you, and the choice is a separate decision from the loop itself. **Question three produces decisions.** Every threat gets a disposition and a name attached to it. A threat that ends the session with no decision is not output; it is a note. **Question four produces evidence, or a re-entry.** It asks whether the three answers above were good enough: was the model right, did enumeration reach the whole of it, and did the decisions actually land in the running system. ## Why the order is not decorative Each question is scoped by the answer to the one before it. You cannot enumerate threats against a system nobody has drawn, because you have no elements or flows to enumerate against - teams that skip question one end up listing generic vulnerability classes rather than threats to *this* design. Question three is scoped by question two: you can only decide about threats you named. Question four is scoped by all three, which is exactly why it is the one that is skipped - by the time it is due, the session is over and everyone has moved on. The order also explains a common interview probe: if the model changes, the answers downstream of it are suspect. A new integration added after the exercise is a change to question one, and it invalidates part of question two whether or not anyone reopens the file. ## A loop, not a checklist The frame is drawn as a cycle. A pass through it ends either with a defensible *yes* to question four or with a return to the question that failed - a wrong model sends you to one, thin enumeration to two, undelivered mitigations to three. Teams that treat the four questions as a template fill it in once at kickoff and never return; teams that treat it as a loop re-enter it when the architecture changes and when the decisions from question three were due to be delivered. A concrete shape of this: a national exam-results release portal is walked through the loop the week before results day. Question one is deliberately answered from the live release architecture - the caching tier and the pre-release staging path that exist today - rather than from last year's design doc. That single choice changes question two's output, because an authenticated candidate probing for early access can only reach the paths that actually exist now. Answering question one from a stale picture would have produced a threat list about a system nobody is running. ## What the frame does not do It is not a methodology, and saying so is usually a plus in an interview. It does not enumerate threat categories, it does not score or order what you find, and it does not tell you who should be in the room. It gives four checkpoints that any of those techniques can be slotted into, and a definition of done that is stronger than *we held a meeting*. ## The usual failure Most people can recite three questions. The fourth is the one that separates someone who has read about threat modeling from someone who has run it, because it is the only question that asks about the quality of your own work rather than about the system.

  • Why does the frame start with 'what are we working on' rather than going straight to threats?
    Because a threat is always a threat to something specific. Without a model of the components, flows and trust boundaries, enumeration degenerates into reciting generic vulnerability classes that may not apply to this design. Question one also fixes scope: it decides what is in the system and what is an external dependency, which determines which threats are yours to answer at all.
  • Does the frame tell you how to answer question two?
    No, and that is intentional. It is method-neutral: question two is where a structured enumeration technique plugs in, and picking one is a separate decision made per team and per system. The frame's contribution is the checkpoints and the order, not the enumeration mechanics.
  • What ends a pass through the loop?
    A defensible answer to question four. If the model was wrong you go back to question one, if enumeration was thin you go back to question two, and if decisions never shipped you go back to question three. A pass that ends because the meeting ran out of time has not closed the loop.

It is the frame a builder uses on any site: what are we putting up, what could fall down, what do we brace, and did the bracing actually get installed. The last visit is the one that gets skipped.

saying these in an interview costs you the question

  • Reciting only the first three questions
  • Treating it as a document template filled in once
  • Answering what can go wrong before any model exists
  • Calling it a methodology that replaces threat enumeration
  • Saying the questions can be answered in any order

context