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