用途
security-threat-model 是一项面向代码仓库的 AppSec 威胁建模技能,属于 waybarrios/opencode-power-pack。其目标是为仓库或指定项目路径交付可操作的、针对具体代码的威胁模型,而不是通用检查清单。所有架构论断都必须锚定到仓库中的证据,并保持假设显式可见。该技能优先考虑现实攻击者目标与具体影响。
主要能力
- 从仓库摘要中识别主要组件、数据存储与外部集成。
- 识别系统运行方式(服务器、CLI、库、worker)及其入口点。
- 将运行时行为与 CI/构建/开发工具以及测试/示例区分开。
- 将范围内位置映射到组件,并显式排除范围外项目。
- 枚举信任边界,记录协议、认证、加密、验证与速率限制。
- 列出驱动风险的资产(数据、凭据、模型、配置、计算资源、审计日志)。
- 识别入口点(端点、上传面、解析器/解码器、任务触发器、管理工具、日志/错误接收器)。
- 基于暴露面与预期用途描述现实攻击者能力,并显式说明非能力以避免夸大严重性。
- 以滥用路径形式枚举威胁,将攻击者目标映射到资产与边界(数据外泄、权限提升、完整性破坏、拒绝服务)。
- 使用定性可能性与影响(低/中/高)并附简短理由,按可能性×影响并考虑现有控制措施后设定总体优先级(严重/高/中/低)。
- 区分有证据的现有缓解措施与建议的缓解措施,并将建议绑定到具体位置与控制类型。
- 在最终报告前与用户确认关键假设,提出 1–3 个针对性问题以解决缺失上下文。
- 执行质量检查,确认所有发现的入口点、信任边界、运行时与 CI/开发分离、用户澄清、假设与开放问题均已覆盖。
- 将最终 Markdown 写入名为
<repo-or-dir-name>-threat-model.md的文件。
使用方式
快速开始:
- 收集(或推断)输入:仓库根路径与任何范围内路径;预期用途、部署模型、互联网暴露与认证预期(如已知);任何现有仓库摘要或架构规范。
- 使用 references/prompt-template.md 中的提示生成仓库摘要。
- 遵循 references/prompt-template.md 中要求的输出契约,尽可能逐字使用。
工作流:
- 范围界定与系统模型提取:从仓库摘要识别主要组件、数据存储与外部集成;识别系统运行方式与入口点;分离运行时行为与 CI/构建/开发工具及测试/示例;将范围内位置映射到组件并显式排除范围外项目;不得在无证据情况下声称组件、流程或控制措施。
- 推导边界、资产与入口点:枚举信任边界为组件间的具体边,注明协议、认证、加密、验证与速率限制;列出驱动风险的资产;识别入口点。
- 校准资产与攻击者能力:列出驱动风险的资产(凭据、PII、完整性关键状态、可用性关键组件、构建产物);基于暴露面与预期用途描述现实攻击者能力;显式说明非能力以避免夸大严重性。
- 以滥用路径枚举威胁:优先选择映射到资产与边界的攻击者目标;对每个威胁分类并绑定到受影响资产;保持威胁数量少而质量高。
- 按显式可能性与影响推理排序:使用定性可能性与影响(低/中/高)并附简短理由;按可能性×影响并考虑现有控制措施后设定总体优先级;说明哪些假设最影响排名。
- 与用户验证服务上下文与假设:总结对威胁排名或范围有实质影响的关键假设,请用户确认或纠正;提出 1–3 个针对性问题以解决缺失上下文(服务所有者与环境、规模/用户、部署模型、认证/授权、互联网暴露、数据敏感性、多租户);暂停并等待用户反馈后再生成最终报告;若用户拒绝或无法回答,说明剩余假设及其对优先级的影响。
- 推荐缓解措施与重点路径:区分有证据的现有缓解措施与建议的缓解措施;将缓解措施绑定到具体位置(组件、边界或入口点)与控制类型(授权检查、输入验证、模式强制、沙箱、速率限制、密钥隔离、审计日志);优先给出具体实现提示而非通用建议;基于已验证的用户上下文给出建议;若假设未解决,将建议标记为有条件。
- 最终化前运行质量检查:确认所有发现的入口点均已覆盖;确认每个信任边界在威胁中均有体现;确认运行时与 CI/开发分离;确认用户澄清(或明确未回应)已反映;确认假设与开放问题显式可见;确认报告格式与 references/prompt-template.md 中定义的必需输出格式高度匹配。
最终将 Markdown 写入名为 <repo-or-dir-name>-threat-model.md 的文件(使用仓库根目录的 basename,或若被要求建模子路径则使用范围内目录)。
适用场景
- 需要对具体代码仓库或项目路径进行 AppSec 级威胁建模。
- 需要基于仓库证据而非通用清单来识别资产、信任边界、攻击者与滥用路径。
- 需要按可能性与影响对威胁进行优先级排序,并给出具体缓解建议。
- 需要与用户确认服务上下文与假设后再生成最终报告。
限制
- 仅用于明确请求的威胁建模任务。
- 不得在无证据情况下声称组件、流程或控制措施。
- 缺失上下文时需向用户提问并等待反馈;若用户拒绝或无法回答,需说明剩余假设及其影响。
- 风险优先级指南为示例性而非穷尽:高(预认证 RCE、认证绕过、跨租户访问、敏感数据外泄、密钥或令牌窃取、模型或配置完整性破坏、沙箱逃逸);中(关键组件的定向 DoS、部分数据暴露、有可衡量影响的速率限制绕过、影响检测的日志/指标投毒);低(低敏感性信息泄露、易于缓解的噪声 DoS、需要不太可能前置条件的问题)。
- 参考文件:references/prompt-template.md(输出契约与完整提示模板)、references/security-controls-and-assets.md(可选控制/资产列表);仅加载所需参考文件,保持最终结果简洁、有据可查且可审查。