Threat modeling vs penetration testing

Threat modeling examines a design for what can go wrong before it is built, while penetration testing attacks the implemented system. This page shows when each fits, what each misses, and how a threat model sharpens a later test.

On this page

Threat modeling vs penetration testing: which one your team needs first

Choose threat modeling first when the design is still open, and penetration testing first when a built system is about to ship. Threat modeling analyzes a design for what can go wrong before anything is built. Penetration testing attacks the implemented system to show which weaknesses an attacker can actually exploit. The two answer different questions at different points in the life cycle, so the choice depends on what exists today. The OWASP Threat Modeling Cheat Sheet describes threat modeling as a structured, repeatable process, ideally run early during design and maintained over time, built around four questions: what are we working on, what can go wrong, what are we going to do about it, and did we do a good enough job. Start with threat modeling when a new system, a major architecture decision or a new trust boundary is being designed, such as a new API between a customer portal and a core ledger or a new identity flow. Changes at this stage are cheap, and a model can show where data crosses boundaries and where controls must sit before code exists. Choose penetration testing when a system is implemented or near release and you need exploit-level evidence that a control works. Penetration testing uses real exploits, which NIST SP 800-115 notes carries higher risk than review techniques, so confirm rules of engagement and the environment in writing before any test begins.

For most teams the strongest sequence is both. NIST SSDF task PW.1.1 calls for risk modeling such as threat modeling to help assess security risk, and NIST SA-11(2) guidance warns that systems may deviate significantly from their design, so the model should be updated during development and before delivery. Those updates are what make a later penetration test sharper: each threat the model names becomes a test objective, and each trust boundary becomes a scope item. OWASP's WSTG notes that good threat models do not automatically mean good software, so the model is an input to testing, not a substitute for it. Ask your provider how the threat model will set scope, which assets and abuse cases will be tested, and what evidence will show each threat was addressed. If you must pick one before release, pick the one that matches your gap. A team with no design review yet should model threats first. A team with a stable design and no exploit evidence should test first, then feed the findings back into the model. Confirm with any vendor or assessor exactly which threat modeling method and penetration testing standard they will apply, since NIST does not endorse one methodology over another.

How threat modeling and penetration testing compare on the factors buyers weigh

This table sets threat modeling against penetration testing on the factors that drive scope, staffing and evidence. Read each row as a question a buyer should ask before choosing one, or sequencing both. The main takeaway is that threat modeling examines what could go wrong in a design, while penetration testing proves which weaknesses are exploitable in a built system.

FactorThreat modelingPenetration testing
Primary goalIdentify threats and decide countermeasures before or during design, following the OWASP Threat Modeling Cheat Sheet's four questions: what we are working on, what can go wrong, what we will do about it, and whether the work was good enoughValidate whether weaknesses in an implemented system can be exploited, following PTES and the OWASP WSTG testing techniques
Life-cycle timingEarly in design and maintained over time, which SSDF task PW.1.1 supports as a form of risk modelingAfter a build exists, typically before release or on a schedule, as NIST SP 800-115 suggests interspersing with regular scanning
InputsArchitecture diagrams, data flows, trust boundaries, requirements and known adversary profilesA defined target, rules of engagement, authorized access levels and, under PTES, intelligence gathering and threat modeling of the tested organization
OutputsThreat list, mitigations, design changes and assumptions to verify laterValidated findings with proof of exploitation, severity context and remediation guidance
Method at a buyer levelStructured workshops or documented analysis of the design, repeated when the design changesHands-on testing of the running system, which PCI SSC describes as essentially a manual process supported by tools
Who performs itArchitects, developers and security staff with access to design decisions, sometimes facilitated by an outside partyIndependent testers with the skills and authorization to attack, ideally separate from the build team
Risk to live systemsNone, because no system is touchedReal exploits against production or staging systems and data, which NIST SP 800-115 classes as high risk and requires to be governed by rules of engagement
Expected SA-11(2) and PW.1.1 roleSupports SA-11(2) by updating threat models during development and before delivery, since systems may deviate from designSupports SA-11 penetration testing and the verification of threat model assumptions after the build exists
What it missesImplementation bugs, configuration drift and flaws that the design never anticipatedFlaws in parts of the system outside the agreed scope, and design weaknesses that are not reachable in the tested window

