一个恶意工具,不需要读取内存,不需要访问文件,就能把大模型智能体的运行时上下文全部偷走——它只需要在工具描述里做手脚。这是ContextLeak论文揭示的攻击方式:通过强化学习训练一个攻击模型,生成精心设计的工具名称和描述,诱导智能体主动选择恶意工具,并把敏感数据作为工具参数发送出去。
论文的默认评估结果显示,这种攻击在用户提示词攻击场景下,恶意工具被选中的概率达到92%;在对话历史攻击场景下,这一数字为89%。一旦工具被选中,提示词的还原几乎完整。这意味着,攻击者不需要任何系统漏洞,仅靠工具描述这一层"合法"入口,就能完成数据外泄。
![]()
攻击原理:把工具描述变成数据外泄通道
智能体(Agent)在执行任务时,会根据工具描述判断该调用哪个工具。ContextLeak的攻击模型正是利用了这一机制——它生成的工具描述会让智能体认为"这个工具是完成当前任务的最佳选择",同时诱导智能体把用户提示词、对话历史、已安装工具列表等运行时上下文作为参数传入。整个过程中,攻击者没有读取任何文件或内存,数据是智能体自己"主动"交出来的。
这种攻击方式的隐蔽性在于,它不依赖任何已知漏洞,也不触发常规的安全告警。工具描述本身就是智能体系统的一部分,恶意工具混入工具列表后,攻击就变成了"正常调用"的一部分。
跨模型迁移:开源代理训练的武器也能打闭源模型
更值得警惕的是,这种攻击具备跨模型迁移能力。论文作者在Claude Code环境中用Claude Sonnet 4.6做了测试:仅针对开源代理模型训练的攻击版本,在100次测试中被选中22次;一旦被选中,数据提取几乎完整。这意味着攻击者不需要直接访问目标模型,用开源模型训练的攻击工具就能对闭源模型生效。
从攻击成本来看,训练一个攻击模型只需要强化学习框架和工具描述生成能力,门槛并不高。而防御端面临的挑战是:工具描述是智能体系统的必要组成部分,无法简单禁用;同时,检测恶意工具描述本身就是一个难题——它看起来和正常工具描述没有明显区别。
对智能体安全设计的启示
这篇论文的价值在于,它把"工具描述"这个被忽视的环节拉进了安全视野。过去的安全研究集中在提示注入、越狱攻击等方向,而ContextLeak展示的是另一条路径:通过工具描述本身实现数据外泄,不需要任何漏洞利用。
对于正在构建智能体应用的团队,有几个方向值得关注:
- 工具调用的参数需要做敏感数据过滤,运行时上下文不应直接作为参数传递
- 对工具来源做更严格的信任评估,尤其是第三方工具
- 监控工具调用的参数内容,对异常的数据外传模式设置告警
论文的完整技术细节已发布在arXiv上(编号2608.27800),标题为"ContextLeak: Exfiltrating LLM Agent Context via Malicious Tools"。对于安全研究者和智能体开发者来说,这是一个值得仔细阅读的攻击面分析——在工具生态越来越开放的当下,工具描述这一层信任边界,可能比想象中更脆弱。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.