MCP安全-《MCP暗战三部曲》2:MCP安全吗?

admin 2025年5月19日12:03:16评论1 views字数 2971阅读9分54秒阅读模式

hello,大家好,这里是“恒脑与AI”——AI知识快充,不定期邀请安全研究团队科普安全知识,及时了解最新的AI技术模式

本期作品——《MCP暗战三部曲》,来自研究团队X-Lab,跟随他们,领略一下当下最火MCP的一路繁花和荆棘!

第一期直达地址:《什么是MCP?》

第二期正式开始。

MCP安全么?

1

开场白

在使用 Claude、Cursor、Cline 等智能驱动 MCP Hosts 的过程中,Hosts与MCP Servers进行交互,执行任务并获取特定数据,组装相关上下文信息并提交给LLM进行任务决策,虽然显著提升了开发效率,但也引入了一系列网络安全风险。本文讨论一下MCP生态的主要风险点和防护建议

先回顾一下上期介绍的MCP生态,我们依次分析三个角色,LLM(决策者),MCP Hosts(沟通者)以及MCP Server(行动者),目前MCP Clients一般由MCP Hosts创建子进程完成,简化起见并入MCP Hosts进行分析。

还记得上一期的

类比吗?

MCP主机(MCP Hosts):就像你使用的外卖APP

MCP 客户端(MCP Clients):就像外卖小哥

MCP 服务器(MCP Servers):就像餐厅的后厨

MCP安全-《MCP暗战三部曲》2:MCP安全吗?
MCP安全-《MCP暗战三部曲》2:MCP安全吗?

2

长话短说

长文不想看的,直接看这里就行。整个MCP生态中,流动的信息数据是最大的风险来源,任何信息数据的篡改都可能引起LLM(脑子)的不稳定性,进而造成MCP Servers(手脚)对生态环境产生严重威胁。

MCP安全-《MCP暗战三部曲》2:MCP安全吗?

Cline工具本身的提示词模版,对System提示词、Hosts环境变量、任务上下文数据内容以及LLM决策结果等几类填充内容虽有做分区和隔离,但是这类标签型的分割,一来从实验的结果来看,LLM似乎并未严格遵循;二来即使这类分割在LLM语义上生效,也存在被越界的严重风险。由此,我们给出一些使用场景建议:

1

MCP生态数据全链路认证、加密、完整性校验

2

使用的LLM必须完全被信任

3

使用的MCP Hosts必须完全被信任

4

第三方MCP Servers若不存在完全被信任的条件

– 开源本地部署的MCP Server需要审计MCP Servers源码,确保所有数据传输范围为任务必要数据,不存在信息泄漏;

– 闭源部署的MCP Server,每次都需要严格审计发送给MCPServer的数据和接收返回的数据,确保发送数据范围和接收数据不存在诱导性的提示词注入。此外,仍需警惕利用多次交互上下文关联构建提示词注入的攻击(可能被用于绕过单次的内容安全审计);

5

MCP Hosts执行环境严格限制,确保风险损失可控

6

充分强调诸如辅助驾驶 不等于自动驾驶的概念,目前任何Auto Approve的行为,都存在严重风险

MCP安全-《MCP暗战三部曲》2:MCP安全吗?

3

絮絮叨叨

接下来,我们分角色单独分析一下MCP生态面临的安全风险并给出一些安全防护建议。

LLM

1.数据泄露风险

如果LLM是云端部署的,作为生态的决策者,LLM服务提供商可以看见所有运行过程中的数据

若数据未加密或访问控制薄弱,在用户操作失误或存在提示词注入的情况下,存在任务边界范围外的数据被上传的风险

与云端模型交互过程中,如果缺乏端到端加密,会有中间人攻击(MITM)的风险

防护建议

核心业务数据使用,请尽量使用本地部署的LLM服务

与LLM交互时启用端到端加密(如HTTPS/TLS1.2+)

对敏感数据做脱敏处理(内容安全审计、敏感内容遮盖)

控制上传到模型的上下文量,最小化暴露面

2.对抗性攻击风险

恶意输入可以诱导LLM输出不安全或错误的决策,例如绕过权限控制、暴露系统内部指令

防护建议

LLM接收到的所有外部输入,都应该经过严格清洗、转义、检查

对任务指令进行白名单验证(只允许受信模板指令)