Why timing decides which approach finds the flaw cheaply

A threat model finds design flaws while they are still cheap to change, and a penetration test finds implementation flaws once something exists to attack. The OWASP Threat Modeling Cheat Sheet describes threat modeling as a structured, repeatable process, ideally performed early in the life cycle during design and then maintained over time. It is built around four questions: what are we working on, what can go wrong, what are we going to do about it, and did we do a good enough job. Answering the second question before the architecture hardens is the cheapest moment to discover that an admin role can reach a payment service directly or that a message queue carries unauthenticated commands. The OWASP Web Security Testing Guide v4.2 (released 3 December 2020) makes the same point at the program level: no single technique is enough, and the recommended mix puts more weight on the early development phases.

Designs do not stay put. NIST SA-11(2) guidance warns that systems may deviate significantly from their design specifications, so updating threat modeling and vulnerability analyses during development and before delivery is critical. For a team, that means the threat model is a living artifact with an owner and a trigger list: a new external integration, a change to authentication, a new data store holding regulated records, or a move to a different hosting zone. Each trigger should force a review of the model before the change ships. Ask your engineering leads which changes currently require a threat model update, who signs off on it, and where the model is stored so a later penetration test tester can read it. If the answer is that nobody updates it after the first release, the model will describe a system that no longer exists, and the penetration test will be the first place the drift shows up.

What threat modeling finds and misses, and what penetration testing finds and misses

Threat modeling and penetration testing look at different objects at different times. The cards below set out what each one surfaces, what it leaves untouched, and how the gaps in one can be covered by the other.

Design-level risks before code exists

Threat modeling examines a design for trust boundary errors, missing controls and abuse paths before a single line is written. It is most useful while changes are still cheap, during architecture review or a new feature's design. Check that the model names each data flow that crosses a trust boundary, and that every identified threat has a recorded decision: mitigate, accept, transfer or avoid.

Implementation defects the model cannot see

A threat model describes what the design intends, so it does not catch a parser that trusts a header or a query built by string concatenation. Those defects need code review, SAST or a test against the running build. Ask whether the model's mitigations are traced to specific code paths, and whether someone verifies that each mitigation was actually built.

Configuration drift after release

Systems often deviate from their design specifications during development and operation, which is why NIST SA-11(2) calls for updating threat models and vulnerability analyses before delivery. A design approved last year may not describe a firewall rule added since. Penetration testing and configuration reviews catch this drift, while the threat model stays silent unless someone revisits it.

Exploitable weaknesses in the running system

Penetration testing uses real exploits against the deployed system, so it shows which weaknesses an attacker can actually chain into access. NIST SP 800-115 describes this as high risk to production, which is why scope, rules of engagement and a staging copy need agreement in writing. Ask the tester to report the attack path, not only the individual finding.

Design flaws the tested paths never reach

A penetration test explores the paths its scope and time allow. A flaw in an administrative workflow, a rarely used batch job or a trust relationship between two internal services may never be exercised. Testers can only sample, so a clean report does not prove the design is sound. Ask which features and roles were excluded and why.

Good models do not guarantee good software

OWASP's Web Security Testing Guide states that good threat models do not automatically mean good software. A model is only as useful as the follow-through on its mitigations and the tests that verify them. Pair each high-priority threat with a named check, either a test case, a code review item or a monitoring rule, and review the model after significant design changes.

When frameworks call for threat modeling, penetration testing or both

