# MCP-Security-Checklist **Repository Path**: thinker0/MCP-Security-Checklist ## Basic Information - **Project Name**: MCP-Security-Checklist - **Description**: MCP Server( MCP 插件)安全 MCP 客户端/MCP HOST 安全 MCP 在不同 LLM 上的适配和调用安全 多 MCP 场景安全 加密货币相关 MCP 的特有安全点 MCP 安全自查工具 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-23 - **Last Updated**: 2025-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MCP 安全检查清单:AI 工具生态系统安全指南 [](https://twitter.com/slowmist_team) [English Version](./README.md), [中文版本](./README_CN.md) ## 作者信息 本安全检查清单由 [@SlowMist_Team](https://twitter.com/slowmist_team) 编写并维护。 > 慢雾科技作为全球领先的区块链生态威胁情报公司,旨在帮助区块链生态与 AI 生态相融合的过程中拥有更加深度的安全防护能力及保护用户拥有更高的隐私性。 感谢 [FENZ.AI](https://fenz.ai/) 倾力相助 > FENZ.AI 以未来科技重塑 AI 安全审计。从 MCP 攻击检测到 AI 忠诚度评估,Fenz 正在构建AI时代的基础设施——“超级智能,始于超强安全”。 ## 📚 目录 - [概要](#概要) - [如何使用](#如何使用) - [MCP Server( MCP 插件)安全](#mcp-servermcp-插件安全) - [MCP 客户端/MCP HOST 安全](#mcp客户端mcp-host安全) - [MCP 在不同 LLM 上的适配和调用安全](#mcp在不同llm上的适配和调用安全) - [多 MCP 场景安全](#多mcp场景安全) - [加密货币相关 MCP 的特有安全点](#加密货币相关-mcp的特有安全点) - [MCP 安全自查工具](#MCP-安全自查工具) - [参考资料](#参考资料) ## 概要 随着大模型的迅猛发展,各种新的AI工具也在不断涌现,当下代表性的 MCP(Model Context Protocol)标准实现的工具正逐渐成为连接大语言模型(LLM)与外部工具、数据源之间的关键桥梁。自 2024 年底发布以来,MCP 已被广泛应用于 Claude Desktop、Cursor 等主流 AI 应用中,MCP Server 的各种商店也在不断出现,展现出强大的生态扩展能力。 然而,MCP 的快速普及也带来了新的安全挑战。当前 MCP 架构中,系统由 **Host(本地运行的 AI 应用环境)**、**Client(负责与Server通信与工具调用的组件)** 以及 **Server(MCP 插件所对应的服务端)** 三部分构成。用户通过 Host 与 AI 交互,Client 将用户请求解析并转发至 MCP Server,执行工具调用或资源访问。在多实例、多组件协同运行的场景下,该架构暴露出一系列安全风险,尤其在涉及加密货币交易或 LLM 自定义插件适配等敏感场景中,风险更为突出,需要适当的安全措施来管理。 在此背景下,**制定和遵循一套全面的 MCP 安全检查清单显得尤为重要**。本清单涵盖了从用户交互界面、客户端组件、服务插件,到多 MCP 协作机制及特定领域(如加密货币场景)的安全要点,旨在帮助开发者系统性地识别潜在风险并及时加以防范。通过落实这些安全措施,可有效提升 MCP 系统的整体稳定性与可控性,确保 AI 应用在快速发展的同时,安全性也同步得到保障。
图:MCP多组件交互流程与关键风险点示意图
## 如何使用 本检查表基于我们在对MCP项目审计中遇到的可能风险点,旨在帮助开发者确保MCP实现的安全性。我们使用3个级别的优先级标识项目的重要性: - ![低][low_img] 表示推荐项目,但在特定情况下可以省略。 - ![中][medium_img] 表示强烈推荐项目,但在特殊情况下可以省略,省略可能会对安全性产生负面影响。 - ![高][high_img] 表示在任何情况下都不能省略的项目,移除这些元素可能导致系统故障或安全漏洞。 ## MCP Server (MCP 插件)安全 > **说明:** MCP 服务是提供工具、资源和功能供 AI 调用的外部服务。即是目前 MCP 插件的形态。一般包含 Resources、Tools、Prompts ### API 安全 - [ ] **输入验证:** ![高][high_img] 严格验证所有 API 输入,防止注入攻击和非法参数。 - [ ] **API速率限制:** ![中][medium_img] 实施 API 调用速率限制,防止滥用和攻击。 - [ ] **输出编码:** ![中][medium_img] 正确编码 API 输出。 ### Server 身份验证与授权 - [ ] **访问控制:** ![高][high_img] 实施基于角色的访问控制,限制资源访问,实施最小权限原则。 - [ ] **凭证管理:** ![高][high_img] 安全管理和存储服务凭证,避免硬编码,使用密钥管理服务。 - [ ] **外部服务认证:** ![高][high_img] 使用安全方式向第三方服务认证。 - [ ] **最小权限:** ![中][medium_img] 服务进程以最小必要权限运行,减少潜在攻击面和提权风险。 - [ ] **API密钥轮换:** ![中][medium_img] 定期自动轮换 API 密钥和服务凭证,限制密钥有效期。 - [ ] **服务身份验证:** ![中][medium_img] 提供 Tools 验证服务身份的机制,方便客户端验证和安全使用。 ### 后台持久性控制 - [ ] **生命周期管理:** ![高][high_img] 实施严格的 MCP 插件生命周期管理,与客户端同步。 - [ ] **关闭清理:** ![高][high_img] 客户端关闭时强制清理所有 MCP 后台进程。 - [ ] **健康检查机制:** ![中][medium_img] 定期检查 MCP 插件状态,识别异常持久性。 - [ ] **后台活动监控:** ![中][medium_img] 监控和记录所有 MCP 后台活动。 - [ ] **活动限制:** ![中][medium_img] 限制MCP插件可在后台执行的操作类型和持续时间。 ### 部署与运行时安全 - [ ] **隔离环境:** ![高][high_img] 服务在隔离环境(容器、VM、沙箱)中运行,防⽌逃逸、防止东西向移动攻击 - [ ] **容器安全:** ![高][high_img] 使用强化的容器安全配置和非root用户运行,实施不可变基础设施,运行时保护。 - [ ] **安全启动:** ![中][medium_img] 验证服务启动过程的完整性,实施安全启动链和完整性检查。 - [ ] **环境变量安全:** ![中][medium_img] 敏感环境变量受到保护,不在日志中泄露。 - [ ] **资源限制:** ![中][medium_img] 实施资源使用限制,防止大模型出错时大量循环重复调用。 ### 代码与数据完整性 - [ ] **完整性验证机制:** ![高][high_img] 使用数字签名、哈希校验等机制确保代码未被篡改。 - [ ] **远程验证:** ![中][medium_img] 支持远程验证代码完整性的机制。 - [ ] **代码混淆与加固:** ![低][low_img] 应用代码混淆和加固技术,增加逆向工程难度。 ### 供应链安全 - [ ] **依赖项管理:** ![高][high_img] 安全管理第三方依赖项。 - [ ] **包完整性:** ![高][high_img] 验证包的完整性和真实性。 - [ ] **来源验证:** ![中][medium_img] 验证所有代码和依赖项的来源。 - [ ] **构建安全:** ![中][medium_img] 确保构建流程安全。 ### 监控与日志记录 - [ ] **异常检测:** ![高][high_img] 检测和报告异常活动模式。 - [ ] **详细日志记录:** ![高][high_img] 记录所有服务活动和安全事件。 - [ ] **安全事件告警:** ![高][high_img] 配置关键安全事件的实时告警。 - [ ] **集中日志管理:** ![中][medium_img] 集中收集和分析日志。 - [ ] **日志完整性:** ![中][medium_img] 确保日志完整性,防止篡改。 - [ ] **审计能力:** ![中][medium_img] 支持详细的审计和事件调查。 ### 调用环境隔离 - [ ] **MCP间隔离:** ![高][high_img] 确保多个 MCP 服务之间的操作隔离。 - [ ] **资源访问控制:** ![高][high_img] 为每个 MCP 服务分配明确的资源访问权限边界。 - [ ] **工具权限分离:** ![中][medium_img] 不同领域的工具使用不同的权限集。 ### 平台兼容性与安全 - [ ] **系统资源隔离:** ![高][high_img] 根据不同操作系统特性实施适当的资源隔离策略。 - [ ] **跨平台兼容性测试:** ![中][medium_img] 测试 MCP 服务在不同操作系统和客户端上的安全行为一致性。 - [ ] **平台特定风险评估:** ![中][medium_img] 评估特定平台的独特安全风险和缓解措施。 - [ ] **客户端差异处理:** ![中][medium_img] 确保安全控制能适应各种客户端实现的差异。 ### 数据安全与隐私 - [ ] **数据最小化:** ![高][high_img] 仅收集和处理必要的数据。 - [ ] **数据加密:** ![高][high_img] 敏感数据在存储和传输中加密。 - [ ] **数据隔离:** ![高][high_img] 不同用户的数据得到有效隔离。 - [ ] **数据访问控制:** ![高][high_img] 实施严格的数据访问控制。 - [ ] **敏感数据识别:** ![高][high_img] 自动识别和特殊处理敏感数据。 ### 资源安全(Resources Security) - [ ] **资源访问控制:** ![高][high_img] 实施细粒度的资源访问控制。 - [ ] **资源限制:** ![中][medium_img] 限制单个资源的大小和数量。 - [ ] **资源模板安全:** ![中][medium_img] 确保资源模板参数经过验证和清理。 - [ ] **敏感资源标记:** ![中][medium_img] 标记并特殊处理敏感资源。 ### 工具实现安全(Tools Security) - [ ] **安全编码实践:** ![高][high_img] 遵循安全编码标准和最佳实践。 - [ ] **工具隔离:** ![高][high_img] 工具执行在受控环境中,防止系统级别影响。 - [ ] **输入验证:** ![高][high_img] 严格验证来自客户端的所有输入。 - [ ] **工具权限控制:** ![高][high_img] 各工具仅拥有完成任务所需的最小权限。 - [ ] **数据验证:** ![高][high_img] 验证工具处理的数据,防止注入和篡改。 - [ ] **工具行为约束:** ![高][high_img] 限制工具可执行的操作范围和类型。 - [ ] **第三方接口返回信息安全:** ![高][high_img] 验证接口返回信息是否符合预期,不可直接将返回信息插入上下文。 - [ ] **错误处理:** ![中][medium_img] 安全处理错误,不泄露敏感信息。 - [ ] **命名空间隔离:** ![中][medium_img] 为不同工具实施严格的命名空间隔离。 **[⬆ 返回顶部](#-目录)** ## MCP 客户端/MCP HOST 安全 > **说明:** Host 是运行 AI 应用程序和 MCP 客户端的环境,是终端用户与 AI 系统交互的入口点。如 Claude Desktop、Cursor。Client 是 AI 应用程序内部的组件,负责与 MCP 服务通信,处理上下文、工具调用和结果展示。一般情况下 Client 是默认集成在 Host 中的。 ### 用户交互安全 - [ ] **用户界面安全:** ![高][high_img] 用户界面明确显示AI操作的权限范围和潜在影响,提供直观的安全指示器。 - [ ] **敏感操作确认:** ![高][high_img] 高风险操作(如文件删除、资金转账)需要明确用户确认。 - [ ] **权限请求透明:** ![高][high_img] 权限请求明确说明用途和范围,帮助用户做出明智决策,避免过度授权。 - [ ] **操作可视化:** ![中][medium_img] 工具调用和数据访问对用户可见且可审核,提供详细的操作日志。 - [ ] **信息透明度:** ![中][medium_img] 工具应该可以允许用户是否默认展示隐藏标签,如