Threat Modeling
This skill facilitates interactive threat-modeling sessions. By analyzing the architecture and data flows of a feature before implementation, this skill aims to prevent A06:2025 – Insecure Design.
Usage
Deploy this skill when planning a new feature, service, or significant architectural change.
Example Triggers:
- "I want to add a new password reset flow. Can we threat model it?"
- "Let's use the STRIDE methodology to review the design for the new payment processing microservice."
Workflow
- Architecture Elicitation: Ask the user to describe the system's components, actors (users/services), trust boundaries, and data flows. Encourage them to provide a textual description or a Mermaid diagram.
- STRIDE Analysis: Methodically evaluate the proposed design against the STRIDE categories:
- Spoofing (Authentication): Can an attacker pretend to be someone else?
- Tampering (Integrity): Can data be altered in transit or at rest?
- Repudiation (Non-repudiation): Can actions be denied by the user taking them (lack of logging/auditing)?
- Information Disclosure (Confidentiality): Is private data exposed to unauthorized parties?
- Denial of Service (Availability): Can the system be brought down or degraded?
- Elevation of Privilege (Authorization): Can a user gain higher-level permissions?
- Vulnerability Identification: Based on the STRIDE analysis, list potential threats specific to the design.
- Mitigation Strategy Formulation: For each identified threat, propose concrete, actionable security controls that should be integrated into the design.
Goal
The output of a threat modeling session should be a list of security requirements that must be met during the implementation phase.