cmgxc/mcp-scan

GitHub: cmgxc/mcp-scan

针对 Model Context Protocol 服务器的安全扫描工具,检测提示注入、危险能力、密钥泄露和传输层配置问题。

Stars: 0 | Forks: 0

# mcp-scan [![测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/e5c33633a4123555.svg)](https://github.com/cmgxc/mcp-scan/actions/workflows/tests.yml) [![许可证](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) **MCP 服务器**的安全扫描工具。审计 MCP 服务器的工具、资源和提示,检测可能扩大任何连接该服务器的 LLM 代理攻击面的问题——包括工具描述中植入的提示注入、未加控制暴露的危险能力、通过工具输出泄露的密钥和环境数据,以及传输层配置错误。 ## 为什么存在此工具 MCP 正在迅速成为 LLM 客户端(Claude Desktop、Cursor、自定义代理)与外部世界之间的实际接口。数百个社区 MCP 服务器已经发布,几乎都没有经过安全审查,而且该协议引入了传统 Web 服务不存在的攻击类别: - 工具描述是 **LLM 上下文的一部分** —— 控制它的人可以注入用户看不到的指令。 - 加载到上下文中的资源 **与系统提示一样被 LLM 信任**,即使其内容来自不可信来源。 - 工具是 **可组合的**:一个无害的 `read_file` 加上一个无害的 `http_post` 在提示注入成功时就会变成一个数据泄露工具。 `mcp-scan` 的目的是让这个攻击面可见、可重复测试和可报告——它是 MCP 服务器的 `nikto`。 ## 威胁模型 我们测试连接的 LLM 客户端是否可以被以下方式颠覆: 1. **工具描述注入** —— 隐藏在工具描述字段中的指令。 2. **资源/提示污染** —— 服务器暴露的资源或提示模板中隐藏的指令。 3. **不安全的工具输出** —— 将攻击者控制的数据回显到 LLM 上下文中的工具。 4. **过度授权或可组合工具** —— `exec`、`read_any_file`、出站网络、环境变量访问。 5. **传输/认证弱点** —— 没有认证或没有 TLS 的 HTTP/SSE 服务器。 6. **信息泄露** —— 暴露堆栈跟踪、路径、环境变量的错误路径。 完整威胁模型见 [`docs/THREAT_MODEL.md`]( │ Introspector │ ──> │ Check │ ──> Findings │ (live or dump) │ │ (tools, │ │ pipeline │ ↓ └────────────────┘ │ resources, │ │ (5 modules) │ Report (JSON+MD) │ prompts) │ └──────────────┘ └──────────────┘ ``` 内省器要么通过 [官方 Python MCP SDK](https://github.com/modelcontextprotocol/python-sdk) 与实时服务器通信,要么加载服务器表面的预计算 JSON 转储(便于离线分析、CI 和审查你不想实际启动的服务器)。 ## 快速开始 ``` git clone https://github.com/cmgxc/mcp-scan cd mcp-scan pip install -r requirements.txt # 扫描故意存在漏洞的示例服务器(离线,使用已提交的转储) python -m mcp_scan scan --dump examples/damn_vulnerable_mcp/surface_dump.json --out reports/dvmcp # 查看结果 cat reports/dvmcp/report.md ``` 针对实时服务器的真实运行: ``` python -m mcp_scan scan --config path/to/mcp_server_config.json --out reports/run1 ``` `--config` 标志接受 Claude Desktop 使用的相同 JSON 格式(`mcpServers` 映射)。格式示例见 [`examples/damn_vulnerable_mcp/config.json`](
标签:AI安全, AMSI绕过, Chat Copilot, DNS 反向解析, GraphQL安全矩阵, Homebrew安装, MCP, Model Context Protocol, Secrets检测, 上下文污染, 二进制发布, 人工智能安全, 传输层安全, 合规性, 威胁检测, 安全扫描器, 密钥泄露, 工具审计, 开源工具, 提示模板安全, 提示注入, 攻击面分析, 文档结构分析, 无线安全, 网络安全, 网络安全审计, 资源安全, 越权工具, 逆向工具, 隐私保护, 集群管理, 零日漏洞检测