MCP 安全检查清单:AI 工具生态系统安全指南

1- MCP 安全检查清单:AI 工具生态系统安全指南

Twitter URL

English Version, 中文版本

1.1- 作者信息

本安全检查清单由 @SlowMist_Team 编写并维护。

慢雾科技作为全球领先的区块链生态威胁情报公司,旨在帮助区块链生态与 AI 生态相融合的过程中拥有更加深度的安全防护能力及保护用户拥有更高的隐私性。

感谢 FENZ.AI 倾力相助

FENZ.AI 以未来科技重塑 AI 安全审计。从 MCP 攻击检测到 AI 忠诚度评估,Fenz 正在构建 AI 时代的基础设施——" 超级智能,始于超强安全 "。

1.2- 📚 目录

1.3- 概要

随着大模型的迅猛发展,各种新的 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多组件交互流程与关键风险点示意图

1.4- 如何使用

本检查表基于我们在对 MCP 项目审计中遇到的可能风险点,旨在帮助开发者确保 MCP 实现的安全性。我们使用 3 个级别的优先级 标识项目的重要性:

  • 低 表示推荐项目,但在特定情况下可以省略。
  • 中 表示强烈推荐项目,但在特殊情况下可以省略,省略可能会对安全性产生负面影响。
  • 高 表示在任何情况下都不能省略的项目,移除这些元素可能导致系统故障或安全漏洞。

1.5- MCP Server (MCP 插件) 安全

说明: MCP 服务是提供工具、资源和功能供 AI 调用的外部服务。即是目前 MCP 插件的形态。一般包含 Resources、Tools、Prompts

1.5.1- API 安全

  • [ ] 输入验证: 高 严格验证所有 API 输入,防止注入攻击和非法参数。
  • [ ] API 速率限制: 中 实施 API 调用速率限制,防止滥用和攻击。
  • [ ] 输出编码: 中 正确编码 API 输出。

1.5.2- Server 身份验证与授权

  • [ ] 访问控制: 高 实施基于角色的访问控制,限制资源访问,实施最小权限原则。
  • [ ] 凭证管理: 高 安全管理和存储服务凭证,避免硬编码,使用密钥管理服务。
  • [ ] 外部服务认证: 高 使用安全方式向第三方服务认证。
  • [ ] 最小权限: 中 服务进程以最小必要权限运行,减少潜在攻击面和提权风险。
  • [ ] API 密钥轮换: 中 定期自动轮换 API 密钥和服务凭证,限制密钥有效期。
  • [ ] 服务身份验证: 中 提供 Tools 验证服务身份的机制,方便客户端验证和安全使用。

1.5.3- 后台持久性控制

  • [ ] 生命周期管理: 高 实施严格的 MCP 插件生命周期管理,与客户端同步。
  • [ ] 关闭清理: 高 客户端关闭时强制清理所有 MCP 后台进程。
  • [ ] 健康检查机制: 中 定期检查 MCP 插件状态,识别异常持久性。
  • [ ] 后台活动监控: 中 监控和记录所有 MCP 后台活动。
  • [ ] 活动限制: 中 限制 MCP 插件可在后台执行的操作类型和持续时间。

1.5.4- 部署与运行时安全

  • [ ] 隔离环境: 高 服务在隔离环境(容器、VM、沙箱)中运行,防⽌逃逸、防止东西向移动攻击
  • [ ] 容器安全: 高 使用强化的容器安全配置和非 root 用户运行,实施不可变基础设施,运行时保护。
  • [ ] 安全启动: 中 验证服务启动过程的完整性,实施安全启动链和完整性检查。
  • [ ] 环境变量安全: 中 敏感环境变量受到保护,不在日志中泄露。
  • [ ] 资源限制: 中 实施资源使用限制,防止大模型出错时大量循环重复调用。

1.5.5- 代码与数据完整性

  • [ ] 完整性验证机制: 高 使用数字签名、哈希校验等机制确保代码未被篡改。
  • [ ] 远程验证: 中 支持远程验证代码完整性的机制。
  • [ ] 代码混淆与加固: 低 应用代码混淆和加固技术,增加逆向工程难度。

1.5.6- 供应链安全

  • [ ] 依赖项管理: 高 安全管理第三方依赖项。
  • [ ] 包完整性: 高 验证包的完整性和真实性。
  • [ ] 来源验证: 中 验证所有代码和依赖项的来源。
  • [ ] 构建安全: 中 确保构建流程安全。

1.5.7- 监控与日志记录

  • [ ] 异常检测: 高 检测和报告异常活动模式。
  • [ ] 详细日志记录: 高 记录所有服务活动和安全事件。
  • [ ] 安全事件告警: 高 配置关键安全事件的实时告警。
  • [ ] 集中日志管理: 中 集中收集和分析日志。
  • [ ] 日志完整性: 中 确保日志完整性,防止篡改。
  • [ ] 审计能力: ![中](