mcpField
T
threat-modeling

threat-modeling

github.com/mn-youssef安全49177 次安装20 周前更新
代码仓库

关于 threat-modeling

用于安全规划阶段的威胁建模技能,帮助安全团队在测试前梳理资产、入口和信任边界。它按 STRIDE 识别威胁,并依可能性与影响排序,输出供后续审计和渗透测试使用的目标清单。

主要功能

  1. 01盘点资产与输入入口
  2. 02梳理信任边界
  3. 03按 STRIDE 分析威胁
  4. 04按可能性与影响评估风险
  5. 05生成优先测试目标清单

适用场景

  1. 01为安全测试确定优先顺序
  2. 02发现 API 与内部入口的威胁
  3. 03为代码审计整理风险目标
  4. 04识别缺少专门测试覆盖的攻击面

安装

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

$npx skills add https://github.com/mn-youssef/security-skills --skill threat-modeling

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

附带文件references/stride-and-surface.md

详细介绍

威胁建模(PLAN 阶段)

概述

在投入精力前,先决定最需要担忧和测试的内容。梳理资产、入口点和信任边界;应用 STRIDE;按可能性 × 影响程度对风险排序。

核心原则: 无法测试所有内容。应把精力花在故障造成的损害最大的地方。

流程

  1. 盘点资产 — 什么最有价值?(用户数据、资金、凭据、PII、管理员控制权、IP)
  2. 梳理入口点 — 所有不可信输入进入的位置:路由/端点、表单、文件上传、查询参数、标头、Webhook、消息队列、移动端 API 调用、第三方回调。
  3. 划分信任边界 — 数据在哪里从较低信任级别跨越到较高信任级别?(浏览器→API、API→DB、服务→服务、用户→管理员)。缺陷往往集中在这些边界上。
  4. 对每个边界/组件应用 STRIDE — 参见 references/stride-and-surface.md。
  5. 排序 — 为每项威胁评分:risk = likelihood × impact(每项取 1–3 → 总分 1–9)。优先测试高分项。

快速参考 — STRIDE

威胁问题防护目标
Spoofing(欺骗)有人能冒充其他用户/服务吗?身份验证
Tampering(篡改)数据在传输中/静态存储时能被修改吗?完整性
Repudiation(抵赖)操作能被否认吗/有日志记录吗?不可否认性
Information disclosure(信息泄露)数据会泄露吗?机密性
Denial of service(拒绝服务)服务会变得不可用吗?可用性
Elevation of privilege(权限提升)用户能获得不应拥有的权限吗?授权

输出:按优先级排列的目标清单

供后续阶段使用的表格:

#资产入口点STRIDE可能性影响风险测试方式
1用户 PIIGET /api/users/:idI (IDOR)339代码审计 + 主动渗透测试
2身份验证POST /loginS236代码审计

交接

将优先级最高的项目交给 security-code-audit(发现问题)和 active-pentest(验证)。

攻击面清单也是适用性判断依据。 它会告诉 security-testing 编排器哪些专用技能适用(存在对应攻击面 → 运行),哪些应跳过(不存在 → N/A),并指出没有任何匹配专用技能的攻击面,以便将其作为覆盖缺口通过通用方法处理,并建议创建新技能。请列出发现的每一个攻击面——包括当前没有任何技能覆盖的攻击面——避免遗漏任何内容。

常见错误

  • 只建模正常路径——攻击者会利用非正常路径。
  • 忘记内部/可信入口(管理面板、内部 API、cron、队列)。
  • 把所有发现都视为同等重要——应进行排序,否则低价值工作会让你应接不暇。

评论

支持 Markdown