STRIDE
STRIDE is a framework used to identify and categorize security threats during the design of software systems. It organizes threats into six categories to help development and security teams think systematically about what could go wrong. The goal is to surface potential vulnerabilities early, before code is written or deployed.
STRIDE is a threat modeling taxonomy that classifies adversarial threats across six categories: Spoofing (impersonating another identity), Tampering (unauthorized modification of data or code), Repudiation (denying actions without the ability to prove otherwise), Information Disclosure (unauthorized exposure of data), Denial of Service (degrading or eliminating availability), and Elevation of Privilege (gaining capabilities beyond those authorized). Typically applied during architectural design reviews, STRIDE analysis is conducted at the code and design level and does not require a running system, meaning it can surface structural and logical threat categories but cannot detect runtime-specific behaviors, configuration-dependent vulnerabilities, or environment-level weaknesses without additional context or complementary methods.
Why it matters
Identifying security threats after a system is built is significantly more costly and disruptive than identifying them during design. STRIDE provides a structured vocabulary for surfacing threat categories early in the software development lifecycle, when architectural decisions can still be changed without large remediation effort. By giving teams a consistent set of threat categories to reason against, STRIDE reduces the likelihood that entire classes of threats are overlooked simply because no one thought to ask about them.
The six categories in STRIDE cover a broad range of adversarial concerns that affect most software systems, from identity impersonation and unauthorized data modification to availability attacks and privilege escalation. This breadth means that even teams without deep security specialization can use the framework as a checklist to prompt discussion and surface gaps in their designs. It is particularly valuable during architectural design reviews, where the goal is to evaluate structural and logical properties of a system rather than its runtime behavior.
STRIDE does have meaningful scope boundaries that practitioners should understand. Because it is applied at the code and design level without requiring a running system, it typically cannot surface configuration-dependent vulnerabilities, environment-level weaknesses, or runtime-specific behaviors. It is a taxonomy for organizing thinking, not a detection tool, and it works best when combined with complementary methods such as data flow diagram analysis, attack tree modeling, or runtime security testing to address the threat categories it surfaces.
Who it's relevant to
Inside STRIDE
Common questions
Answers to the questions practitioners most commonly ask about STRIDE.