3.模型幻觉与不可靠输出风险

LLM可能产生错误、虚假的内容,如果输出未经验证直接执行,可能导致终端执行错误决策

防护建议

为模型生成结果加上可信度打分,以及阈值过滤机制

在关键决策链条中引入人工复核或者AI二次验证

4.过度信任模型输出风险

不同的LLM基座,可能对业务产生不确定性的影响

如果系统将LLM的推理结果直接作为执行命令,缺乏必要的验证、审计或人为干预,将加剧风险

防护建议

模型推理结果只作为辅助参考,实际执行前经过业务逻辑二次确认或风控审批

MCP安全-《MCP暗战三部曲》2:MCP安全吗?

MCP Hosts

1.伪造服务器攻击风险

生态中MCP Servers被动接受MCP Hosts发起的链接,如果在连接过程中未验证Server身份(如证书校验、签名校验等),攻击者可以伪装成假服务器,发送恶意上下文或指令,控制或破坏MCP Hosts

防护建议

Hosts端实施服务器证书校验(例如TLS双向认证)

建立MCP Servers公钥指纹白名单

拒绝未签名或签名校验失败的上下文任务

2.本地恶意代码注入风险

若Hosts运行环境缺乏沙箱隔离、权限控制或漏洞修补,攻击者可以通过模型生成的指令植入恶意代码,持久化控制Hosts

防护建议

Hosts内置执行环境隔离(如沙箱、容器技术)

指令执行前加沙盒审计,限制执行权限和资源

禁止Hosts侧直接执行未经签名验证的动态代码

3.权限过大问题风险

Hosts如果默认运行在高权限模式(如root),一旦被攻破,攻击面和破坏力会极大扩大

防护建议

Host进程以最小权限运行(如普通用户权限),限制操作目录范围(比如限制在工程工作区内)

使用命令层级管理,来细粒度限制操作权限(如Cline管理中的读写权限分离管控,调用外部MCP Servers工具时,均需要人工复核)

4.通信链路暴露风险

Hosts与Servers、LLM之间的通信如果未加密(如未用TLS等),容易被窃听或篡改上下文数据

防护建议

全链路加密(TLS1.2或以上版本),禁止明文传输任何上下文信息或命令

MCP安全-《MCP暗战三部曲》2:MCP安全吗?

MCP Servers

1.身份伪造与服务器冒充风险

MCP Server可能会因为名字相近或者构造对抗样本的模式,被“跨域”覆盖,导致MCP Hosts的数据发往不可控的Server

防护建议

MCP Servers命名强化,核心业务的MCP Servers进行功能强绑定,二次复核,避免LLM决策失误

2.后端数据库攻击风险

MCP Server通常需要缓存大量MCP上下文信息,若数据库存在注入漏洞、未授权访问等问题,会导致大规模数据泄露或上下文被篡改

防护建议

数据库启用最小权限账户访问

防SQL/NoSQL注入(使用参数化查询、防止拼接)

上下文数据进行加密存储和访问日志审计

–做好Hosts间的用户访问信息隔离

3.拒绝服务攻击(DoS/DDoS)风险

攻击者可以向MCP Server发起大量请求或构造恶意payload,导致资源耗尽,使MCP Servers不可用,影响所有连接的Hosts

防护建议

MCP Servers接入防DDoS设备或云防护(WAF/DDOS Mitigation)

引入速率限制、连接数上限控制机制

4.缓存污染与上下文污染风险

若上下文缓存未进行内容校验或来源验证,攻击者可以污染缓存,影响后续LLM推理决策,间接诱导错误执行

防护建议

上下文缓存区做内容校验(签名验证、来源验证)

严格区分信任域(外部来源数据必须经过多层审查)

MCP安全-《MCP暗战三部曲》2:MCP安全吗?

下期预告

本期内容从多个角度讨论了一下MCP生态的网络安全风险,下一期我们来动手实践一下吧

MCP安全-《MCP暗战三部曲》2:MCP安全吗?

有啥想问我们的吗?

MCP安全-《MCP暗战三部曲》2:MCP安全吗?

原文始发于微信公众号(恒脑与AI):MCP安全-《MCP暗战三部曲》2:MCP安全吗?

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月19日12:03:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   MCP安全-《MCP暗战三部曲》2:MCP安全吗?https://cn-sec.com/archives/4078552.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息