OWASP Threat Dragon 是一个免费、开源、跨平台的威胁建模应用程序。 它用于绘制威胁建模图,并列出图中各元素的威胁。 Mike Goodwin 创建了 Threat Dragon 作为一个开源社区项目, 提供了一种直观且易于访问的威胁建模方式。
Threat Dragon 旨在适用于各种类型的团队,强调灵活性和简单性。 该项目具有 OWASP 生产状态,并遵循 威胁建模宣言 的价值观和原则。
本程序是自由软件:您可以根据 Apache 2.0 许可证 的条款 重新分发和/或修改它。
在 演示网站 上访问最新版本的 Threat Dragon,并参阅 文档页面。
也非常值得观看 OWASP Spotlight 系列提供的视频。
github 发布区域 包含从 1.3 版本到最新 2.x 版本的 Threat Dragon。 之前的版本来自 Mike Goodwin 的 原始仓库。
OWASP 提供了关于 威胁建模和风险评估 的良好概述,并进一步阐述了 Threat Dragon 项目的目标:
Mike Goodwin 是本项目的创始人和创建者, 此仓库已从 Mike Goodwin 的 原始仓库 迁移而来,其中包含从 2015 年 10 月到 2020 年 6 月的议题和拉取请求。
Threat Dragon 主要是一个 Web 应用程序。 该 Web 应用程序可以将威胁模型文件存储在本地文件系统上;此外,还可以配置对以下内容的访问:
Threat Dragon 的 桌面版本 将威胁模型文件存储在本地文件系统上,并且不访问外部仓库。 您可以 下载安装程序 用于 Windows、MacOS 和 Linux。
最终用户帮助适用于最新的 2.x 版本 以及之前的 1.x 版本。
Threat Dragon 最初使用 AngularJS 1.x 版本编写,但该版本的 Angular 已停止支持。 这意味着 Threat Dragon 的 1.x 版本不再积极维护, 而 2.x 版本已重写为使用 Vue.js。
有关构建/运行 1.x 版本的更多信息, 请参阅 legacy-v1.x 分支。
安装 git 和 node.js,后者包含 node 包管理器 npm
使用以下命令克隆仓库:git clone https://github.com/owasp/threat-dragon.git
这会将代码下载到 threat-dragon 目录中,应用程序代码位于两个子文件夹中,
一个用于后端应用程序(td.server),一个用于前端(td.vue)。
在项目的顶层目录中使用以下命令安装:npm install
Threat Dragon 的 Web 应用程序版本需要一些环境变量; 请按照文档中的说明设置这些变量。
如果需要访问外部仓库,例如 Bitbucket / GitHub / GitLab, 那么你需要前往你的仓库账户并注册该应用程序。 有分步指南说明如何为 Bitbucket、GitHub 和 GitLab 执行此操作。
在 Windows 上运行时,以及在开发过程中,前端和后端服务器
可以使用命令 npm run dev:server 和 npm run dev:vue 以“监视”模式分别启动。
或者,如果在 Linux 或 MacOS 上运行,可以从顶层目录
使用以下命令同时启动后端服务器和前端应用程序:npm start。
前端和后端都运行后,使用浏览器访问 http://localhost:8080/
如果使用 npm start,请在顶层目录中使用命令 npm stop 同时停止后端服务器和前端应用程序。
否则,请分别退出服务器和 vue 前端。
Threat Dragon 在 Dockerhub 的 OWASP 组织区域内维护 docker 镜像。
每个版本都标记为 v{major}.{minor}.{patch},例如 v2.2.0:
docker pull owasp/threat-dragon:v2.2.0latest 标签(也是默认标签)很可能是一个开发版本,
因此请使用 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,并通过 http://localhost:8080/ 访问 Threat Dragon。
要在本地构建的 docker 容器中运行 Threat Dragon, 首先使用 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,并通过 http://localhost:8080/ 访问 Threat Dragon。
非常欢迎拉取请求、功能请求、错误报告以及任何形式的反馈, 请参阅贡献者页面。
有一些开发者笔记可以帮助你开始这个项目。 我们正在努力保持相对较高的测试覆盖率,因此请在你的拉取请求中包含测试。
与 Threat Dragon 社区联系的最简单方式是 发送电子邮件至 OWASP google group。 OWASP Slack 频道 #project-threat-dragon 是一个很好的信息来源, 不过你可能需要先订阅。
你可以在 Bluesky 上关注 Threat Dragon。
如果您在本项目中发现漏洞,请尽快告知我们,我们将优先修复。 如需安全披露,请参阅安全政策。
Threat Dragon:让威胁建模不再令人生畏