
Ein Open-Source-Tool zur Bedrohungsmodellierung von OWASP
[
][build]
[
][latest]
[
][practices]
[OWASP][owasp] [Threat Dragon][project] ist eine kostenlose, quelloffene, plattformübergreifende Anwendung zur Bedrohungsmodellierung. Sie wird verwendet, um Diagramme zur Bedrohungsmodellierung zu zeichnen und Bedrohungen für die Elemente im Diagramm aufzulisten. Mike Goodwin hat Threat Dragon als quelloffenes Community-Projekt ins Leben gerufen, das eine intuitive und zugängliche Möglichkeit bietet, Bedrohungen zu modellieren.
Threat Dragon ist so konzipiert, dass es für verschiedene Arten von Teams zugänglich ist, mit einem Schwerpunkt auf Flexibilität und Einfachheit. Das Projekt hat den [OWASP-Produktionsstatus][project] und folgt den Werten und Prinzipien des [Threat Modeling Manifesto][manifesto].
Dieses Programm ist freie Software: Sie können es unter den Bedingungen der [Apache-2.0-Lizenz][license] weitergeben und/oder modifizieren.
Greifen Sie auf die neueste Version von Threat Dragon auf der [Demo-Website][demo] zu und lesen Sie die [Dokumentationsseiten][docs].
Ebenfalls einen Blick wert ist das Video der OWASP Spotlight-Serie.
Der [GitHub-Release-Bereich][releases] enthält Threat Dragon von Version 1.3 bis zu den neuesten Versionen 2.x. Frühere Versionen stammen aus Mike Goodwins ursprünglichem Repository.
Es gibt eine gute Übersicht über Bedrohungsmodellierung und Risikobewertung von OWASP, die näher darauf eingeht, was das Threat-Dragon-Projekt anstrebt:
Mike Goodwin ist der Gründer und Urheber dieses Projekts, und dieses Repository wurde aus Mike Goodwins Original migriert, das die Issues und Pull Requests von Oktober 2015 bis Juni 2020 enthält.
Threat Dragon ist in erster Linie eine Webanwendung. Die Webanwendung kann Bedrohungsmodell-Dateien im lokalen Dateisystem speichern; zusätzlich kann der Zugriff für Folgendes konfiguriert werden:
Die Desktop-Versionen von Threat Dragon speichern die Bedrohungsmodell-Dateien im lokalen Dateisystem und greifen nicht auf externe Repositorys zu. Sie können Installationsprogramme herunterladen für Windows, MacOS und Linux.
Endbenutzer-Hilfe ist sowohl für die neueste [Version 2.x][docs] als auch für die frühere Version 1.x verfügbar.
Threat Dragon wurde ursprünglich mit AngularJS Version 1.x geschrieben, aber diese Version von Angular hat das Ende ihres Lebenszyklus erreicht. Das bedeutet, dass die Versionen 1.x von Threat Dragon nicht mehr aktiv gewartet werden und die Versionen 2.x neu geschrieben wurden, um Vue.js zu verwenden.
Weitere Informationen zum Erstellen/Ausführen von Version 1.x finden Sie im legacy-v1.x-Zweig.
Installieren Sie git und [node.js][node], das den Node-Paketmanager npm enthält.
Klonen Sie das Repository mit: git clone https://github.com/owasp/threat-dragon.git
Dadurch wird der Code in ein Verzeichnis threat-dragon heruntergeladen, und der Anwendungscode befindet sich in zwei Unterordnern:
einem für die Backend-Anwendung (td.server) und einem für das Frontend (td.vue).
Installieren Sie vom obersten Verzeichnis des Projekts aus mit: npm install
Die Webanwendungsvariante von Threat Dragon erfordert einige Umgebungsvariablen; folgen Sie der [Dokumentation][config], um zu erfahren, wie Sie diese Variablen festlegen.
Wenn Zugriff auf externe Repositorys wie Bitbucket / GitHub / GitLab erforderlich ist, müssen Sie zu Ihrem Repository-Konto gehen und die Anwendung registrieren. Es gibt Schritt-für-Schritt-Anleitungen, wie Sie dies für [Bitbucket][bitbucket], [GitHub][github] und [GitLab][gitlab] tun.
Unter Windows und während der Entwicklung können das Frontend und das Server-Backend
separat im "watch"-Modus mit den Befehlen npm run dev:server und npm run dev:vue gestartet werden.
Alternativ können Sie unter Linux oder MacOS vom obersten Verzeichnis aus
sowohl den Backend-Server als auch die Frontend-Anwendung mit npm start starten.
Wenn sowohl Frontend als auch Backend laufen, greifen Sie mit einem Browser unter http://localhost:8080/ darauf zu.
Wenn Sie npm start verwenden, stoppen Sie sowohl den Backend-Server als auch die Frontend-Anwendung
vom obersten Verzeichnis aus mit dem Befehl npm stop. Andernfalls brechen Sie sowohl den Server als auch das Vue-Frontend ab.
Threat Dragon pflegt Docker-Images im OWASP-Organisationsbereich auf Docker Hub.
Jedes Release ist als v{major}.{minor}.{patch} getaggt, z. B. v2.2.0:
docker pull owasp/threat-dragon:v2.2.0Das neueste Tag (das Standard-Tag) kann durchaus eine Entwicklungsversion sein;
verwenden Sie daher das stable-Tag, das immer das neueste offizielle Release ist:
docker pull threatdragon/owasp-threat-dragon:stabledocker run -it --rm -p 8080:3000 -v $(pwd)/.env:/app/.env threatdragon/owasp-threat-dragon:v2.2.0docker run -it --rm -p 8080:3000 -v %CD%/.env:/app/.env threatdragon/owasp-threat-dragon:v2.2.0Vorausgesetzt, Sie verwenden den HTTP-Port 8080 und greifen über http://localhost:8080/ auf Threat Dragon zu.
Um Threat Dragon in einem Docker-Container auszuführen, der lokal erstellt wurde, konfigurieren Sie zunächst Ihre [Umgebung mit dotenv][config] und führen Sie vom obersten Verzeichnis des Projekts aus:
docker build -t owasp-threat-dragon:dev .docker run -it --rm -p 8080:3000 -v $(pwd)/.env:/app/.env owasp-threat-dragon:devdocker run -it --rm -p 8080:3000 -v %CD%/.env:/app/.env owasp-threat-dragon:devVerwenden Sie den HTTP-Port 8080 und greifen Sie über http://localhost:8080/ auf Threat Dragon zu.
[][contributors]
Pull Requests, Feature-Anfragen, Fehlerberichte und Feedback jeder Art sind sehr willkommen. Bitte lesen Sie die Seite für Mitwirkende.
Es gibt einige [Entwicklerhinweise][notes], die den Einstieg in dieses Projekt erleichtern. Wir bemühen uns, die Testabdeckung relativ hoch zu halten; fügen Sie daher Tests in Ihre Pull Requests ein.