Threat Modeling – Bedrohungsanalyse

Software-Sicherheit durch Threat Modeling: Identifizierung bislang nicht-erkannter Sicherheitslücken
in Standard- und Individualsoftware in der Design-Phase der Softwareentwicklung

Im traditionellen Softwareentwicklungszyklus werden Maßnahmen zur Erhöhung des Sicherheitsniveaus meist erst kurz vor Auslieferung – häufig aber auch erst nach Auslieferung der Software – umgesetzt. Da etwa die Hälfte aller Sicherheitslücken auf Designfehler zurückzuführen sind, müssen Sicherheitsmaßnahmen bereits vor bzw. während der Designphase implementiert und überprüft werden. Threat Modeling hilft dabei Sicherheitslücken zu identifizieren.

Threat Modeling unterstützt die methodische Entwicklung eines vertrauenswürdigen Systementwurfs und einer Architektur in der Designphase der Softwareentwicklung (Security Design) – die Fehlerbehebungskosten sind in dieser Entwicklungsphase noch sehr gering.

Datenflussanalyse
Datenflussanalyse eines komplexen Systems

Auf jeder Stufe des Prozesses werden die entsprechenden Aktionen durchgeführt; Dies soll das Bedrohungsmodell genauer angeben und ihre weitere Entwicklung voranzubringen.

Darüber hinaus können bereits bestehende System Entwürfe und Architekturen überprüft werden, um Sicherheitsrisiken zu identifizieren, bewerten und korrigieren.

Verwendete Technik/Methode

Die Identifizierung von Sicherheitslücken beginnt mit der Analyse der verfügbaren Dokumentation – insbesondere des Sicherheitsdesigns – sowie einer Untersuchung der Programmablaufpläne.

Aus der Analyse werden (Eingabe-)Schnittstellen, zu schützende Ressourcen, Vertrauensgrenzen, sowie externe Entitäten (potentielle Angreifer, Administratoren, normale Benutzer, andere Systeme, …), die auf das System zugreifen, systematisch ermittelt. Mit diesen Informationen werden die Datenflüsse des zu untersuchenden Systems mit Datenflussdiagrammen (DFDs) visualisiert. Damit können alle sicherheitsrelevanten Datenflüsse bis hin zu einer schützenswerten Ressource im untersuchten System grafisch nachvollzogen werden.

Durch eine systematische und vollständige Analyse der DFDs werden mögliche Bedrohungen vollständig identifiziert.

Eine Bedrohung zielt immer auf eine zu schützende Ressource (Passwort, persönliches oder geschäftliches Dokument, Foto, …) ab. So könnte eine identifizierte Bedrohung z. B. lauten: „Ein Angreifer kann ein Passwort aus der Datenbank des Systems auslesen“.

Die identifizierten Bedrohungen werden anhand von Informationen aus der verfügbaren Dokumentation soweit möglich mitigiert (abgeschwächt). So könnte z. B. in der Dokumentation vermerkt sein, dass Passwörter in einer verschlüsselten Datenbank gespeichert werden. Somit wäre die Bedrohung des Passwortdiebstahls mitigiert.

Allerdings könnte ein fehlerhaft implementierter Verschlüsselungsalgorithmus geknackt werden oder der benutzte Schlüssel z.B. durch ausprobieren erraten werden. So entsteht Schritt für Schritt ein Attack Path aus nicht-mitigierten Threats. Nicht-mitigierte Threats stellen eine von Angreifern ausnutzbare Sicherheitslücke dar und werden in Form von Attack Paths in Attack Trees dargestellt.

Threat Modeling unterstützt den Aufbau einer vollständigen Sicherheitsarchitektur mit einem angemessenen Sicherheitsniveau und trägt damit dazu bei, die Angriffsfläche des untersuchten Systems zu minimieren – in den folgenden fünf Schritten:

Threat Modeling Process