SuperAPI AI 工具集

threat-model-generation

安全与审计

查看项目

更新于 10-15 13:48

技能介绍

用途

Threat Model Generation 是一个安全分析技能,用于为代码仓库生成基于 STRIDE 方法的综合性安全威胁模型。它会分析代码库架构,产出一份面向 LLM 优化的威胁模型文档,供其他安全技能引用。

适用时机包括:首次为新仓库建立安全监控;组件、API 或数据流发生重大架构变更后;安全审计或合规周期审查;安全团队手动请求更新威胁模型。

输入

运行前需收集或确认以下输入:

  • 仓库路径:要分析的根目录,必填,默认为当前目录。
  • 已有威胁模型:如需更新,提供已有 .factory/threat-model.md 的路径,可选。
  • 合规要求:需考虑的框架(SOC2、GDPR、HIPAA 等),可选。
  • 安全联系人:用于安全团队通知的邮箱地址,可选。

使用方式

技能按以下步骤执行:

  1. 分析仓库结构:识别语言与框架(检查 package.json、requirements.txt、go.mod、Cargo.toml 等),确定主技术栈;映射组件与服务(apps/、services/、packages/ 目录、API 路由、CLI 命令、Web 处理器以及数据库、缓存、消息队列);识别外部接口(HTTP 端点、文件上传处理器、Webhook 接收器、OAuth/SSO 集成、接受用户输入的 CLI 命令);追踪数据流(用户输入如何进入系统、敏感数据存储位置、调用的外部服务)。
  2. 识别信任边界:划分为公开区(不受信任,所有外部 HTTP 端点、无认证的公开 API、用户上传文件)、认证区(部分信任,需有效会话/令牌的端点、用户私人数据访问、限流 API)、内部区(受信任,服务间通信、仅管理员端点、数据库连接、密钥管理),并记录信任边界位置及跨越边界时的校验方式。
  3. 清点关键资产:按敏感度分类数据,包括 PII(用户邮箱、姓名、地址、电话及保护措施)、凭据与密钥(密码哈希、API 密钥、OAuth 令牌、JWT 签名密钥、加密密钥及轮换策略)、业务关键数据(交易记录、客户数据、专有算法、商业机密及访问控制)。
  4. 应用 STRIDE 分析:对每个主要组件分析六类威胁——S 身份伪造、T 数据篡改、R 抵赖、I 信息泄露、D 拒绝服务、E 权限提升。每类均给出可查找的代码缺陷线索,并为每个识别出的威胁描述攻击场景、列出易受影响组件、展示需查找的代码模式、记录已有缓解措施、指出缺口、评定严重程度(CRITICAL/HIGH/MEDIUM/LOW)与可能性。
  5. 记录漏洞模式:针对该代码库技术栈创建代码模式库,覆盖 SQL 注入、XSS、命令注入、路径遍历、认证绕过、IDOR(不安全的直接对象引用),并给出易受攻击与安全写法对照示例(如 Python SQL 注入示例)。
  6. 生成输出文件:创建两个文件。

第一个文件 .factory/threat-model.md,使用 stride-template.md 模板生成,包含系统概览与架构描述、信任边界与安全区、攻击面清点、关键资产分类、各组件 STRIDE 威胁分析、漏洞模式库、安全测试策略、假设与被接受风险、版本变更日志。文档以自然语言配合代码示例撰写,面向 LLM 理解优化。

第二个文件 .factory/security-config.json,生成配置元数据,包含字段:threat_model_version、last_updated、security_team_contacts、compliance_requirements、scan_frequency(默认为 on_commit)、severity_thresholds(block_merge 为 CRITICAL;require_review 为 HIGH、CRITICAL;notify_security_team 为 CRITICAL)、vulnerability_patterns(enabled 列表含 sql_injection、xss、command_injection、path_traversal、auth_bypass、idor;custom_patterns_path 默认 null)。内容需根据检测到的合规要求、安全团队联系人、技术栈进行定制。

完成标准与验证

完成标准为:.factory/threat-model.md 所有章节已填充;.factory/security-config.json 为有效 JSON;所有主要组件均完成 STRIDE 分析;漏洞模式与技术栈匹配;文档为自然语言、LLM 可读;无占位文本残留。

验证步骤:检查威胁模型存在且非空(test -s .factory/threat-model.md);验证配置为有效 JSON(cat .factory/security-config.json | jq . > /dev/null);检查关键章节是否包含(grep 检查 "## 1. System Overview"、"## 5. Threat Analysis"、"## 6. Vulnerability Pattern Library")。

调用示例

生成初始威胁模型:“Generate a threat model for this repository using the threat-model-generation skill.”

架构变更后更新:“Update the threat model - we added a new payments service in services/payments/.”

带合规要求生成:“Generate a threat model for this repository. We need to comply with SOC2 and GDPR.”

限制

具体支持的技术栈范围、适用仓库规模、运行环境依赖等信息暂未提供。