MalTool:当 AI 亲手编写你的智能体所安装的恶意工具
研究者用一个代码 LLM 合成了 6487 个可用的恶意智能体工具,VirusTotal 漏掉了其中大多数。教训是:对智能体工具供应链而言,基于签名的扫描是错误的控制手段。
这是什么?
MalTool 是一个研究框架,于 2026 年 2 月发表在 arXiv 上(arXiv:2602.12194),由 杜克大学(Duke University)与加州大学伯克利分校(UC Berkeley) 的研究者完成。它探讨了大多数智能体安全研究忽略的一个问题:不是工具如何被描述给智能体,而是当智能体调用工具后,工具的代码实际做了什么。作者将其称为针对 LLM 智能体的恶意工具代码实现的首个系统性研究。
威胁模型本身平淡无奇,而这恰恰是它的重要之处。攻击者将一个工具发布到分发平台:MCP 服务器注册表、插件市场、软件包索引。开发者安装了它。智能体在执行任务时选用了该工具。工具便以智能体所拥有的访问权限运行,其代码做了用户从未授权的事情。这无需任何提示注入:恶意行为存在于实现之中,而非伪造的提示词里。
为了度量这一攻击面,团队使用一个代码 LLM 自动合成恶意工具,并按照经典的**机密性—完整性—可用性(CIA)**三要素、结合智能体场景构建的分类法加以组织。关键数字是:生成了 6487 个恶意工具。而真正值得防御者驻足思考的,是下面这个发现。
它如何运作
这项贡献是一个生成器,而非单一漏洞利用,因此这里没有可复现的载荷——理解这一教训也并不需要它。
该框架要求一个具备编码能力的模型生成独立工具,这些工具一方面(a)实现一个貌似合理、看起来无害的对外宣称功能,另一方面(b)执行从 CIA 分类法中选定的某种恶意行为:泄露智能体可读取的数据(机密性)、篡改文件或结果(完整性),或扰乱主机或任务(可用性)。对于每一种目标行为,作者都生成了许多互相独立的变体,从而得到一个庞大而多样的语料库,而非反复使用同一个样本。
这种多样性正是要害所在。由于每个工具都由模型重新编写,整个语料库没有共同的签名、没有共享的字符串、没有复用的二进制文件——而这些正是传统恶意软件检测所依赖的特征。当研究者把生成的工具提交给 VirusTotal 时,这个多引擎扫描服务未能检出其中的大多数。恶意逻辑只是看起来普通的源代码,在恰好令这些动作变得有害的语境中,执行着看起来普通的动作(读取文件、发起 HTTP 请求)。
这与早先关于如何让智能体首先选中一个恶意工具的研究相呼应——例如 Attractive Metadata Attack(NeurIPS 2025),它通过精心构造工具元数据来赢得智能体的选择。MalTool 假设选择已经成功,进而追问代码随后做了什么,以及是否有任何手段能将其拦截。
为什么重要
智能体生态正围绕可安装的第三方能力——MCP 服务器、技能(skills)、插件、工具包——重新组织,其分发方式与开源软件包十分相似。各团队正整体照搬软件供应链的风险模型,包括其默认控制手段:在信任某个工件之前,先用杀毒软件和签名引擎扫描它。
MalTool 表明,面对由 AI 编写的工具,这种控制在很大程度上只是装点门面。签名引擎能识别已知的坏东西。而一个模型可以编写出无穷无尽、前所未见、且语法上各不相同的全新坏东西。经济账已经反转:生成一个全新且未被检出的恶意工具如今成本低廉,而签名扫描在单个样本上的检出率正趋近于零。这与威胁情报团队就 AI 驱动的多态恶意软件给出的更广泛报告一致——检测必须从代码看起来如何转向代码做了什么。
对智能体系统而言,影响半径很大,因为工具运行在智能体的权限范围之内:它的凭据、它对文件系统的访问、它的网络出口、它的记忆。
防御
把智能体工具当作以智能体权限运行的不可信代码来对待,并停止把签名当作屏障来依赖。
- **按工具而非按智能体实施最小权限。**将每个工具限定在其所需的最少数据、文件路径和网络目的地范围内。一个用于「总结此文档」的工具没有理由访问任意 URL。即便恶意实现得以运行,基于能力的控制也能限制它能触及的范围。
- **以行为监控取代签名扫描。**关注工具在运行时做了什么——意外的文件读取、对外连接(尤其是连向 AI API 或未知主机)、进程创建、凭据访问——而非它的代码看起来怎样。这与防御者应对多态恶意软件所采取的转向如出一辙。
- **网络出口(egress)控制。**机密性攻击需要一条外泄通道。为智能体的执行环境设置默认拒绝的出站网络策略,无论检测与否,都能切断破坏性最强的工具行为。
- **将工具执行置于沙箱中。**在容器或受限用户下运行第三方工具,且不携带环境中的凭据,使得即便恶意工具真的运行起来,也无法触及机密、更大范围的文件系统或网络。
- **重溯源与签名,而不止于扫描。**优先选用你能够归属并以加密方式验证的来源所提供的工具。维护一份允许清单;在新的第三方工具进入某个智能体的可用集合之前,要求人工审查与人工决策。关于「工具滥用」与「供应链」相关条目,可参阅 OWASP 的 Top 10 for Agentic Applications 2026。
- **不要把「VirusTotal 显示干净」等同于「安全」。**对一个由 AI 编写的工具而言,一次干净的扫描几乎不携带任何信号。请在审查流程中把这一点写明,以免一个绿色结果短路了人的判断。
状态
| 项目 | 详情 |
|---|---|
| 类型 | 研究框架 / 度量研究 |
| 来源 | arXiv:2602.12194(2026 年 2 月) |
| 单位 | 杜克大学;加州大学伯克利分校 |
| 范围 | 面向 LLM 智能体的恶意工具代码(而非描述/元数据) |
| 分类法 | 机密性 / 完整性 / 可用性 行为 |
| 生成语料库 | 6487 个恶意工具 |
| 关键发现 | VirusTotal 未能检出其中大多数 |
| 防御要点 | 行为 + 能力控制,而非签名扫描 |
持久的教训不是「又出现了一款攻击工具」。而是:AI 工具供应链继承了软件供应链的信任假设,却打破了这些假设默默依赖的检测方法。当生成一个全新、可规避签名的恶意工具的成本趋近于零时,扫描工件就不再是一道屏障。屏障必须落在:一旦你的智能体调用某个工具,这个工具被允许做什么。