Threat Modeling

Bedrohungsanalyse
Software-Sicherheit: 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 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. Aus diesem Grund muss das Design eines Softwaresystems unverzichtbar in einem aufwändigen Prozess mit den folgenden drei Stufen systematisch sicherheitsüberprüft werden:
Bedrohungsanalyse
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