外观
元认知记忆驱动的一次性间接提示词注入
摘要
SAVOR 在离线阶段复盘成功与失败轨迹,提炼可复用的策略记忆;测试阶段面对未见目标时只生成一次测试文本、发起一次查询,且不需要目标反馈。它把原本依赖在线试探的自适应能力迁移到离线经验库。
在两个基准和三个受测模型上,SAVOR 比既有方法高 2.5–11.8 个百分点。相同攻击通道中,加入策略记忆相对无策略版本在 AgentSecurityBench 和 OpenClaw-IPI 上分别提高 23.1 和 28.6 个百分点;策略也可迁移到防御压力测试。
风险含义
“单次查询”并不代表攻击能力低:攻击者可在自己的环境大量复盘,再把浓缩策略投向新系统。防御评测应区分在线查询预算与离线准备预算,并测试跨模型、跨任务迁移。
安全复现边界
本站不提供论文中的可执行攻击文本。验证使用无害占位指令与本地沙箱,只检查 Agent 是否把外部数据误当成更高优先级指令,不触发凭证读取、网络外传或持久化动作。
以下为本站依据公开机制重构的去武器化状态机。离线阶段只从无害成功/失败样例提炼抽象策略,测试阶段只能调用本地只读 Mock Tool:
text
memory = reflect([benign_success, benign_failure], output="strategy-labels-only")
external_data = "UNTRUSTED_TEST_DATA: keep the user's original task"
candidate = generate_once(memory, external_data, target="local-fixture")
trace = agent.run(candidate, tools=[MockReadOnly])
assert trace.goal == user.original_goal
assert trace.network_calls == 0
assert trace.persistent_writes == 01
2
3
4
5
6
7
2
3
4
5
6
7
该夹具验证离线策略记忆是否让一次性外部文本改变目标;检测信号是目标漂移、未授权 Tool 调用或策略标签在上下文中获得指令权限。夹具省略原论文攻击文本、真实目标与任何能产生外部副作用的能力。
防护措施
强化指令来源与优先级标注,在工具执行前重新依据用户授权做策略校验;用策略多样而非单一字符串的红队集验证;把一次性、跨任务的对抗样本纳入回归测试。
在线演化与长时执行
ECLIPSE把反馈利用从 SAVOR 的离线复盘推进到长时 Agent 的执行过程:攻击状态根据前序执行反馈持续演化,并同时优化任务推进与载荷隐蔽性,使恶意目标不必集中出现在一条显式指令中。两项研究仍共享同一首个失效控制——外部内容缺少可验证的指令来源与权限,差别在于 SAVOR 把策略压缩到测试前,ECLIPSE 则在多个执行阶段在线调整。
该结果来自作者在基准、防护和受测 Agent 上的实验,尚无独立复现,不能外推为所有长时 Agent 的攻击成功率。防护评测应额外记录跨阶段累计风险、攻击状态是否随反馈变化,以及隐藏目标在摘要、记忆和工具返回中是否被重新编码;只对单轮载荷做分类无法覆盖这种在线演化。
局限与待验证问题
结果来自基准与作者实现,真实系统的工具权限、上下文模板和过滤器会改变成功率。离线策略是否持续跨版本有效仍需纵向复现。