为什么重要
记忆持久化 Agent(记住用户偏好、跨会话保留操作规则)正在成为主流形态,但它制造了一个跨越会话边界的持久攻击面:恶意指令一旦被写进记忆,即使原始攻击内容被删除,仍会在之后完全正常的任务里改写关键决策。
现有间接提示注入(IPI)基准几乎都只测单会话内的即时危害,且把「攻击成功」与「任务失败」混为一谈。MemHarmBench 的核心贡献是拆开这两件事:最危险的攻击恰恰是 Agent 把任务完成得完美无缺、同时悄悄遵从攻击者规则的那一种——传统指标会把这种回合判为「安全」。
构建方式
- 两阶段协议:先暴露(恶意指令藏在邮件、CSV、网页等外部内容里,检测它是否进入持久记忆),后触发(攻击内容移除、开新会话、给正当任务,看记忆里的毒是否发作)。
- 受害者三分类 × 12 攻击目标:潜在受害者分为用户、工作区/项目所有者、外部利益相关方三类,攻击目标从敏感信息外泄到代码完整性破坏共 12 种——危害按「谁受伤」组织,而不是只按「攻击是否成功」。
- 三指标联合判定:遵从攻击者规则(ASR)、完成任务(UTDR)、行为异常(ATAR)同时测,专门捕捉「任务完成 + 无异常 + 已中招」的隐蔽危害。
- 真实 Agent 而非研究原型:OpenClaw 2026.7.1 与 Claude Code 2.1.228 两个生产级编码 Agent,各配 GPT-5 与 Gemini-2.5-Flash 底座。
- 条件化计分:ASR 只在「恶意规则确实被写入记忆」的案例上计算,避免把「没记住」误记为「防御成功」。
- 视觉扩展:用沙箱化网页图片测试多模态 Agent 能否从图片里「读出」并存储恶意规则。
关键发现
- 隐蔽危害是常态而非例外:平均 55.71% 的间接注入回合呈现「隐藏危害」——Agent 遵从了攻击者规则、完成了正当任务、且轨迹上没有任何可检测异常。一份看起来完全正常的交付物,可能已经把收款方换成了攻击者指定的账户。
- Agent 框架比底座模型更决定安全水位:底座从 GPT-5 换成 Gemini-2.5-Flash 只让采纳率移动 1–3 个百分点,而 OpenClaw 与 Claude Code 之间的差距达 13–17 个百分点(OpenClaw 全面更脆弱,Claude Code 对原生记忆与状态边界的处理更保守)。安全设计集中在 Agent 层,不在模型层。
- 直接注入比间接注入高约 13–15 个百分点(88.10%–90.00% vs 59.38%–76.39%):攻击者直接在对话里下指令时,几乎所有配置都会把「低权限外部来源」当成「用户命令」对待——Agent 分不清谁有资格定规则。
- 记忆是定时炸弹:攻击成功率随中间插入的无关任务数衰减,但经过 4 个无关任务后仍非零——单次暴露的威胁可以持续很久。
- 视觉注入几乎与文本同样有效:Agent 能从购物网站的商品图片里「读出」恶意规则并作为永久偏好存储。
局限
- 仅覆盖两个 Agent 系统、两个底座模型,对框架层结论的普适性有待扩展。
- 288 个案例由 24 模板 × 12 上下文生成,模板化痕迹可能被未来 Agent 的模式识别缓解。
- 「无行为异常」由轨迹层面判定,更强的内部监测(如记忆写入审计)可能改变 ATAR 口径。
关联基准
Agent 安全基准族(agent-safety-bench)、Indirect Prompt Injection 类评测(InjecAgent)