差异安全审查Skill differential-review

此技能用于对代码变更(如 PRs、commits、diffs)进行安全审查。它根据代码库大小调整分析深度,利用 git 历史提供上下文,计算影响范围,检查测试覆盖率,生成 markdown 报告,并自动检测和防止安全回归。关键词:安全审计、代码审查、git 分析、测试覆盖、安全预防、PR 审查、漏洞检测。

安全审计 0 次安装 0 次浏览 更新于 3/14/2026

name: differential-review description: > 执行安全为中心的代码变更差异审查(PRs、commits、diffs)。 根据代码库大小调整分析深度,使用 git 历史提供上下文,计算 影响范围,检查测试覆盖率,并生成全面的 markdown 报告。 自动检测和防止安全回归。 allowed-tools:

  • Grep
  • Glob
  • Bash

差异安全审查

安全聚焦的代码审查,用于 PRs、commits 和 diffs。

核心原则

  1. 风险优先: 专注于认证、加密、价值转移、外部调用
  2. 基于证据: 每个发现都基于 git 历史、行号、攻击场景
  3. 自适应: 根据代码库大小调整(小型/中型/大型)
  4. 诚实: 明确说明覆盖限制和置信度
  5. 输出驱动: 始终生成全面的 markdown 报告文件

合理化(勿跳过)

合理化 为何错误 必需操作
“小 PR,快速审查” Heartbleed 漏洞仅两行代码 按风险分类,而非大小
“我了解此代码库” 熟悉易生盲点 构建明确基线上下文
“Git 历史分析太耗时” 历史揭示回归 切勿跳过第一阶段
“影响范围显而易见” 会错过传递调用者 定量计算
“无测试 = 非我问题” 缺失测试 = 风险评级提升 在报告中标记,提升严重性
“只是重构,无安全影响” 重构破坏不变性 分析为高风险,直至证明低风险
“我会口头解释” 无文档 = 发现丢失 始终撰写报告

快速参考

代码库大小策略

代码库大小 策略 方法
小型 (<20 文件) 深入 读取所有依赖,完整 git blame
中型 (20-200) 聚焦 1 跳依赖,优先文件
大型 (200+) 精确 仅关键路径

风险级别触发器

风险级别 触发器
认证、加密、外部调用、价值转移、验证移除
业务逻辑、状态变更、新公共 API
注释、测试、UI、日志

工作流概述

预分析 → 阶段 0: 分诊 → 阶段 1: 代码分析 → 阶段 2: 测试覆盖率
    ↓              ↓                    ↓                        ↓
阶段 3: 影响范围 → 阶段 4: 深度上下文 → 阶段 5: 对抗 → 阶段 6: 报告

决策树

开始审查?

├─ 需要详细阶段方法?
│  └─ 阅读:methodology.md
│     (预分析 + 阶段 0-4: 分诊、代码分析、测试覆盖率、影响范围)
│
├─ 分析高风险变更?
│  └─ 阅读:adversarial.md
│     (阶段 5: 攻击者建模、利用场景、可利用性评级)
│
├─ 撰写最终报告?
│  └─ 阅读:reporting.md
│     (阶段 6: 报告结构、模板、格式指南)
│
├─ 查找特定漏洞模式?
│  └─ 阅读:patterns.md
│     (回归、重入、访问控制、溢出等)
│
└─ 仅需快速分诊?
   └─ 使用上方快速参考,跳过详细文档

质量检查清单

交付前:

  • [ ] 所有变更文件已分析
  • [ ] Git blame 于移除的安全代码
  • [ ] 高风险变更计算影响范围
  • [ ] 攻击场景具体(非泛化)
  • [ ] 发现引用具体行号 + 提交
  • [ ] 报告文件已生成
  • [ ] 用户已通知并附摘要

集成

audit-context-building 技能:

  • 预分析:构建基线上下文
  • 阶段 4: 高风险变更深度上下文

issue-writer 技能:

  • 转换发现为正式审计报告
  • 命令:issue-writer --input DIFFERENTIAL_REVIEW_REPORT.md --format audit-report

示例用法

快速分诊(小 PR)

输入:5 文件 PR,2 高风险文件
策略:使用快速参考
1. 按文件分类风险级别(2 高,3 低)
2. 仅聚焦 2 高风险文件
3. Git blame 移除代码
4. 生成最小报告
时间:~30 分钟

标准审查(中型代码库)

输入:80 文件,12 高风险变更
策略:聚焦(见 methodology.md)
1. 高风险文件完整工作流
2. 中风险表面扫描
3. 跳过低风险文件
4. 包含所有部分完成报告
时间:~3-4 小时

深度审计(大型、关键变更)

输入:450 文件,认证系统重写
策略:精确 + audit-context-building
1. 基线上下文与 audit-context-building
2. 仅深度分析认证变更
3. 影响范围分析
4. 对抗建模
5. 综合报告
时间:~6-8 小时

何时不使用此技能

  • 全新代码(无基线比较)
  • 仅文档变更(无安全影响)
  • 格式化/整理(表面变更)
  • 用户明确要求仅快速摘要(他们接受风险)

对于这些情况,使用标准代码审查。


红旗(停止并调查)

立即升级触发器:

  • 移除来自“安全”、“CVE”或“修复”提交的代码
  • 访问控制修饰符移除(仅所有者、内部 → 外部)
  • 验证移除而无替换
  • 外部调用添加而无检查
  • 高影响范围(50+ 调用者) + 高风险变更

这些模式即使在快速分诊中也需要对抗分析。


最佳结果提示

做:

  • 从 git blame 开始,针对移除代码
  • 尽早计算影响范围以优先
  • 生成具体攻击场景
  • 引用具体行号和提交
  • 诚实说明覆盖限制
  • 始终生成输出文件

不做:

  • 跳过 git 历史分析
  • 做出无证据的泛化发现
  • 时间有限时声称完整分析
  • 忘记检查测试覆盖率
  • 错过高影响范围变更
  • 仅输出报告到聊天(需要文件)

支持文档


首次用户:methodology.md 开始以了解完整工作流。

经验用户: 使用此页的快速参考和决策树直接导航至所需内容。