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 月的 issue 和 pull request。
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.0最新标签(默认)可能为开发版本,
因此请使用 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。
非常欢迎 Pull request、功能请求、错误报告以及任何形式的反馈, 请参阅贡献者页面。
这里有一些开发者笔记可帮助您上手此项目。 我们努力保持较高的测试覆盖率,因此请在 Pull request 中包含测试。
与 Threat Dragon 社区联系的最简单方式是 向 OWASP Google 群组 发送电子邮件。 OWASP Slack 频道 #project-threat-dragon 是很好的信息来源, 不过您可能需要先订阅。
您可以在 Bluesky 上关注 Threat Dragon。
如果您在此项目中发现漏洞,请尽快告知我们,我们会优先修复。 如需安全披露,请参阅安全策略。
Threat Dragon:让威胁建模不再令人生畏