1899个MCP服务安全研究:7.2%存在漏洞,5.5%暗藏「工具投毒」

一项研究揭秘了MCP服务器的安全问题。

研究人员对1899个开源MCP服务器进行了史上首次大规模安全扫描,结果让人担忧:7.2%的项目泄露密钥或违反访问规则,5.5%遭受工具投毒攻击

这项研究来自最新发布的论文《Model Context Protocol (MCP) at First Glance》,研究团队使用SonarQube和早期的MCP扫描器,对GitHub上的数据进行了深度挖掘。

MCP的快速崛起

MCP(Model Context Protocol)是Anthropic在2024年底推出的通用协议,旨在标准化AI应用如何使用外部工具。

简单来说,它让大模型能够调用各种API、访问数据库、操作文件系统。

自发布以来,MCP迅速成为事实标准:Python包每周下载量180万次,NPM包更是高达690万次

微软、OpenAI、Google、Cloudflare等巨头也都纷纷拥抱这一标准。

研究团队的动机案例展示了MCP如何解决框架碎片化问题——同一个Stripe支付工具,在不同AI框架中需要重复实现。

MCP通过标准化接口,让工具能够跨框架复用。

健康但脆弱

研究显示,MCP服务器在某些方面表现出色:

从开发指标看,MCP服务器展现出强劲活力。

提交速度达到每周5.5次,远超传统开源软件的2.5次。持续集成采用率为42.2%,略高于传统项目的40.3%。构建成功率高达90%,而传统项目仅为70%。

但这种表面的健康掩盖了深层问题。

八种漏洞模式

研究团队识别出8种独特的漏洞模式,其中「凭证暴露」最为普遍,影响了3.6%的服务器:

更令人担忧的是工具投毒(tool poisoning)——这是MCP特有的安全威胁。攻击者可以操纵AI模型使用恶意工具,从而窃取凭证、执行恶意代码。

研究人员在代码中发现了触目惊心的安全问题:

OPENAI_API_KEY":"sk-Wo********g5"
genai.configure(api_key='AIza****-****1zn4')
"private_key":"-----BEGIN PRIVATE KEY-----\***\n-----END PRIVATE KEY-----\n"

这些明文存储的API密钥和私钥,一旦泄露可能造成巨大经济损失。

代码质量堪忧

维护性分析同样不容乐观。66%的MCP服务器包含关键或阻塞级别的代码异味

其中「高认知复杂度」问题最严重,影响了59.7%的服务器——这意味着代码难以理解和维护。

14.4%的服务器存在严重bug,包括数组操作问题(6.2%)、参数不匹配(3.1%)和类型结构问题(2.9%)。

挖掘出的MCP服务器比官方和社区服务器多出66%的代码异味67%的bug

工具的盲区

研究揭示了一个关键问题:传统安全工具严重低估了MCP的风险

SonarQube只能检测到7.2%的漏洞,远低于PyPI(46%)和NPM(40%)生态系统的检出率。而专门的mcp-scan工具虽然能发现工具投毒,但部署困难,且仍在早期阶段。

更糟糕的是,研究人员手动发现了一些工具都无法检测的问题。比如apple-notes-mcp需要完全磁盘访问权限,godot-mcp默认启用了敏感操作的自动批准。

生态警钟

这项研究为整个MCP生态系统敲响了警钟:

对研究者而言,需要开发MCP专用的安全分析工具,并将MCP特有威胁纳入标准漏洞数据库。

对开发者来说,必须采用主动的安全实践,集成静态安全测试,使用环境变量管理凭证。

对使用者而言,在部署第三方MCP服务器前必须进行安全审计,避免下游风险传播。

对注册中心维护者,应该建立标准化的治理机制,实施自动化漏洞扫描和撤销工作流。

在上周YC AI Startup School的演讲中,Andrej Karpathy 也提到,我们必须「让AI保持在控制之下」(keep the AI on the leash)。

他警告说:

当我看到诸如「2025年是AI代理之年」这样的说法时,我非常担心……这是代理的十年。

Karpathy的观点恰好呼应了这项研究的发现。

当我们赋予AI更多自主权时——比如通过MCP让它们能够调用工具、访问系统——安全问题就从理论变成了现实。他主张构建「增强系统,就像钢铁侠战衣,而不是完全自主的钢铁侠机器人」,强调人类监督的重要性。

而在AI的「部分自主」时代,每一行代码、每一个工具调用,都可能成为系统的阿喀琉斯之踵。




[1]

论文地址: https://arxiv.org/html/2506.13538v4


(文:AGI Hunt)

发表评论