performing-threat-modeling-with-owasp-threat-dragon
使用 OWASP Threat Dragon 创建数据流图,运用 STRIDE 和 LINDDUN 方法论识别威胁,并生成威胁模型报告用于安全设计审查。
Best use case
performing-threat-modeling-with-owasp-threat-dragon is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
使用 OWASP Threat Dragon 创建数据流图,运用 STRIDE 和 LINDDUN 方法论识别威胁,并生成威胁模型报告用于安全设计审查。
Teams using performing-threat-modeling-with-owasp-threat-dragon should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/performing-threat-modeling-with-owasp-threat-dragon/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How performing-threat-modeling-with-owasp-threat-dragon Compares
| Feature / Agent | performing-threat-modeling-with-owasp-threat-dragon | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
使用 OWASP Threat Dragon 创建数据流图,运用 STRIDE 和 LINDDUN 方法论识别威胁,并生成威胁模型报告用于安全设计审查。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 使用 OWASP Threat Dragon 执行威胁建模
## 概述
OWASP Threat Dragon 是一个开源威胁建模工具,使安全团队和开发人员能够创建威胁模型图、使用成熟方法论(STRIDE、LINDDUN、CIA、DIE、PLOT4ai)识别威胁,并生成全面报告。Threat Dragon 可作为 Web 应用和桌面应用(Windows、macOS、Linux)运行,支持分布式团队协作开展威胁建模。2.x 版本提供拖放式图表创建、威胁和缓解措施自动生成规则引擎,以及用于文档和 GRC 合规的 PDF 报告输出。
## 前置条件
- OWASP Threat Dragon 桌面应用或 Web 实例
- 理解数据流图(DFD)符号
- 熟悉 STRIDE 或 LINDDUN 威胁分类
- 应用架构文档和网络图
- 设计审查会议的利益相关者访问权限
## 威胁建模方法论
### STRIDE
| 类别 | 威胁类型 | 描述 | 示例 |
|----------|-------------|-------------|---------|
| S | 欺骗(Spoofing) | 冒充用户或系统 | 会话令牌盗用 |
| T | 篡改(Tampering) | 修改传输中或静止的数据 | SQL 注入改变记录 |
| R | 抵赖(Repudiation) | 否认某操作已发生 | 缺少审计日志 |
| I | 信息泄露(Information Disclosure) | 暴露敏感数据 | API 返回过多字段 |
| D | 拒绝服务(Denial of Service) | 使服务不可用 | 资源耗尽攻击 |
| E | 权限提升(Elevation of Privilege) | 获取未授权访问 | 访问控制失效 |
### LINDDUN(隐私专项)
| 类别 | 威胁类型 | 描述 |
|----------|-------------|-------------|
| L | 可关联性(Linkability) | 跨上下文关联数据项 |
| I | 可识别性(Identifiability) | 从数据中识别个人身份 |
| N | 不可否认性(Non-repudiation) | 无法否认某操作(隐私风险) |
| D | 可检测性(Detectability) | 确定是否存在关于某主体的数据 |
| D | 信息泄露(Disclosure) | 暴露个人信息 |
| U | 不知情(Unawareness) | 用户不知晓数据收集 |
| N | 违规(Non-compliance) | 违反隐私法规 |
## 实施步骤
### 步骤 1 --- 安装 Threat Dragon
**桌面应用:**
从 [OWASP Threat Dragon 发布页](https://github.com/OWASP/threat-dragon/releases) 下载 Windows(.exe)、macOS(.dmg)或 Linux(.AppImage/.deb/.rpm)安装包。
**Web 应用(Docker):**
```bash
docker run -p 3000:3000 \
-e ENCRYPTION_JWT_SIGNING_KEY=$(openssl rand -hex 32) \
-e ENCRYPTION_JWT_REFRESH_SIGNING_KEY=$(openssl rand -hex 32) \
-e ENCRYPTION_KEYS='[{"isPrimary":true,"id":0,"value":"'$(openssl rand -hex 16)'"}]' \
-e NODE_ENV=production \
owasp/threat-dragon:latest
```
### 步骤 2 --- 定义范围
在创建图表前,记录范围:
- 系统名称和描述
- 需要保护的资产(用户数据、凭据、支付信息)
- 外部依赖(第三方 API、云服务)
- 合规要求(GDPR、HIPAA、PCI DSS)
- 信任边界(网络段、认证区域)
### 步骤 3 --- 创建数据流图
在 Threat Dragon 中创建新威胁模型,使用以下 DFD 元素添加图表:
**处理(Process)**:转换数据的应用程序、微服务、API 端点。用圆圈/圆角矩形表示。
**数据存储(Data Store)**:持久化数据的数据库、文件系统、缓存、消息队列。用平行线表示。
**外部实体(External Entity)**:信任边界外的用户、外部系统、第三方服务。用矩形表示。
**数据流(Data Flow)**:元素之间显示数据方向的通信通道。用带标签的箭头表示,标签描述数据内容。
**信任边界(Trust Boundary)**:分隔不同信任级别区域的虚线(互联网/DMZ/内部网络、用户/管理员)。
### 步骤 4 --- 识别威胁
对每个 DFD 元素应用 STRIDE 方法论:
| 元素类型 | 适用的 STRIDE 类别 |
|-------------|------------------------------|
| 外部实体 | 欺骗、抵赖 |
| 处理 | 欺骗、篡改、抵赖、信息泄露、DoS、权限提升 |
| 数据存储 | 篡改、信息泄露、DoS |
| 数据流 | 篡改、信息泄露、DoS |
Threat Dragon 的规则引擎根据元素类型自动建议威胁。审查每个建议并标记为:
- **已缓解**:现有控制措施解决了该威胁
- **不适用**:威胁在此上下文中不适用
- **开放**:威胁需要处理(分配优先级和负责人)
### 步骤 5 --- 定义缓解措施
对每个开放威胁,记录:
- 缓解策略(预防、检测、响应、转移)
- 具体技术控制(加密、认证、速率限制)
- 负责实施的所有者
- 补救的优先级和时间表
### 步骤 6 --- 生成报告
Threat Dragon 生成包含以下内容的 PDF 报告:
- 威胁模型执行摘要
- 带注释的数据流图
- 带严重性评级的威胁清单
- 缓解状态和建议
- 适用时的合规映射
### 步骤 7 --- 集成到 SDLC
- 在新功能设计阶段进行威胁建模
- 架构变更时更新威胁模型
- 在安全设计审查期间审查威胁模型
- 将威胁模型文件与代码一起存储在版本控制中
- 在安全验收标准中引用威胁模型发现
## 威胁模型文件格式
Threat Dragon 使用 JSON 格式存储威胁模型,支持版本控制和程序化操作:
```json
{
"version": "2.2.0",
"summary": {
"title": "电子商务应用",
"owner": "安全团队",
"description": "结账流程的威胁模型"
},
"detail": {
"contributors": [
{"name": "安全架构师"}
],
"diagrams": [
{
"id": 0,
"title": "结账流程",
"diagramType": "STRIDE",
"cells": []
}
]
}
}
```
## CycloneDX TMBOM 集成
Threat Dragon 参与 CycloneDX 威胁模型物料清单(TMBOM)工作,支持导出到可被其他威胁建模工具和 GRC 平台使用的通用格式,避免供应商锁定。
## 最佳实践
1. **从简单开始**:先从高层 DFD(0 级)开始,再分解为详细图表
2. **让开发人员参与**:在威胁建模会议中邀请开发团队成员,以进行实际威胁评估
3. **设定时间限制**:初次会议控制在 90 分钟内;在后续会议中迭代
4. **按风险优先排序**:使用严重性评级(严重、高、中、低)为缓解措施排优先级
5. **活文档**:将威胁模型视为随系统演进的活文档
6. **尽可能自动化**:使用规则引擎进行初始威胁生成,再手动完善
## 参考资料
- [OWASP Threat Dragon](https://owasp.org/www-project-threat-dragon/)
- [Threat Dragon GitHub 仓库](https://github.com/OWASP/threat-dragon)
- [OWASP 威胁建模速查表](https://cheatsheetseries.owasp.org/cheatsheets/Threat_Modeling_Cheat_Sheet.html)
- [STRIDE 威胁模型](https://learn.microsoft.com/en-us/azure/security/develop/threat-modeling-tool-threats)
- [LINDDUN 隐私威胁建模](https://www.linddun.org/)Related Skills
tracking-threat-actor-infrastructure
威胁行为者基础设施追踪涉及使用被动 DNS、证书透明度日志、Shodan/Censys 扫描、WHOIS 分析和网络指纹技术,对对手控制的 C2 服务器、钓鱼域名和暂存服务器等资产进行监控、映射和持续追踪
testing-api-security-with-owasp-top-10
使用自动化和手工测试技术,针对 OWASP API 安全 Top 10 风险对 REST 和 GraphQL API 端点进行系统性评估。
profiling-threat-actor-groups
通过聚合 TTP 文档、历史活动数据、工具指纹和来自多个情报源的归因指标,为 APT 组织、犯罪组织和黑客活动组织开发全面的威胁行为者画像。适用于就行业特定威胁向管理层汇报、更新威胁模型假设,或针对特定对手优先部署防御控制措施。当涉及 MITRE ATT&CK 组织、Mandiant APT 画像、CrowdStrike 对手命名或行业特定威胁简报时激活。
performing-yara-rule-development-for-detection
通过识别可执行文件中的唯一字节模式、字符串和行为指标,开发精准的 YARA 恶意软件检测规则,同时将误报率降至最低。
performing-wireless-security-assessment-with-kismet
使用 Kismet 通过被动射频监控进行无线网络安全评估,检测流氓接入点(Rogue AP)、隐藏 SSID、弱加密和未授权客户端。
performing-wireless-network-penetration-test
执行无线网络渗透测试,通过捕获握手包、破解 WPA2/WPA3 密钥、检测流氓接入点以及使用 Aircrack-ng 和相关工具测试无线网络分段,评估 WiFi 安全性。
performing-windows-artifact-analysis-with-eric-zimmerman-tools
使用 Eric Zimmerman 的开源 EZ Tools 套件(包括 KAPE、MFTECmd、PECmd、LECmd、JLECmd 和 Timeline Explorer)执行全面的 Windows 取证制品分析,解析注册表 hive、预取文件、事件日志和文件系统元数据。
performing-wifi-password-cracking-with-aircrack
在授权无线安全评估中捕获 WPA/WPA2 握手包,并使用 aircrack-ng、hashcat 和字典攻击进行离线密码破解, 以评估密码短语强度和无线网络安全状况。
performing-web-cache-poisoning-attack
在授权安全测试期间,通过未纳入缓存键的头部和参数毒化缓存响应,利用 Web 缓存机制向其他用户投递恶意内容。
performing-web-cache-deception-attack
通过利用 CDN 缓存层与源服务器之间的路径规范化差异,执行 Web 缓存欺骗攻击,从而缓存并获取敏感的已认证内容。
performing-web-application-vulnerability-triage
使用 OWASP 风险评级方法论对 DAST/SAST 扫描器的 Web 应用程序漏洞发现进行分类,区分真阳性和假阳性,并确定修复优先级。
performing-web-application-scanning-with-nikto
Nikto 是一款开源 Web 服务器和 Web 应用程序扫描器,可针对超过 7,000 个潜在危险文件/程序进行测试,检查超过 1,250 个服务器的过期版本,并识别超过 270 个服务器的版本特定问题。