Threat Modeling
Threat modeling is a systematic approach to identifying and prioritizing potential security threats to an application. It should be performed early in the design phase and revisited throughout development.
STRIDE Model
- Spoofing - Pretending to be another user
- Tampering - Modifying data or code
- Repudiation - Denying an action
- Information disclosure - Exposing data
- Denial of service - Making a service unavailable
- Elevation of privilege - Gaining unauthorized access
Process
- Identify assets and entry points
- Create architecture diagrams
- Identify threats using STRIDE or similar frameworks
- Rate threats by risk (likelihood x impact)
- Plan mitigations
- Validate and iterate