Threat Modeling
Bei Threat Modeling (Bedrohungsmodellierung) handelt es sich um eine sehr bewerte konzeptionelle Analysetechnik mit deren Hilfe sich potentielle Schwachstellen (bzw. Risken) bereits frühzeitig bei der Entwicklung von Anwendungen oder Diensten identifizieren und hierfür erforderliche Maßnahmen ableiten lassen.
Die Vorteile:
- Frühzeitige Identifikation von Bedrohungen und erforderlichen Sicherheitsmaßnahmen
- Ermöglichen eine deutliche Verbesserung des Sicherheitsniveaus eines Systems
- Sehr gutes Aufwands-Nutzenverhältnis
- Können Pentestfindings stark reduzieren bzw. deren Qualität verbessern
- Aktive Partizipation (und Lerneffekt) durch Entwicklungsteams
- Fortschreibung durch Entwicklungsteams möglich
- Anwendbar auch in agil arbeitenden Teams (sehen Sie hierzu auch unseren Blog Post)
Analyseverfahren wie Pentests sind dabei eher als Ergänzung zu Threat Modeling zu sehen, da diese erst spät in der Softwareentwicklung anwendbar und dazu auch sehr limitiert sind. In der aktuellen Version von OWASP SAMM wird Threat Modeling daher auch als eigene Reifegrad-Disziplin genannt.
Threat Modeling kann prinzipiell jeder durchführen, wenn ein entsprechendes Grundmodell aufgesetzt wurde und grundlegende Techniken erlernt wurden. Genau hier können wir Sie mit unserer Erfahrung aus 16 Jahren in diesem Bereich unterstützten.
Generell gestaltet sich unser Vorgehen dabei wie folgt:
1. Vorbereitung
Im Vorfeld der Analyse erfolgen in der Regel die folgenden Schritte, hauptsächlich gemeinsam mit dem Kunden im Rahmen eines Vorgespräches:
- Definition der Ziele und des Scopes
- Bestimmung der eingesetzten Methodik(en)
- Planung des Workshops und erforderlicher Stakeholder
- Auswertung existierender Unterlagen (optional)
2. Whiteboarding
In der Regel wird im Rahmen eines Workshops mit relevanten Stakeholdern (z.B. dem entsprechenden Entwicklungsteam einer Anwendung) die Anwendung technisch an einem Whiteboard diskutiert und relevante Datenflüsse, Trust Boundaries und existierende Security Controls (Authentifizierung, Autorisierung, Verschlüsselung) identifiziert, wobei der Fokus generell auf der Verarbeitung und Speicherung von sensiblen Daten und der Zugriff auf diese liegt.
Bereinigt lässt sich das Ergebnis einer solchen Veranstaltung in einem Diagramm wie dem folgenden darstellen:
Neben einer solchen system-zentrischen Herangehensweise lassen sich auch andere Methodiken einsetzen, um z.B. Sicherheitsprobleme in Geschäftsprozessen oder betrieblichen Prozessen zu identifizieren.
3. Bedrohungsidentifikation
Im nächsten Schritt werden die zuvor identifizierten Prozesse und Datenflüsse mit Sicherheitsrelevanz auf mögliche Bedrohungen hin analysiert, z.B. mittels der STRIDE-Methodik oder anderer Methodiken wie Abuse Cases und dabei eventuell bereits existierende mitigierende Maßnahmen berücksichtigt. So lassen sich etwa auch sensible Use Cases und Workflows identifizieren und diese im Hinblick auf ihre Angreifbarkeit bewerten.
In einigen Fällen kann an dieser Stelle auch die Qualifizierung einzelner Bedrohungen in Risiken sinnvoll sein.
4. Ableitung von Maßnahmen
Schließlich lassen sich für relevante Bedrohungen Sicherheitsmaßnahmen identifizieren und hierfür bei Bedarf entsprechende JIRA-Tickets anlegen. Das erstellte Bedrohungsmodell kann nun bei Bedarf auch durch das Entwicklungsteam fortgeschrieben werden, etwa im Zuge relevanter Architekturänderungen.
5. Aktualisierung
Je nach Kritikalität der Anwendung, sollte ein Bedrohungsmodell in Abständen, oder im Rahmen von architektonischen Änderungen, aktualisiert werden.
Aufbau Bedrohungskataloge und Tooling
Eine effiziente Durchführung von Bedrohungsanalysen und Integration in die Softwareentwicklung erfordert in der Regel den Aufbau von intelligenten Bedrohungskataloge (Threat Intelligence). Diese lassen sich schrittweise aufbauen und individuell an die Gegebenheit unterschiedlicher Unternehmen anpassen.
Als Basis können Ihnen hierfür bereits entsprechenden Content z.B. für Atlassian Confluence bereitstellen den Sie mit Hilfe unseres Bedrohungskatalogs und eigenentwickelten Confluence-Contents zu intelligenten Fragebögen zusammenbauen können.