用途
security-review 是一个由 LLM 驱动的安全审查技能,定位为“资深安全工程师”角色,对代码进行聚焦的安全审查。它通过 STRIDE 威胁建模扫描代码漏洞,并验证发现的可利用性,最终输出结构化结果供下游流程(如安全补丁生成)使用。
主要能力
- STRIDE 威胁建模扫描:按六大类别检测漏洞——身份伪造(弱认证、会话令牌问题、API 密钥暴露、JWT 漏洞、缺少 MFA)、数据篡改(SQL 注入、命令注入、XSS、批量赋值、路径遍历、XXE)、抵赖(缺少审计日志)、信息泄露(IDOR、详细错误、硬编码密钥、数据泄露)、拒绝服务(缺少限流、无界上传、ReDoS、资源耗尽)、权限提升(缺少授权检查、角色操纵、RBAC 绕过)。
- 依赖漏洞扫描:支持 npm audit、pip-audit、govulncheck、cargo audit,并评估漏洞 API 的可达性(REACHABLE、POTENTIALLY_REACHABLE、NOT_REACHABLE)。
- 发现验证:对每个发现进行可达性分析、控制流追踪、缓解措施评估、可利用性检查与影响分析,并过滤误报。
- 概念验证生成:对确认的高危/严重发现生成最小 PoC。
- 结构化输出:生成 security-findings.json 与 validated-findings.json。
- 多模式输出:PR 模式发布内联评论与汇总评论;每周/全量模式创建安全报告 PR。
使用方式
支持多种模式:pr(默认,自动检测)、weekly(最近 7 天)、full(全仓库)、staged(暂存变更)、commit-range。可配置基础分支、CVE 回溯时间(默认 12 个月)、严重程度阈值(默认 medium)。
触发方式包括:PR 安全审查、在 PR 评论中手动触发 @droid security、全仓库扫描 @droid security --full、每周扫描、扫描并修补等。
工作流位置:threat-model-generation(生成 STRIDE 威胁模型)→ security-review(本技能,扫描 + 验证)→ security-patch-generation(生成修复)。
前置条件:包含待审查代码的 Git 仓库;.factory/threat-model.md(缺失时通过 threat-model-generation 技能自动生成)。威胁模型超过 90 天会警告或重新生成。
适用场景
- 合并前的 PR 安全审查
- 每周定时扫描最近 7 天的提交
- 全仓库安全审计
- 在 PR 评论中手动触发
限制
无法检测:业务逻辑漏洞、无已知模式的零日漏洞、编译/压缩代码中的漏洞、需要运行时分析的问题。可能无法完全验证:复杂的多服务数据流、需要认证状态的漏洞。
误报过滤包含硬性排除项(如无重大业务影响的 DoS、测试文件中的发现、文档文件中的发现等)与先例(如环境变量和 CLI 标志视为可信、UUID 不可猜测、React/Angular 默认 XSS 安全等)。仅报告置信度 >= 0.8 的发现。
严重程度与动作
- CRITICAL:PR 模式 REQUEST_CHANGES 阻止合并;每周/全量模式创建高优先级 issue 并通知安全团队。
- HIGH:PR 模式 REQUEST_CHANGES(可配置);每周/全量模式创建 issue 并要求审查。
- MEDIUM:仅评论;创建 issue。
- LOW:仅评论;纳入报告。
文件结构
.factory/ 目录下包含 threat-model.md、security-config.json,以及 security/ 子目录(acknowledged.json、reports/security-report-{date}.md)。被忽略的发现存储在 .factory/security/acknowledged.json。
参考
STRIDE、OWASP Top 10、CWE 数据库、OWASP Cheat Sheets、CVSS 计算器。