ECLIPSE: Self-Evolving Stealthy Prompt Injection Attack against Long-Horizon Agentic Systems
Shiqian Zhao, Yangfan Zhou, Xinfeng Li, Runyi Hu, Yechao Zhang, Yi Xie, Tianwei Zhang, Luu Anh Tuan
cs.CR
2026-08-31
南洋理工与港理工的ECLIPSE在沙箱先验可执行工具链,再写成自然请求并把状态转移写进MCP描述;LASE-Bench无防御ASR 96.7%,外挂过滤下69.2%,比最强基线高27.5个百分点。
长程 Agent 已经能连着调五六次工具把活干完。注入也跟着变难。
把恶意目标写成一条显式指令,Agent 容易听话,输入侧过滤器也容易看见。把意图拆到网页、邮件、多段工具返回里,单次检查更难抓,但链路一长,顺序错一步就跑飞。ObliInjection、WASP、WebTrap 都报过这种衰减。
ECLIPSE 要同时保住两件事:用户请求看起来像正常工单,执行轨迹还得按攻击者验过的工具链走完。威胁模型里,跟 Agent 对话的用户就是攻击者,对后端模型只有黑盒查询;另外还能改工具的自然语言描述。论文给了两条现实路径:往 Glama、PulseMCP 这类 MCP 市场发布带引导文案的工具,或者装好之后再改描述,论文里叫 Rug Pull。Glama 当时已索引超过 55.4 万个 MCP 工具。
两段式。先在沙箱里把链做出来,再把链搬到目标环境里盯着走。
Stealthy Attack Trajectory Synthesis(SATS,隐蔽攻击轨迹合成)先起一个影子 Agent。工具调用只返回模拟状态,不碰真系统。按任务语义检索相关工具,生成多条候选链。每一步带工具、参数、目的、预期环境变化。验证分两道:工具和参数能不能跑、状态变没变对;上下步是否咬合、最终是否命中成功条件。失败就结构化反馈回去改,最多 Rmax 轮。验过的链不直接交给受害者。合成器按「最低必要需求」原则,把因果依赖写成一段自然请求,不出现工具名、参数名、编号步骤和攻击术语。可选地加一个人设和截止日期、页数这类约束。
Tool-Chain Steering(TCS,工具链转向)负责部署时不跑偏。Static Workflow Encoding(SWE,静态工作流编码)把链上每个工具的描述改写成「前置条件 / 本步不变量 / 下一步状态」三元组,用前提、一致性检查、完成态这类工作流措辞,不点明全局攻击目标。Dynamic Trajectory Correction(DTC,动态轨迹纠偏)每调一次工具就对比计划链,分三种偏差:循环调用同一工具、走到了链上却没进下一步、跑到链外停住。三种情况都会在当轮工具返回末尾拼一段工作流残差信号,并点名下一个该完成的链上工具。工具实现和沙箱状态都不改,只改 Agent 看见的返回文本。
自建基准 LASE-Bench:120 个恶意任务、198 个工具,96.7% 的任务至少调五次工具,均值 5.525、中位数 6。ASSEBench 不安全样本大约只有 1.0% 达到这个长度,SHADE-Arena 一条都没有。任务覆盖数据外泄 42 条、供应链妥协 33 条、规避监控 16 条。工具池 16 类、7000 多个函数,每题暴露检索后的 top 50。温度 0,最多 20 轮、30 次调用。
无防御几乎贴着 ObliInjection,真正拉开的是外挂过滤器。
| 设置 | ECLIPSE ASR | 最强基线 |
| DeepSeek 无防御 | 96.7% | ObliInjection 95.8% |
| DeepSeek 有过滤 | 69.2% | ObliInjection 41.7% |
| GPT-4o 有过滤 | 62.5% | ToolHijacker 59.2% |
| Claude 4.8 Opus 有过滤 | 62.4% | AdaptiveAttack 0.8% |
GPT-4o、Claude 4.8 Opus 无防御分别是 95.0%、93.3%。更新闭源也没封口:GPT-5.6 Luna 无防御 85.8%、有过滤 52.5%;Claude Sonnet 5 是 77.5% / 60.0%。开源 Kimi-k3-7b 和 QWEN-3.8-27b 无防御 94.2% / 87.3%,有过滤掉到 37.2% / 36.9%。
短链 SHADE-Arena、DeepSeek 有过滤:ECLIPSE 58.1%,AdaptiveAttack 57.7%,ASR 优势几乎没了,但 Jaccard / LCS 仍最高,分别是 0.859 和 0.740。
消融把力从哪来讲清楚了。光改用户提示,基线 ASR 只有 19.2%;加人设略降到 17.5%;加约束才到 27.5%。真正拉起来的是工具侧:DTC 单独 37.5%,SWE 单独 66.7%,两者一起才到 69.2%。SWE 负责把跨步依赖写进描述,DTC 只补部署漂移。
原生编排也测了。OpenClaw 无防御 68.5%、有过滤 61.7%;Hermes 62.3% / 55.8%。有过滤时 ToolHijacker 在 Hermes 上从 60.0% 掉到 23.3%。
现成防御对这种拆开的意图都不稳。DataSentinel 之后 ASR 仍 85.8%;Tool-Guard 52.5%;轨迹监视 AgentDoG 收到 43.3%;对齐方法 SecAlign 把 ASR 压到 0.8%,但防御率按他们的口径记成 0%,因为模型拒答不算运行时拦截,低 ASR 也可能混进了长程正当任务被对齐伤到的成分。
给跑 MCP 工具的人看,这篇的力量在工具描述和工具返回上,不在又一条 jailbreak 模板。SWE 把工具文档变成状态机。DTC 还要求攻击者能改 MCP 返回文本。个人助手如果从公开注册表装了大量第三方工具,Rug Pull 之后描述一改,长程工作流可能被慢慢拧到另一条链上。
对做 Agent 安全的人,短链基准会低估这个问题。LASE-Bench 的设计点就是:恶意目标要活过多次规划、行动、观察。现有输入侧检测几乎看不见这种拆开的意图。轨迹监视更对症,但仍有 43.3% 漏过,因为前几步看起来像正常铺垫。
过滤器单看用户请求不够,要对齐提示、工具元数据和跨步依赖一起看。
论文没有单独的 Limitations 节。威胁模型本身已经很强:攻击者既是用户,又能改工具描述,DTC 还要能改工具返回。这不是网页里藏一句、劫持别人 Agent 那种经典间接注入。
全部实验在沙箱里,工具返回的是模拟状态,没有真实外泄。温度 0、最多 20 轮,实验室设定。对更新模型 Luna、Sonnet 5,以及开源模型加过滤之后,成功率掉一截。短链上相对 AdaptiveAttack 几乎没有 ASR 优势。
SecAlign 的 0.8% 需要打折看:论文自己写了,这可能混进「长程正当任务也被对齐压掉」的成分。消融里纯提示大约 20% ASR,主结果里的 96.7% 高度依赖工具侧投毒。对只控制用户输入、控制不了 MCP 服务器的攻击者,这篇的数字套不上。
双用途风险论文自己写了。针对特定线上 Agent 调过的注入提示没有公开。