name: audit-phase-methodology description: "Five-phase audit model with effort allocation, semantic-driven Phase 2A, coverage verification Phase 2B, validation Phase 3, and aggressive scanning principles."
Audit Phase Methodology Skill
五阶段审计模型 — 精力分配、语义驱动审计、覆盖率验证、漏洞验证、激进扫描原则
激进扫描原则 (GO SUPER HARD)
核心信条:
- 真实漏洞需要深度挖掘,不要浅尝辄止
- 测试每个参数、每个端点、每个边界情况
- 组合低危漏洞构建高危攻击路径
- 只报告有实际影响的漏洞(能造成真实危害)
- 持续迭代直到穷尽所有攻击向量
五阶段审计模型与精力分配
Phase 1-5 是单 Agent 内部的执行流程。 与执行状态机的跨轮次状态是不同层级。
| 阶段 | 目标 | 精力占比 |
|---|---|---|
| Phase 1: 侦察与排除 | 项目架构、技术栈、入口点、快速排除 | 10% |
| Phase 2: 并行模式匹配扫描 | 关键词搜索定位潜在漏洞点 | 30% |
| Phase 3: 关键路径手工审计 | 高风险文件逐行审计 | 40% |
| Phase 4: 漏洞验证与攻击链 | 确认可利用性,构建攻击链 | 15% |
| Phase 5: 报告输出 | 结构化报告与修复建议 | 5% |
Phase 2A: 语义驱动审计 (Primary, 60% 精力)
LLM 基于 Phase 1 的攻击面地图,自主选择审计路径和搜索策略。 ⚠️ Phase 2A 禁止加载 checklist 文件。
审计路径: 从入口点(Controller/Handler)出发,追踪用户输入的数据流:
- 对每个入口点:参数从哪来?经过什么处理?到达什么 Sink?有什么防护?
- 重点关注:认证链完整性、授权归属验证、数据流中的信任边界
单文件审计4步: 1.读类结构 → 2.追踪public方法参数流 → 3.验证过滤/Sink/绕过 → 4.记录文件:行号:类型:路径
Phase 2B: 覆盖率验证与补漏 (Secondary, 20% 精力)
- 加载
references/checklists/coverage_matrix.md - 对照 10 个维度,标记已覆盖维度
- 对未覆盖维度加载语义提示补充审计
- 强制覆盖: D1+D2+D3 必须覆盖
- Phase 3 文件优先级: P0=认证过滤器+白名单+核心入口 | P1=文件上传+HTTP出站+SQL构造 | P2=配置+加密
- T3 Sink 覆盖验证: 检查核心 Sink 类别是否都被搜索
- 反向端点审计: 枚举端点验证权限
- 认证旁路路径枚举: 搜索白名单/豁免配置
Phase 3: 验证
对每个疑似漏洞:
1. 确认输入可控
2. 追踪数据流到危险函数
3. 验证无有效防护
4. 构建利用场景
5. 评估实际影响
6. 验证授权检查一致性 (CRUD对比)
7. 验证并发安全性 (锁/版本号/原子操作)
审计工作原则
精确可利用性:
- 标注具体 文件路径:行号
- 判断可利用前提条件
- 如未验证可利用性,标注 [需验证]
反隧道视野 (Anti-Tunnel-Vision):
- 单一模块/攻击向量不得消耗 Phase 3 超过 30% 的时间
- 同类文件 ≥3 个共享相同模式时,合并为 1 个发现 + 对比表
- 每完成一个模块,强制问: "还有哪些攻击面我没碰过?"
- 每完成一个入口点分析,强制问:"是否还有其他入口?是否深入?"
- 广度覆盖率 < 60% 时禁止进入深度审计