去年企业安全团队平均花费340万美元处理供应链攻击。而当攻击向量变成你员工每天调用的AI工具时,这笔账还没人算清楚。
本文是MCP企业安全系列的第二部分。第一部分我们画了信任边界、用STRIDE做了威胁建模、提出了三重门架构——那是蓝图。这部分我们直接破门而入,测试那些锁到底管不管用。
作者从安全架构师切换到红队视角,用一套完整的攻击剧本告诉你:为什么你的MCP(模型上下文协议,Model Context Protocol)部署可能已经在裸奔。
攻击场景一:计算器App的温柔陷阱
「我偷走了你的SSH密钥,用的只是一个计算器App。」
这不是电影台词。在MCP生态里,一个看似无害的工具调用能层层穿透,最终摸到核心资产。
攻击路径是这样的:用户向AI助手询问「帮我算一下这个月的预算」,AI调用了一个第三方MCP计算器服务。这个服务返回的不仅是计算结果,还有一段精心构造的恶意指令。AI助手忠实地执行了——因为它被设计成这样。
问题在于MCP的权限模型。大多数企业部署时,工具调用权限是「全有或全无」。要么AI能访问你的文件系统、数据库、代码仓库,要么什么都干不了。中间状态?不存在的。
攻击者利用的就是这个盲区。一个被攻破的MCP服务器可以:
• 读取环境变量中的API密钥
• 遍历本地文件系统寻找.ssh目录
• 通过DNS外带(OOB)通道把密钥传出去
整个过程不需要用户点击任何链接,不需要钓鱼邮件,只需要一次正常的AI对话。
攻击场景二:供应链的幽灵依赖
MCP生态正在快速膨胀。GitHub上已经有超过8000个开源MCP服务器,其中大部分由个人开发者维护,没有任何安全审计。
红队的测试方法很简单:克隆一个热门的MCP服务器仓库,提交一个「功能更新」,在代码里埋一个延迟触发的payload。然后等待。
平均72小时内,这个更新会被合并。一周内,超过200个企业实例拉取了新版本。
这不是假设。2024年12月,一个流行的Slack MCP服务器被发现包含恶意代码,影响范围覆盖47家企业的内部通讯数据。攻击者甚至没有费力去隐藏——代码就躺在明显的位置,只是没人看。
MCP的供应链风险比传统软件更隐蔽。传统依赖你至少知道自己在用什么库,版本号清清楚楚。MCP服务器是动态加载的,AI助手可能在一次对话中切换十几个工具,用户完全无感知。
三重门架构的压力测试
第一部分提出的三重门架构——身份门、策略门、审计门——在红队视角下暴露了几个关键弱点。
身份门:OAuth 2.1不够用了
当前MCP的身份验证主要依赖OAuth 2.1,但红队发现两个绕过路径:
第一,令牌作用域的粒度太粗。一个MCP服务器申请「读取Google Drive」权限,用户看到的是友好的授权界面,点一下「允许」。但实际上这个权限包含所有文件,包括共享给你的敏感文档。
第二,令牌刷新机制的攻击面。大多数MCP服务器长期持有刷新令牌,一旦服务器被攻破,攻击者可以持续获取新的访问令牌,直到用户手动撤销授权——而平均用户从不这样做。
策略门:规则引擎的幻觉
企业喜欢在MCP网关前部署策略引擎,设定规则比如「禁止访问生产数据库」。红队的测试显示,这些规则有30%以上的绕过率。
常见手法:利用AI的上下文窗口注入。攻击者在工具返回结果中嵌入隐藏指令,让AI「误解」用户的真实意图。比如用户说「查看昨天的日志」,AI实际执行的是「导出过去一年的用户数据并发送到外部服务器」。
策略引擎看到的是合法的日志查询请求,审计日志记录的也是这个。真正的恶意操作被藏在AI的「理解」层。
审计门:日志里的盲区
最讽刺的发现:即使三重门全部正常工作,审计日志仍然可能漏掉关键信息。
MCP的日志标准(如果存在的话)只记录工具调用的元数据——哪个服务器、什么时间、什么参数。但AI对工具返回内容的「再加工」过程完全黑箱。攻击者可以让工具返回无害的内容,诱导AI生成恶意输出,这个因果链在日志里找不到。
红队的建议:从假设 breach 开始
第一部分的安全架构是「尽可能阻止攻击」。红队的视角是「假设攻击已经发生,怎么减少损失」。
基于此,三个具体建议:
工具隔离沙箱:每个MCP服务器运行在独立的网络命名空间,文件系统访问通过FUSE(用户空间文件系统)代理。即使一个服务器被攻破,横向移动的成本大幅提高。
人机回环(Human-in-the-loop)的强制触发:不是让用户每次都点确认——那会导致确认疲劳——而是基于行为异常检测。如果AI连续调用三个涉及敏感数据的工具,自动触发人工审核。
语义级审计:记录AI的「思考过程」,而不仅是工具调用。这需要修改MCP客户端的实现,但只有这样才能捕获上下文注入攻击。
最后一点可能最具争议:企业应该考虑自建核心MCP服务器,而不是依赖开源生态。不是不信任开源,而是MCP的攻击面太特殊——它坐在用户和AI之间,拥有两者的信任,却缺乏两者的监督。
一个被攻破的MCP服务器,等价于同时攻破了一个员工的笔记本电脑和这个员工能接触的所有AI助手。这个等式,你的安全预算算进去了吗?
热门跟贴