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 Maßnahmen
  • Sehr gutes Aufwands-Nutzenverhältnis
  • Können Pentestfindings stark reduzieren
  • Aktive Partizipation (und gewöhnlich auch Akzeptanz) von Entwicklungsteams
  • Fortschreibung durch Entwicklungsteams möglich
  • Funktioniert auch mit agil arbeitenden Teams (sehen Sie hierzu auch unseren aktuellen 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 gewürdigt.

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 14 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:

  • Definition des Scopes und Auswahl der eingesetzten Methodik(en)
  • 1. Planung des Workshops
  • Auswertung existierender Unterlagen (optional)

Üblicherweise kann von einem sehr überschaubaren Aufwand für die Vorbereitung ausgegangen werden.

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.

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 Entwicklungteam fortgeschrieben werden, etwa im Zuge relevanter Architekturänderungen.

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.