What is Threat Modeling?
Threat modeling is a proactive security practice that involves systematically identifying potential threats, vulnerabilities, and attack vectors in a system. By understanding what could go wrong, teams can prioritize security efforts and design appropriate countermeasures.
Key Questions
-
What are we building?
- System architecture
- Data flows
- Trust boundaries
-
What can go wrong?
- Threat identification
- Attack scenarios
- Vulnerability analysis
-
What are we going to do about it?
- Mitigation strategies
- Security controls
- Risk acceptance
-
Did we do a good job?
- Validation
- Testing
- Iteration
Common Methodologies
STRIDE
- Spoofing
- Tampering
- Repudiation
- Information Disclosure
- Denial of Service
- Elevation of Privilege
PASTA Process for Attack Simulation and Threat Analysis
- 7-stage risk-centric methodology
LINDDUN Privacy-focused threat modeling
- Linkability, Identifiability, Non-repudiation, Detectability, Disclosure, Unawareness, Non-compliance
Threat Modeling Process
- Define scope and objectives
- Create system model (DFD)
- Identify threats (STRIDE, etc.)
- Analyze and prioritize
- Define mitigations
- Validate and iterate
Tools
- Microsoft Threat Modeling Tool
- OWASP Threat Dragon
- IriusRisk
- Threagile