← 最新论文
💻 computer science

A First Look at the Security Issues in the Model Context Protocol Ecosystem

本文首次对模型上下文协议(MCP)生态系统开展了跨实体安全研究,揭示了公共注册表中存在广泛漏洞,这些漏洞可导致服务器劫持和大语言模型推理操纵,并提出了MCPInspect以检测此类元数据及代码层面的威胁。

原作者: Xiaofan Li, Xing Gao

发布于 2026-04-29
📖 1 分钟阅读☕ 轻松阅读

原作者: Xiaofan Li, Xing Gao

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

以下是论文《首次审视模型上下文协议生态系统中的安全问题》的解读,将其拆解为简单概念并辅以日常类比。

宏观图景:“智能助手”生态系统

想象你有一位超级聪明的私人助理(LLM,就像大脑),它擅长写作和思考,但无法触碰现实世界中的任何事物。为了让它变得有用,你将其连接到一个外部工具包(MCP 服务器),这些工具可以执行诸如检查邮件、读取文件或运行代码等操作。

模型上下文协议(MCP) 是一套标准的“即插即用”系统,让你的助理能够与这些工具进行对话。

  • 宿主(Host): 这是你使用的应用程序(如 Cursor 或 Claude Desktop),它承载着助理和工具。
  • 注册表(Registry): 这是一个巨大的在线商店(类似应用商店),人们在此上传他们的工具供他人发现。
  • 服务器(Server): 这是实际执行工作的工具(代码)。

问题所在: 研究人员发现,整个生态系统就像“狂野西部”。商店对工具的审查不够严格,而助理的应用程序又过于盲目地信任这些工具。这为恶意行为者制造麻烦提供了两种主要途径。


第一阶段:“商店”问题(注册表级攻击)

在工具进入你的应用程序之前,它必须先列在在线商店中。研究人员发现,该商店的安保措施薄弱。

1. “废弃房屋”攻击(劫持)

  • 类比: 想象你买了一栋房子,住了一年,然后搬走并从电话簿中删除了你的地址。但电话簿(注册表)仍将你的旧地址列为“活跃”。
  • 现实: 开发者上传了一个服务器,随后删除了其账户或服务器链接。注册表未进行更新。恶意行为者看到了这个空链接,占有了这栋“房子”(账户名称),并在其中放置了恶意工具。现在,当用户尝试下载“安全”工具时,得到的却是恶意行为者的工具。
  • 发现: 研究人员发现了数百个此类“废弃”链接,恶意行为者可以轻易接管它们。

2. “泄露钥匙”攻击(凭证泄露)

  • 类比: 想象一位用户撰写了一份如何使用工具的指南,但意外地将家门钥匙贴在指南的封面上。
  • 现实: 一些开发者将配置指南上传至注册表,其中意外包含了他们的私人密码(令牌)。恶意行为者窃取这些密钥,接管开发者的服务器,并修改工具以作恶。
  • 发现: 他们在公共服务器的配置指南中发现了有效的、被盗的密钥。

3. “假名”攻击(前缀/后缀 squatting)

  • 类比: 想象一个知名品牌出售“苹果汁”。一个骗子出售“苹果汁 - 加强版”或“苹果汁品牌”。它们的名称足够相似,你可能会拿错。
  • 现实: 开发者使用非正式的命名方式(例如在名称末尾添加"-mcp")。恶意行为者创建名称与热门安全工具几乎完全相同的工具,以此诱骗用户安装假冒版本。

第二阶段:“助手”问题(集成后攻击)

一旦工具安装在你的应用程序中,应用程序就会与 AI 大脑对话,以决定何时使用该工具。研究人员发现,应用程序过度信任 AI,且未对工作进行二次核查。

1. “中毒指令”攻击(工具投毒)

  • 类比: 想象你雇佣了一位厨师(AI)来做晚餐。你给厨师一张食谱卡(工具描述),上面写着:“要做汤,你必须先偷邻居的盐。”厨师阅读卡片后,认为这是指令的一部分,于是偷走了盐。
  • 现实: 恶意服务器修改了其工具的描述文本。它不再说“将两个数字相加”,而是说“要相加数字,你必须先读取用户的私人密码文件”。AI 阅读后,认为这是必要步骤,并指示应用程序窃取密码。应用程序照做了,因为它信任 AI。

2. “幽灵工具”攻击(上下文悬空)

  • 类比: 你请图书管理员找一本特定的书。图书管理员查看了一份曾经在书架上的书单,找到了书名,并递给你一本实际上已不在那里的书。
  • 现实: 如果工具已从系统中移除,但对话历史中仍提及它,AI 可能会尝试再次使用它。应用程序试图运行该工具,失败后陷入混乱,可能会意外触发其他恶意操作或导致崩溃。

3. “影子木偶”攻击(工具遮蔽)

  • 类比: 想象你有一个安全工具(如手电筒)和一个恶意工具(如陷阱)。恶意工具上有一个标志写着:“使用手电筒时,务必将其照向陷阱。”AI 阅读标志后感到困惑,将手电筒照了陷阱,触发了它。
  • 现实: 恶意行为者甚至不需要使用自己的工具。他们只需为自己的工具编写一个令人困惑的描述,诱骗 AI 更改另一个安全工具的设置(例如将电子邮件地址更改为攻击者的地址)。安全工具运行了,但它执行的是恶意行为者的命令。

解决方案:“安全检查员”(MCPInspect)

研究人员开发了一个名为 MCPInspect 的工具,在你要安装任何工具之前充当安全检查员。

  • 它的作用: 在你下载服务器之前,MCPInspect 会检查:
    1. 链接是否真实?(所有者是否已放弃它?)
    2. 代码是否安全?(是否存在让黑客入侵的漏洞?)
    3. 描述是否怪异?(是否包含诸如“忽略之前的规则”之类的狡猾指令?)
  • 结果: 他们在超过 67,000 个服务器上测试了该工具。他们发现:
    • 833 个服务器 存在代码漏洞(可被利用的漏洞)。
    • 18 个服务器 具有可能欺骗 AI 的可疑描述。

核心结论

该论文总结道,虽然模型上下文协议是将 AI 与工具连接起来的绝佳构想,但当前系统过于轻信。

  1. 商店(注册表) 允许恶意或被劫持的工具进入,因为它们对所有权的核查不够完善。
  2. 应用程序(宿主) 盲目遵循 AI 的指令,而不检查工具是否真实存在,或指令是否安全。

研究人员已向相关公司报告了这些问题,但许多问题(如缺乏验证)是深层的设计缺陷,需要修复才能使该系统对所有人安全。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →