Was ist eine Bedrohungsmodellierung?

Bei der Bedrohungsmodellierung handelt es sich um eine Methode, mit der mögliche Schwachstellen in der Architektur einer Anwendung im Voraus erkannt werden können. Dazu gehört das Erstellen eines Diagramms für eine Anwendung, die Identifizierung von Sicherheitslücken und die Behebung dieser Schwachstellen.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Definition der Bedrohungsmodellierung
  • Beschreiben Sie die vier Hauptschritte der Bedrohungsmodellierung
  • Vergleich gängiger Methoden zur Bedrohungsmodellierung

Ähnliche Inhalte


Möchten Sie noch mehr erfahren?

Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!

Lesen Sie die Cloudflare Datenschutzrichtlinie, um zu erfahren, wie wir Ihre persönlichen Daten sammeln und verarbeiten.

Link zum Artikel kopieren

Was ist eine Bedrohungsmodellierung?

Die Bedrohungsmodellierung ist eine Übung zum Auffinden von Sicherheitslücken in einer Anwendung und ihrer Umgebung. Dabei wird ein Abbild einer Anwendung mit all ihren Komponenten erstellt, um dann die Schwachstellen zu ermitteln. Im Idealfall verwenden Entwickler und Sicherheitsingenieure die Bedrohungsmodellierung während des gesamten Softwareentwicklungsprozesses - bevor eine Anwendung in Betrieb genommen wird und nicht erst danach. Eine Bedrohungsmodellierung kann dazu beitragen, eine Anwendung wesentlich sicherer zu machen, als sie es sonst wäre, aber man sollte nicht erwarten, dass sie eine Anwendung unangreifbar macht.

In Raubfilmen untersuchen die Hauptfiguren oft Blaupausen des Gebäudes, das sie ausrauben wollen, um Schwachstellen herauszufinden - wo das Gebäude betreten werden kann, welche Winkel die Sicherheitskameras nicht sehen können usw. In ähnlicher Weise ist die Modellierung von Bedrohungen eine Untersuchung der "Blaupausen der jeweiligen Anwendung." Der Unterschied besteht darin, dass die Bedrohungsmodellierung von Personen durchgeführt wird, die die Sicherheit der Anwendung gewährleisten möchten, und nicht von den potenziellen Räubern.

Bei der Bedrohungsmodellierung müssen die Teams ein vollständiges Bild der Anwendung erstellen. Dann muss man wie jemand denken, der die Anwendung gefährden will. Was würde ein Angreifer tun? Würden sie vielleicht die schwache API-Sicherheit ausnutzen? Würden sie einen Angriff auf die Lieferkette nutzen, um eine integrierte Systembibliothek zu infizieren? Auch wenn nicht alle Angriffe vorhersehbar sind, hilft die Bedrohungsmodellierung, einige von ihnen zu stoppen, bevor sie geschehen.

Was sind die Schritte der Bedrohungsmodellierung?

Es gibt viele mögliche Ansätze zur Bedrohungsmodellierung, und keine Methode kann auf jede Situation angewendet werden. In der Regel handelt es sich jedoch um diese vier Hauptschritte:

1. Bewertung und grafische Darstellung der Anwendung

Modellierer von Bedrohungen versuchen, diese zu identifizieren und darzustellen:

  • Die Komponenten einer Anwendung, darunter Datenbankserver, Webserver, Gateways, Bibliotheken und die Benutzeroberfläche
  • Die Art und Weise, wie diese Komponenten miteinander verbunden sind, wie z. B. die Protokolle für den Datenaustausch und die Verschlüsselung zum Schutz dieser Daten bei der Übertragung

Wenn Terry eine einfache Anwendung schreibt, die Bilder von Luftballons anzeigt, könnte sein Diagramm der Anwendung wie folgt aussehen:

Einfaches Beispiel für die Modellierung von Bedrohungen: Diagramm der Anwendungsschnittstelle, des Gateways, des Webservers, der Datenbank und der Verbindungen

Beachten Sie, dass es sich hierbei um ein stark vereinfachtes Beispiel handelt und dass ein reales Anwendungsdiagramm zur Bedrohungsmodellierung wesentlich komplexer sein könnte.

2. Identifizierung von Sicherheitslücken in der Konstruktion der Anwendung

Wenn man eine Anwendung auf diese Weise sieht, kann man leichter Fehler erkennen. Terry könnte zum Beispiel feststellen, dass die Kommunikation zwischen seiner Datenbank mit Ballonfotos und seinem Webserver nicht Transport Layer Security (TLS)verwendet. Dies bedeutet, dass keiner der beiden Server die Identität des anderen mit Hilfe digitaler Signaturen überprüft, was es einem Angreifer ermöglicht, sich als Datenbankserver auszugeben und bösartige Inhalte an den Webserver zu senden.

Einfaches Beispiel für Bedrohungsmodellierung: Verbindung zwischen Webserver und Datenbank ist nicht verschlüsselt

3. Änderungen vornehmen, die diese Mängel beheben

Da die Bedrohungsmodellierung während des gesamten Entwicklungsprozesses stattfindet, kann die Behebung von Schwachstellen bedeuten, dass entweder der Plan für die Architektur einer Anwendung geändert oder ein Fix für einen laufenden Build der Anwendung bereitgestellt wird.

Um die von ihm identifizierte Bedrohung zu entschärfen, kann Terry seinen Datenbankserver und seinen Webserver so umkonfigurieren, dass sie TLS für ihre Verbindung verwenden - oder besser noch, dass sie mutual TLS (mTLS) verwenden und sich gegenseitig verifizieren.

