Threat Modeling Interview Questions
Reviewed by Mark Dickie · Last updated
Threat modeling is a structured process for identifying, rating, and mitigating security risks in a system before it is built or changed. For interviews, you should be able to apply at least one framework (most commonly STRIDE) to a given architecture diagram, identify trust boundaries on a data flow diagram, and explain how you prioritize threats using a scoring method like DREAD or CVSS. Interviewers also expect you to talk through where threat modeling fits in the SDLC and how you balance security mitigations against business constraints like cost and latency. Being able to reason out loud about an unfamiliar system is more important than reciting framework definitions from memory.
What does a threat modeling interview test?
An interviewer typically gives you a system description or whiteboard diagram and asks you to find threats, rank them, and propose controls. They want to see methodical thinking, not a scattered list of guesses. A strong answer names the framework, walks the diagram component by component, and calls out trust boundaries explicitly.
| Framework | Focus | When to use |
|---|---|---|
| STRIDE | Classifying threats by category (Spoofing, Tampering, Repudiation, Information disclosure, DoS, Elevation of privilege) | General-purpose, the most common interview default |
| PASTA | Risk-centric, aligns threats to business objectives | When the interviewer wants business impact tied to technical risk |
| DREAD | Scoring model (Damage, Reproducibility, Exploitability, Affected users, Discoverability) | Use to rank a list of threats once identified |
| Attack Trees | Goal-driven decomposition of attacker objectives | Useful for deep-dive analysis of a single high-value asset |
How do you run a threat model on an unfamiliar system?
- Draw or read the data flow diagram and mark every trust boundary, external input, and privileged component.
- Walk through each component and data flow using a framework like STRIDE, asking what could go wrong at each interaction point.
- Record each threat with its category, the component affected, and the attacker preconditions.
- Score the threats with DREAD or CVSS to prioritize which ones need immediate mitigation.
- Propose concrete mitigations and note residual risk where a control is not feasible.
What are common gaps interviewers look for?
Candidates often skip trust boundaries, which are where the most serious threats live. Another frequent miss is listing threats without any prioritization, leaving the interviewer unsure whether you understand which risks matter most. Interviewers also watch for candidates who jump straight to mitigations before fully mapping the attack surface, since that tends to produce shallow coverage.
Key facts
- Tarmac has 96 Threat Modeling interview questions on this topic, 25 of them on this page, at difficulty 1–5 of 5.
- Tarmac last reviewed these Threat Modeling interview questions on 31 August 2026.
At a glance
| Questions | 25 shown · 96 in the bank |
|---|---|
| Difficulty | 1–5 of 5 |
| Formats | Short answer, Fill in the blank, Multiple choice, True / false, Flashcard, Ordering, Multiple answer, Find the bug, Design exercise |
What you'll review
- pasta
- attack trees
- stride
- threat modeling cadence
- mitigation planning
- data flow diagrams
- dread
- trust boundaries
Practice questions
Threat Modeling/methodology-frameworks/pasta
PASTA is a risk-centric threat modeling methodology. What does the acronym PASTA stand for?#
Show answer
Process for Attack Simulation and Threat Analysis
PASTA stands for Process for Attack Simulation and Threat Analysis. It is a seven-step, risk-centric threat modeling framework that aligns technical requirements with business objectives.
Threat Modeling/modeling-artifacts/attack-trees
In an attack tree, the topmost node (the _____) represents the attacker's ultimate objective or goal, while the branches below it represent progressively more detailed sub-goals and methods that could be used to achieve it.#
Show answer
In an attack tree, the topmost node (the root) represents the attacker's ultimate objective or goal, while the branches below it represent progressively more detailed sub-goals and methods that could be used to achieve it.
An attack tree is a hierarchical diagram: the root node at the top describes the overall attack goal (e.g., 'steal database credentials'), and each path downward decomposes that goal into sub-goals and concrete attack steps.
Threat Modeling/modeling-artifacts/attack-trees
In an attack tree, a node labeled with an _____ gate means that ANY one of its child sub-goals is sufficient to achieve the parent goal, whereas a node labeled with an _____ gate means that ALL child sub-goals must be satisfied for the parent to succeed.#
Show answer
In an attack tree, a node labeled with an OR gate means that ANY one of its child sub-goals is sufficient to achieve the parent goal, whereas a node labeled with an AND gate means that ALL child sub-goals must be satisfied for the parent to succeed.
OR-gate nodes indicate alternatives — any single child path suffices. AND-gate nodes indicate conjunctive requirements — every child must be completed. These two gate types are the standard building blocks of attack trees.
Threat Modeling/modeling-artifacts/attack-trees
Attack trees were popularized by security researcher Bruce _____, who described the technique as a structured way to model an adversary's goals and the various methods used to achieve them.#
Show answer
Attack trees were popularized by security researcher Bruce Schneier, who described the technique as a structured way to model an adversary's goals and the various methods used to achieve them.
Bruce Schneier introduced attack trees as a formal, tree-based methodology for analyzing security. Each node represents a sub-goal, and the tree structure makes it possible to reason about costs, probabilities, and the feasibility of attacks.
Threat Modeling/methodology-frameworks/stride
STRIDE is a mnemonic for six threat categories used to systematically enumerate threats against a system. What do the six letters stand for?#
Options
Show answer
STRIDE's six letters stand for Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege — each one naming a security property an attacker could violate: authentication, integrity, non-repudiation, confidentiality, availability, and authorization respectively. Modelers walk a data flow diagram element by element asking which categories apply, turning threat identification into a repeatable checklist rather than an unstructured brainstorm.
STRIDE, developed at Microsoft, maps each letter to a violated security property: Spoofing (violates authentication — pretending to be someone/something else), Tampering (violates integrity — modifying data or code), Repudiation (violates non-repudiation — denying an action with no way to prove otherwise), Information Disclosure (violates confidentiality — exposing data to those unauthorized), Denial of Service (violates availability), and Elevation of Privilege (violates authorization — gaining capabilities beyond what was granted). Modelers walk a data flow diagram element by element and ask which of the six apply to each element, which turns 'think like an attacker' into a repeatable checklist instead of an unstructured brainstorm.
Threat Modeling/process-practice/threat-modeling-cadence
A threat model, once completed for a system, remains valid indefinitely and never needs to be revisited unless the entire application is rewritten from scratch.#
Options
Show answer
False. A threat model represents one specific architecture at one specific point in time, so it should be revisited whenever the architecture changes in a way that could introduce a new attack surface — a new external integration, a new trust boundary, a new sensitive data flow, or a significant new feature — not only at a full rewrite. Treating it as permanent lets it silently drift out of sync with the real system, which gives a false sense that the attack surface has been accounted for.
False. A threat model is a model of one specific architecture at one specific point in time — it should be revisited whenever the architecture changes in a way that could plausibly introduce a new attack surface, not just at a full rewrite: a new external integration, a new trust boundary, a new data flow carrying sensitive data, or a significant new feature all warrant a look. Treating the original model as permanent lets it silently drift out of sync with the real system, which is worse than having no model at all, since it gives a false sense that the attack surface has been accounted for.
Threat Modeling/methodology-frameworks/pasta
What does the PASTA threat modeling methodology stand for, and what makes it distinct in emphasis from STRIDE?#
Show answer
PASTA stands for Process for Attack Simulation and Threat Analysis — a seven-stage, risk-centric methodology that explicitly starts from business objectives and ends by quantifying business impact, walking through technical scope, application decomposition, threat and vulnerability analysis, and attack simulation along the way. Where STRIDE is a threat-enumeration checklist applied per diagram element, PASTA is a full end-to-end process meant to connect a technical finding all the way back to a business-risk conversation that stakeholders outside security can act on.
PASTA's distinguishing feature in practice is scope: it isn't a substitute technique for finding threats so much as a wrapper process around finding, simulating, and translating them into business terms — which is why teams sometimes run STRIDE inside PASTA's threat-analysis stage rather than treating the two as competitors.
Threat Modeling/risk-prioritization/mitigation-planning
A threat-modeling session produces four findings. Each finding has been assigned a Likelihood score (1–5) and an Impact score (1–5). Risk score = Likelihood × Impact. Order the findings from highest risk score to lowest risk score.#
Put these in order
Show answer
The correct priority order is W, Y, Z, X. Their risk scores (Likelihood × Impact) are W = 25, Y = 16, Z = 12, and X = 6, so the team should remediate Finding W first, then Y, then Z, and finally X.
Computing each risk score: W = 5×5 = 25, Y = 4×4 = 16, Z = 3×4 = 12, X = 2×3 = 6. Ordering from highest to lowest gives W (25), Y (16), Z (12), X (6).
Threat Modeling/methodology-frameworks/pasta
PASTA (Process for Attack Simulation and Threat Analysis) is a seven-stage, risk-centric threat-modeling methodology. Arrange the following PASTA stages in their correct sequential order, from first (Stage 1) to last (Stage 7).#
Put these in order
Show answer
The seven PASTA stages in order are: (1) Define Objectives, (2) Define Technical Scope, (3) Application Decomposition, (4) Threat Analysis, (5) Vulnerability Analysis, (6) Attack Modeling, and (7) Risk & Impact Analysis. Each stage feeds the next, moving from business goals down to quantified residual risk.
PASTA follows a strict top-down pipeline: Stage 1 (Define Objectives) establishes business and compliance goals; Stage 2 (Define Technical Scope) identifies the assets and technologies in scope; Stage 3 (Application Decomposition) breaks the application into components, data flows, and trust boundaries; Stage 4 (Threat Analysis) catalogs applicable threats; Stage 5 (Vulnerability Analysis) maps those threats to actual weaknesses; Stage 6 (Attack Modeling) simulates exploitation paths; and Stage 7 (Risk & Impact Analysis) quantifies residual risk and drives mitigation priorities.
Threat Modeling/modeling-artifacts/attack-trees
What is the primary purpose of building an attack tree during threat modeling?#
Options
Show answer
An attack tree decomposes a single attacker goal, the tree's root node, into the AND/OR combinations of concrete steps that could achieve it, showing the depth of one specific attack path rather than the breadth of every possible threat across a system. It's a depth-first complement to STRIDE's breadth-first sweep across diagram elements — STRIDE surfaces the candidate goals worth worrying about, and an attack tree explores the highest-priority ones in enough detail to see where a single mitigation would break the most paths.
An attack tree starts from a specific attacker goal at the root (e.g. 'exfiltrate customer PII') and decomposes it downward into the steps that would achieve it, connected by AND nodes (all children required) or OR nodes (any one child sufficient) — showing, for one goal, exactly what an attacker would have to chain together. That makes it a depth-first complement to STRIDE's breadth-first sweep across every diagram element: STRIDE is how a team finds the candidate goals worth worrying about, and an attack tree is how they explore the highest-priority ones in enough detail to reason about where a single mitigation would break the most paths.
Threat Modeling/modeling-artifacts/data-flow-diagrams
Which of these are good practice when building a data flow diagram (DFD) for a threat modeling session? Select all that apply.#
Options
Pick every one that applies.
Show answer
Good DFD practice for threat modeling is to explicitly draw trust boundaries wherever privilege changes — even inside a single service, between an unauthenticated route and logic that assumes an authenticated caller — to label each data flow with what actually moves along it rather than leaving arrows unlabeled, and to keep the diagram abstract enough that a non-implementer can still follow and contribute to it. Modeling every function call defeats that abstraction, and error/failure paths should stay in scope rather than being excluded — a retry loop or a stack-trace-leaking error message is often exactly where the most interesting threats live.
A DFD is a communication tool as much as an analysis one: it needs enough abstraction that a non-security stakeholder can validate it's actually correct (d), which rules out modeling every function call and variable (b) — that level of detail defeats the point and produces a diagram only the author can read. Labeling flows with what actually moves along them (c) is what makes 'is this flow carrying anything sensitive' answerable at a glance rather than requiring the reviewer to go read code. Drawing trust boundaries wherever trust changes, including inside a single service (a), is exactly what makes STRIDE's per-element walk find the crossings that matter. And error/failure paths are often where the most interesting threats live — a retry loop, a fallback to an insecure default, an error message that leaks a stack trace — so excluding them (e) throws away some of the highest-value analysis.
Threat Modeling/methodology-frameworks/dread
DREAD scoring is Microsoft's current recommended method for prioritizing threats identified during a STRIDE-based threat model.#
Options
Show answer
False. DREAD was developed at Microsoft alongside STRIDE, but Microsoft moved away from recommending it internally because its numeric scores proved highly subjective — two reviewers scoring the same threat routinely landed on materially different totals. Many teams now prioritize threats using CVSS or a simpler qualitative risk matrix instead.
False. DREAD (Damage, Reproducibility, Exploitability, Affected Users, Discoverability) was developed at Microsoft alongside STRIDE, but Microsoft moved away from recommending it internally because its numeric scores proved highly subjective — two reviewers scoring the same threat routinely landed on materially different totals, since dimensions like 'Discoverability' have no objective, calibrated scale. Many teams now prioritize threats using CVSS, which has more rigorously published scoring criteria, or a simpler qualitative risk matrix (High/Medium/Low based on likelihood and impact) instead — though DREAD is still taught and used by some teams as a lightweight starting point.
Threat Modeling/process-practice/threat-modeling-cadence
At what points in a system's lifecycle should a team run or update a threat model, and why is 'once at launch and never again' insufficient?#
Show answer
A team should threat model during initial design, before code is written, so findings are cheapest to act on, and then again whenever the architecture changes in a way that could plausibly introduce new attack surface: a new trust boundary, a new external integration or third-party API call, a new data flow carrying sensitive data, a significant new feature, or a move to a new deployment environment. 'Once at launch' is insufficient because a threat model represents a specific architecture at a specific point in time; as the system evolves without the model being revisited, the model silently drifts out of sync with the real attack surface, which is arguably worse than having no model — it gives stakeholders false confidence that the risk picture has been accounted for when it hasn't.
The right cadence is design-time plus event-triggered, not a fixed schedule: run it before implementation starts (cheapest point to fix a design flaw), then re-run it whenever a change plausibly adds attack surface — a new integration, a new trust boundary, a new sensitive data flow. The reason 'once' fails is that a threat model is only accurate as a description of the architecture it was drawn against; every unreviewed change since then is attack surface the model doesn't know about, which quietly turns 'we threat modeled this' into a false assurance rather than a true one.
Threat Modeling/methodology-frameworks/stride
Order the standard steps of running a STRIDE-based threat modeling session for a new feature.#
Put these in order
Show answer
A STRIDE-based threat modeling session runs in a fixed order: first build a data flow diagram of the system, then mark trust boundaries wherever trust or privilege changes, then walk each diagram element and enumerate which STRIDE categories apply, then score and prioritize the resulting threats by likelihood and impact, and finally assign and track a mitigation for each threat that clears the prioritization bar. Prioritization has to happen before mitigation, or effort gets spent on low-impact threats while the high-impact ones wait.
The diagram has to exist before anything else — you can't mark trust boundaries or apply STRIDE to elements that haven't been drawn yet. Marking trust boundaries comes next because it tells the team where to apply extra scrutiny during the STRIDE walk, which comes after. Enumeration with STRIDE produces a raw list of candidate threats, which is exactly the kind of unranked output that needs prioritization before anyone can act on it — running mitigation before prioritization would mean spending effort on low-impact threats while high-impact ones wait. Mitigation is last because it's the action taken on the threats that survived prioritization, not a step that can run ahead of knowing which threats actually matter.
Threat Modeling/methodology-frameworks/pasta
PASTA (Process for Attack Simulation and Threat Analysis) is a seven-step, risk-centric threat modeling methodology. Name all seven steps in their canonical order, starting from defining objectives and ending with risk/impact analysis.#
Show answer
- Define the Objectives (scope, business/compliance drivers). 2) Define the Technical Scope (assets, tech stack, trust boundaries). 3) Decompose the Application (data flows, entry/exit points, controls). 4) Threat Analysis (likely attacker profiles and attack vectors). 5) Vulnerability & Weakness Analysis (bugs, misconfig, design flaws). 6) Attack Modeling / Simulation (attack trees, abuse cases, exploitability). 7) Risk Analysis & Impact Assessment (residual risk, severity, mitigation priorities).
PASTA's seven steps are: (1) Define the Objectives, (2) Define the Technical Scope, (3) Decompose the Application, (4) Threat Analysis, (5) Vulnerability & Weakness Analysis, (6) Attack Modeling / Simulation, (7) Risk Analysis & Impact Assessment. Each step feeds the next, progressing from business context to actionable risk triage.
Threat Modeling/methodology-frameworks/pasta
What distinguishes PASTA from STRIDE in terms of its core analytical approach and primary output?#
Show answer
PASTA is risk-centric and attacker-simulation-driven: it quantifies and prioritizes threats by business impact and exploitability (attack trees, likelihood), whereas STRIDE is a checklist-style taxonomy that categorizes threats into six classes (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege) without an inherent risk-scoring or attack-simulation workflow.
STRIDE is a mnemonic-driven threat-category taxonomy applied per element (e.g., per data-flow node) to ensure broad coverage of threat types. PASTA, by contrast, is a process that simulates attacks and assesses risk, producing prioritized, impact-ranked findings. STRIDE answers 'what types of threats exist here?' while PASTA answers 'how would an attacker actually exploit this, and how bad is the residual risk?'
Threat Modeling/methodology-frameworks/pasta
PASTA (Process for Attack Simulation and Threat Analysis) is a seven-stage methodology. What best characterizes what distinguishes it in emphasis from a lighter framework like STRIDE?#
Options
Show answer
PASTA distinguishes itself from STRIDE by explicitly tying technical threat analysis back to business impact: its seven stages walk from defining business objectives and technical scope, through application decomposition and attack simulation, to a quantified business-risk impact statement, whereas STRIDE is a threat-enumeration checklist applied per diagram element with no built-in business-risk stage. Many teams use STRIDE for the technical enumeration and layer a process like PASTA around it when the organization needs that business-risk narrative.
PASTA's seven stages (define objectives, define technical scope, application decomposition, threat analysis, vulnerability/weakness analysis, attack modeling, and risk/impact analysis) are deliberately sequenced to start and end with the business: the first stage grounds the whole exercise in business objectives and compliance requirements, and the last converts identified attack scenarios into a quantified business-impact statement stakeholders outside security can act on. STRIDE has no equivalent business-framing stage built in — it's a threat-enumeration technique applied per DFD element, which is exactly why teams often use STRIDE for the technical enumeration and layer PASTA (or a similar risk process) around it for organizations that need the business-risk narrative.
Threat Modeling/methodology-frameworks/stride
When applying STRIDE against a data flow diagram, which of these are accurate about how the six threat categories map onto diagram element types? Select all that apply.#
Options
Pick every one that applies.
Show answer
In the standard STRIDE-per-element mapping, data stores are commonly susceptible to Tampering and Information Disclosure, processes are the only element type where all six STRIDE categories can meaningfully apply, and a Repudiation threat against a data store is typically only modeled when that store also functions as an audit or event log. External entities are the classic target of Spoofing — an attacker impersonating a legitimate user is the textbook case — and Elevation of Privilege is conventionally scoped to processes only, since only a process has privilege in the sense the category means.
The standard STRIDE-per-element mapping (used by Microsoft's own threat modeling tooling) scopes categories to what each element type can plausibly do: data stores map to Tampering, Information Disclosure, and Denial of Service (a); processes are the one element type where all six apply, since only a process performs the actions the other five categories describe (b); and Repudiation on a data store is conventionally scoped to logs specifically, since 'repudiating an action' only makes sense where the store records actions rather than just holding data (d). External entities are the classic Spoofing target — an attacker impersonating a legitimate user or system is the textbook case, making (c) false. Elevation of Privilege is scoped to processes only in the standard mapping, since only a process has 'privilege' in the sense the category means, so (e) is false too.
Threat Modeling/modeling-artifacts/trust-boundaries
This is a sketch of a service's architecture, written up for a threat-modeling session. Which line describes the trust-modeling flaw a reviewer should flag?#
1| components:
2| - user_browser (external, untrusted)
3| - api_gateway (internal, authenticates the user)
4| - internal_admin_service (internal, holds all customer PII)
5| flows:
6| - user_browser -> api_gateway: HTTPS, requires a valid user auth token
7| - api_gateway -> internal_admin_service: plain HTTP, no auth check, trusted because it's on the internal networkOptions
Show answer
Line 7 — the flow from api_gateway to internal_admin_service carries no authentication at all, justified only by 'it's on the internal network.' That's exactly the implicit-trust assumption threat modeling exists to surface: if the gateway is ever compromised, tricked into forwarding an attacker-controlled request (e.g. via SSRF), or simply has a bug, nothing on this flow stops it from reaching PII with zero additional checks
'It's on the internal network so it's safe' is a textbook flat-network trust assumption — exactly the kind of implicit trust STRIDE's per-boundary walk is designed to catch. The flow on line 7 crosses a real trust boundary (a public-facing gateway handing off to a service holding all customer PII) with no authentication at all, meaning the security of every customer's PII now depends entirely on the gateway never being compromised, never having a bug, and never being tricked into making an unintended request on an attacker's behalf — a single point of failure with no defense in depth behind it. The fix is to require the internal_admin_service to authenticate and authorize the call itself (service-to-service auth, not just network location), so a compromised or buggy gateway isn't automatically a compromised PII store too.
Threat Modeling/modeling-artifacts/attack-trees
This attack tree models paths to exfiltrating customer PII from a production database that only accepts connections from inside a private subnet. Which line contains the modeling error?#
1| GOAL: Exfiltrate customer PII from the production database
2| OR: Obtain valid DB credentials (phishing, leaked secret, credential stuffing)
3| OR: Gain network access to the DB's private subnet (VPN compromise, SSRF pivot)
4| OR: Exploit a SQL injection in the public-facing API (which already holds both DB credentials and network access)Options
Show answer
Line 2 — modeling 'obtain valid DB credentials' as an OR node that alone reaches the goal overstates that path's sufficiency: since the database only accepts connections from inside the private subnet, credentials alone don't get an attacker there. This should be combined with 'gain network access' via an AND, not offered as a standalone OR path
An attack tree's AND/OR structure is meant to reflect what's actually sufficient to reach the goal. Here, credentials alone (line 2) and network access alone (line 3) are each necessary but not individually sufficient — an attacker needs both to reach a database that only listens inside a private subnet — so they belong under an AND node, not as two independent OR paths each claimed to reach the goal on its own. Line 4 is correctly modeled as an independent OR path precisely because the public API already holds both credentials and network access internally, so a SQL injection there genuinely is sufficient on its own. Getting the AND/OR structure wrong isn't cosmetic — it makes the tree overstate how many independent ways there are to reach the goal, which skews which mitigation gets prioritized.
Threat Modeling/methodology-frameworks/dread
DREAD scoring fell out of favor at Microsoft, where it originated. Explain the core criticism of DREAD and what most teams use to prioritize threats instead.#
Show answer
DREAD asks an assessor to score five dimensions — Damage, Reproducibility, Exploitability, Affected Users, Discoverability — on a numeric scale and combine them into an overall risk score. The core criticism is subjectivity: with no shared, calibrated rubric, two reviewers scoring the identical threat routinely land on meaningfully different numbers, since a judgment like 'Discoverability: 4 or 7' has no objective grounding — that inconsistency undermines using the score to make comparable, defensible prioritization calls across a threat model, especially across different reviewers or teams reviewing at different times. Many teams now prioritize using CVSS instead, which has more rigorously published and structured scoring criteria, or fall back to a simpler qualitative risk matrix (e.g. High/Medium/Low based on likelihood × impact).
DREAD's failure mode is inter-rater reliability, not the categories it measures — Damage, Reproducibility, Exploitability, Affected Users, and Discoverability are all reasonable things to think about, but scoring each 1-10 with no shared rubric means the resulting number reflects the reviewer's calibration as much as the actual risk. That's what pushed teams toward CVSS (which defines its scoring vectors far more rigorously and consistently) or a coarser qualitative risk matrix, where the reduced precision is an honest tradeoff for reduced false confidence in a number that was never that precise to begin with.
Threat Modeling/methodology-frameworks/dread
A fundamental limitation of DREAD is that it assesses gross (inherent) risk without any mechanism for accounting for compensating or mitigating controls already in place, meaning two vulnerabilities with identical DREAD scores can have materially different residual risk if one is already partially mitigated.#
Options
Show answer
True. DREAD's five dimensions — Damage Potential, Reproducibility, Exploitability, Affected Users, and Discoverability — measure inherent threat characteristics without factoring in existing compensating or mitigating controls. Two vulnerabilities with identical DREAD scores can therefore have very different residual risk if one is already partially mitigated, which is a primary reason many teams supplement or replace DREAD with frameworks like CVSS that include temporal and environmental modifiers.
DREAD's five dimensions — Damage Potential, Reproducibility, Exploitability, Affected Users, and Discoverability — are each scored independently and summed, but none of them captures whether existing controls (e.g., network segmentation, input validation, rate limiting) partially or fully mitigate the threat. This means DREAD produces a gross-risk rating: a SQL injection behind a Web Application Firewall and the same injection with no mitigation could receive identical DREAD scores despite very different residual risk. This gap is one of the principal reasons organizations supplement or replace DREAD with models like CVSS, which includes separate temporal and environmental metrics that can reflect mitigating factors.
Threat Modeling/modeling-artifacts/attack-trees
You are the security architect for a SaaS company that uses GitHub Actions for CI/CD, pulling dependencies from npm and a private artifact registry. Design an attack tree rooted at "Malicious code runs in production." Your deliverable must include: (1) the full attack-tree structure with at least three levels of decomposition, (2) an explicit statement of AND vs. OR semantics at each node and why that connective is correct, (3) at least one multi-step AND node that captures a causal dependency chain, and (4) a prioritized list of three concrete mitigations where the priority order is justified by the tree's structure (not by generic best practice).#
Show answer
Root: "Malicious code runs in production"
Level 1 (OR — any single branch suffices):
- A: Compromise a build-time dependency
- B: Compromise CI/CD pipeline execution
- C: Compromise a developer's push/merge capability
Level 2:
A (OR):
- A1: Compromise an npm package via typosquatting or maintainer account takeover
- A2: Overwrite a package in the private registry (AND: A2a = obtain registry deploy token, A2b = registry permits overwriting existing package versions)
B (OR):
- B1: Compromise a self-hosted GitHub Actions runner (AND: B1a = exploit container escape on runner, B1b = runner holds production deploy key in secrets)
- B2: Inject code via pull_request_target workflow (AND: B2a = open a PR, B2b = workflow exposes secrets in the pull-request context)
C (AND — both required):
- C1: Obtain developer GitHub credentials (OR: C1a = phishing, C1b = leaked PAT in a public repo)
- C2: Branch protection allows the compromised identity to merge (AND: C2a = identity has admin or maintain role, C2b = no required review enforcement or admin override exists)
AND/OR justification:
- The root and branches A, B, and C are OR: any single path is sufficient to get malicious code into production.
- A2 is AND: both token theft AND a lack of immutability are required for a registry overwrite — either alone is harmless.
- B1 is AND: a container escape alone is useless unless the runner also holds production secrets.
- B2 is AND: opening a PR alone does nothing unless the workflow exposes secrets in the PR context.
- C is AND: stolen credentials are insufficient if branch protection blocks the merge; both credential compromise and a protection gap are necessary.
- C1 is OR: phishing or a leaked PAT each independently yields usable developer credentials — the attacker only needs one successful vector.
- C2 is AND: the compromised identity must both have the required role AND the protection must be bypassable — either alone blocks the path.
Prioritized mitigations (justified by tree structure):
- Pin dependency versions + enable npm provenance (Sigstore verification): This eliminates A1, a zero-depth OR leaf — the easiest single-step path with no prerequisites. Cutting the cheapest OR leaf first maximizes attacker-cost increase per defender effort.
- Enforce OIDC short-lived tokens with strict subject claims and remove pull_request_target secret exposure: This breaks the AND at B2b, disabling the entire B2 branch by making one required child unsatisfiable. Breaking an AND chain by hardening one child is more efficient than hardening both.
- Enforce required reviews with no admin override + replace PATs with short-lived OAuth tokens: This breaks C's AND structure by making C2b unsatisfiable and raising C1's cost. This is ranked last because C already has the highest attacker cost (two-step AND + sub-AND), so the marginal risk reduction per dollar is lower than cutting A1 or breaking B2.
The priority order follows directly from the tree: A1 is a single-step leaf with no AND gate (trivially achievable), B2 is a two-step AND breakable by hardening one child, and C is a multi-step AND with a sub-AND gate (highest attacker cost already). Fund the cheapest-attacker-path cut first.
This is a staff-level design exercise requiring the candidate to construct a correct attack tree with proper AND/OR semantics, demonstrate multi-step causal reasoning, and derive mitigation priorities from the tree structure itself rather than from generic checklists. The sample answer now provides a one-sentence justification for every non-leaf node, including C1's OR connective.
Threat Modeling/modeling-artifacts/attack-trees
You are designing the threat model for an HSM-backed key management service (KMS) that issues short-lived signing certificates to microservices. The team already has a data-flow diagram (DFD) and a STRIDE pass. Your CISO wants you to produce an attack tree rooted at "Attacker forges a valid service certificate." Your deliverable must include: (1) an attack tree with at least three levels of decomposition using correct AND/OR semantics, with leaf nodes reflecting HSM- and KMS-specific attack vectors, (2) a specific explanation of what the attack tree reveals that the existing STRIDE/DFD artifacts do not, (3) two concrete scenarios where an attack tree would be the wrong modeling artifact and a different model would be better — with justification for why the attack tree fails in each, and (4) identification of at least one inherent limitation of attack trees as a modeling artifact.#
Show answer
Root: "Attacker forges a valid service certificate"
Level 1 (OR):
- A: Compromise the CA signing key
- B: Obtain a legitimate certificate issuance from the KMS
- C: Forge a signature without the key (cryptographic attack)
Level 2:
A (OR):
- A1: Side-channel attack on the HSM to extract the CA private key
- A2: Exploit HSM firmware vulnerability to dump key material
- A3: Compromise HSM admin credentials (AND: A3a = obtain HSM admin PIN, A3b = HSM configuration allows key export with admin auth)
B (OR):
- B1: Compromise a microservice identity to request a cert (AND: B1a = steal the service's mTLS client certificate, B1b = KMS does not bind cert issuance to hardware workload attestation)
- B2: Exploit KMS API authorization bug (AND: B2a = reach the KMS API endpoint, B2b = authorization logic has a confused-deputy flaw allowing cross-tenant cert requests)
C (OR):
- C1: Find ECDSA nonce reuse enabling private-key recovery
- C2: Exploit a weak hash algorithm in the certificate signature
What the attack tree reveals that STRIDE/DFD does not:
The DFD shows the KMS receiving cert requests from microservices and returning certificates. STRIDE would label this data flow as subject to Spoofing (microservice impersonation) and Elevation of Privilege (authorization bypass). However, STRIDE is enumerative per element — it lists threat categories independently and does not compose multi-step causal chains. The attack tree's AND node A3 reveals that key compromise requires BOTH an admin credential AND an export-enabling configuration — two conditions that STRIDE would flag as separate threats on two separate elements (credential theft = Information Disclosure on the admin; export config = Elevation of Privilege on the HSM) without showing that neither alone is sufficient. Similarly, AND node B1 reveals that stealing a microservice's mTLS cert is necessary but insufficient unless the KMS also lacks workload attestation — a combined precondition that STRIDE treats as two independent findings.
Scenarios where attack trees are the wrong artifact:
-
Modeling lateral movement after initial compromise: If an attacker has a foothold in one microservice, mapping all possible pivot paths requires a graph of network adjacency and trust relationships. Attack trees have a tree structure — no shared subtrees, no cycles — and cannot represent the combinatorial explosion of reachable targets where the same intermediate node is reachable via multiple paths and can itself be a stepping stone back to a previous node. A network reachability graph or attack graph (DAG) is the correct artifact.
-
Modeling supply-chain trust where a shared container base image is consumed by multiple microservices: If a vulnerability in the base image affects every service that derives from it, the correct model is a dependency graph (DAG) where a single shared node fans out to multiple consumers. Attack trees are trees — each node has exactly one parent — so they cannot represent a shared dependency that simultaneously enables multiple attack paths. A software supply-chain dependency graph (or SBOM-based DAG) is the correct artifact.
Inherent limitation of attack trees:
Attack trees model attacker capability paths but do not naturally represent defender detection and response. The tree says nothing about whether any internal node is observable by a SIEM, whether a detection rule can fire on a partial AND chain before the attacker completes the second step, or whether an automated response can interrupt the chain. Additionally, attack trees typically assume independent leaf probabilities, ignoring correlated failures — for example, if the same HSM firmware bug (A2) also weakens the side-channel resistance that A1 relies on, multiplying their independent probabilities understates the combined risk. To capture detection coverage you must augment with defense nodes (attack-defense trees) or overlay detection coverage as a separate mapping exercise.
This exercise tests staff-level artifact literacy: the candidate must construct a correct attack tree for a complex HSM/KMS system, articulate the precise epistemic difference between attack trees and STRIDE/DFD, and recognize the boundary conditions where attack trees fail as a modeling artifact. The rubric separates scenario-based wrong-artifact reasoning (c3) from artifact-level structural limitations (c4) to prevent a single temporal argument from earning double credit.
Threat Modeling/modeling-artifacts/trust-boundaries
A security architect is reviewing a threat model for a distributed system and making claims about trust boundaries. Which of the following statements about trust boundaries are correct?#
Options
Pick every one that applies.
Show answer
Trust boundaries mark where data or control passes between entities at different trust levels — they are not defined by security controls or network topology, and they can exist even within a single process (e.g., between untrusted input parsing and privileged code). When data flows from a lower-trust to a higher-trust entity, the higher-trust side must validate it. Mutual TLS authenticates callers but does not eliminate trust boundaries, since authenticated services can still send malicious data.
A is correct because trust boundaries are defined by differences in trust level between entities, not by the presence of security controls — a control may be deployed at a boundary, but the boundary exists because trust levels differ. B is incorrect because mTLS authenticates the identity of callers but does not eliminate the trust boundary: an authenticated service can still send malicious or malformed data, and a compromised service possesses valid mTLS credentials, so data crossing between services must still be validated. C is correct because trust boundaries are not limited to inter-process or inter-network crossings; a well-known example is the boundary between an input parser processing untrusted data and a privileged operation within the same process. D is incorrect because trust boundaries are about trust levels, not network topology — an in-process trust boundary (as in C) has no network control, and a firewall between two subnets at the same trust level is not a trust boundary. E is correct because the fundamental principle of trust boundary modeling is that when data flows from a lower-trust to a higher-trust entity, the higher-trust entity must not assume the data is safe and must validate it before processing.
Related interview questions
The other 71 questions
This page shows 25. A free account opens the rest and marks your answers, which a page of answers can't do. Miss one and it returns a few days later, then a week after that, until you stop missing it.
Free · the whole bank · 100 graded answers per 30 days · written feedback and job-ad quizzes on the paid plan