关于 threat-modeling-techniques
threat-modeling-techniques 是用于系统设计与架构阶段的安全威胁建模技能,面向开发者、架构师和安全团队。它以 STRIDE、攻击树和 DREAD 风险评分组织识别、评估、缓解与验证流程。
主要功能
- 01五阶段威胁建模流程
- 02使用 STRIDE 分类威胁
- 03用攻击树梳理攻击路径
- 04通过 DREAD 评估风险
- 05检查信任边界与控制措施
- 06规划缓解与安全需求
适用场景
- 01设计新系统或新功能时识别威胁
- 02审查系统架构和第三方集成
- 03按风险优先级制定安全措施
- 04记录安全设计决策并规划测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nickcrew/ claude-cortex --skill threat-modeling-techniques安装后在 Claude Code 中输入/threat-modeling-techniques确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/attack-trees.mddata-flow-diagrams.mddread-scoring.mdmitigation-strategies.mdstride-disclosure.mdstride-dos.mdstride-elevation.mdstride-repudiation.mdstride-spoofing.mdstride-tampering.mdtools-and-process.md详细介绍
威胁建模技术
在系统设计和架构阶段,使用 STRIDE、攻击树和风险评估框架等成熟方法,系统地识别、分析并缓解安全威胁。
何时使用此技能
- 设计具有安全要求的新系统或功能
- 进行安全架构评审
- 识别攻击向量和威胁场景
- 在实施前评估安全风险
- 制定安全要求和控制措施
- 评估第三方集成对安全的影响
- 规划安全测试策略
- 记录安全设计决策
- 培训团队进行主动安全思考
- 支持安全合规计划(SOC 2、ISO 27001)
核心流程
五阶段威胁建模流程:
- 定义 - 了解系统并创建架构图
- 识别 - 使用结构化方法(STRIDE、攻击树)列举威胁
- 评估 - 评估风险的严重程度和可能性(DREAD 评分)
- 缓解 - 设计控制措施和对策
- 验证 - 评审并测试安全控制措施
快速参考
| 任务 | 加载参考资料 |
|---|---|
| STRIDE:身份欺骗 | skills/threat-modeling-techniques/references/stride-spoofing.md |
| STRIDE:篡改数据 | skills/threat-modeling-techniques/references/stride-tampering.md |
| STRIDE:抵赖 | skills/threat-modeling-techniques/references/stride-repudiation.md |
| STRIDE:信息泄露 | skills/threat-modeling-techniques/references/stride-disclosure.md |
| STRIDE:拒绝服务 | skills/threat-modeling-techniques/references/stride-dos.md |
| STRIDE:权限提升 | skills/threat-modeling-techniques/references/stride-elevation.md |
| 攻击树 | skills/threat-modeling-techniques/references/attack-trees.md |
| 数据流图(DFD) | skills/threat-modeling-techniques/references/data-flow-diagrams.md |
| DREAD 风险评分 | skills/threat-modeling-techniques/references/dread-scoring.md |
| 缓解策略 | skills/threat-modeling-techniques/references/mitigation-strategies.md |
| 工具与流程 | skills/threat-modeling-techniques/references/tools-and-process.md |
核心概念
STRIDE 方法
STRIDE 将威胁分为六种类型:
- Spoofing:冒充其他人或事物(绕过身份验证、窃取凭证)
- Tampering:恶意修改数据(中间人攻击、数据损坏)
- Repudiation:在没有证据的情况下否认行为(缺少审计跟踪)
- Information Disclosure:暴露敏感数据(数据泄露、错误信息过于详细)
- Denial of Service:使系统不可用(资源耗尽、DDoS)
- Elevation of Privilege:获取未授权能力(权限提升、IDOR)
将 STRIDE 应用于:
- 数据流图中的每个组件
- 每次跨越信任边界的操作
- 所有数据存储和处理流程
- 外部集成和 API
攻击树
以层级图展示从目标到方法的攻击路径:
[Root: Attack Goal]
|
+-- [OR] Method 1 (alternative paths)
| |
| +-- [AND] Required Step 1.1
| +-- [AND] Required Step 1.2
|
+-- [OR] Method 2 (alternative paths)
使用攻击树来:
- 可视化攻击场景
- 找出最容易的攻击路径
- 分配属性(成本、技能、被发现的可能性)
- 优先缓解高风险路径
DREAD 风险评分
DREAD 用于量化威胁严重程度(每项标准按 0-10 评分,平均值即为风险分数):
- Damage Potential:利用漏洞会造成多大损害?
- Reproducibility:复现起来有多容易?
- Exploitability:利用起来有多容易?
- Affected Users:会影响多少用户?
- Discoverability:发现起来有多容易?
风险等级:
- 7.1-10.0:严重(立即处理)
- 5.1-7.0:高(下一个迭代)
- 3.1-5.0:中(后续版本)
- 0.0-3.0:低(待办事项)
信任边界
划分不同信任级别的界线:
- 网络:互联网 → DMZ → 内部网络
- 进程:用户模式 → 内核、容器 → 主机
- 用户:匿名 → 已认证 → 管理员
在每个边界处,验证:
- 是否需要身份验证?
- 是否强制执行授权检查?
- 数据是否加密?
- 输入是否经过验证?
- 操作是否已记录?
实用工作流程
1. 定义范围(30 分钟)
- 确定范围内的系统组件
- 定义信任边界
- 列出需要保护的资产
- 确定合规要求
2. 分解架构(1 小时)
- 创建数据流图(DFD)
- 记录外部依赖项
- 确定身份验证和授权点
- 映射数据存储位置
3. 识别威胁(1–2 小时)
- 对每个 DFD 元素应用 STRIDE
- 为高价值资产创建攻击树
- 与团队一起集思广益,构思威胁场景
- 使用威胁建模工具获取建议
4. 评估风险(1 小时)
- 对每项威胁应用 DREAD 评分
- 按风险评分对威胁排序
- 考虑业务背景和合规要求
- 区分快速见效的措施与长期工作
5. 规划缓解措施(1 小时)
- 设计安全控制措施(消除、降低、转移、接受)
- 记录缓解策略
- 创建安全需求(SEC-### 格式)
- 指定实施负责人
6. 编写文档(30 分钟)
- 导出威胁模型图
- 创建安全需求文档
- 记录风险接受决策
- 与利益相关者分享
常见错误
避免:
- 威胁建模启动过晚(实现完成后才开始)
- 只关注外部威胁(忽视内部人员威胁)
- 创建静态威胁模型(从不更新)
- 图表过于复杂(细节太多)
- 忽视发生概率低但影响大的威胁
- 未能记录假设和决策
- 未能落实缓解措施
最佳实践
团队参与:
- 开发人员:实现细节、代码层面的威胁
- 架构师:系统设计、集成点
- 安全团队:威胁专业知识、攻击场景
- 运维人员:部署、监控、事件响应
- 产品负责人:业务影响、风险接受决策
融入流程:
- 设计阶段:在实现前建立威胁模型
- 开发阶段:实施控制措施、创建安全测试
- 部署阶段:验证控制措施、启用监控
- 维护阶段:功能变更时更新模型
工具
Microsoft Threat Modeling Tool:可视化 DFD 编辑器,自动生成 STRIDE 威胁 OWASP Threat Dragon:开源、跨平台,提供 Web 和桌面版本 IriusRisk:商业平台,集成 DevSecOps,支持合规映射 ThreatModeler:支持协作和云架构
资源
- Microsoft Threat Modeling Tool:https://aka.ms/threatmodelingtool
- OWASP Threat Dragon:https://owasp.org/www-project-threat-dragon/
- STRIDE Documentation:https://learn.microsoft.com/en-us/azure/security/develop/threat-modeling-tool-threats
- Threat Modeling Manifesto:https://www.threatmodelingmanifesto.org/
- NIST Threat Modeling:https://csrc.nist.gov/projects/threat-modeling
评论
支持 Markdown