code-audit-mcp
by kkk1259
README.md
# Code Audit MCP Server
基于大语言模型(LLM)与模型上下文协议(MCP)的自动化代码审计工具。
## 功能特性
- **代码语义解析**:AST解析、类型推导、污点标记
- **调用链追踪**:跨文件/跨模块的数据流追踪
- **漏洞验证**:自动生成PoC并执行验证
- **多语言支持**:PHP、Python、Java、JavaScript/TypeScript
## 快速开始
### 环境要求
- Node.js >= 18.0
- TypeScript >= 5.0
- Cursor / Windsurf(支持MCP的IDE)
### 安装
```bash
git clone https://github.com/kkk1259/code-audit-mcp.git
cd code-audit-mcp
npm install
npm run build
```
### 配置
在Cursor中配置MCP Server:
```json
// .cursor/mcp.json
{
"mcpServers": {
"code-audit": {
"command": "node",
"args": ["./dist/server.js"],
"env": {
"PROJECT_ROOT": "/path/to/your/project"
}
}
}
}
```
## 使用示例
### SQL注入审计
```
用户: 请审计这个项目的SQL注入漏洞
AI: 我将使用MCP工具进行系统性审计。
首先,识别所有用户输入源和SQL执行点...
```
### 反序列化漏洞挖掘
```
用户: 检查是否存在反序列化漏洞
AI: 我将分析项目中的unserialize调用,并追踪POP链...
```
## 工具列表
| 工具名 | 功能 | 参数 |
|--------|------|------|
| `parse_ast` | 解析源码AST | `file`: 文件路径 |
| `find_callers` | 查找函数调用者 | `funcName`: 函数名, `maxDepth`: 最大深度 |
| `trace_dataflow` | 追踪数据流 | `source`: 源, `sink`: 汇 |
| `generate_poc` | 生成漏洞PoC | `vulnType`: 漏洞类型, `params`: 参数 |
## 项目结构
```
code-audit-mcp/
├── src/
│ ├── server.ts # MCP Server入口
│ ├── tools/
│ │ ├── parser.ts # AST解析
│ │ ├── callgraph.ts # 调用链追踪
│ │ ├── verifier.ts # 漏洞验证
│ │ └── poc.ts # PoC生成
│ ├── rules/
│ │ ├── php.json # PHP安全规则
│ │ ├── python.json # Python安全规则
│ │ └── java.json # Java安全规则
│ └── utils/
│ ├── taint.ts # 污点分析
│ └── sanitizer.ts # 过滤函数识别
├── prompts/
│ ├── audit-system.md # 系统Prompt
│ └── vuln-types/ # 各漏洞类型Prompt
├── tests/
├── package.json
└── README.md
```
## 最佳实践
### ✅ 做
- 分模块审计,不要一次喂入整个项目
- 先跑静态工具获取可疑点,再用AI深入分析
- 为每个漏洞类型准备专用Prompt
- 审计前先让AI了解项目结构(入口、路由、数据库)
- 人工复核AI报告,特别是"高危"发现
- 保存审计历史,用于Prompt迭代优化
### ❌ 不要做
- 不要盲目信任AI报告,误报不可避免
- 不要在Prompt中描述过于复杂的审计逻辑
- 不要跳过漏洞验证环节
- 不要在敏感项目中使用云端API(用本地模型)
- 不要忽略业务逻辑漏洞(AI对此较弱)
## 效果预期
| 漏洞类型 | 召回率 | 准确率 |
|----------|--------|--------|
| 注入类漏洞 | 80%+ | 75%+ |
| 反序列化 | POP链发现能力超过人工 | - |
| 逻辑漏洞 | 仍需人工审计为主 | - |
整体效率:提升3-5倍(含人工复核时间)
## 开源协议
MIT License
## 相关文章
- [基于LLM与MCP的自动化代码审计工作流:从源码到漏洞PoC](https://forum.butian.net/ai_security/xxx)
## 贡献
欢迎提交Issue和PR!
## 联系方式
- GitHub: [kkk1259](https://github.com/kkk1259)
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues