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

  1. Identify assets and entry points
  2. Create architecture diagrams
  3. Identify threats using STRIDE or similar frameworks
  4. Rate threats by risk (likelihood x impact)
  5. Plan mitigations
  6. Validate and iterate