mcpField
P
performing-threat-modeling-with-owasp-threat-dragon

performing-threat-modeling-with-owasp-threat-dragon

github.com/mukul975安全35.2k276 次安装8 周前更新
代码仓库

关于 performing-threat-modeling-with-owasp-threat-dragon

该技能指导安全团队和开发者使用 OWASP Threat Dragon 绘制威胁模型、识别威胁并生成报告,适用于设计评审与安全评估。内容涵盖多种威胁分类方法及桌面和 Web 应用工作流。

主要功能

  1. 01创建数据流图和威胁模型
  2. 02应用 STRIDE、LINDDUN 等方法
  3. 03规则引擎建议威胁与缓解措施
  4. 04生成 PDF 报告
  5. 05支持 JSON 模型文件与 TMBOM 导出

适用场景

  1. 01在新功能设计阶段评估威胁
  2. 02架构变更后更新威胁模型
  3. 03整理缓解措施并分配负责人

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill performing-threat-modeling-with-owasp-threat-dragon

安装后在 Claude Code 中输入/performing-threat-modeling-with-owasp-threat-dragon确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

详细介绍

使用 OWASP Threat Dragon 执行威胁建模

概述

OWASP Threat Dragon 是一款开源威胁建模工具,可帮助安全团队和开发人员创建威胁模型图、使用成熟的方法论(STRIDE、LINDDUN、CIA、DIE、PLOT4ai)识别威胁,并生成全面的报告。Threat Dragon 既可以作为 Web 应用运行,也可以作为桌面应用运行(Windows、macOS、Linux),支持分布式团队协作开展威胁建模工作。2.x 版本提供拖放式图表创建、用于生成威胁和缓解措施的自动生成规则引擎,以及用于文档记录和 GRC 合规的 PDF 报告输出。

何时使用

  • 在开展涉及使用 owasp threat dragon 执行威胁建模的安全评估时
  • 在处理相关安全事件并遵循事件响应流程时
  • 在执行计划内的安全测试或审计活动时
  • 通过动手测试验证安全控制措施时

前提条件

  • OWASP Threat Dragon 桌面应用或 Web 实例
  • 理解数据流图(DFD)表示法
  • 熟悉 STRIDE 或 LINDDUN 威胁分类
  • 应用架构文档和网络图
  • 设计评审会议所需的利益相关方访问权限

威胁建模方法论

STRIDE
类别威胁类型描述示例
S仿冒冒充用户或系统被盗的会话令牌
T篡改在传输中或静态存储时修改数据SQL 注入篡改记录
R抵赖否认某个操作发生过缺少审计日志
I信息泄露暴露敏感数据API 返回过多字段
D拒绝服务使服务不可用资源耗尽攻击
E权限提升获得未授权访问访问控制失效
LINDDUN(聚焦隐私)
类别威胁类型描述
L可关联性跨上下文关联数据项
I可识别性根据数据识别个人
N不可否认性无法否认某个操作(隐私风险)
D可检测性判断关于某个主体的数据是否存在
D泄露暴露个人信息
U无感知用户不知道数据被收集
N不合规违反隐私法规

工作流

第 1 步 --- 安装 Threat Dragon

桌面应用: 从 OWASP Threat Dragon 发布页下载适用于 Windows(.exe)、macOS(.dmg)或 Linux(.AppImage/.deb/.rpm)的安装程序。

Web 应用(Docker):

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 元素添加图表:

进程:转换数据的应用、微服务、API 端点。用圆形/圆角矩形表示。

数据存储:持久化数据的数据库、文件系统、缓存、消息队列。用平行线表示。

外部实体:信任边界之外的用户、外部系统、第三方服务。用矩形表示。

数据流:元素之间的通信通道,显示数据方向。用带标签的箭头表示,标签描述数据。

信任边界:分隔不同信任级别区域(互联网/DMZ/内部网络、用户/管理员)的虚线。

第 4 步 --- 识别威胁

对每个 DFD 元素,应用 STRIDE 方法:

元素类型适用的 STRIDE 类别
外部实体仿冒、抵赖
进程仿冒、篡改、抵赖、信息泄露、DoS、权限提升
数据存储篡改、信息泄露、DoS
数据流篡改、信息泄露、DoS

Threat Dragon 的规则引擎会根据元素类型自动建议威胁。审查每条建议并标记为:

  • 已缓解:现有控制措施已应对该威胁
  • 不适用:该威胁不适用于此场景
  • 未解决:该威胁需要处理(分配优先级和负责人)
第 5 步 --- 定义缓解措施

对每个未解决的威胁,记录:

  • 缓解策略(预防、检测、响应、转移)
  • 具体技术控制措施(加密、身份验证、速率限制)
  • 负责实施的负责人
  • 修复的优先级和时间线
第 6 步 --- 生成报告

Threat Dragon 生成包含以下内容的 PDF 报告:

  • 威胁模型的执行摘要
  • 带注释的数据流图
  • 带严重性评级的威胁清单
  • 缓解状态和建议
  • 适用时的合规映射
第 7 步 --- 集成到 SDLC
  • 在新功能的设计阶段进行威胁建模
  • 当架构发生变化时更新威胁模型
  • 在安全设计评审期间审查威胁模型
  • 将威胁模型文件与代码一起存储在版本控制中
  • 在安全验收标准中引用威胁模型的发现

威胁模型文件格式

Threat Dragon 使用 JSON 格式存储威胁模型,支持版本控制和程序化操作:

{
  "version": "2.2.0",
  "summary": {
    "title": "E-Commerce Application",
    "owner": "Security Team",
    "description": "Threat model for the checkout flow"
  },
  "detail": {
    "contributors": [
      {"name": "Security Architect"}
    ],
    "diagrams": [
      {
        "id": 0,
        "title": "Checkout Flow",
        "diagramType": "STRIDE",
        "cells": []
      }
    ]
  }
}

CycloneDX TMBOM 集成

Threat Dragon 参与 CycloneDX 威胁模型物料清单(TMBOM)计划,支持导出为通用格式,可被其他威胁建模工具和 GRC 平台使用,避免供应商锁定。

最佳实践

  1. 从简开始:先从高层级 DFD(Level 0)开始,再分解为详细图表
  2. 让开发者参与:让开发团队成员参与威胁建模会议,以获得切合实际的威胁评估
  3. 限制会议时长:初次会议限制在 90 分钟内;在后续会议中迭代
  4. 按风险排定优先级:使用严重性评级(严重、高、中、低)来确定缓解措施的优先级
  5. 动态文档:将威胁模型视为随系统演进的动态文档
  6. 尽可能自动化:使用规则引擎进行初步威胁生成,然后手动完善

参考资料

评论

支持 Markdown