
Инструмент моделирования угроз с открытым исходным кодом от OWASP
OWASP Threat Dragon — это бесплатное, открытое, кроссплатформенное приложение для моделирования угроз. Оно используется для рисования диаграмм моделирования угроз и для перечисления угроз для элементов диаграммы. Mike Goodwin создал Threat Dragon в качестве открытого сообщества, которое предоставляет интуитивно понятный и доступный способ моделирования угроз.
Threat Dragon спроектирован так, чтобы быть доступным для различных типов команд, с акцентом на гибкость и простоту. Проект имеет статус OWASP Production и следует ценностям и принципам манифеста моделирования угроз.
Эта программа является свободным программным обеспечением: вы можете распространять и/или изменять её в соответствии с условиями лицензии Apache 2.0.
Получите доступ к последней версии Threat Dragon на демонстрационном сайте и обратитесь к страницам документации.
Также стоит посмотреть видео, предоставленное серией OWASP Spotlight.
В области выпусков на GitHub содержатся версии Threat Dragon от 1.3 до последних версий 2.x. Предыдущие выпуски находятся в оригинальном репозитории Майка Гудвина.
На сайте OWASP есть хороший обзор моделирования угроз и оценки рисков, который расширяет то, к чему стремится проект Threat Dragon:
Mike Goodwin является основателем и создателем этого проекта, и данный репозиторий был перенесён из оригинального репозитория Майка Гудвина, в котором содержатся вопросы и запросы на слияние с октября 2015 по июнь 2020 года.
Threat Dragon — это прежде всего веб-приложение. Веб-приложение может хранить файлы моделей угроз в локальной файловой системе; кроме того, можно настроить доступ к:
Настольные версии Threat Dragon хранят файлы моделей угроз в локальной файловой системе и не имеют доступа к внешним репозиториям. Вы можете скачать установщики для Windows, MacOS и Linux.
Справка для конечного пользователя доступна как для последней версии 2.x, так и для предыдущей версии 1.x.
Изначально Threat Dragon был написан с использованием AngularJS версии 1.x, но эта версия Angular достигла конца срока службы. Это означает, что версии 1.x Threat Dragon больше активно не поддерживаются, а версии 2.x были переписаны с использованием Vue.js.
Для получения дополнительной информации о сборке/запуске версии 1.x, пожалуйста, обратитесь к ветке legacy-v1.x.
Установите git и node.js, который включает менеджер пакетов npm
Клонируйте репозиторий с помощью: git clone https://github.com/owasp/threat-dragon.git
Это загрузит код в каталог threat-dragon, и код приложения находится в двух подпапках:
одна для серверной части (td.server) и одна для клиентской части (td.vue).
Установите из корневого каталога проекта с помощью: npm install
Веб-версия Threat Dragon требует некоторых переменных окружения; следуйте документации по настройке этих переменных.
Если требуется доступ к внешним репозиториям, таким как Bitbucket/GitHub/GitLab, вам необходимо зайти в свой аккаунт репозитория и зарегистрировать приложение. Существуют пошаговые руководства по этому процессу для Bitbucket, GitHub и GitLab.
При работе в Windows и во время разработки клиентскую и серверную части
можно запускать отдельно в режиме "watch" с помощью команд: npm run dev:server и npm run dev:vue.
Кроме того, при работе в Linux или MacOS запустите и серверную часть, и клиентское приложение
из корневого каталога с помощью: npm start.
Когда обе части запущены, откройте браузер по адресу http://localhost:8080/
Если используется npm start, остановите и серверную часть, и клиентское приложение
из корневого каталога командой npm stop. В противном случае выйдите из обеих частей (сервера и frontend).
Threat Dragon поддерживает образы Docker в организации OWASP на Dockerhub.
Каждый выпуск помечен как v{мажорная}.{минорная}.{патч}, например v2.2.0:
docker pull owasp/threat-dragon:v2.2.0Тег latest (который используется по умолчанию) может быть разработочной версией,
поэтому используйте тег stable, который всегда соответствует последнему официальному выпуску:
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.0Предполагается, что вы используете порт http 8080 и обращаетесь к Threat Dragon по адресу http://localhost:8080/.
Для запуска Threat Dragon в контейнере Docker, собранном локально, сначала настройте окружение с помощью dotenv и запустите из корневого каталога проекта:
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:devИспользование порта http 8080 и доступ к Threat Dragon по адресу http://localhost:8080/.
Запросы на слияние, запросы функций, отчёты об ошибках и отзывы любого рода приветствуются; пожалуйста, обратитесь к странице для участников.
Есть некоторые заметки для разработчиков, которые помогут начать работу с этим проектом. Мы стараемся поддерживать относительно высокое покрытие тестами, поэтому включайте тесты в свои запросы на слияние.
Самый простой способ связаться с сообществом Threat Dragon — отправить письмо в группу OWASP в Google. Канал OWASP Slack #project-threat-dragon является хорошим источником информации, хотя сначала вам возможно, потребуется подписаться.
Вы можете следить за Threat Dragon в Bluesky.
Если вы обнаружили уязвимость в этом проекте, сообщите нам как можно скорее, и мы исправим её в приоритетном порядке. Для безопасного раскрытия, пожалуйста, ознакомьтесь с политикой безопасности.
Threat Dragon: делаем моделирование угроз менее пугающим