EVOMAL:自进化编码代理中的自我投毒
EVOMAL: Self-Poisoning in Self-Evolving Coding Agents
精选理由
揭示自进化编码代理自我投毒漏洞及防御
AI 摘要
自进化的 LLM 编码代理通过模仿从共享技能库中检索到的技能来编写自己的工具。我们在这一循环中发现了一个漏洞:在编写过程中,被检索到的恶意技能可以成为新技能的模板,并保留有效载荷。我们将其称为自我投毒:代理编写、存储并运行由此产生的恶意技能。我们通过 EvoMal 利用这一点,这是一种通过将可替换的有效载荷包裹在 banner 中来放大自我投毒的攻击;banner 是一组看似无害的结构元素,会诱使模仿型代理复现其中的代码。攻击者无需调用这些恶意技能,就能将其植入库中。随后,代理会编写并执行携带有害代码的新技能。每个编写出的副本都可以重新进入库中,再次被模仿,形成一种在植入技能被移除后仍然存在的自我传播蠕虫。我们将代理自我投毒率(ASPR)定义为将新编写的恶意技能加入库中的任务占比。在 6 个模型、153 个与工具相关的 SWE-bench Verified 任务上,ASPR 范围为 20.3% 到 41.8%,而被污染的库中恶意技能数量是植入数量的 4.9 到 9.0 倍。即使没有 banner,这一漏洞也会出现:DeepSeek-V4-Pro 在仅含有效载荷时的 ASPR 达到 11.1%。将植入技能的描述针对某一任务家族进行定制,可将 ASPR 提高到 86.7%。在移除植入技能后,由于代理生成的副本仍然存在,Qwen3 的第 5 轮 ASPR 仍达到 68%。这些副本绕过了现有防御,因为这些防御主要针对攻击者提交的名称、代码和签名。我们提出 counter-prompt 作为一种防御,它能抑制 banner 风格的复制,并将 EvoMal 的 ASPR 降至不超过 6.7%,且任务完成无显著损失。