catalog/repos/3stonebrother--code-audit.md

198 lines
7.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 代码安全审计技能
`安全审计` `漏洞检测` `白盒测试` `多智能体` `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 <repository-url> 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文件操作、D6SSRF | 搜索危险模式 -> 追踪数据流 -> 验证防御缺失 | 实际存在的危险代码 |
| **控制流驱动** | 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文件操作 + SSRFD5+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 WebActix/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)
## 社区
加入我们的微信群参与讨论和获取支持:
<img src="image/wechat.png" alt="微信群" width="300">
## 许可证
MIT License
## 免责声明
本技能仅供**授权安全测试**使用。使用者须:
- 获得对目标代码进行审计的合法授权
- 负责任地披露所发现的漏洞
- 遵守适用法律法规及道德准则
未经授权对非自有系统进行安全测试可能违法。