NIST SP 800-218 practice PW.1.1 asks teams to use some form of risk modeling, such as threat modeling, attack modeling or attack surface mapping, to help assess the security risk of software. SA-11 in SP 800-53 Rev. 5 covers developer testing and evaluation, and its enhancements name threat modeling, vulnerability analyses and penetration testing as separate activities. The SA-11(2) guidance states that systems may deviate significantly from their design specifications, so updating threat modeling and vulnerability analyses during development and before delivery is critical.

  • Design-stage input: PW.1.1 names several forms of risk modeling, so confirm with your assessor whether an attack surface map satisfies the expectation when a full threat model is not feasible.
  • Refresh before delivery: SA-11(2) places the emphasis on updating the model during development and again before the system ships.
  • Penetration testing is its own activity: SA-11 lists penetration testing as a developer testing enhancement, so a pentest does not replace the design-stage model.
  • Who performs the work: SA-11 is written for the developer, so confirm whether the developer or an independent party runs each activity under your contract.

Confirm with your authorizing official or assessor which SA-11 enhancements your system baseline selects, because selection depends on your categorization and tailoring decisions.

How threat model outputs make a penetration test more useful

A threat model is worth the most to a penetration test when its outputs are handed over as test inputs rather than filed as a design document. The abuse cases, data flows, trust boundaries and asset list each map to something a tester can act on. An abuse case such as a customer reading another customer's invoices becomes a named test objective. A data flow that crosses from the public API gateway into the billing service identifies the components that belong in scope. A trust boundary marks where a tester should check that authorization is enforced, not assumed. Assets tell the team which data stores and administrative functions deserve the most attention.

The threat model also decides which roles the tester needs. If the model lists a standard customer, a support agent and a tenant administrator as distinct actors, the engagement should request authenticated accounts for each, with the access those roles really have. Ask the test provider to confirm in writing which of the model's abuse cases become objectives, which are covered by other activities such as code review, and which are out of scope. Keep the threat model version and date in the statement of work so findings can be traced back to the assumptions they tested.

PTES places threat modeling as its own section after intelligence gathering, so a provider following that standard should already be building a model of the tested organization before attacks begin. Ask whether your model will be used as an input or whether the provider will build a separate one. NIST SP 800-115 notes that organizations often combine techniques to reach an in-depth assessment at an acceptable level of risk. In practice, a design model with a few abuse cases marked for live testing, paired with code review for the authorization logic, usually gives better coverage than a broad test that starts from nothing.

What you receive from each engagement

This table sets the typical outputs of a threat modeling exercise beside those of a penetration test, so you can see what lands on your desk and what you can act on. Read each row as a question to put to a provider, and confirm exact report contents and formats in the written scope before work starts.

DeliverableThreat modelingPenetration testing
Starting documentScope of the design reviewed, system diagram and assumptions agreed with the design ownersScoping and rules of engagement covering targets, testing windows, permitted techniques and emergency contacts
Core visualDiagrams and data flow views showing trust boundaries, data stores and external entitiesTest narrative describing the attack path the tester followed, with the systems touched at each step
Main outputThreat register listing each threat, affected component, planned mitigation and named ownerValidated findings, each with the evidence captured during exploitation or verification
ReproducibilityAssumptions and open questions recorded so the design team can revisit themReproduction steps that let your team or a retester confirm each finding
Follow-upUpdates to the register as the design changes, and validation that mitigations were builtRetest notes showing which findings are closed, still open or accepted as risk
Who acts on itArchitects and developers, who change the design or add controls before buildSystem owners and remediation teams, who fix the deployed system and track the changes
Success checkValidation criteria stating how the team will confirm each mitigation worksSeverity and business impact assigned to each validated finding, with the basis for the rating stated
Confirm before signingRequired template, register format, diagram tool and whether a sign-off step is includedReport template, severity method, evidence handling, data retention and whether retesting is included

What drives cost and effort for each approach

