【MCP安全】MCPGuard : Automatically Detecting Vulnerabilities in MCP Servers

锐评:这篇文章标题很有问题,根本没有一种自动化的方法挖漏洞,更多是类似一个综述这样
Abstract
模型上下文协议(MCP)已成为一种标准化接口,使大语言模型(LLM)与外部数据源和工具之间能够无缝集成。尽管 MCP 显著降低了开发复杂度并增强了智能体能力,但其开放性和可扩展性引入了严重的安全漏洞,威胁系统可信性和用户数据保护。本文系统分析了基于 MCP 的系统的安全态势,识别出三类主要威胁:(1)源于协议设计缺陷的智能体劫持攻击;(2)MCP 服务器中的传统 Web 漏洞;(3)供应链安全问题。为应对这些挑战,我们全面调研了现有防御策略,既包括主动的服务器端扫描方法(从分层检测管道、智能审计框架到零信任注册系统),也包括运行时交互监控解决方案(提供持续监督与策略执行)。分析表明,MCP 安全本质上代表了一种范式转变:攻击面从传统代码执行扩展到自然语言元数据的语义解释,因此需要针对这一独特威胁量身定制的新型防御机制。
1. Introduction
大语言模型(LLM)持续演进,在推理速度与输出质量上均取得显著突破,同时日益具备选择并调用外部工具的能力。越来越多的 LLM 智能体应运而生——它们不仅能进行多轮对话或解决国际数学奥林匹克(IMO)级别的问题,还能在面临复杂任务时自主规划行动、做出决策,并与外部 API、数据库及工具交互。然而,各异的数据库、Web 服务与应用仍然彼此隔离,给开发者带来巨大工程复杂度,原因就在于缺乏无缝集成与统一管理的手段。
为应对这一挑战,模型上下文协议(MCP)[1] 被提出,作为连接 LLM 与外部数据源的标准化接口。MCP 显著降低集成开销,并在 MCP 客户端与服务器之间建立安全、可信的通信通道,从而满足 AI 驱动服务的可扩展性与互操作性需求。LLM 能力的提升与 MCP 的采用协同作用,大幅拓展了智能体的操作边界,使其能够动态地与工具交互。自发布以来,MCP 已被 Claude Desktop、OpenAI、Cursor 等主流应用迅速采用,并在开发者社区中获得广泛好评。
在这一新范式下,智能体不再被动依赖静态数据源;相反,它们可以动态发现、选择并调用工具——极大提升了 AI 系统的整体智能水平。然而,正是 MCP 的强大开放性与可扩展性也带来了新型安全风险。作为将 LLM 推理映射到真实执行环境的关键桥梁,MCP 的安全性直接决定了智能体系统的可信度以及用户数据与隐私的保护程度。
本文聚焦 MCP 服务器的架构层,系统分析其面临的安全威胁与挑战,并提出相应防御策略。我们识别出当前 MCP 生态面临的三大核心安全挑战:
-
源于 MCP 协议缺陷的智能体劫持风险:MCP 客户端直接将工具描述与输出注入会话上下文,却在不同工具会话间缺乏充分隔离。这一设计缺陷使得工具投毒攻击(Tool Poisoning
Attacks)、Rug Pull、Tool Shadowing Attacks、间接提示注入(Indirect Prompt Injection Attacks)等一系列攻击得以实施,可劫持智能体执行非预期操作,导致用户隐私泄露。 -
MCP 服务器中的代码级漏洞与传统 Web 攻击:MCP 服务器通常以 Web 服务或本地代理形式部署,负责解析客户端请求并将其映射到后端工具调用管道。该架构模式本质上将其暴露于传统 Web 攻击面。常见漏洞包括命令注入、路径遍历、任意文件读取、服务器端请求伪造(SSRF),攻击者可利用这些漏洞操纵请求逻辑或窃取服务器端敏感信息。典型案例为近期披露的 Anthropic 官方 MCP Inspector 工具中的严重远程代码执行漏洞 CVE-2025-49596。
-
供应链安全:MCP 生态的一大特色是工具与服务可在异构服务器间互操作与分发。然而,目前尚无统一、可信的市场或审核机制来管
