模型上下文协议 (MCP) 十大安全漏洞解析
开源标准Model Context Protocol(模型上下文协议,MCP)使AI系统无需集成即可与各类数据源、工具和服务交互,为Agentic AI(代理型人工智能)奠定基础。但企业在采用MCP服务器作为AI战略组成部分时,必须警惕相关安全风险。本文系统梳理了MCP协议的十大关键漏洞。
类似跨站脚本攻击,跨租户数据泄露允许一组用户访问其他用户数据,可能影响内部团队、业务伙伴及客户。该漏洞已在Asana的MCP服务器实现中被发现。安全公司UpGuard建议通过强制租户隔离和实施最小权限原则来防范。
2. 隐蔽提示注入攻击者伪装成员工或客户向人工客服发送请求,其中嵌入仅AI可读的隐蔽指令。若客服将请求转交能访问敏感数据的AI助手,将造成严重危害。防护措施包括:
实施最小权限原则实时检测可疑提示内容完整记录MCP活动审计日志3. 工具投毒现成的MCP服务器下载包可能暗藏风险。恶意版本会篡改描述字段以绕过加密措施窃取数据。攻击面包括:
函数名称参数及默认值错误消息后续提示字段防范建议:
验证下载源可信度检查权限请求合理性尽可能审查源代码持续监控软件供应链安全4. 公开提示注入攻击者通过在GitHub等公开平台创建含恶意指令的Issue,诱导检查该仓库的AI代理执行数据泄露操作。虽然GitHub服务器未被入侵,但成为了攻击渠道。尽管人工确认每个工具调用是最佳实践,但多数用户已采用"始终允许"策略。
5. 令牌窃取当OAuth令牌以明文形式存储在MCP配置文件中时,攻击者可通过后门或社工手段窃取。与常规账户劫持不同,通过MCP使用被盗令牌的API访问看起来完全合法,增加了检测难度。以Gmail账户为例,攻击者可获取完整邮件记录、发送伪造邮件或设置监控规则。
6. 组合链攻击使用未经审查的第三方MCP服务器时,其可能向次级远程服务器发起请求。次级服务器返回看似合法但包含隐藏恶意指令的输出,经组合后传递给AI代理执行。该方法可窃取环境变量中的敏感数据,且无需与恶意服务器建立直接连接。
7. 用户疲劳即使要求人工审批所有AI代理操作,恶意MCP服务器仍可通过海量无害请求(如读取权限申请)使用户产生审批疲劳,最终忽视隐藏其中的危险指令。该攻击原理与MFA疲劳攻击类似,都是通过持续请求迫使用户降低警惕。
8. 管理员绕过当MCP服务器未配置身份验证时,低权限用户可能通过AI代理获取超出其访问级别的信息。若该服务器同时对外开放,将导致更严重的权限提升风险。
9. 命令注入若MCP服务器未经验证直接转发用户输入,攻击者可注入恶意命令(类似SQL注入)。防护措施包括:
严格验证所有用户输入使用参数化命令禁止直接将输入传递给shell命令10. 工具影子攻击当AI代理可访问多个MCP服务器时,恶意服务器可能诱导其不当使用其他服务器。例如医疗场景中,表面提供症状查询的恶意服务器可暗中指令AI代理通过正常计费系统泄露患者数据。