Threat modeling cost follows the design work it requires, while penetration testing cost follows how much of the system a tester must reach and how deeply. Read each card as a question to put to a provider or internal team before you accept a quote.

System complexity drives threat model effort

A threat model for a single service with one data store takes far less analysis than one covering dozens of components, third-party integrations and batch jobs. Effort is mostly skilled time spent diagramming data flows and enumerating threats for each element. Ask whether the quote includes a data flow diagram review, which components are in scope, and whether the output is a model a development team can update.

Trust boundaries multiply analysis

Each trust boundary, such as internet to load balancer, service to database or tenant to tenant, creates places where authentication, authorization or data validation can fail. More boundaries mean more threats to record and more mitigations to decide on. Ask how many boundaries the quote assumes and whether each one gets a documented threat and an owner.

Architect and product owner time

Threat modeling depends on people who know the design, including architects, product owners and the engineers who will build the feature. When these people are scarce, sessions run longer or the model reflects assumptions instead of the actual design. Confirm who from your side must attend, how many sessions are planned, and who signs off the final model.

Maintenance keeps the model current

A threat model is only useful while it matches the system. NIST SA-11(2) guidance notes that systems may deviate significantly from their design specifications, so updating the model during development and before delivery is critical. Recurring cost comes from design changes, so ask whether maintenance is included in the quote or sold as a separate retainer.

Target count and access depth

Penetration testing effort scales with the number of hosts, applications and APIs in scope and with how deeply each is exercised. Production access carries higher risk and usually more coordination than staging, which affects scheduling and rules of engagement. NIST SP 800-115 provides a rules of engagement template in Appendix B, so ask whether the quote covers agreed windows, escalation contacts and stop conditions.

Authenticated roles and manual depth

Each user role a tester must log in as adds setup, test cases and access control checks. PCI SSC's Penetration Testing Guidance says penetration testing is essentially a manual process and that simply running an automated tool does not satisfy the requirement, so manual hours are a real cost driver. Ask how many roles are covered, what share of the work is manual and how automated scanning is billed separately.

Questions buyers ask before hiring help for threat modeling or penetration testing

Does a threat model replace a penetration test?

No. A threat model and a penetration test answer different questions, so one does not stand in for the other. A threat model analyzes a design before it is built to ask what can go wrong, while a penetration test attacks the implemented system to see what an attacker can actually exploit. The OWASP Web Security Testing Guide v4.2 makes the point that no single technique is enough and recommends a mix. NIST SP 800-115 similarly notes that organizations often combine techniques to reach an in-depth assessment at an acceptable level of risk. Ask a provider to explain how each activity feeds the other in your scope, not which one you can skip.

How much effort does threat modeling need from my team?

The effort depends on how many people must join the sessions and how much design material already exists. Threat modeling works best with the people who know the architecture, so expect engineering leads and the security owner to take part in the working sessions. The team should provide architecture diagrams, data flow descriptions, trust boundaries, authentication and authorization designs, and a list of external dependencies. The OWASP Threat Modeling Cheat Sheet frames the work around four questions: what are we working on, what can go wrong, what are we going to do about it, and did we do a good enough job. Ask the provider which artifacts they need before the first session and who must attend each one.

How long does a threat model or penetration test take?

No fixed duration applies to every engagement, so treat any single number you see as a claim to verify. Duration depends on the size and complexity of the system, the number of trust boundaries and integrations, how many test environments exist, the access granted to testers, and how quickly your team answers questions and fixes blockers. A threat model usually runs in parallel with design work and is revisited as the design changes. A penetration test has a defined testing window plus time for reporting and retesting. NIST SP 800-115 describes the assessment as a planned technical activity, so ask for a written schedule with milestones in the scope document.

Can my team run threat modeling itself with the OWASP cheat sheet?

