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 Design-Phase 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 Design-Phase der Softwareentwicklung (Security Design) – die Fehlerbehebungskosten sind in dieser Entwicklungsphase noch sehr gering. Darüber hinaus können bereits bestehende System Entwürfe und Architekturen überprüft werden, um Sicherheitsrisiken zu identifizieren, bewerten und korrigieren.

Datenflussanalyse eines komplexen Systems
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.

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 und Use Cases.

Aus der Analyse werden (Eingabe-)Schnittstellen, zu schützende Ressourcen, Vertrauensgrenzen, sowie externe Entitäten (potenzielle 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. Eine identifizierte Bedrohung könnte beispielsweise 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). Dies geschieht indem z. B. in der Dokumentation vermerkt wurde, dass Passwörter in einer verschlüsselten Datenbank gespeichert werden und dies in dem Entwicklungsprozess entsprechend umgesetzt wird. 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 Brute-Force-Techniken 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.

Wollen Sie sicher gehen, dass Ihr System vor Angriffen geschützt ist, dann kontaktieren Sie uns!