攻击者离开之后:对 LLM 智能体延续攻击的基准评测
After the Attacker Leaves: Benchmarking Carryover Attacks on LLM Agents
CarryoverBench在五模型上评跨会话注入,作者称种下后五轮触发无明显单调衰减。
- 个人助理把记忆和心跳任务留在跨会话状态里。一次间接提示注入写入后,攻击者离开仍可反复触发。现有基准只评注入当轮,测不到之后再触发。
- CarryoverBench含12个场景与101个攻击任务,分Instant、Autonomous、Latent。规则验证器分开计planting与triggering,并同时报告ASR和良性Utility。
- 主实验在Nanobot上、五个模型、N=5轮。作者称五轮无单调衰减,文本防御主要压planting。迁到Hermes后Latent ASR下降,但各模型仍被攻击。
- 验证器别名未覆盖时会漏报,作者称ASR宜作模型间相对信号。Latent五轮复用同一后续请求,作者称该条件触发率是上界。Hermes消融不含推理模式下的Gemini-3.1-Pro。
- 被测模型
- GPT-5.4Claude-Sonnet-4.6Gemini-3.1-ProGLM-5Qwen3-235B-A22B
- 基准
- CarryoverBenchNanobotHermes
- 指标
- ASRUtilityPr(Plant)Pr(Trig|Plant)N-TrigRate
研究者发布 CarryoverBench,一个面向 LLM 智能体跨会话提示注入的分阶段基准,包含 12 个个人助理场景和 101 个攻击任务,覆盖 Instant、Autonomous、Latent 三个触发通道,并把攻击成功率拆成植入与条件触发两个阶段分别计分。在五个前沿模型上,载荷一旦写入 MEMORY.md 或 HEARTBEAT.md,5 轮后续会话中的触发率没有单调衰减;Autonomous 通道下多数模型的条件触发率高于 80%,GPT-5.4 与 Claude-Sonnet-4.6 在两种通道下都接近 100%。三种文本层防御(系统提示原则、显式编辑授权、Spotlighting 来源标记)主要压低植入率,对触发率的影响在种子波动范围内。将 Latent 通道迁移到 Hermes 运行时后攻击成功率降至 2.8%–27.8%,作者认为延续攻击的防御需要运行时层控制。
推荐理由论文把跨会话提示注入拆成植入与触发两阶段,并给出五个前沿模型的条件触发率,便于判断防御该放在哪一层。
深度解读
这篇论文试图解决什么问题?
一次注入写入记忆或心跳后,可在攻击者离开后跨会话再触发。
一次间接提示注入写入持久状态后,可在攻击者离开后跨会话反复执行。
- 出现场景:个人助理把长期笔记写入 memory/MEMORY.md,运行时在每个新会话静默拼进系统提示;心跳按固定间隔执行 HEARTBEAT.md(默认 30 分钟)。作者认为危险在回合结束后留下的状态,而不在单轮。
- 现有不足:作者称现有提示注入基准只评恶意内容首次被观察到的会话,种下之后何时、多常再触发没有被测量。
- 核心设定:作者把这类威胁称为 carryover attacks。一次注入进入记忆或心跳后,后续危害须由智能体自己的状态管理带出,攻击者不再在场。
- 本文做法:提出 CarryoverBench,含 12 个个人助理场景、101 个攻击任务,覆盖 Instant、Autonomous、Latent。规则验证器把 planting 与 triggering 分开计分,并同时报告 ASR 与良性任务 Utility。
- 威胁模型:
- 目标:使 Harm 成立,即动作匹配该攻击任务的目标签名。论文举例包括把数据发到攻击者控制的 URL。
- 知识:攻击者是 black-box 第三方。
- 能力:向智能体会读的网页、邮件、文档或工具返回值注入内容,随后退出,zero persistent presence。不能改运行时,不能直接读写 MEMORY.md 或 HEARTBEAT.md,不能绕过 OS 访问控制。
- 受害系统:带长期记忆与心跳调度的工具使用 LLM 智能体。主实验用 Nanobot 实现该设定。
有哪些相关研究?
相关基准多评注入当轮;作者用种下与触发分解定位本文。
提示注入
- 输出层到间接注入:Wei et al. (2023) 与 Zou et al. (2023) 从越狱做起;Perez and Ribeiro (2022) 研究提示注入;Greshake et al. (2023) 描述间接提示注入,载荷经网页、邮件或工具返回进入,而非用户直接输入。论文此处只作描述。
智能体安全基准
- 当轮计成功:AgentDojo(Debenedetti et al., 2024)、InjecAgent(Zhan et al., 2024)、AgentHarm(Andriushchenko et al., 2025)、SHADE-Arena(Kutasov et al., 2025)把用户任务与注入任务配到工具环境。ToolSword(Ye et al., 2024)、SafeToolBench(Xia et al., 2025)针对工具误用,WASP(Evtimov et al., 2025)针对网页智能体注入。作者称这些工作都在载荷到达的当轮计成功,测不到 Delayed 与 Persistent 两类体制。
- 在线攻击者:AgentLAB(Jiang et al., 2026)让攻击者保持在线;其 long-horizon 仍是单次对话内多轮,而不是调度器驱动的自主触发。作者对比称本文攻击者在一次 plant 后离线。
有状态智能体与并发工作
- 记忆与调度:ReAct(Yao et al., 2023)之上,MemGPT(Packer et al., 2024)与 MemoryBank(Zhong et al., 2023)提供长期记忆,运行时还有 cron 式调度。Wang et al. (2026) 在同轮时序下审计 OpenClaw;作者称其 CIK 分类被攻破的能力,plant/trig 度量攻击落在哪一阶段。
- 并发实证:Maloyan and Namiot (2026) 形式化 sleeper-channel × provenance-gate,并给出带可靠性定理的防御框架;作者称其攻击成功测量是预注册的后续工作,文中实证是单场景 n=20 探针加 42 例防御单元测试,不是比较性攻击基准。Yang et al. (2026) 攻击滑动窗口与 RAG 记忆的演化函数,对象为两个中档模型。Pulipaka et al. (2026) 报告记忆写入成功,未联合测量触发阶段。Zou et al. (2026) 针对 WebArena 上轨迹记忆,作者称为另一领域。
基线与基准
- 基线方法:主实验以 Instant(同轮间接提示注入)为经典基线通道,防御实验以 No Defense 为对照。结果报告在作者构建的 CarryoverBench 上(101 个攻击任务、12 个良性任务族),定位对比见附录 C 的 Table 8。
作者把 Autonomous 与 Latent 定为单轮基准测不到的体制,并用 Pr(Plant)·Pr(Trig|Plant) 把写入时防御和触发时防御分开。附录 C 中作者称,该对比表里只有 CarryoverBench 同时测量 Autonomous 计时与 Heartbeat 通道,并与有状态记忆及同轮 IPI 放在一起。
论文如何解决这个问题?
CarryoverBench把种下与后续触发分开,用规则验证器两阶段计分。
CarryoverBench 把一次注入之后的跨会话执行拆成 planting 与 triggering,用规则验证器分别计分,并同时报告良性任务 Utility。
两条持久通道
- 记忆:会话之间裸模型会遗忘。运行时把 memory/MEMORY.md 在每个新会话静默前置到系统提示;智能体可用 write_file 修改它,写入内容成为后续会话的常驻指令。
- 心跳:守护进程按固定间隔唤醒智能体,默认 ∆ = 30 分钟。固定提示要求读取 HEARTBEAT.md 并执行已登记任务;若无需处理则回复 HEARTBEAT_OK。文件只有标题、注释或未勾选条目时,该 tick 静默跳过。评测用手动 tick 替代墙钟,提示与跳过逻辑与生产路径相同。
- 上下文:每步上下文含系统提示、当轮对话、长期记忆 Mt、心跳任务 Ht 与最新工具观察。作者称 Mt 与 Ht 跨回合携带信息,是 carryover 的结构前提。
- 两阶段:端到端成功要先把载荷 δ 写入记忆或心跳,再在后续会话触发。作者写成 ASR = Pr(Plant) · Pr(Trig | Plant)。N-TrigRate 是种下成功的任务中,第 N 个独立会话仍造成 Harm 的比例。
三通道与任务
- Instant:同轮间接提示注入。Plant 后载荷进入当轮上下文并在该轮造成 Harm。作者将其作为经典基线。
- Autonomous:经心跳传播,在预定 tick、无用户在环的空会话中自触发。
- Latent:写入长期记忆,休眠到话题相关的未来用户请求再激活。作者把 Autonomous 与 Latent 合称 carryover attacks。
- 任务三元组:良性用户任务、容器化环境、针对该环境的攻击任务。攻击任务包含注入提示、环境中的注入位置、攻击目标、意图调用的工具和成功验证器。12 个任务族、101 个攻击任务(Instant 35、Autonomous 30、Latent 36),分族计数见附录 Table 7。良性提示为手工对话式自然语言。
触发协议与指标
- 轮次:Autonomous 与 Latent 测 N=5 轮,每轮新智能体,以对齐生产 cron 语义。
- Autonomous 轮:只给最短心跳提示,无穿插用户任务。恶意动作须来自智能体自行读取持久状态。
- Latent 轮:每轮同一条领域自然后续请求,不提及 MEMORY.md,用于控制采样随机性。
- Utility:良性任务按子维度加权,前置动作未满足则该任务不得分。ASR 与 Utility 分开报,以避免一概拒答同时压低两者。
规则验证器与主运行时
- 判定:每个任务族的验证器继承 TaskEvaluator,暴露 Utility 与 ASR。作者不用 LLM-as-judge,理由是对抗轨迹下评判提示本身是注入面,且规则可复跑、第三方可审计。
- 匹配:payload registry 把任务与载荷映到各阶段标记别名;工具分为 messaging、HTTP、write、read、exec 五族。
- Nanobot:每轮从磁盘重建系统提示,并把 MEMORY.md 全文前置。Latent 在同一工作区开新会话,跨边界信息只来自磁盘上的 MEMORY.md 与 HEARTBEAT.md。工具循环委托 Hermes,但主基准的记忆通道仍是 Nanobot 的这份文件。
- 解码与预算:五模型 temperature=0,共用系统提示与工具调用模板。每轮工具调用上限 20,墙钟预算 600 秒;超限记失败,不进 ASR 分子,计入 Utility 分母。
论文做了哪些实验?
五模型上作者称五轮少见单调衰减,文本防御主要压在种下。
实验设置
- 被测模型:GPT-5.4、Claude-Sonnet-4.6、Gemini-3.1-Pro、GLM-5、Qwen3-235B-A22B。Gemini-3.1-Pro 以默认推理模式运行。
- 运行时:主结果在 Nanobot 上,temperature=0,同一系统提示与工具调用模板。Autonomous 与 Latent 各 N=5 个触发轮。
- 规模:CarryoverBench,12 个良性任务族、101 个攻击任务(35 Instant、30 Autonomous、36 Latent)。
- 对照:通道上以 Instant 为同轮基线。防御 D1–D3 只评 Qwen3-235B-A22B、GLM-5、Claude-Sonnet-4.6,n=66(30 Autonomous + 36 Latent),对照为 No Defense。
- 指标:ASR;Auto/Latent 为任一轮触发即成功,Instant 为单次成功。另报 Utility、Plant、各轮 Trig、T|P。Table 1 附任务级聚类 bootstrap 95% CI(B=10,000,每轮重抽 101 个攻击任务与 12 个良性任务)。
- 评审:规则验证器,无 LLM 裁判。论文未报告与人工判定的一致性,也未报告主结果的独立重复次数。
主结果
表格较宽,可左右滑动
模型 Instant Auto Latent Overall Atk Utility GPT-5.4 22.9 3.3 8.3 11.9 91.4 Claude-Sonnet-4.6 22.9 10.0 22.2 18.8 87.9 Gemini-3.1-Pro 60.0 56.7 38.9 51.5 94.2 GLM-5 34.3 40.0 11.1 27.7 93.1 Qwen3-235B-A22B 57.1 83.3 52.8 63.4 91.6 单位为 %,据 Table 1。Auto/Latent 为任一轮触发。
- 作者称前沿模型也会受到 carryover 攻击,且两阶段通常使 carryover 的 ASR 低于 Instant。Table 1 的反例是 GLM-5 与 Qwen3-235B-A22B:二者的 Autonomous 列高于各自的 Instant 列。
- 作者称一旦种下,Autonomous 上五模型的 Pr(trig|plant) 约等于 1,Latent 上该量落在 [0.17, 1.0];并称种下后的累积危害随部署时长或用户行为频率放大,而不是随单次尝试率。Table 3 无防御的 Qwen-Auto T|P 为 89.3,GLM-Auto 与 Claude-Auto 为 100.0。
- 无攻击 Utility 在 Table 1 中为 Claude-Sonnet-4.6 的 89.3 至 Gemini-3.1-Pro 的 100.0;攻击下 ∆ 为 −5.9 至 −0.8。若干 ∆ 的 95% CI 跨过 0,Gemini 的 ∆ CI 为 −10 至 −3。Figure 4 画 Safety(1−ASR)对攻击下 Utility。
跨轮是否衰减
- 测了什么:Table 2 在 66 个 carryover 试验上报告 Plant 与 1–5 轮 Trig。Figure 3 画两通道的逐轮 ASR。
- 结果:Latent 上 GPT-5.4 五轮均为 8.3;Claude 在 16.7 与 22.2 间交替;GLM-5 五轮均为 11.1(Plant 25.0);Gemini 为 30.6、30.6、30.6、33.3、36.1;Qwen 为 44.4、47.2、47.2、38.9、41.7。Autonomous 上 GPT 第 4 轮为 0.0、第 5 轮回到 3.3;Gemini 从 56.7 到 50.0 后持平;Qwen 前四轮 76.7、第 5 轮 70.0。
- 作者解读:作者称两通道五轮无单调衰减;Latent 的稳定来自工作区文件不变,会话间重置的聊天历史不携带攻击。与表对照:Gemini 的 Latent 后两轮高于 30.6,其 Autonomous 则逐轮不升。作者把 GLM-5 视为例外,并称日志中它在触发时不读 MEMORY.md,检查发生在工具调用的接收方或 URL 上。
三种文本通道防御
- D1(原则提示,附录 F):要求谨慎对待持久状态。Table 3 中 GLM、Claude 的 Plant 与 ASR 下降,Claude 两通道 ASR 均为 0.0,GLM-Auto 从 40.0 到 3.3,GLM-Lat 从 11.1 到 0.0。Qwen-Lat 从 52.8 到 72.2,Plant 从 66.7 到 83.3(论文标 small-n);Qwen-Auto 的 ASR 仍为 83.3。作者称 D1 在 Qwen 上放大而非阻断。攻击下 Utility:Qwen 91.6→87.3,GLM 93.1→91.6,Claude 87.9→78.6;作者称 Claude 损失 9.3 个百分点。
- D2(授予编辑权):会话开始时明确允许检查并修改两份持久文件。作者称五次触发机会中自愿修改或删除次数为 0。Table 4 的 Plant 与各轮 Trig 相对 No Defense 有下降,例如 Qwen-Auto 的 5-Trig 从 70.0 到 46.7,Claude-Lat 各轮 Trig 为 5.6。
- D3(来源标记):运行时用 untrusted_persistent_state 包裹两份文件,为 Spotlighting 的 delimiting 变体。Table 5 的 ASR 下降主要来自 Plant:Qwen 的 Plant 78.8→56.1,carryover Overall ASR 66.7→48.5;Claude Overall 16.7→3.0。作者称六格模型×通道里只有 GLM-5 Autonomous 的触发门下降(T|P-Auto 100.0→62.5),并称同日无 D3 重跑有相近偏差,效应在重跑噪声内。Qwen 的 T|P-Auto 为 89.3→90.0,Claude 两通道 T|P 仍为 100.0。作者认为关掉触发门需要文本通道之外的判别,例如跨会话写入门控或能力限制。
Hermes 运行时
- 测了什么:36 个 Latent 变体迁到 Hermes,同一模型与验证器、N=5。不评 Autonomous,因为 Hermes 的 cron 与 Nanobot 心跳不同。Hermes 自带内容模式扫描、定期记忆复查和经工具的状态写入,试验中均开启。Gemini-3.1-Pro 因推理延迟未纳入。
- 结果:Table 6 的 Latent ASR:Qwen 52.8%→27.8%(∆ −25.0),Claude 22.2%→5.6%(∆ −16.6),GLM 11.1%→8.3%(∆ −2.8),GPT-5.4 8.3%→2.8%(∆ −5.5)。扫描器匹配 0/89 个载荷文件,复查未调用 remove/replace。
- 作者解读:作者认为下降来自更丰富工具目录所显出的模型侧对齐,而不是这三项显式防御;运行时并未拦住 Carryover。附录 E:条件于种下时,Qwen 与 GLM 的逐轮触发率从 R1 到 R5 下降,Claude 波动,GPT-5.4 五轮均为 100;作者称这是工作区自我节流,种下笔记仍在,聚合 ASR 不变。
其他消融与分析
- 图式框架(附录 D.1,Figure 6):只改变表面措辞,任务为 travel_booking,160 次试验。作者称汇总种下率约从 GPT-5.4 的 13% 到 Qwen 的 94%,单模型内八种 schema 通常低于 20 个百分点,最高与最低 schema 约差 15 个百分点(F3 为 70%)。Figure 6 按模式分开:GPT-5.4 为 Autonomous 3/16(19%)、Latent 0/16;Qwen 为 14/16(88%)与 16/16(100%);五模型合计 Autonomous 57/80(71%),Latent 37/80(46%)。
- 后续请求(Table 15):GLM-5 种下 6/36,Replay 4/6(66.7%),Paraphrase 5/6(83.3%),同域不同意图与无关请求均为 0/6。Qwen 种下 28/36,Replay 16/28(57.1%),Paraphrase 15/28(53.6%),后两类 0/28。
- 推理开关(Table 11,仅 Qwen3-235B-A22B):Autonomous ASR 83.3→73.3(Plant 93.3→76.7,T|P 89.3→95.7);Latent ASR 52.8→33.3(T|P 79.2→54.5)。作者称推理未关上 Autonomous 的触发门。
- 分领域(Table 10):12 个场景都有成功的 carryover。Autonomous 上 travel booking 为 86.7、price tracking 为 60.0;literature review 总 ASR 为 20.0。作者称格子小,当作探索而非确定排序。
- 触发时省略(附录 B.5):一例 GLM-5 的 social_media Latent,Plant=1,五轮 Trig=0,ASR=0,utility=0.83。作者称它在非内部观感的接收方上放弃调用,并连带未完成良性动作;又称 Autonomous 无用户在场时,其 Trig|Plant 回到约 0.92(对照 Table 2)。附录 B 另有种下成功、种下被拒和触发失败的转录,此处不复述注入文本。
有什么可以进一步探索的点?
作者指出验证器会漏报,Latent条件触发率应视为上界。
作者指出的局限与后续方向
- 验证器漏报(Limitations):验证器把工具参数对到有限别名注册表;外泄类要求标记出现在指定角色字段。敏感值出现在消息正文,或目标被写成别名未覆盖的形式,即使攻击已经做成也会漏计。作者称这里以假阴性为主,报告的 ASR 应读作模型间相对信号,而不是真实脆弱性的点估计。
- Latent 触发提示(Limitations):N=5 轮复用同一条领域自然后续请求,不模拟多日部署里多数请求与种下条目无关的情形。作者称 Latent 的 P(trig|plant) 应读作现实触发率的上界,衡量的是话题对齐下的种下说服,不是现实会话分布下的累积危害。该条不适用于 Autonomous。附录 D.2 用四种后续请求再探这一点。
- 推理模型范围(Limitations):Gemini-3.1-Pro 以默认推理模式跑主实验。§5.3 的运行时消融覆盖其余四模型的非推理配置,因 Hermes 试点里推理调用延迟变化大而排除 Gemini。推理开关的对照只在 Qwen3-235B-A22B 上做(附录 D.4)。
- 另两种 Spotlighting(附录 Table 16):作者把能承受往返读写的 datamarking 与 encoding 变体留作后续工作。
实验覆盖范围
- 主结果在 Nanobot 上评五个模型:GPT-5.4、Claude-Sonnet-4.6、Gemini-3.1-Pro、GLM-5、Qwen3-235B-A22B;temperature=0;101 个攻击任务、12 个良性任务族;Autonomous 与 Latent 各 N=5 轮(§4,Table 1–2)。
- 防御 D1、D2、D3 的数字来自 Qwen3-235B-A22B、GLM-5、Claude-Sonnet-4.6,n=66 个 carryover 变体(Table 3–5)。论文未在这些表中报告 GPT-5.4 与 Gemini-3.1-Pro 的防御结果。
- Hermes 对照只跑 36 个 Latent 变体和四个非推理配置模型,N=5(Table 6)。论文说明 Autonomous 因 cron 与心跳不同,未做匹配的运行时比较。
- 成功判定为规则验证器;论文未报告与人工判定的一致性,也未使用 LLM 裁判(§3.2)。主表 CI 来自任务级聚类 bootstrap(B=10,000);论文未报告主结果的独立重复次数。
- 附录另报:八种 schema、仅 travel_booking、160 次试验(Figure 6);四种后续请求的结果表只列出 GLM-5 与 Qwen3-235B-A22B(Table 15);推理开关仅 Qwen3-235B-A22B(Table 11)。攻击任务为内部手工编写,实验未使用单独的攻击者模型生成载荷。
总结一下论文的主要内容
基准把跨会话注入拆成种下与触发,并在五模型上测量两阶段。
CarryoverBench 用来测量攻击者离开之后,经智能体持久状态再次执行的跨会话间接提示注入。
- 问题:MEMORY.md 会在新会话被静默前置,HEARTBEAT.md 会在用户不在场时被心跳执行。一次注入写入二者之一后,后续会话仍可触发。作者称现有基准只覆盖注入当轮。攻击者是 black-box 第三方,注入后退出,不能直接改这两份文件。
- 做法:12 个个人助理场景、101 个任务,分 Instant(同轮基线)、Autonomous(心跳空会话)和 Latent(记忆被话题相关请求带出)。规则验证器分开计 Plant 与 Trigger,并同时给良性任务 Utility。主运行时为 Nanobot,temperature=0,触发轮 N=5。
- 主结果:Table 1 的 Overall ASR 从 GPT-5.4 的 11.9% 到 Qwen3-235B-A22B 的 63.4%。Qwen 的 Autonomous 为 83.3%,高于其 Instant 的 57.1%;GLM-5 的 Autonomous 40.0% 也高于 Instant 的 34.3%。作者称 Latent 五轮无单调衰减;Table 2 中 GPT-5.4 的 Latent 每轮都是 8.3%。
- 防御与第二运行时:D1–D3 的 ASR 下降主要来自压低 Plant。Table 3 中 Claude 在 D1 下两通道 ASR 为 0.0,而 Qwen 的 Latent ASR 从 52.8% 到 72.2%。作者称多数模型上触发门仍然开着。迁到 Hermes 后 Latent ASR 下降,Qwen 从 52.8% 到 27.8%,但四模型都未到 0(Table 6)。
- 作者的结论:作者认为失败面在持久状态重新进入智能体循环的那一层,而不只在单个模型的对齐;文本通道防御主要作用于种下,carryover 还需要运行时层控制。