Забудьте про рисование архитектуры в Paint: знакомство с OWASP Threat Dragon

06 Aug, 2026
1,553
🔱 393
👥 29

Threat Dragon Logo

Вспомните последний раз, когда служба безопасности просила вас «составить модель угроз». Скорее всего, вы открыли Miro или Draw.io, накидали там блоков со стрелочками и попытались вспомнить аббревиатуру STRIDE. В итоге получилась симпатичная картинка, которая устарела через неделю после релиза и осталась пылится в корпоративной Вики.

Разработчики из OWASP давно заметили эту проблему и создали Threat Dragon. Это инструмент с открытым исходным кодом, который помогает рисовать диаграммы потоков данных и привязывать риски прямо к элементам архитектуры.

Что умеет Threat Dragon

Проект основал Майк Гудвин еще в 2015 году, а сейчас он имеет официальный статус OWASP Production. Это значит, что над утилитой постоянно работают, а не забросили после первого же коммита.

Смысл инструмента в том, чтобы сделать моделирование угроз доступным для обычных команд разработки, а не только для выделенных Secure Architecture специалистов.

Вот основные возможности, ради которых стоит взглянуть на проект:

  • Построение диаграмм потоков данных (DFD). Вы раскладываете процессы, хранилища данных, внешних акторов и границы доверия на холсте.
  • Генерация и описание угроз. На основе элементов диаграммы можно быстро составить список потенциальных рисков и привязать к ним конкретные шаги по устранению.
  • Интеграция с Git-репозиториями. Веб-версия умеет авторизоваться через GitHub, GitLab или Bitbucket и сохранять модели угроз прямо в код проекта в виде JSON-файлов.
  • Автономность. Если корпоративные правила запрещают передавать схемы архитектуры во внешние сервисы, есть автономные десктопные сборки.

Что под капотом

Изначально первой версией было сложно пользоваться, так как фронтенд был написан на AngularJS 1.x. Из-за устаревания фреймворка авторы приняли логичное решение полностью переписать проект.

Вторая версия Threat Dragon построена на свежем стеке: Vue.js для пользовательского интерфейса и Node.js для серверной части. Репозиторий чётко разделен на две директории: td.server и td.vue. Если вы захотите дописать собственное правило или поправить интерфейс под себя, разобраться в структуре будет несложно.

Быстрый запуск

Самый простой способ пощупать инструмент локально — запустить готовый Docker-контейнер. Потребуется буквально одна команда:

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

После этого веб-интерфейс станет доступен по адресу http://localhost:8080/.

Если вам ближе традиционная сборка из исходников, процессы тоже прозрачны:

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

Для полноценной работы веб-версии с GitHub или GitLab придется зарегистрировать OAuth-приложение в настройках вашей системы контроля версий и прокинуть ключи через variables в файл .env. В репозитории есть детальная инструкция под каждый популярный сервис.

Кому пригодится проект

Threat Dragon не заменит полноценный аудит безопасности, а его интерфейс выглядит довольно строго. Но если перед командой стоит задача внедрить практики DevSecOps на ранних этапах проектирования, это отличная альтернатива громоздким платным системам.

Инструмент идеально подходит для фиксации архитектурных решений прямо в репозитории проекта. Все схемы хранятся рядом с кодом, их легко менять при рефакторинге и обновлять на плановых архитектурных секциях.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.