Safeguard
Security Guides•

How often should you update a threat model?

Update a threat model when the design changes, not on a fixed calendar alone. Triggers, a light review rhythm and how to spot a stale model.

Safeguard Security Team
3 min read

Update a threat model whenever the design changes in a way that moves data, trust boundaries or who can act, and review it lightly on a regular rhythm even if nothing obvious changed. Guidance from OWASP and Microsoft treats it as living work, refined along with the system, not a one time document.

What the sources say

The OWASP Threat Modeling Cheat Sheet says a model should be maintained, updated and refined alongside the system, and integrated into normal SDLC processes. Microsoft's SDL page says threat modeling should be part of the routine development lifecycle, with the model refined progressively. The Threat Modeling Manifesto values continuous refinement over a single delivery and says to update the model in small, manageable iterations.

None of them gives a fixed number of months. That is deliberate: the right trigger is change.

Triggers that should reopen the model

  • A new external integration or a new user type
  • A new data store, or new kinds of data in an existing one
  • A change to authentication, authorization or session handling
  • A new trust boundary, such as moving a component to another network or account
  • A new way of deploying, such as adding a queue or a third party service
  • A security incident or near miss that the model did not predict

A light rhythm on top

CadenceWhat to doTime
Per changeAsk "does this touch the diagram?" in design reviewMinutes
Quarterly, as a suggestionSkim the model, close finished items, check owners30 minutes
After an incidentAdd what the model missed and whyOne session

The quarterly figure is a practical suggestion, not a requirement from any source. Pick a rhythm your team will keep.

How to spot a stale model

  1. The diagram shows components that no longer exist, or misses ones that do.
  2. Threats are marked non-mitigated but have no ticket or owner.
  3. Accepted risks have no date to look again.
  4. Nobody on the current team has opened it.

Tools can help. The pytm framework, for example, has a staleness check that shows how far a model has drifted from the code it describes. See what pytm does.

Make updating cheap

Keep the model in the repository, ask the diagram question in pull request templates, and update only the part that changed. Small edits that happen beat large rewrites that never do.

Quick check

Is an annual review enough?

Not by itself. The sources tie updates to change in the system. A yearly review can sit on top of change driven updates but should not replace them.

Do I redo the whole model each time?

No. Update the affected part. Small iterations are what the manifesto recommends.

A note on tooling

Safeguard watches the other side of change: continuous dependency scanning, SBOMs and policy gates flag new risk as code changes. A free scan shows the current state of a repository.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.