用途
Security Audit 是一个专注于代码库安全审计的技能,用于在用户请求对代码库进行安全审查时执行一次彻底、以威胁建模为先的安全审计,并产出结构化报告。其触发场景包括“security audit”“find vulnerabilities”“check for…”等安全审查请求。
该技能仅聚焦安全领域。对于通用代码质量审计(并发、死代码、反模式、性能、正确性、错误处理、测试),应使用同一插件中的 code-audit 技能。两个技能可独立运行,也可在同一代码库上依次运行。若在本次审计中偶然遇到非安全类的代码质量问题,只需简要记录并建议运行 code-audit 技能,而不在此深入分析。
主要能力
- 威胁建模优先:在深入阅读代码前先构建威胁模型简报,驱动后续审计,避免变成无差别的清单式扫描。
- 逐行审查:阅读范围内代码的每一行,不略读、不抽样、不依赖启发式跳过文件。
- 源到汇数据流追踪:从每个入口点追踪不可信输入,经调用图到达每个危险汇聚点,并在每一步评估校验、编码、授权与信任假设。
- 渗透测试思维:假设任何不可信输入都是敌意的,任何检查都可能被绕过,任何边界都可能被跨越,除非被证明相反。关注缺失的控制(本应存在的检查),而不仅是存在的错误检查。
- 结构化报告:发现按影响×可利用性×暴露面排序,映射到 CWE 与 OWASP 分类,对高危和严重问题提供具体利用场景。
- 报告格式可选:HTML(默认,自包含文件,含内联信任边界与数据流图、严重性/CWE/OWASP 标签样式、可折叠的 Source/Sink Map 条目、锚点交叉引用)或 Markdown。
- 安全意图发现:扫描已记录的安全决策、威胁模型和已知限制,区分有意权衡与真实问题,减少误报。
- 大代码库并行分析:当范围超过 50 个文件或 10,000 行代码时,使用并行子代理分区分析。
使用方式
该技能通过六阶段工作流运行:
-
Phase 1 — 确定范围:从用户提示中确定审计范围,可为整个仓库、一个或多个目录、特定文件列表、自然语言描述的功能区域,或文件中的特定函数/类/代码区域。默认排除生成文件(锁文件、编译输出、vendored 依赖、压缩包)。若用户请求重新审计,会在项目根目录查找 SECURITY-AUDIT-REPORT-.md 和 SECURITY-AUDIT-REPORT-.html,取修改时间最新的报告,默认沿用先前审计范围,并在新报告中标注哪些先前发现已解决、哪些仍存在。
-
Phase 2 — 应用威胁建模:构建威胁模型简报,识别应用类型、暴露面、敏感数据类别、信任边界、认证模型、授权模型、外部依赖与集成、部署上下文、适用清单、严重性修正说明。
-
Phase 3 — 发现安全意图:并行运行三个子代理——文档扫描器、代码意图扫描器、历史扫描器,产出按主题组织的安全意图简报。
-
Phase 4 — 构建 Source/Sink Map:枚举应用的非可信输入源与危险汇聚点,为后续审计提供驱动。
-
Phase 5 — 系统分析:大代码库分区并行分析;Phase A 逐文件分析,Phase B 跨信任边界数据流分析。
-
Phase 6 — 生成报告:按用户选择的格式生成自包含报告文件。
报告格式门控:首先扫描用户启动消息中的显式格式选择。HTML 信号包括 HTML、html、“as a webpage”、“browser-viewable”、“rendered report”;Markdown 信号包括 MD、md、Markdown、markdown、“plain text report”、“as Markdown”。若启动消息包含明确格式信号,直接采纳并继续,不再重复询问。若未指定格式,则询问用户选择 HTML(默认)还是 MD,并等待回答。
报告文件名:HTML 为 SECURITY-AUDIT-REPORT-YYYY-MM-DD.html,使用 references/report-template-html.md 模板;MD 为 SECURITY-AUDIT-REPORT-YYYY-MM-DD.md,使用 references/report-template.md 模板。
适用场景
- 对代码库进行安全聚焦审查。
- 查找漏洞、检查安全问题。
- 对认证流程、文件上传端点等功能区域进行安全审计。
- 对特定函数、类或代码区域进行安全分析。
- 重新审计以获取与先前报告的差异视图。
限制
- 该技能仅聚焦安全,不处理通用代码质量审计(并发、死代码、反模式、性能、正确性、错误处理、测试),后者由 code-audit 技能负责。
- 若用户指定的路径不存在,会警告缺失路径并继续处理其余部分;若全部不存在则停止并请求澄清。
- 若提示信息不足以确定范围,会先提出一个澄清问题。
- 威胁模型简报每次审计运行都会重新生成,不跨运行持久化。
- 若意图发现未产生条目,简报为空,分析正常进行,报告“Documented Security Posture”部分会说明未识别到已记录的安全意图信号。
- 当子代理不可用或范围较小时,按顺序执行所有阶段;当即使分区分析也无法覆盖每一行时,优先处理入口点、认证与授权代码、Phase 4 识别的汇聚点、密钥处理,以及安全意图简报中“Suppressed Findings”部分引用的代码。
- 关于收费、价格、平台支持等具体信息,资料中暂未提供。