>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
JavaScript

Zapomnij o rysowaniu architektury w Paincie: Wprowadzenie do OWASP Threat Dragon

Threat Dragon Logo

Pomyśl o ostatnim razie, gdy zespół ds. bezpieczeństwa poprosił Cię o „stworzenie modelu zagrożeń”. Najprawdopodobniej otworzyłeś Miro lub Draw.io, wrzuciłeś kilka pudełek ze strzałkami i próbowałeś sobie przypomnieć akronim STRIDE. Efektem był ładny diagram, który stał się nieaktualny tydzień po wydaniu i skończył w korporacyjnym Wiki jako porzucony dokument.

Twórcy OWASP dostrzegli ten problem dawno temu i stworzyli Threat Dragon. To narzędzie open-source, które pomaga rysować diagramy przepływu danych i dołączać zagrożenia bezpośrednio do elementów architektury.

Co potrafi Threat Dragon

Projekt założył Mike Goodwin w 2015 roku, a obecnie ma oficjalny status OWASP Production. Oznacza to, że narzędzie jest aktywnie rozwijane, a nie porzucone po pierwszym commicie.

Punktem narzędzia jest uczynienie modelowania zagrożeń dostępnym dla zwykłych zespołów deweloperskich, nie tylko dla wyspecjalizowanych specjalistów ds. bezpiecznej architektury.

Oto główne funkcje, dla których warto przyjrzeć się temu projektowi:

  • Budowanie diagramów przepływu danych (DFD). Układasz na kanwie procesy, magazyny danych, zewnętrznych aktorów i granice zaufania.
  • Generowanie i opis zagrożeń. Na podstawie elementów diagramu możesz szybko sporządzić listę potencjalnych ryzyk i dołączyć do nich konkretne kroki zaradcze.
  • Integracja z repozytoriami Git. Wersja webowa może autoryzować się przez GitHub, GitLab lub Bitbucket i zapisywać modele zagrożeń bezpośrednio w kodzie projektu jako pliki JSON.
  • Możliwość pracy offline. Jeśli polityki korporacyjne zabraniają wysyłania diagramów architektury do zewnętrznych usług, dostępne są samodzielne buildy desktopowe.

Pod maską

Oryginalna pierwsza wersja była trudna w użyciu, ponieważ frontend był napisany w AngularJS 1.x. Ze względu na przestarzałość frameworka, autorzy podjęli logiczną decyzję o całkowitym przepisaniu projektu.

Wersja druga Threat Dragon została zbudowana na świeżym stacku: Vue.js dla interfejsu użytkownika i Node.js dla backendu. Repozytorium jest wyraźnie podzielone na dwa katalogi: td.server i td.vue. Jeśli chcesz dodać własną regułę lub dostosować interfejs do swoich potrzeb, zrozumienie struktury nie będzie trudne.

Szybki start

Najłatwiejszy sposób na wypróbowanie narzędzia lokalnie to uruchomienie gotowego kontenera Docker. Potrzebujesz dosłownie jednego polecenia:

docker pull threatdragon/owasp-threat-dragon:stable
docker run -it --rm -p 8080:3000 threatdragon/owasp-threat-dragon:stable

Po tym interfejs webowy będzie dostępny pod adresem http://localhost:8080/.

Jeśli wolisz tradycyjny build ze źródeł, procesy są również proste:

git clone https://github.com/owasp/threat-dragon.git
cd threat-dragon
npm install
npm start

Pełna funkcjonalność wersji webowej z GitHub lub GitLab wymaga zarejestrowania aplikacji OAuth w ustawieniach systemu kontroli wersji i przekazania kluczy przez zmienne do pliku .env. W repozytorium znajdują się szczegółowe instrukcje dla każdej popularnej usługi.

Kto znajdzie ten projekt przydatny

Threat Dragon nie zastąpi pełnego audytu bezpieczeństwa, a jego interfejs wygląda dość surowo. Ale jeśli Twój zespół potrzebuje wdrożyć praktyki DevSecOps już na etapie projektowania, to doskonała alternatywa dla rozbudowanych systemów komercyjnych.

Narzędzie idealnie nadaje się do dokumentowania decyzji architektonicznych bezpośrednio w repozytorium projektu. Wszystkie diagramy są przechowywane obok kodu, co ułatwia ich aktualizację podczas refaktoryzacji i odświeżanie podczas planowanych przeglądów architektury.

Powiązane projekty