| name | java-audit |
| description | Java 代码安全审计主编排器。执行 Phase 0 项目侦察(激活项目、架构分析、框架识别、攻击面识别),声明反幻觉铁律,然后按序调度子 skill 完成完整审计流程。用于:Java 安全审计、代码审计、漏洞挖掘。触发词:java audit、代码审计、安全审计、java 安全分析。 |
Java 代码安全审计 — 主编排器
适用场景
- 对 Java Web 项目进行完整的代码安全审计
- 需要系统化地发现路由、分析鉴权、搜索 Sink、追踪调用链、验证漏洞
不适用场景
- 仅需分析鉴权 → 直接使用
analyze-auth
- 仅需搜索 Sink → 直接使用
find-sink
- 非 Java 项目
前置条件
- JetBrains IDE 已打开目标 Java 项目
- Serena MCP 已连接
反幻觉铁律(贯穿全流程)
1. 报告漏洞前必须用 find_file/list_dir 验证文件存在
2. 代码片段必须来自 jet_brains_find_symbol(include_body=true) 的实际输出,不得编造
3. 调用链每一跳必须标注 文件路径:行号(来自符号的 location 信息)
4. 不确定的发现标记为 [Hypothesis],不得标记为 [Confirmed]
5. 宁可漏报,不可误报
6. 每个 sink 必须通过 jet_brains_find_symbol 二次确认存在性
工作流程
Phase 0: 项目侦察
-
激活项目
- 调用
activate_project 激活 JetBrains 中的目标 Java 项目
- 调用
check_onboarding_performed 确认项目已索引
-
目录结构分析
- 调用
list_dir 分析项目根目录结构
- 识别模块划分(单模块 / 多模块)
-
框架识别
- 调用
find_file 查找构建文件:pom.xml、build.gradle、build.gradle.kts
- 读取构建文件,提取依赖列表,识别:
- Web 框架: Spring Boot / Spring MVC / Struts2 / 纯 Servlet / Jersey / Play
- 安全框架: Shiro / Spring Security / 自定义 Filter
- ORM 框架: MyBatis / Hibernate / JPA / 原生 JDBC
- 序列化库: Fastjson / Jackson / Gson / Hessian
- 调用
find_file 查找配置文件:application.yml、application.properties、web.xml
- 读取配置,识别端口、Context Path、安全配置等
-
攻击面初步识别
- 调用
jet_brains_find_symbol("*Controller") 估算 Controller 数量
- 调用
find_file("*.jsp") 估算 JSP 文件数量
- 调用
find_file("web.xml") 检查 Servlet 配置
-
输出侦察报告
- 在目标项目根目录创建
.audit/ 目录
- 输出
.audit/recon.md,包含:
- 项目基本信息(名称、模块结构)
- 框架与依赖清单
- 攻击面概览(Controller 数量、Servlet 数量、JSP 数量)
- 识别到的安全框架
Phase 1–7: 调度子 Skill
按以下顺序逐个使用 new_task 调度子 skill(mode 使用 code):
| Phase | Skill | 输入 | 输出 | 验证 |
|---|
| 1 | find-route | recon.md | .audit/routes.json | 检查文件存在且 route_classes 非空 |
| 2 | analyze-auth | routes.json | .audit/auth-analysis.md + .audit/preauth-routes.json | 检查 auth-analysis.md 和 preauth-routes.json 存在 |
| 3 | find-sink | 代码库 | .audit/sinks.json | 检查 sinks 数组存在 |
| 4 | trace-sink | sinks.json | .audit/trace-sink.md | 检查文件非空 |
| 5 | trace-preauth | preauth-routes.json | .audit/trace-preauth.md | 检查文件非空 |
| 6 | deep-verify | trace-sink.md + trace-preauth.md | .audit/vulnerabilities.json + .audit/deep-verify.md | 检查 vulnerabilities 数组存在 |
| 7 | gen-report | 所有 .audit/ 文件 | .audit/audit-report.md | 检查报告包含所有章节 |
每个子 skill 完成后:
- 验证输出文件存在且内容合理
- 若输出异常,记录问题后继续下一阶段
- 所有阶段完成后输出审计总结
输出产物
所有中间产物存放在目标项目根目录的 .audit/ 目录:
.audit/
├── recon.md # Phase 0 - 项目侦察报告
├── routes.json # Phase 1 - 路由端点清单
├── auth-analysis.md # Phase 2 - 鉴权分析报告
├── preauth-routes.json # Phase 2 - Preauth 路由清单
├── sinks.json # Phase 3 - Sink 点清单
├── trace-sink.md # Phase 4 - Sink 反向追踪报告
├── trace-preauth.md # Phase 5 - Preauth 正向追踪报告
├── vulnerabilities.json # Phase 6 - 验证后的漏洞清单
├── deep-verify.md # Phase 6 - 深度验证报告
└── audit-report.md # Phase 7 - 最终审计报告