Stop met Architectuur Tekenen in Paint: Introductie tot OWASP Threat Dragon
Denk terug aan de laatste keer dat het beveiligingsteam je vroeg om een "dreigingsmodel" te maken. Waarschijnlijk opende je Miro of Draw.io, gooide je wat dozen met pijlen neer, en probeerde je het STRIDE-acroniem te onthouden. Het resultaat was een mooi ogend diagram dat een week na release verouderd raakte en stof ging verzamelen in de corporate Wiki.
OWASP-ontwikkelaars hebben dit probleem al lang geleden onderkend en hebben Threat Dragon gecreëerd. Het is een open-source tool die je helpt bij het tekenen van dataflowdiagrammen en het direct koppelen van risico's aan architectuurelementen.
Wat Threat Dragon Kan Doen
Het project werd opgericht door Mike Goodwin in 2015 en heeft nu de officiële OWASP Production-status. Dit betekent dat de tool actief wordt onderhouden en niet wordt verlaten na de eerste commit.
Het punt van de tool is om dreigingsmodellering toegankelijk te maken voor reguliere ontwikkelteams, niet alleen voor toegewijde Secure Architecture-specialisten.
Hier zijn de belangrijkste functies waar het project de moeite waard is:
- Data Flow Diagram (DFD) bouwen. Je legt processen, datastores, externe actoren en vertrouwensgrenzen op een canvas.
- Dreigingsgeneratie en -beschrijving. Op basis van diagramelementen kun je snel een lijst van potentiële risico's samenstellen en specifieke herstelstappen eraan koppelen.
- Git-repository-integratie. De webversie kan autoriseren via GitHub, GitLab of Bitbucket en dreigingsmodellen direct opslaan als JSON-bestanden in je projectcode.
- Offline-capaciteit. Als bedrijfsbeleid het verzenden van architectuurdiagrammen naar externe services verbiedt, zijn er standalone desktop-builds beschikbaar.
Onder de Motorkap
De originele eerste versie was moeilijk te gebruiken omdat de frontend geschreven was in AngularJS 1.x. Vanwege de veroudering van het framework namen de auteurs de logische beslissing om het project volledig te herschrijven.
Versie twee van Threat Dragon is gebouwd op een nieuwe stack: Vue.js voor de gebruikersinterface en Node.js voor de backend. De repository is duidelijk verdeeld in twee directories: td.server en td.vue. Als je je eigen aangepaste regel wilt toevoegen of de interface wilt aanpassen aan je behoeften, is het begrijpen van de structuur niet moeilijk.
Snelle Start
De gemakkelijkste manier om de tool lokaal uit te proberen is het uitvoeren van een kant-en-klare Docker-container. Het kost letterlijk één commando:
docker pull threatdragon/owasp-threat-dragon:stable
docker run -it --rm -p 8080:3000 threatdragon/owasp-threat-dragon:stable
Daarna is de webinterface beschikbaar op http://localhost:8080/.
Als je de voorkeur geeft aan een traditionele build vanuit de bron, zijn de processen ook eenvoudig:
git clone https://github.com/owasp/threat-dragon.git
cd threat-dragon
npm install
npm start
Voor volledige functionaliteit van de webversie met GitHub of GitLab moet je een OAuth-applicatie registreren in je versiebeheersysteem en de sleutels via variabelen doorgeven aan het .env-bestand. De repository bevat gedetailleerde instructies voor elke populaire service.
Voor Wie Is Dit Project Nuttig
Threat Dragon zal een volledige beveiligingsaudit niet vervangen en de interface ziet er vrij sober uit. Maar als je team DevSecOps-praktijken vroeg in de ontwerpfase moet implementeren, is het een uitstekend alternatief voor logge betaalsystemen.
De tool is ideaal voor het documenteren van architectuurbeslissingen direct in de projectrepository. Alle diagrammen worden naast de code opgeslagen, waardoor ze gemakkelijk kunnen worden bijgewerkt tijdens refactoring en kunnen worden ververst tijdens geplande architectuurreviews.
Gerelateerde projecten