Einfaches Beispiel für Bedrohungsmodellierung: Verbindung zwischen Webserver und Datenbank jetzt sicher

4. Überprüfung, ob diese Änderungen angewendet wurden und die Bedrohung korrekt abschwächen

Zu diesem Zeitpunkt könnte Terry die Anwendung in einer Testumgebung ausführen und prüfen, ob 1) die Server TLS wie konfiguriert verwenden und 2) der Webserver HTTP-Verkehr von einem nicht verifizierten Server anstelle des Datenbankservers akzeptiert. Ähnliche Überprüfungen würde er auch für alle anderen von ihm angewandten Abhilfemaßnahmen durchführen.

Was sind die verschiedenen Methoden der Bedrohungsmodellierung?

Eine Methode zur Bedrohungsmodellierung ist ein Ansatz zur Ermittlung von Bedrohungen. Die Methoden strukturieren den Prozess der Bedrohungsmodellierung, der in einem komplexen System sonst überfordernd sein könnte. Unternehmen können aus einer Vielzahl von Methoden zur Bedrohungsmodellierung wählen oder sogar ihre eigenen entwickeln. Einige der gängigsten Methoden sind:

  • STRIDE: Diese von Microsoft entwickelte Methode ist eine Gedächtnisstütze zur Identifizierung von Sicherheitsbedrohungen. Die Buchstaben von "STRIDE" stehen für "Spoofing, Tampering, Repudiation, Information disclosure, Denial of Service, Elevation of privilege." ("Repudiation" bedeutet hier die Unfähigkeit, die Herkunft und Integrität von Daten zu überprüfen). Die Idee ist, in der gesamten Architektur einer Anwendung nach diesen sechs spezifischen Bedrohungsarten zu suchen.
  • PASTA: Das steht für "Prozess für Angriffssimulation und Bedrohungsanalyse." PASTA ist ein siebenstufiger Prozess zur Ermittlung, Aufzählung und Bewertung von Bedrohungen.
  • VAST: Die VAST-Methode (Visual, Agile and Simple Threat) ist mit ThreatModeler verbunden, einer Software zur automatischen Modellierung von Bedrohungen.
  • SQUARE: Die SQUARE-Methode (Security Quality Requirements Engineering) hilft dabei, Sicherheitsbedenken bereits in einem frühen Stadium des Entwicklungsprozesses zu erkennen.

Es gibt noch mehrere andere Methoden der Bedrohungsmodellierung. Einige von ihnen, wie "Trike" und die verschiedenen Hybridmethoden, haben nicht einmal Akronyme.

Wann findet die Bedrohungsmodellierung statt?

Die Modellierung von Bedrohungen soll vor und während der Softwareentwicklung und während des gesamten Lebenszyklus einer Anwendung erfolgen. Wenn eine Anwendung ohne Bedrohungsmodellierung oder -minderung veröffentlicht wird, können Sicherheitslücken von Benutzern - oder Angreifern - entdeckt werden, bevor sie von Sicherheitsteams entdeckt werden. Dies kann zu einer Datenverletzung führen und stellt ein größeres Risiko für Zero-Day-Bedrohungendar.

Da die Bedrohungsmodellierung jedoch nicht alle Risiken innerhalb eines Systems aufdeckt, sollten Entwickler und Unternehmen diesen Prozess auch nach der Veröffentlichung fortsetzen. Neben der Erstellung von Bedrohungsmodellen können sie dies auch tun, indem sie:

  • Bedrohungsjagd: Hierbei wird proaktiv nach Bedrohungen für ein System gesucht. Die Bedrohungsjagd kann ein manueller Untersuchungsprozess sein, der von einem Sicherheitsanalytiker durchgeführt wird, ein automatisierter Prozess, der von einem Sicherheitstool ausgeführt wird, oder eine Kombination aus beidem.
  • Penetrationstests: Penetrationstests, oder Pen-Tests, sind Sicherheitsübungen, bei denen ein ethischer Hacker versucht, Schwachstellen in einem Computersystem zu finden und auszunutzen. Um effektiv zu sein, sollten Penetrationstests von einer Person durchgeführt werden, die keine Vorkenntnisse über das System hat, und müssen daher völlig getrennt vom Prozess der Bedrohungsmodellierung durchgeführt werden. Diejenigen, die die Anwendung entwickelt haben, sind oft zu nah dran, um alle Schwachstellen zu erkennen, so wie der Architekt einer Sicherheitseinrichtung die Schwachstellen nicht vorhersehen kann, die es einem Räuberteam ermöglichen, während eines Raubüberfalls einzubrechen.
  • Andere Maßnahmen zur Anwendungssicherheit: Anwendungssicherheit ist eine komplexe Disziplin. Kein System und keine Anwendung sollte jemals als vollkommen sicher angesehen werden. Eine Web Application Firewall (WAF) kann einen großen Beitrag zur Sicherung von Webanwendungen leisten.

Cloudflare bietet auch einen threat intelligence und einen Betriebsdienst, Cloudforce One, um Kunden vor den neuesten Bedrohungen zu schützen. Cloudforce One wird von einem erstklassigen Bedrohungsforschungsteam geleitet, das sehr erfahren darin ist, Angreifer auf globaler Ebene zu stören. Erfahren Sie mehr über Cloudforce One hier.