STRIDE is a threat-modeling framework used to systematically identify security threats in an application, API, or cloud architecture. Each letter represents a type of threat and the security property it can violate.
| Threat | Meaning | Example | Typical controls |
|---|---|---|---|
| S — Spoofing | Pretending to be another user, service, or system | An attacker uses a stolen OAuth token to impersonate a user | MFA, strong authentication, token validation, certificate-based identity |
| T — Tampering | Unauthorized modification of data or code | Changing an API request, database record, or message in transit | TLS, digital signatures, integrity checks, authorization, immutable logs |
| R — Repudiation | Denying an action when there is insufficient evidence to prove who performed it | A user denies approving a financial transaction | Centralized audit logs, timestamps, correlation IDs, signed events |
| I — Information Disclosure | Exposing information to an unauthorized party | An API returns another tenant’s customer records | Encryption, access control, tenant isolation, data masking, least privilege |
| D — Denial of Service | Making a system or resource unavailable | Flooding an API until legitimate requests fail | Rate limiting, WAF, autoscaling, caching, DDoS protection, circuit breakers |
| E — Elevation of Privilege | Gaining permissions beyond those authorized | A normal user accesses an admin endpoint by changing a role claim | RBAC/ABAC, server-side authorization, least privilege, privilege separation |
Security-property mapping
A useful way to remember the model is:
- Spoofing → Authentication
- Tampering → Integrity
- Repudiation → Non-repudiation
- Information disclosure → Confidentiality
- Denial of service → Availability
- Elevation of privilege → Authorization
Example: API threat model
For a multi-tenant API:
- Spoofing: a forged or stolen JWT is accepted.
- Tampering: a client changes tenantId in the request body.
- Repudiation: administrative actions are not recorded with the actor’s identity.
- Information disclosure: a user queries records belonging to another tenant.
- Denial of service: one tenant consumes all API capacity.
- Elevation of privilege: a regular user sets role=admin in a request.
STRIDE is normally applied to a data-flow diagram by examining processes, data stores, data flows, external entities, and trust boundaries, then asking which STRIDE categories apply to each component.
Top comments (0)