# 代码安全审计技能 `安全审计` `漏洞检测` `白盒测试` `多智能体` `Claude Code` # Claude Code 代码审计技能 > 专业白盒代码安全审计技能,支持 55+ 漏洞类型、双轨审计模型与多智能体深度分析。 [中文文档](README_CN.md) ## 概述 代码审计是专为 [Claude Code](https://docs.anthropic.com/en/docs/claude-code) 设计的专业安全审计技能。它通过静态白盒分析,系统性地发现并验证源代码中的安全漏洞。 ### 核心特性 - **9 种语言**:Java、Python、Go、PHP、JavaScript/Node.js、C/C++、.NET/C#、Ruby、Rust - **14 种框架**:Spring Boot、Django、Flask、FastAPI、Express、Koa、Gin、Laravel、Rails、ASP.NET Core、Rust Web、NestJS/Fastify、MyBatis - **55+ 漏洞类型**:SQL 注入、RCE、反序列化、SSRF、SSTI、XXE、IDOR、竞态条件、业务逻辑缺陷等 - **143 项强制检测条目**:覆盖 10 个安全维度(D1-D10)的各语言专项清单 - **双轨审计模型**:注入/RCE 采用 Sink 驱动,授权/业务逻辑采用控制流驱动 - **多智能体深度分析**:并行 Agent 执行,支持大型代码库(874+ Java 文件约 15 分钟完成) - **WooYun 案例库**:88,636 条真实漏洞案例(2010-2016)供模式参考 - **攻击链构建**:自动将发现的漏洞串联为可利用的攻击路径 ## 安装 ```bash # 克隆到 Claude Code 技能目录 cp -r code-audit ~/.claude/skills/ # 或从仓库克隆 cd ~/.claude/skills git clone code-audit ``` 在 Claude Code 中发起安全审计请求时,该技能将自动激活。 ## 使用方法 ### 触发短语 ``` "审计这个项目" "检查代码安全性" "查找安全漏洞" "/audit" 或 "/code-audit" ``` ### 扫描模式 | 模式 | 适用场景 | 范围 | |------|----------|------| | **快速** | CI/CD、小型项目 | 高危漏洞、敏感信息、依赖 CVE | | **标准** | 常规审计 | OWASP Top 10、认证、加密,1-2 轮 | | **深度** | 关键项目、渗透测试 | 全量覆盖、攻击链、业务逻辑,2-3 轮 | ### 示例 ``` 用户:/code-audit deep /path/to/project Claude:[模式] 深度 [侦察] 874 个文件,Spring Boot 1.5 + Shiro 1.6 + JPA + Freemarker [计划] 5 个 Agent,覆盖 D1-D10,预计 125 轮 ...(用户确认后)... [报告] 严重 10 个,高危 14 个,中危 12 个,低危 4 个 ``` ## 架构设计 ### 双轨审计模型 不同类型的漏洞需要本质上不同的检测策略: | 轨道 | 维度 | 方法 | 发现目标 | |------|------|------|----------| | **Sink 驱动** | D1(注入)、D4(反序列化)、D5(文件操作)、D6(SSRF) | 搜索危险模式 -> 追踪数据流 -> 验证防御缺失 | 实际存在的危险代码 | | **控制流驱动** | D3(授权)、D9(业务逻辑) | 枚举端点 -> 验证安全控制是否存在 -> 缺失即漏洞 | **缺失**的安全控制 | | **配置驱动** | D2(认证)、D7(加密)、D8(配置)、D10(供应链) | 搜索配置 -> 与基线对比 | 配置错误 | ### 10 个安全维度 | # | 维度 | 覆盖范围 | |---|------|----------| | D1 | 注入 | SQL/命令/LDAP/SSTI/SpEL/JNDI | | D2 | 认证 | Token/Session/JWT/过滤器链 | | D3 | 授权 | CRUD 权限一致性、IDOR | | D4 | 反序列化 | Java/Python/PHP 利用链 | | D5 | 文件操作 | 上传/下载/路径穿越 | | D6 | SSRF | URL 注入、协议限制 | | D7 | 加密 | 密钥管理、加密模式、KDF | | D8 | 配置 | Actuator、CORS、错误信息泄露 | | D9 | 业务逻辑 | 竞态条件、批量赋值、状态机、多租户 | | D10 | 供应链 | 依赖 CVE、版本检查 | ### 多智能体工作流 ``` 阶段一:侦察 -> 技术栈识别 -> 攻击面映射(五层推导) -> 端点-权限矩阵生成 -> Agent 分配 阶段二:并行 Agent 执行(第一轮) -> Agent 1:注入(D1)[Sink 驱动] -> Agent 2:认证 + 授权 + 业务逻辑(D2+D3+D9)[控制流驱动] -> Agent 3:文件操作 + SSRF(D5+D6)[Sink 驱动] -> Agent 4:反序列化(D4)[Sink 驱动] -> Agent 5:配置 + 加密 + 供应链(D7+D8+D10)[配置驱动] 阶段三:覆盖率评估 -> 各轨道覆盖率指标(扇出率 / 端点审计率) -> 识别盲区 -> 必要时启动第二轮补充 Agent 阶段四:报告生成 -> 严重性评级(决策树) -> 跨 Agent 去重 -> 攻击链构建 ``` ## 文件结构 ``` code-audit/ ├── SKILL.md # 技能入口(前置声明 + 执行控制器) ├── agent.md # Agent 工作流(状态机 + 双轨模型) ├── README.md # 文档(英文) ├── README_CN.md # 文档(中文) └── references/ ├── core/ (16) # 核心方法论 │ ├── phase2_deep_methodology.md # 双轨审计方法论 │ ├── taint_analysis.md # 数据流追踪 │ ├── anti_hallucination.md # 误报防范 │ └── ... ├── checklists/ (11) # D1-D10 覆盖矩阵 + 9 种语言清单 ├── languages/ (18) # 各语言漏洞模式 ├── security/ (21) # 安全领域模块 ├── frameworks/ (14) # 各框架专项模块 ├── adapters/ (5) # 语言适配器(YAML) ├── wooyun/ (9) # WooYun 真实案例库 ├── cases/ (1) # 真实漏洞案例 └── reporting/ (1) # 报告模板 ``` ## 防幻觉机制 每一条发现必须基于通过工具实际读取的代码: - 报告前须通过 Glob/Read 验证文件路径存在 - 代码片段必须来自 Read 工具的实际输出 - 禁止基于"典型项目结构"进行猜测 - **核心原则:宁可漏报,不可误报** ## 支持的技术栈 ### 语言 Java、Python、Go、PHP、JavaScript/TypeScript、C/C++、C#/.NET、Ruby、Rust ### 框架 Spring Boot、Django、Flask、FastAPI、Express、Koa、Gin、Laravel、Rails、ASP.NET Core、NestJS、Fastify、Rust Web(Actix/Axum) ### 安全领域 API 安全、LLM/AI 安全、Serverless、加密学、竞态条件、OAuth/OIDC/SAML、WebSocket/gRPC、HTTP 请求走私、供应链/CI-CD ## 贡献指南 欢迎贡献!如需添加新语言或框架支持: 1. 创建 `references/languages/{language}.md` 或 `references/frameworks/{framework}.md` 2. 遵循现有模块格式(每个 D1-D10 维度包含关键检测问题) 3. 包含:危险函数、检测模式、漏洞示例、安全替代方案 4. 如需要,更新 `agent.md` 中的技术栈路由表 ## 参考资料 - [Code Audit Skill 详解(上)](https://mp.weixin.qq.com/s/K5yJ9nPUzwpBV5rMPPKfCg) - [Code Audit Skill 详解(下)](https://mp.weixin.qq.com/s/yTPehTfk1ufv3RXq6gh1mA) ## 社区 加入我们的微信群参与讨论和获取支持: 微信群 ## 许可证 MIT License ## 免责声明 本技能仅供**授权安全测试**使用。使用者须: - 获得对目标代码进行审计的合法授权 - 负责任地披露所发现的漏洞 - 遵守适用法律法规及道德准则 未经授权对非自有系统进行安全测试可能违法。