内容
安全扫描器 (cleaner-code)
> **作为模型上下文协议(MCP)服务器的AI代码安全扫描器。**
> 检测AI生成的代码中传统工具无法发现的隐藏威胁。
[](https://modelcontextprotocol.io)
[](#license)
[](https://nodejs.org)
**官网:** [codesafer.org](https://codesafer.org/) · **MCP 客户端:** Claude Code, Cursor, VS Code + Copilot, Cline
---
## 为什么选择CodeSafer?
AI编码助手可以快速生成代码,但谁来检查代码中是否存在隐藏的威胁?
最近的供应链攻击表明,恶意以人类审查人员和传统代码无法发现的方式隐藏- **不可见的注入标识符中(30多种变体)
- **BiDi / 特洛伊源代码** 攻击会重新排序显示和执行方式(CVE-42574)
同形字符** — Cyril伪装成拉丁字符(CVE-2021-426- **基于Unicode的隐写术** 在空格中隐藏有效
- **规则文件后门** 植入 `.cursor、`CLAUDE.md` 等AI配置文件中
- **`package.json`中的依赖伪装**
- **混淆模式**eval` + base64,反向shell,压缩有效载荷
fer在代码在您的机器上运行之前扫描所有这些威胁。
---
## 工作原理
CodeSafer作为本地MCP服务器运行。您的AI客户端(Claude Code、Cursor等)在审查或生成代码时调用其工具,并将发现的结果内联返回。
**混合检测:**
1. **8个静态分析扫描器** — 已知攻击类别的确定性规则(快速,对其涵盖的模式无误报)。
2. **CodeBERT深度分析** — 转换器模型将代码块分类为恶意/良性,并带有置信。捕获静态规则遗漏的混淆或新颖模式。
机器上没有数据离开。AI分析在本地运行,针对标记服务器。
---
## 功能
| 功能 | 详情 |
|---|---|
| 不可见字符检测 | 30多种Unicode变体,包括零宽度空格,蒙古语元音分隔符 |
| BiDi / 特洛伊源代码 | 完整的CVE-2021-42574覆盖 |
| 同形字符检测 | 西里尔字母/希腊字母/拉混淆(CVE-2021-42694) |
| Unicode隐写术 | 类似Glassworm的空格有效载荷 |
| 规则文件后门 | 扫描 `.cursorrules`、`CLAUDE.md`、`.claude/`、Cursor规则 |
| 依赖扫描 | `package.json`中的依赖伪装 + 可疑安装脚本 |
| 混淆检测 | `eval` + base64,反向shell,压缩有效载荷 |
| AI深度分析 | CodeBERT转换器分类器,带有置信度评分 |
| MCP原生 | 6个MCP工具,stdio传输 |
| 本地优先 | 无代码上传 - 完全在您的机器上运行 |
---
## MCP工具
CodeSafer向MCP客户端公开六种工具:
| 工具 | 用途 |
|---|---|
| `scan_file` | 扫描单个文件中的隐藏恶意代码模式 |
| `scan_directory` | 递归扫描目录中的所有源文件 |
|_rules_file` | 扫描AI配置文件/规则文件中的提示注入和规则文件后门攻击 |
| `check_dependencies` | 检查`package.json`中的依赖伪装,可疑安装脚本和依赖风险 |
| `ai_analyze` | 使用训练好的CodeBERT模型进行深度AI分析(将代码块分类为恶意/良性,并带有置信度) |
| `explain_finding` | 获取特定威胁类别的详细解释,包括攻击场景和缓解措施 |
---
## 安装
### 先决条件
- Node.js 18或更高版本
- 与MCP兼容的客户端(Claude Code,Cursor,VS Code + Copilot,Cline)
### 从源代码编译
```bash
git clone https://github.com/goldmembrane/cleaner-code.git
cd cleaner-code
npm install
npm run build
```
### 配置MCP客户端
**Claude Code** (`~/.claude.json` 或项目 `.mcp.json`):
```json
{
"mcpServers": {
"codesafer": {
"command": "node",
""/absolute/path/to/cleaner-code/dist/index.js"]
}
}
}
```
**Cursor** (`.cursor/mcp.json`):
```json
{
"mcpServers": {
"codesafer": {
"command": "node",
"args": ["/absolute/path/to/cleaner-code/dist/index.js"]
}
}
}
```
重启客户端,CodeSafer工具将出现在工具选择器中。
---
## 用法
配置完成后,向AI客户端提问:
- *"扫描此文件中的隐藏安全问题。*
- *"检查 `package.json` 中的依赖项是否存在依赖伪装。"*
- *"扫描 `.cursorrules` 中的规则文件后门。"*
- *"对 `src/auth.ts` 进行深度AI分析。"*
- *"解释什么是特洛伊源代码攻击以及如何修复上述发现的问题。"*
客户端将调用适当的MCP工具,并返回发现的结果,包括严重性、行号和缓解指南。
---
## 免费层和计划
CodeSafer免费使用。静态分析(`scan_file`、`scan_directory`、`scan_rules_file`、`check_dependencies`、`explain_finding`)无限制。
AI深度分析(`ai_analyze`)包含 **每会话10次免费运行**。在[codesafer.org](https://codesafer.org/)上提供更高AI配额的付费计划。
---
## 检测类别
CodeSafer检测 **9类**威胁:
1. **不可见的Unicode字符** — 30多种变体,包括零宽度空格,零宽度连接符
2. **BiDi / 特洛伊源代码攻击** — CVE-2021-42574
3. **同形字符** — Cyrillic / Greek字符伪装成拉丁字符(CVE-2021-42694)
4. **基于Unicode的术** — 空白字符中的Glassworm模式
5. **规则文件后门** — `.cursorrules`、`CLAUDE.md`等中的恶意指令
6. **依赖风险** — 依赖伪装和可疑安装脚本
7. **混淆模式** — `eval` + base64,压缩有效载荷,反向shell
8. **静态分析发现** — 8个确定性扫描器
9. **AI深度分析** — CodeBERT转换器,用于新型和混淆威胁
---
## 项目结构
```
cleaner-code/
├── src/
│ ├── index.ts # MCP服务器入口点
│ ├── api-server.ts # 可选的HTTP API服务器
│ ├── types.ts # 扫描器接口
│ ├── utils.ts # 文件收集,摘要格式化
│ └── scanner/
│ ├── invisible.ts # 不可见Unicode扫描器
│ ├── bidi.ts # BiDi / 特洛伊源代码扫描器
│ ├── homoglyph.ts # 同形字符扫描器
│ ├── encoding.ts # 编码/字符集扫描器
│ ├── obfuscation.ts # 混淆模式扫描器
│ ├── steganography.ts # Unicode隐写术扫描器
│ ├── rules-backdoor.ts # 规则文件后门扫描器
│ ├── dependency.ts # 依赖风险扫描器
│ └── ai-analyzer.ts # CodeBERT深度分析器
├── ml/ # 机器学习模型资产和标记器
├── functions/ # 云函数部署
├── deploy/ # 部署清单
└── web/ # 登陆页面资产
```
---
## 许可证
ISC — 请参阅 `LICENSE` 文件了解详情。
---
## 链接
- **官网:** [codesafer.org](https://codesafer.org/)
-上下文协议:** [modelcontextprotocol.io](https://modelcontextprotocol.io/)