MCP工具投毒攻击
风险概览
风险编号:GAARM.0046
子风险:GAARM.0046.001、GAARM.0046.002
安全阶段:应用安全
生命周期:应用阶段
创建时间:2025.05.23
修改时间:2025.05.23
攻击概述¶
MCP是一个开放协议,用于标准化应用程序向大语言模型提供上下文的方式,MCP工具投毒攻击是一种针对该协议的攻击方式。攻击者通过恶意MCP Server的工具描述中注入攻击性提示词,实现对工具行为的恶意操纵。其核心特征是在工具描述中嵌入恶意指令,利用模型解析完整工具描述的过程,通过隐藏指令(如特殊标签或编码)诱导模型执行非授权操作,例如生成恶意内容、泄露敏感信息或绕过其他安全限制。
攻击案例¶
| 案例 | 描述 |
|---|---|
| 案例一 | 攻击者通过操纵工具描述实现恶意攻击,导致敏感模型信息泄露到恶意的MCP Server |
| 案例二 | 利用MCP Tool的描述进行投毒,实现简介提示词注入,控制其他工具的参数实现信息外带等攻击目的 |
攻击风险¶
MCP工具投毒攻击可能导致严重的系统性风险,影响模型的安全性、可靠性和用户信任。以下是主要风险:
- 信任破坏:可能导致用户对模型及其开发工具的信任下降,影响其在敏感场景中的应用。
- 目标劫持:可通过投毒使模型偏离其原始设计目的,执行自定义的恶意指令,增加滥用风险。
- 系统安全性威胁:可能导致在MCP工具中植入恶意代码,导致系统被进一步入侵或功能被破坏。
- 数据隐私泄露: 可利用投毒提取模型训练数据或用户输入的敏感信息。
缓解措施¶
| 缓解方式 | 描述 |
|---|---|
| 白盒评估机制 | 对MCP Server的代码进行白盒审计,及时发现恶意的工具描述以及代码行为 |
| 审计与监控 | 实时监控模型行为,记录工具调用日志,及时检测异常操作 |
| 模型安全训练 | 对模型进行对抗性训练,增强对投毒攻击的防御能力 |
| API访问控制 | 限制工具对敏感数据的访问,降低泄露和滥用风险 |