内容
# 🛡️ 安全审计-MCP
**C/C++ 静态代码审计和编译 PE/ELF 二进制安全解析的模型上下文协议(MCP)服务器。**
* 为您的 AI 编码代理(Claude Code、Cursor、Cline)配备安全、低级的二进制分析工具和静态代码扫描工具。
***
## 🚀 为什么选择安全审计-MCP?
AI 编码助手和代理在编写代码方面非常出色,但它们缺乏检查底层二进制编译属性或执行深入静态安全审计的本地系统能力。
**安全审计-MCP** 通过在 **模型上下文协议(MCP)** 下标准化工具来解决这个问题。通过注册此服务器,您的 AI 代理可以获得本地、沙盒命令,以检查 C/C++ 源代码文件是否存在严重的逻辑和库错误(例如缓冲区溢出、格式漏洞和命令注入),解析本地可执行文件(Windows PE / Linux ELF)是否存在二进制强化功能(ASLR、DEP/NX、PIE),并安全地提取可打印的 ASCII 字符串。
***
## 🛠️ 功能和工具
### 1. `审计源代码`
* **目的:** 对 C/C++ 源文件执行轻量级静态分析扫描。
* **检查:**
* 不安全的标准库函数(`strcpy`、`gets`、`sprintf`、`scanf`)。
* 堆溢出风险(例如 `malloc` 内的有符号乘法)。
* 格式字符串漏洞(`printf(variable)` 而不是 `printf("%s", variable)`)。
* 系统级命令注入入口点(`system()`)。
* 基本内存泄漏(不匹配的 `malloc` 和 `free` 语句循环)。
### 2. `检查二进制保护`
* **目的:** 安全地读取原始二进制头(前 1024 个字节)以检查防御性安全编译标志。
* **能力:**
* 识别格式化魔术签名(**PE** 表示 Windows 可执行文件,**ELF** 表示 Linux)。
* 评估架构大小(32 位 vs 64 位)。
* 在 PE 可选头中,解析 `DllCharacteristics` 以检查 **ASLR(动态基址)**、**DEP/NX(数据执行预防)** 和 **SafeSEH**。
* 在 ELF 头中,解析 ELF 类型以识别 **PIE(位置无关可执行文件)** 编译。
### 3. `安全提取字符串`
* **目的:** 安全地从编译的二进制文件(作为标准 Linux `strings` CLI 实用程序的安全本地实现)中解析 ASCII 字符串常量,以识别指标哈希、嵌入式秘密或硬编码 URL。
### 4. `缓解漏洞`
* **目的:** 为所有已识别的漏洞提供预编译的安全缓解块和结构化的替换代码模板。
---
## 🎨 架构流程
```
┌─────────────────┐ ┌─────────────────┐ ┌────────────────┐
│ AI 代理客户端 │ ──────────> │ 安全审计-MCP │ ──────────> │ 目标代码 / │
│ (Claude/Cline)│ <────────── │ (TypeScript SDK)│ <────────── │ 二进制文件 │
└─────────────────┘ JSON-RPC └─────────────────┘ 文件读取 └────────────────┘
```
---
## 🔌 集成和客户端设置
由于这是标准的模型上下文协议(MCP)服务器,因此它可以与所有主要支持的 IDE 和 CLI 代理无缝连接。
### 1. Claude 桌面版
将以下配置片段添加到您的 Claude 桌面版配置文件中(通常位于 Windows 上的 `%APPDATA%\Claude\claude_desktop_config.json` 或 macOS 上的 `~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"secureaudit-mcp": {
"command": "node",
"args": [
"/path/to/secureaudit-mcp/build/index.js"
]
}
}
}
```
### 2. Cline(VS Code 扩展)
在 Cline 设置中,选择 **MCP 服务器** 面板:
* 点击 **创建/添加 MCP 服务器**。
* 配置:
* **名称:** `secureaudit-mcp`
* **命令:** `node`
* **参数:** `/path/to/secureaudit-mcp/build/index.js`
### 3. Cursor
在 Cursor 设置 -> **测试功能** -> **MCP** 中:
* 点击 **+ 添加新 MCP 服务器**。
* 配置:
* **名称:** `secureaudit-mcp`
* **类型:** `stdio`
* **命令:** `node /path/to/secureaudit-mcp/build/index.js`
---
## 💻 本地快速入门和开发
### 1. 安装和构建
在存储库根目录中运行以下命令以编译 TypeScript 文件:
```bash
npm install
npm run build
```
### 2. 运行工具测试演示套件
该存储库包含一个预包装的漏洞 C 文件 `/demo/vulnerable.c`,其中包含各种安全漏洞用于测试目的。
您的 MCP 代理将能够自动扫描此文件。 要使用 MCP 开发人员命令行检查器(可选)手动检查工具定义:
```bash
npx @modelcontextprotocol/inspector node build/index.js
```
---
## 📄 许可证
MIT 许可证。免费使用和分发,开源条款。