
关于
面向 PR、提交和 Diff 的安全聚焦代码审查。
name: differential-review description: "针对 PR、提交和差异的安全聚焦代码审查。" risk: unknown source: community
差异化安全审查
针对 PR、提交和差异的安全聚焦代码审查。
何时使用
- 你需要对 PR、提交范围或差异进行安全聚焦的审查,而非一般性代码审查。
- 变更涉及认证、加密、外部调用、价值转移、权限或其他高风险逻辑。
- 你需要有代码证据、攻击场景和明确报告产物支持的发现。
核心原则
- 风险优先:聚焦认证、加密、价值转移、外部调用
- 基于证据:每个发现都有 git 历史、行号、攻击场景支持
- 自适应:根据代码库规模(小型/中型/大型)进行调整
- 诚实:明确说明覆盖范围限制和置信度
- 输出驱动:始终生成全面的 markdown 报告文件
合理化借口(不可跳过)
| 合理化借口 | 为什么是错的 | 必需操作 | |-----------------|----------------|-----------------| | "小 PR,快速审查" | Heartbleed 只有 2 行 | 按风险分类,而非大小 | | "我了解这个代码库" | 熟悉会产生盲点 | 构建明确的基线上下文 | | "Git 历史太耗时" | 历史揭示回归 | 永远不跳过阶段 1 | | "影响范围很明显" | 你会遗漏传递调用者 | 定量计算 | | "没有测试 = 不是我的问题" | 缺少测试 = 提升风险等级 | 在报告中标记,提升严重性 | | "只是重构,没有安全影响" | 重构会破坏不变量 | 作为高风险分析直到证明为低风险 | | "我会口头解释" | 没有产物 = 发现丢失 | 始终编写报告 |
快速参考
代码库规模策略
| 代码库规模 | 策略 | 方法 | |---------------|----------|----------| | 小型(<20 文件) | 深入 | 读取所有依赖,完整 git blame | | 中型(20-200) | 聚焦 | 1 跳依赖,优先文件 | | 大型(200+) | 精准 | 仅关键路径 |
风险等级触发器
| 风险等级 | 触发条件 | |------------|----------| | 高 | 认证、加密、外部调用、价值转移、验证移除 | | 中 | 业务逻辑、状态变更、新公共 API | | 低 | 注释、测试、UI、日志 |
工作流概述
Pre-Analysis -> Phase 0: Triage -> Phase 1: Code Analysis -> Phase 2: Test Coverage
| | | |
Phase 3: Blast Radius -> Phase 4: Deep Context -> Phase 5: Adversarial -> Phase 6: Report
决策树
开始审查?
|- 需要详细的分阶段方法论?
| |- 阅读: methodology.md
|
|- 分析高风险变更?
| |- 阅读: adversarial.md
|
|- 编写最终报告?
| |- 阅读: reporting.md
|
|- 寻找特定漏洞模式?
| |- 阅读: patterns.md
|
|- 仅快速分类?
|- 使用上方快速参考,跳过详细文档
质量检查清单
交付前:
- [ ] 所有变更文件已分析
- [ ] 对移除的安全代码执行 Git blame
- [ ] 对高风险计算了影响范围
- [ ] 攻击场景是具体的(非通用的)
- [ ] 发现引用了具体行号和提交
- [ ] 已生成报告文件
- [ ] 已通知用户摘要
集成
audit-context-building 技能:
- 预分析:构建基线上下文
- 阶段 4:对高风险变更进行深度上下文分析
issue-writer 技能:
- 将发现转化为正式审计报告
使用示例
快速分类(小型 PR)
Input: 5 file PR, 2 HIGH RISK files
Strategy: Use Quick Reference
1. Classify risk level per file (2 HIGH, 3 LOW)
2. Focus on 2 HIGH files only
3. Git blame removed code
4. Generate minimal report
Time: ~30 minutes
标准审查(中型代码库)
Input: 80 files, 12 HIGH RISK changes
Strategy: FOCUSED (see methodology.md)
1. Full workflow on HIGH RISK files
2. Surface scan on MEDIUM
3. Skip LOW risk files
4. Complete report with all sections
Time: ~3-4 hours
深度审计(大型关键变更)
Input: 450 files, auth system rewrite
Strategy: SURGICAL + audit-context-building
1. Baseline context with audit-context-building
2. Deep analysis on auth changes only
3. Blast radius analysis
4. Adversarial modeling
5. Comprehensive report
Time: ~6-8 hours
何时不使用此技能
- 全新代码(没有可比较的基线)
- 仅文档变更(无安全影响)
- 格式化/lint(外观变更)
- 用户明确要求仅快速摘要(他们接受风险)
对于这些情况,使用标准代码审查技能。
