STRIDE Threat Model

Back to glossary

What is STRIDE threat model?

The STRIDE threat model is a structured framework used to identify, categorize, and analyze potential security threats in software systems. It was created at Microsoft to help teams think about threats in a consistent way, especially during design and early architecture reviews. 

STRIDE gives security and engineering teams a shared vocabulary so they can spot issues before code is shipped, not after an incident.

STRIDE is an acronym for six common threat categories: 

  • Spoofing
  • Tampering
  • Repudiation
  • Information disclosure
  • Denial of service
  • Elevation of privilege 

By mapping system components to these categories, teams can determine which attacks are possible, which controls are missing, and where more testing is required.

In practical terms, STRIDE is used in STRIDE threat modeling sessions to walk through data flows, APIs, services, and identities, and to document risks in a way developers can actually fix. It is especially useful in environments where multiple teams contribute to the same product and a predictable, reusable threat modeling process is needed.

Understanding the six STRIDE categories

Each STRIDE category maps to a specific type of attack or abuse. Explaining them clearly is essential, since this is what teams will reference during design reviews.

Spoofing

An attacker pretends to be someone or something else. This targets identity and authentication.

Example: logging in as another user without valid credentials. 

Mitigations usually include strong authentication, MFA, signed tokens, and identity verification.

Tampering

An attacker modifies data in transit or at rest. This targets integrity. 

Example: altering a configuration file or changing parameters in an API request. 

Mitigations include encryption, signing, integrity checks, and secure update pipelines.

Repudiation

An attacker performs an action and then denies doing it. This targets accountability. 

Example: deleting records but leaving no audit trail. 

Mitigations include tamper-resistant logs, non-repudiation controls, and centralized auditing.

Information disclosure

An attacker gains access to data they should not see. This targets confidentiality. 

Example: exposing customer data through verbose error messages. 

Mitigations include access controls, encryption, data classification, and data minimization.

Denial of service

An attacker makes a service unavailable or degrades performance. 

Example: flooding an API with traffic or exhausting compute resources. 

Mitigations include rate limiting, resource quotas, and resilient architectures.

Elevation of privilege

An attacker gains higher privileges than intended. This is often the most critical category

Example: moving from a basic user role to an admin role through a weak control. 

Mitigations include least privilege, role-based access control, and secure-by-default configurations.

This structure is what makes the STRIDE framework so effective. Teams do not have to invent threats from scratch. They walk every component through these six lenses and record where controls are missing.

How to apply STRIDE in software threat modeling exercises

Using STRIDE is most powerful when it is tied to real system design. A typical threat modeling STRIDE exercise follows a sequence like this:

  1. Define the scope: Select the application, service, or feature under review. Include data stores, APIs, third-party services, and identities.
  2. Build or review a DFD (Data Flow Diagram): Map processes, data flows, trust boundaries, and external entities. STRIDE works best when you can see how data moves.
  3. Walk each element through STRIDE: For every process, data flow, or store, ask six questions: can this be spoofed, tampered with, repudiated, exposed, denied, or escalated? Capture each finding.
  4. Document threats and map to controls: Record the threat, the affected component, the potential impact, and the recommended control. Where a control exists, confirm it is enforced.
  5. Prioritize for remediation: In production environments, you will get more threats than you can fix. Prioritize by business impact, exposure, and ease of exploitation.
  6. Feed outcomes back into SDLC: Turn the findings into tickets or policies so developers can act. Reuse the same STRIDE checklist for future features.

This makes STRIDE useful not just for security teams, but for architects, DevOps, and platform engineering. In STRIDE cybersecurity programs, teams also pair STRIDE with testing, so that threats identified in design are validated later with SAST, DAST, or runtime checks.

Limitations and criticisms of the STRIDE framework

STRIDE is widely adopted, but it has known limitations that teams should account for. These include:

  • It is application-centric: STRIDE was designed around applications and data flows. For complex supply chains or ML/AI systems, you may need complementary models.
  • It depends on good diagrams: If the system is not properly mapped, STRIDE will miss threats. Incomplete DFDs lead to incomplete coverage.
  • It does not model attacker motivation: STRIDE tells you what can go wrong, not who will do it or why. That can make prioritization harder in large enterprises.
  • It can be time-consuming: Large services with many microservices will generate many findings. Teams must balance depth with delivery schedules.
  • It does not directly score risk: STRIDE names threats, but you still need a risk model (likelihood, impact, exposure) to decide what to fix first.

A mature program combines STRIDE with context from architecture, runtime, or code analysis so that threats tied to sensitive data, production services, or internet exposure are handled first.

Modern adaptations and combining STRIDE with other models

Modern environments use STRIDE alongside other approaches to get fuller coverage.

  • STRIDE + DFD + RACI: Helps identify threats and also who owns each control.
  • STRIDE + PASTA or LINDDUN: Useful when privacy, business impact, or attacker intent must be modeled more deeply.
  • STRIDE + CI/CD checks: Findings from STRIDE can trigger automated checks in pipelines, so risky design patterns are flagged early.
  • STRIDE + cloud mapping: Applying STRIDE to cloud control planes, identities, and network paths reveals misconfigurations that static reviews miss.
  • STRIDE + AI/agentic reviews: As AI services call tools and APIs, STRIDE can still be used to ask if an AI agent can be spoofed, if its outputs can be tampered with, or if its logs can leak information.

Teams that adopt STRIDE this way get repeatability. New services, new APIs, or new integrations are run through the same six questions. This consistency is what auditors, platform teams, and product security groups want.

Frequently asked questions

When should teams choose STRIDE over other threat modeling techniques?

Use STRIDE when you need a simple, repeatable method that developers can learn quickly and apply to many services.

How does STRIDE handle threats from third-party components or dependencies?

Treat each third-party service as an external entity in the diagram and run all six STRIDE categories against the data it sends or receives.

Can STRIDE be automated or integrated into CI/CD pipelines?

Yes. You can codify STRIDE findings into policies so that certain design patterns or missing controls block a build or trigger review.

How do you validate that STRIDE threat scenarios are relevant?

Tie every scenario to a real asset, user, or data flow. If it cannot affect something valuable, downgrade or archive it.

What metrics or outputs are most useful after a STRIDE session?

Track the number of threats found, threats mitigated, controls added, and time to remediation. Trend these per product to show maturity.

Back to glossary
See Apiiro in action
Meet with our team of application security experts and learn how Apiiro is transforming the way modern applications and software supply chains are secured. Supporting the world’s brightest application security and development teams: