Threat Modeling (Bedrohungsmodellierung)
Strukturierter Prozess zur systematischen Identifikation von Sicherheitsbedrohungen in der Softwareentwicklung oder IT-Architektur. STRIDE, PASTA und DREAD sind die bekanntesten Methoden. Ziel: Sicherheitslücken finden bevor Code geschrieben wird.
Threat Modeling ist das systematische Nachdenken über Sicherheitsbedrohungen - idealerweise in der Design-Phase, bevor Code geschrieben wird. Es beantwortet vier fundamentale Fragen:
- Was bauen wir? (System verstehen)
- Was kann schiefgehen? (Bedrohungen identifizieren)
- Was tun wir dagegen? (Gegenmaßnahmen planen)
- Haben wir einen guten Job gemacht? (Validation)
STRIDE - Microsofts Bedrohungsklassifikation
STRIDE ist das bekannteste Threat-Modeling-Framework. Jeder Buchstabe repräsentiert eine Bedrohungskategorie:
| Buchstabe | Bedrohung | Verletzt… | Beispiel |
|---|---|---|---|
| S | Spoofing | Authentizität | Angreifer gibt sich als Admin aus |
| T | Tampering | Integrität | Datenbank-Einträge manipulieren |
| R | Repudiation | Nicht-Abstreitbarkeit | ”Ich habe die Transaktion nie gemacht” |
| I | Information Disclosure | Vertraulichkeit | SQL-Injection liest alle Kundendaten |
| D | Denial of Service | Verfügbarkeit | 100.000 Anfragen → Server überlastet |
| E | Elevation of Privilege | Autorisierung | Normaler User wird Admin |
STRIDE anwenden - Beispiel Login-Formular
Komponente: Login-Formular mit Datenbank
| STRIDE | Bedrohung | Gegenmaßnahme |
|---|---|---|
| S (Spoofing) | Angreifer gibt sich als anderer User aus | MFA, sichere Session-Tokens |
| T (Tampering) | Passwort-Hash in Datenbank manipuliert | DB-Benutzer hat keine UPDATE-Rechte auf user-Tabelle |
| R (Repudiation) | User bestreitet erfolgreiche Logins | Audit-Log mit Timestamp, IP, User-Agent (unveränderbar) |
| I (Information Disclosure) | SQL-Injection enthüllt alle Passwort-Hashes | Parameterized Queries, Least Privilege DB-Account |
| D (Denial of Service) | 10.000 Login-Versuche/Sekunde → Server überlastet | Rate Limiting, CAPTCHA nach X Versuchen |
| E (Elevation of Privilege) | Normaler User greift Admin-Seiten zu | Server-side Auth-Check auf JEDEM Admin-Endpoint |
PASTA - Process for Attack Simulation and Threat Analysis
PASTA ist risikobasiert und business-orientierter als STRIDE:
- Define Objectives: Business Impact definieren - was ist schützenswert?
- Technical Scope: System-Diagramme, Datenflüsse, Vertrauensgrenzen
- Application Decomposition: DFDs (Datenflussdiagramme), Komponenten-Inventar
- Threat Analysis: Welche Bedrohungsakteure? APT, Insider, Script Kiddies?
- Vulnerability Analysis: Schwachstellen im System identifizieren
- Attack Modeling: Angriffsbäume für jede Bedrohung
- Risk Analysis: Risiko = Wahrscheinlichkeit × Business Impact
DREAD - Risiko-Scoring
DREAD bewertet identifizierte Bedrohungen auf einer Skala von 1-10:
| Buchstabe | Kriterium | Frage |
|---|---|---|
| D | Damage | Wie groß der Schaden? |
| R | Reproducibility | Wie einfach wiederholbar? |
| E | Exploitability | Wie einfach ausnutzbar? |
| A | Affected Users | Wie viele betroffen? |
| D | Discoverability | Wie leicht zu finden? |
Beispiel SQL-Injection auf Login-Formular: Damage 9, Reproducibility 10, Exploitability 8, Affected Users 10, Discoverability 7 → DREAD Score: 44/50 = kritisch.
Threat Modeling in der Praxis
Microsoft Threat Modeling Tool
Kostenloses Tool von Microsoft:
- Grafische DFD-Erstellung
- Automatische STRIDE-Bedrohungsidentifikation
- Empfehlungen für Gegenmaßnahmen
- Export-Reports
OWASP Threat Dragon
Open-Source-Alternative:
- Web-basiert oder Desktop
- GitHub-Integration
- STRIDE-basiert
Wann Threat Modeling?
Früh im SDLC:
- Bei neuen Features im Design-Review
- Vor Start der Implementation (2h können Wochen Nacharbeit sparen)
- Bei Architekturänderungen
Regelmäßig:
- Jährlich für bestehende Systeme aktualisieren
- Nach Penetrationstest: Threat Model aktualisieren
- Nach Security-Incidents: Was haben wir übersehen?
Threat Modeling ist der kosteneffektivste Sicherheitsmechanismus: Ein 2-Stunden-Workshop im Design findet Lücken die im Pentest Tausende Euro kosten würden.