Architektur nicht mehr in Paint zeichnen: Einführung in OWASP Threat Dragon
Denken Sie an das letzte Mal zurück, als das Sicherheitsteam Sie bat, ein „Bedrohungsmodell zu erstellen". Höchstwahrscheinlich haben Sie Miro oder Draw.io geöffnet, ein paar Kästen mit Pfeilen zusammengeworfen und versucht, sich an das STRIDE-Akronym zu erinnern. Das Ergebnis war ein schickes Diagramm, das eine Woche nach der Veröffentlichung veraltet war und schließlich im Corporate Wiki Staub angesetzt hat.
OWASP-Entwickler haben dieses Problem schon lange erkannt und Threat Dragon entwickelt. Es ist ein Open-Source-Tool, das Ihnen hilft, Datenflussdiagramme zu zeichnen und Risiken direkt an Architekturelemente anzuhängen.
Was Threat Dragon kann
Das Projekt wurde 2015 von Mike Goodwin gegründet und hat mittlerweile den offiziellen OWASP Production-Status. Das bedeutet, dass das Tool aktiv gepflegt wird und nicht nach dem ersten Commit aufgegeben wurde.
Der Sinn des Tools ist es, Bedrohungsmodellierung für normale Entwicklungsteams zugänglich zu machen, nicht nur für dedizierte Secure-Architecture-Spezialisten.
Hier sind die wichtigsten Funktionen, für die sich das Projekt lohnt:
- Datenflussdiagramm (DFD) erstellen. Sie zeichnen Prozesse, Datenspeicher, externe Akteure und Vertrauensgrenzen auf einer Leinwand auf.
- Bedrohungsgenerierung und -beschreibung. Basierend auf Diagrammelementen können Sie schnell eine Liste potenzieller Risiken erstellen und spezifische Gegenmaßnahmen daran anhängen.
- Git-Repository-Integration. Die Web-Version kann sich über GitHub, GitLab oder Bitbucket autorisieren und Bedrohungsmodelle direkt als JSON-Dateien in Ihrem Projektcode speichern.
- Offline-Fähigkeit. Wenn Unternehmensrichtlinien das Senden von Architekturdiagrammen an externe Dienste verbieten, sind eigenständige Desktop-Builds verfügbar.
Unter der Haube
Die ursprüngliche erste Version war schwierig zu verwenden, da das Frontend in AngularJS 1.x geschrieben war. Aufgrund der Veralterung des Frameworks haben die Autoren die logische Entscheidung getroffen, das Projekt vollständig neu zu schreiben.
Version zwei von Threat Dragon basiert auf einem frischen Stack: Vue.js für die Benutzeroberfläche und Node.js für das Backend. Das Repository ist klar in zwei Verzeichnisse unterteilt: td.server und td.vue. Wenn Sie Ihre eigene benutzerdefinierte Regel hinzufügen oder die Oberfläche für Ihre Bedürfnisse anpassen möchten, wird das Verständnis der Struktur nicht schwierig sein.
Schnellstart
Der einfachste Weg, das Tool lokal auszuprobieren, ist das Ausführen eines fertigen Docker-Containers. Es braucht buchstäblich einen Befehl:
docker pull threatdragon/owasp-threat-dragon:stable
docker run -it --rm -p 8080:3000 threatdragon/owasp-threat-dragon:stable
Danach ist die Web-Oberfläche unter http://localhost:8080/ verfügbar.
Wenn Sie einen traditionellen Build aus dem Quellcode bevorzugen, sind die Prozesse ebenfalls unkompliziert:
git clone https://github.com/owasp/threat-dragon.git
cd threat-dragon
npm install
npm start
Für die vollständige Funktionalität der Web-Version mit GitHub oder GitLab müssen Sie eine OAuth-Anwendung in den Einstellungen Ihres Versionskontrollsystems registrieren und die Schlüssel über Variablen an die .env-Datei übergeben. Das Repository enthält detaillierte Anleitungen für jeden beliebten Dienst.
Wem dieses Projekt nützen wird
Threat Dragon wird kein vollständiges Sicherheits-Audit ersetzen, und seine Oberfläche sieht ziemlich schlicht aus. Aber wenn Ihr Team DevSecOps-Praktiken früh in der Designphase implementieren muss, ist es eine ausgezeichnete Alternative zu klobigen kostenpflichtigen Systemen.
Das Tool eignet sich ideal für die Dokumentation von Architekturentscheidungen direkt im Projekt-Repository. Alle Diagramme werden zusammen mit dem Code gespeichert, was sie einfach während des Refactorings aktualisieren und bei geplanten Architektur-Reviews auffrischen lässt.
Ähnliche Projekte