什么是 工具投毒?
工具投毒是一类 AI Agent 攻击:恶意或被入侵的工具元数据、Schema、实现、更新或返回内容影响 Agent,使其选择不安全操作或滥用已有权限。
快速了解
| 创建时间 | 2020 年代中期被识别为独立的 Agent 工具供应链风险 |
|---|---|
| 规范文档 | 官方规范 |
工作原理
工具投毒攻击 Agent 与可执行能力之间的信任边界。攻击者可能修改工具描述并隐藏指令,发布恶意软件包或 MCP Server,在审批后改变行为,通过结果注入指令,或创建与可信工具混淆的同名工具。模型本身不能充当安全边界;宿主必须验证工具来源和版本,维护允许列表,从可信上下文派生身份,校验参数与结果,限制网络和文件权限,为高影响操作要求确认,并记录每次执行使用的精确工具版本。威胁与控制矩阵见<a href="https://qubittool.com/zh/blog/ai-agent-tool-security-guide">AI Agent 工具安全指南</a>。
主要特点
- 可从元数据、Schema、代码、依赖、更新或工具结果进入
- 利用 Agent 把工具描述和输出视为操作上下文的特点
- 可能不越过已有权限,却把权限引向非预期目标
- 可通过注册表、MCP Server、Skill、插件或委派 Agent 传播
- 需要供应链控制与运行时授权,不能只依赖提示词防御
常见用途
- 为 MCP Server、插件、Skill 和动态工具注册表建立威胁模型
- 审查工具来源、签名、版本与依赖锁定
- 测试恶意描述和恶意返回指令对 Agent 的影响
- 为破坏性操作或外部副作用设计审批门禁
- 监控工具漂移和安装后的行为变化
示例
loading...
Loading code...常见问题
工具投毒与提示词注入有什么区别?
提示词注入是通过不可信内容操纵模型行为的更广泛概念;工具投毒专门破坏工具边界,包括描述、Schema、代码、更新、依赖或返回结果。
只读工具也会被投毒吗?
会。只读工具仍可能返回恶意指令、错误租户的私有数据、误导性证据或超大内容,并影响后续操作。
Schema 校验能阻止工具投毒吗?
不能。Schema 只检查结构,不检查来源、授权、目标地址、实现完整性和语义真实性,这些必须由独立控制执行。
防御工具投毒最有效的方法是什么?
使用已验证且锁定版本的注册表、最小权限、沙箱、参数和结果校验、目标地址允许列表、高风险操作审批以及防篡改审计日志。
工具更新应如何处理?
元数据、Schema、依赖或权限发生实质变化时,应视为新的待审版本,重新运行安全测试,不能静默继承更广能力。