用途
security-threat-model 是一个面向代码仓库的安全威胁建模技能,目标是交付针对具体仓库或项目路径的、达到 AppSec 级别的可操作威胁模型,而不是泛化的安全清单。它要求每一条架构性判断都能在仓库中找到证据,并把隐含假设显式写出,优先关注真实可行的攻击者目标与具体影响。
主要能力
- 从仓库摘要中识别主要组件、数据存储与外部集成。
- 判断系统运行形态(服务器、CLI、库、worker)及其入口点。
- 将运行时行为与 CI/构建/开发工具、测试/示例分开处理。
- 枚举信任边界,并标注协议、认证、加密、校验与限流情况。
- 清点驱动风险的资产,包括数据、凭据、模型、配置、计算资源与审计日志。
- 识别入口点,如端点、上传界面、解析器/解码器、任务触发器、管理工具、日志/错误汇聚点。
- 基于暴露面与预期用途描述现实可行的攻击者能力,并明确列出非能力以避免夸大严重性。
- 以滥用路径形式枚举威胁,并映射到受影响资产,强调少而精。
- 使用定性的可能性与影响(低/中/高)进行优先级排序,结合已有控制给出总体优先级。
- 区分已有缓解措施(附证据)与建议缓解措施,并将建议关联到具体位置与控制类型。
- 在最终定稿前执行质量检查,包括入口点覆盖、信任边界对应、运行时与 CI/开发分离、用户澄清是否反映、假设与未决问题是否显式、报告格式是否符合模板要求。
使用方式
- 收集或推断输入:仓库根路径及范围内的路径;预期用途、部署模式、互联网暴露与认证期望(若已知);已有仓库摘要或架构说明。
- 使用 references/prompt-template.md 中的提示词生成仓库摘要。
- 遵循 references/prompt-template.md 中规定的输出契约,尽可能逐字使用。
- 按工作流执行:
- 范围与系统模型提取
- 边界、资产与入口点推导
- 资产与攻击者能力校准
- 以滥用路径枚举威胁
- 显式可能性与影响推理进行优先级排序
- 与用户确认服务上下文与假设(提出 1–3 个针对性问题,并在生成最终报告前暂停等待反馈)
- 建议缓解措施与关注路径
- 最终化前运行质量检查
- 将最终 Markdown 写入名为
<repo-or-dir-name>-threat-model.md的文件(使用仓库根目录的 basename,或建模子路径时使用范围内目录名)。
适用场景
- 需要对特定代码库进行安全评审,而非套用通用安全检查表。
- 已有一定部署模式、暴露面与认证信息可提供,或可通过澄清补齐。
- 需要将威胁按可能性与影响排序,并产出可评审的简洁报告。
- 需要在代码中定位缓解措施落点的团队(组件、边界或入口点)。
限制
- 依赖仓库证据与用户确认,不能凭空声明组件、流程或控制。
- 若用户拒绝回答或无法回答上下文问题,需说明剩余假设及其对优先级的影响,建议需标记为条件性。
- 具体支持的平台、是否收费、价格等信息暂未提供。
参考文件
- 输出契约与完整提示词模板:references/prompt-template.md
- 可选控制/资产列表:references/security-controls-and-assets.md
- 仅按需加载参考文件,保持最终结果简洁、有据、可评审。