Yes, a capable internal team can start threat modeling using the OWASP Threat Modeling Cheat Sheet, which describes the process as structured, repeatable and best done early in design. The practical limits are experience and consistency. Teams new to the method often miss attacker perspectives, skip trust boundary analysis, or fail to record decisions in a way that can be revisited. OWASP WSTG v4.2 lists a practical attacker view and early use in the life cycle as advantages, but also notes that a good threat model does not automatically mean good software. Many organizations run the first few models with an outside facilitator and then move the method in-house, which you can confirm as an option in your own scope.

What does the work need from engineering and security staff?

Engineering provides knowledge of the design and the ability to change it, and security provides the risk framing and the decision authority. Both groups have a role in each phase. Engineers explain how components talk to each other, where data is stored, and what changed since the last design review. Security staff confirm the risk tolerance, the compliance obligations and the findings that must be tracked to closure. NIST SP 800-218 task PW.1.1 treats risk modeling, including threat modeling, as a way to assess software security risk, so the output should feed into engineering backlogs. Name one owner on each side before work starts.

Should we threat model before a penetration test?

A threat model is useful before a penetration test because it sharpens what the tester should attack. The PTES main page places threat modeling after intelligence gathering and treats it as a way for testers to model threats to the tested organization, so the testing phase has clearer targets. A threat model also surfaces trust boundaries and assumptions that a test should check. It does not require a complete design document, but a test scoped without any threat analysis tends to rely on generic checklists. If the system is already built and no model exists, the tester can build a lightweight one as part of the engagement, which you should confirm in the statement of work.

What should I ask for in a fixed-scope quote?

Ask for a written scope that names the systems, environments, trust boundaries, access levels and deliverables before any work starts. DeployOpen agrees scope, deliverables and timelines in writing for most engagements and does not publish a price list, so a quote follows from that document. Ask the provider to list what is one-time, such as the threat model workshops or the initial test, and what recurs, such as retesting or periodic model updates. Ask what drives cost up, including the number of components, the depth of source access, and the number of retest rounds. Also confirm the rules of engagement, the reporting format, who does the work, and what your team must supply in writing.

Who pays for what in a threat model plus pentest engagement?

In a fixed-scope engagement, you pay the provider for the defined work, and your internal staff time is a separate cost that rarely appears on the quote. Provider costs cover facilitation, analysis, testing time, reporting and any retesting in the agreed scope. Your costs include engineer hours in workshops, environment access, test accounts, change freezes and remediation. Combining the two activities can reduce duplicated scoping and knowledge transfer, but only if the same team or a coordinated handoff is planned. Ask the provider to split the quote into the threat modeling and testing phases so you can see which work recurs and which is one-time.

How DeployOpen scopes threat modeling and penetration testing work

DeployOpen plans and runs security testing inside your own infrastructure, whether that is your cloud accounts, data centers or air-gapped networks, so threat models, test traffic and findings stay under your control. Most engagements are fixed-scope, with the scope, deliverables and timelines agreed in writing before any work starts. For a threat model followed by a penetration test, that written scope should name the design artifacts the threat model will cover, the components the test will attack, the accounts and roles the testers will hold, and the rules of engagement that govern production access. Ask for those items explicitly in any quote so that the threat model and the test can be checked against each other.

Ongoing work is handled through retainers, which cover continuing support, upgrades and continuous testing. A retainer is the natural fit when the design keeps changing, because threat models need to be updated as systems drift from their original specifications, a point NIST SA-11(2) makes directly. Confirm with us how a retainer defines the trigger for a threat model refresh, how new findings feed back into the next test scope, and who in your organization approves changes to scope during the term.

DeployOpen prepares systems, controls and evidence for compliance assessments, including the threat models, test records and remediation trails that an assessor will ask to see. DeployOpen does not issue audit reports, attestations or certifications. Those come from independent auditors and certification bodies, so ask your assessor early which artifacts they will accept and in what format. Before signing, confirm the scope, the deliverables, the evidence formats and the timing in writing, and ask for a quote that follows directly from that written scope.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.