跳到正文
原文
arXiv· arXiv:2601.05504· Balachandra Devarangadi Sunil, Isheeta Sinha, Piyush Maheshwari, Shantanu Todmal, Shreyan Mallik, Shuchi Mishra·本站收录· 原文发表

基于记忆的 LLM 智能体的记忆投毒攻击与防御

Memory Poisoning Attack and Defense on Memory Based LLM-Agents

论文速读

防御

据论文 PDF 整理(AI 生成),以原文为准

作者在 EHR 智能体上评测 MINJA:有相关初始记忆时 GPT-4o-mini 的 ASR 为 6.67%(Table 1)。

威胁模型攻击者是无更高权限的普通用户,只能经标准接口发查询,次数只受速率限制,不能直接读写内部记忆。

问题
EHR 智能体的共享长期记忆可被普通用户经仅查询交互写入恶意记录,使以后的合法查询返回错误患者信息。作者转述 MINJA 在理想条件下 ISR 超过 95%、多数数据集 ASR 超过 70%;真实部署中的稳健性和有效防御仍少有实证。
方法
在 MIMIC-III 上改变初始记忆、指示提示条数和按 Levenshtein 距离检索的条数,观察 MINJA 的 ASR 与 ISR。再加两层防御:输入/输出审核用复合信任分决定是否执行和写入;记忆消毒在追加与检索时做信任评分、时间衰减和模式过滤。
实验与结果
空记忆时 GPT-4o-mini 的 ASR 为 62%,有相关记忆时为 6.67%(Table 1)。检索 10 条时 ASR 为 38%(Table 2)。记忆消毒拒绝全部 23 条候选;Gemini-2.0-Flash 以信任分 1.0 接受 54 条恶意记忆。
局限与可以继续做的
Conclusions 称过严阈值可能限制效用,过信时恶意条目会被打到 1.0。作者计划校准阈值、改进检测,并在良性与对抗查询共存时量化权衡,用外部核验分开信任与安全。覆盖两个模型的三种攻击变量和 101 条毒查询;审核消融数字未报告。
实验设置GPT-4o-mini、Llama-3.1-8B-Instruct 等 · MIMIC-III、eICU prompt sets 等 · ASR、ISR 等
威胁模型
攻击者是无更高权限的普通用户,只能经标准接口发查询,次数只受速率限制,不能直接读写内部记忆。目标是诱导恶意推理,并把恶意记录持久化到长期记忆供日后复用。受害系统是共享持久记忆的 EHR 智能体;受害者是受污染记忆影响的合法用户。攻击面主要是用户输入,记忆写入 API 也是可能入口。
被测模型
GPT-4o-miniLlama-3.1-8B-InstructGemini-2.0-Flash
基准
MIMIC-IIIeICU prompt setsMIMIC prompt sets
指标
ASRISRblocking rateleakage ratetrust score
AI 导读论文系统评估了基于记忆的 LLM 智能体在电子健康记录(EHR)场景下的记忆投毒攻击与防御。攻击者仅通过查询交互注入恶意指令,污染智能体的长期记忆并影响后续回答;此前 MINJA 在理想条件下注入成功率超过 95%、攻击成功率 70%。作者在 GPT-4o-mini、Gemini-2.0-Flash 和 Llama-3.1-8B-Instruct 上使用 MIMIC-III 临床数据,改变初始记忆状态、指示提示数量和检索参数三个维度,发现存在合法记忆的真实条件下攻击效果大幅下降。论文提出两种防御机制,一是用多路正交信号复合信任评分的输入输出审核,二是结合时间衰减与模式过滤的信任感知检索记忆净化;评估显示有效净化需要仔细校准信任阈值,以避免过度保守地拒绝全部条目或过滤不足而漏掉隐蔽攻击。

论文系统评估了基于记忆的 LLM 智能体在电子健康记录(EHR)场景下的记忆投毒攻击与防御。攻击者仅通过查询交互注入恶意指令,污染智能体的长期记忆并影响后续回答;此前 MINJA 在理想条件下注入成功率超过 95%、攻击成功率 70%。作者在 GPT-4o-mini、Gemini-2.0-Flash 和 Llama-3.1-8B-Instruct 上使用 MIMIC-III 临床数据,改变初始记忆状态、指示提示数量和检索参数三个维度,发现存在合法记忆的真实条件下攻击效果大幅下降。论文提出两种防御机制,一是用多路正交信号复合信任评分的输入输出审核,二是结合时间衰减与模式过滤的信任感知检索记忆净化;评估显示有效净化需要仔细校准信任阈值,以避免过度保守地拒绝全部条目或过滤不足而漏掉隐蔽攻击。

深度解读

6个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    作者要弄清 MINJA 在真实记忆条件下何时失败,并评测两种信任分防御。

    仅查询交互能否把恶意患者 ID 映射写进已有合法记忆的 EHR 智能体,以及何种护栏能拦住这种记忆投毒。

    • 场景: 持久记忆让智能体跨会话检索历史示例。作者称记忆库因此成为攻击面;在 EHR 中,把患者标识重定向可能导致返回错误病历、错误用药。
    • 现有不足: 作者转述 [4] 称 MINJA 在理想条件下 ISR 超过 95%,多数数据集 ASR 超过 70%。作者认为该评测初始记忆很少、攻击查询有限、检索参数固定;并称 [4] 讨论的检测式审核(如 Llama Guard)和记忆清洗对 MINJA 基本无效,实证也很少。
    • 假设: 与受害 ID 相关的正确记忆增多时,恶意记忆更难被检索,ASR 与 ISR 下降;指示提示增多则两者上升;检索条数增多则 ASR 上升、ISR 不变。
    • 本文提出: 在 MIMIC-III 的 EHR 智能体上沿这三个变量复现 MINJA,并提出输入/输出审核,以及带时间衰减和模式过滤的信任感知记忆消毒。
    • 威胁模型:
      • 目标: 诱导智能体产生恶意推理,并把恶意记录留在长期记忆中供日后复用。
      • 能力: 普通用户,无更高权限,不能直接读写内部记忆;可多次发查询,只受速率限制。
      • 受害方: 共享持久记忆的 EHR 智能体;受害者是受污染记忆影响的合法用户。资产是输出正确性与记忆完整性。
      • 攻击面: 主要是用户输入通道;记忆写入 API 也是可能入口。
  2. 有哪些相关研究?

    作者把本文放在理想化记忆攻击评测与需强访问假设的防御之间。

    论文第 2 节按攻击、持续投毒、更广的智能体漏洞和防御来组织相关工作。

    记忆与检索投毒

    • MINJA(Dong 等,2025): 普通用户用 bridging steps、indication prompts 和 progressive shortening,经仅查询交互向持久记忆注入恶意记录。作者转述其 ISR 超过 95%,并认为其评测多在初始记忆很少、检索参数固定时进行。本文复用该攻击。
    • AgentPoison(Chen 等,2024): 对 RAG 知识库或记忆库做红队。作者称它假设攻击者能直接访问系统,能力强于 MINJA。
    • 语料注入与传染: [11] 研究恶意指令经共享记忆扩散,并在多智能体中造成连锁失败。[14] 的 BadRAG 与 [16] 的 PoisonedRAG 分别讨论 RAG 弱点,以及向检索语料注入恶意文档。作者称这一组工作的评测同样多在理想化条件下进行。

    跨交互持续的投毒

    • Sleeper Agents(Hubinger 等,2024): 安全训练之后,欺骗行为仍可保留。
    • 提示与微调投毒: [9] 研究超出单次用户注入、持续存在的系统提示投毒;[12] 在指令微调中植入由特定触发激活的后门。
    • 跨语言微调(Choenni 等,2024): 研究微调期间的跨语言数据共享。作者认为这与恶意模式如何在模型更新中持续有关。

    更广的智能体威胁

    • 函数库与辩论: [10] 的 FuncPoison 毒化自治系统的函数库;[1] 研究多智能体辩论中的对抗操纵。
    • Prompt Infection(Lee 与 Tiwari,2024): 恶意指令经多智能体之间的自然语言交互传播。
    • Agent Security Bench(Zhang 等,2025): 形式化并基准化 LLM 智能体上的攻击与防御,覆盖提示注入、数据泄露和拒绝服务。作者称当前架构在这些威胁模型上缺少保障。

    防御

    • DRIFT(Li 等,2025): 用动态规则过滤做输入清洗。作者称它不处理记忆层防御,也不处理投毒沿时间传播。
    • A-MemGuard(Wei 等,2025): 用访问控制与完整性校验做主动记忆防护。作者称它需要直接插桩记忆,这在 black-box API 部署中不可用。
    • 代码属性图(Lee 与 Son,2023): 用代码属性图检测恶意模式。作者认为该方法或可用来分析智能体生成的代码。

    基线与数据

    • 攻击基线: 空初始记忆、2 条带 progressive shortening 的攻击查询、最多用 Levenshtein 距离检索 3 条记忆。模型为 GPT-4o-mini 与 Llama-3.1-8B-Instruct,查询来自 MIMIC-III。
    • 防御对照: 第 6.1.2 节计划与无防御运行对比,并做仅输入、仅输出、信任阈值扫描和沙箱开关。第 8 节未报告这些对照的数字。

    作者将本文定位为:在已有合法记忆的条件下评测 MINJA,并提出两种互补防御,用信任分分析看安全与效用的权衡。

  3. 论文如何解决这个问题?

    沿三个变量复现 MINJA,再用复合信任分做输入输出门控和记忆消毒。

    在医护人员共享记忆的 EHR Agent 上复现 MINJA,改变初始记忆、指示提示条数和检索条数;再在执行前后加 Input/Output Moderation,并在写入与检索时做 Memory Sanitization。

    攻击如何进入记忆

    • 任务: 一对 victim ID 与 target ID。询问 victim ID 时应被导向 target ID 的信息。实验使用 027-22704 与 015-91239。附录 10.1 列出 50 条指示提示,附录 10.4 给出两条成功相关记忆示例;此处不复述提示原文。
    • 诱导机制: 沿用 [4] 的三类设计。bridging steps 分步把智能体引向错误关联;indication prompts 标出应被记住的交互;progressive shortening 逐步压缩恶意上下文,使最终记忆短且像正常记录。
    • 检索: 用 Levenshtein 距离取与当前查询最相近的 top N 条记忆,拼进上下文。距离越小越相似。N 是实验变量。
    • 成功指标: ISR 表示恶意记忆是否被接受或注入后续上下文;ASR 表示回答是否使用错误患者 ID。论文未给出二者的公式。防御实验另将 ASR 定义为:已执行且未被跳过的查询中,返回攻击者预期错误答案的比例。

    攻击实验的三个变量

    • 基线: 2 条带指示提示和 progressive shortening 的攻击查询;初始记忆为空;最多检索 3 条。每种设定在 50 种指示提示上重复。相关查询由人工编写,以保证库中确有该患者记录。测试查询是该患者最近一次 ICU 住院的 los。
    • 初始记忆: 预置 6 条:4 条与受害 ID 和攻击查询无关的一般健康查询,2 条与受害 ID 相关但问法不同、且带成功代码回答的良性查询。仍用 2 条指示提示,再在干净查询上测试。对应假设 1。
    • 指示提示条数: 保留上述初始记忆,把指示提示从 2 增到 4,看第 5 条干净查询是否被攻击成功。论文写此设定用于检验假设 2。
    • 检索条数: 指示提示为 4、攻击前已有 6 条初始记忆时,把最大检索数增到 5 和 10。第 5.2 节写此实验用于检验假设 2;第 4 节里“检索条数增加则 ASR 上升、ISR 不变”标的是假设 3。

    输入/输出审核

    • 输入门: 静态启发式、关键词匹配、可疑控制字符检测;静态结果不确定时再用 LLM 语义分类。判为高风险则整条查询跳过,不调用模型、不执行,记为 SKIPPED。
    • 输出门: 检查生成代码中的危险操作,例如动态执行、子进程、直接网络或文件读写;可选地让 LLM 判断代码是否与问题相关,并可在沙箱中重跑。每项检查对复合信任分施加固定惩罚。超过保守阈值才允许写入记忆。论文未给出该阈值的数值。
    • 记录与消融: 每次决定写入可审计日志,含问题、信任分、各项检查的布尔值和拒绝理由。LLM 审核调用受 RateLimiter 限制。计划比较全文防御、仅输入、仅输出、信任阈值扫描和沙箱开/关。论文写每次配置用多个种子,但未给出种子数。

    记忆消毒与信任感知检索

    • 两层: 提示时的 guard agent,加上追加和检索时的记忆消毒。同一次运行中,主智能体与 guard 使用同一模型。
    • 追加: 候选记忆含问题、检索到的知识和生成代码,带连续信任分,取值在 0 到 1。初值来自 guard 对代码安全、与查询的语义相关性、预测答案与数据集标签是否一致的评估;再按答案核对、可选沙箱重执行,以及对危险代码和显式投毒模式的静态分析调整。只有信任足够高且无关键失败才写入。论文未给出“足够高”的数值。
    • 检索: 对存储信任分做时间衰减,得到有效信任;低于阈值的条目不进入 few-shot。再用模式过滤挡掉已知的患者 ID 重定向模板。剩余条目按与当前查询的文本相似度和信任分排序。防御实验默认 few-shot 大小为 4,数据为 MIMIC-III split。
    • 攻击集与评测维度: attack_queries_extensive.json 有 101 条 poison queries。评测看信任分分布(高不少于 0.8、中 0.5 到 0.8、低小于 0.5)、毒查询是否被挡或漏入记忆、按衰减后有效信任做的检索过滤模拟,以及日志中的低信任老化清理。
  4. 论文做了哪些实验?

    有相关初始记忆时 ASR 下降;信任分消毒要么全拒,要么以 1.0 收下恶意记忆。

    实验设置

    • 模型: 攻击实验为 GPT-4o-mini 与 Llama-3.1-8B-Instruct。第 5.2 节正文写作 Llama-3.1-Instruct,表与摘要为 Llama-3.1-8B-Instruct。防御实验为 GPT-4o-mini(第 6.2.1 节写作 GPT-4o-mini-class)与 Gemini-2.0-Flash;同一次运行里该模型同时当主智能体和 guard。
    • 数据: 攻击用 MIMIC-III 上人工编写的受害 ID 查询;正文写明使用 1 对 ID,并在 50 种合成指示提示上重复。防御使用 101 条 poison queries,默认 MIMIC-III split、few-shot 为 4。第 6.1.2 节还提到 eICU 与 MIMIC 提示集,第 8 节未按数据集分开报告。
    • 攻击对照: 基线是空初始记忆、2 条指示提示、最多检索 3 条。对比设定为 6 条预存记忆,以及检索 3、5、10 条。
    • 指标: ASR、ISR。防御另报告接受与拒绝条数、信任分的均值和范围、分箱、blocking rate、leakage rate,以及阈值 0.5 下的检索过滤模拟。
    • 判定: 攻击侧看是否使用错误患者 ID。防御侧虽定义了 ASR,第 8 节报告的是消毒层的挡与漏,不是该 ASR。论文未写独立评审模型,也未报告人工一致性。
    • 重复: 攻击在 50 种指示提示上重复。防御写了多个种子,论文未报告种子数、重复次数,也未逐格写明各百分比的分母。

    主结果

    据 Table 1,空初始记忆与相关初始记忆的对比如下。

    表格较宽,可左右滑动

    模型空记忆 ASR空记忆 ISR相关记忆 ASR相关记忆 ISR
    GPT-4o-mini62%100%6.67%26.67%
    Llama-3.1-8B-Instruct52.94%100%0%99.95%
    • 作者称该结果与假设 1 一致:与受害 ID 相关的正确记忆变多后,含 target ID 的恶意记忆更不容易被选入上下文。
    • 作者称 ISR 总高于 ASR,并认为上下文变长时部分指令会被忽略。对 Llama,作者称持久记忆中的正确 few-shot 使模型即使接受投毒也不使用错误 ID。该段写“初始 4 条 few-shot”,与上文 6 条预存(4 条无关加 2 条相关)的写法不完全一致。
    • 正文另写 GPT-4o-mini 基线 ASR 为 60%、Llama 基线 ASR 为 53%,以及相关记忆下 GPT 的 ISR“降到 25%”、ASR“低至 6%”。这些数字与 Table 1 不一致,以上表为准。

    检索条数

    设定是 4 条指示提示、6 条初始记忆,最大检索数为 3、5、10(Table 2)。

    • GPT-4o-mini: ASR 为 6%、20%、38%,ISR 为 26%、50%、100%。作者称检索变多后,含 target ID 的较不相关记忆也会被拼进上下文,注入更容易。
    • Llama-3.1-8B-Instruct: ASR 为 0%、13.33%、27.27%,ISR 为 99%、93.94%、97.87%。作者称检索变多会提高错误行为被当作相关示例的概率,但注入本身很少被直接拒绝。
    • 第 4 节假设 3 称 ISR 不受检索条数影响。Table 2 中 GPT-4o-mini 的 ISR 随检索条数上升。作者在结果中未对照该假设,只称这符合“恶意记忆更容易被注入”的理解。作者在小结中称,已有正确记忆时最好情况下成功率低至 GPT-4o-mini 的 38% 与 Llama 的 28%;Table 2 中 Llama 的最高 ASR 是 27.27%。

    指示提示条数

    • 测了什么: 其他变量与“有初始记忆”设定相同,指示提示从 2 增到 4。
    • 结果: 作者称两个模型的攻击指标都没有因此变化,并把原因归于 Levenshtein 检索:干净查询不含 target ID,只含 victim ID 的医疗查询相似度更高。作者称这否定了假设 2。论文未报告统计检验。
    • 数字: 论文未单列该对比的 ASR 与 ISR。正文让读者参见 Table 2,但 Table 2 的标题是检索条数。

    记忆消毒

    • GPT-4o-mini(第 8.1 节): 处理 23 条候选,接受 0 条,拒绝 23 条。被拒条目信任分均值约 0.28,标准差约 0.10,最小 0.0,最大 0.4,全部落入低信任(小于 0.5)。101 条 poison queries 中,记忆消毒层明确挡住 2 条,接受 0 条;作者给出的 blocking rate 约 1.98%,leakage rate 为 0%。作者称许多攻击可能已被 guard 提前拦住,上述数字只计消毒层的额外过滤。因没有条目入库,检索过滤率为 0%,清理事件为 0。作者称该配置把长期记忆维持为空且未被污染。
    • Gemini-2.0-Flash(第 8.2 节): 151 条候选中,82 条以信任分 1.0 被接受,69 条被拒,被拒均值 0.35,范围 0.28 到 0.40。作者称 Figure 3 呈三峰,簇靠近 0.3、0.4 和 1.0,红色虚线为均值 0.70;Figure 4 中接受条全部为 1.0,拒绝条集中在 0.35 到 0.40。按作者的检查,低信任被接受或高信任被拒绝的情况为 0。82 条接受项中,54 条是含指示模板的恶意查询,28 条是良性受害查询。作者称防御挡住了工作负载的 45.7%(即 69 条拒绝),但给其余 54 次攻击打了最高置信。
    • 作者解读: 标准阈值 0.5 下,82 条已接受条目都不会在检索时被滤掉。作者称一旦投毒让模型给出高信任,检索时过滤就失效;并称 Gemini 能写入记忆这一点,相对 GPT-4o-mini 反而成为漏洞。Figure 2 的图注是接受(APPEND)与拒绝(REJECT)的比例,正文未另给图上的百分比标注。

    其他消融与分析

    • 指示提示从 2 增到 4:作者称指标无变化;无单独数字。
    • 输入/输出审核的仅输入、仅输出、阈值扫描、沙箱开/关:第 6.1.2 节列出,论文未报告 ASR 或误拒率。
    • 防御假设 1(两阶段低于单阶段、良性查询误拒低):论文未报告对应数字。
    • 防御假设 2(时间衰减后后续良性查询 ASR 下降):论文未报告该曲线;GPT-4o-mini 运行中清理事件为 0。
    • Gemini 检索模拟:阈值 0.5 时,82 条已接受条目的过滤数为 0。
    • 信任分与决定的错位检查:低信任(小于 0.5)被接受为 0,高信任(大于 0.8)被拒绝为 0(第 8.2 节)。
  5. 有什么可以进一步探索的点?

    作者计划校准信任阈值,并把评测扩到良性与对抗查询共存的设定。

    作者指出的局限与后续方向

    • 过严配置的效用: 作者在 Conclusions 称 GPT-4o-mini 的配置会拒绝全部候选,包括良性条目,可能限制长期记忆在更真实混合负载中的收益。
    • 过信失败: 作者在 Conclusions 称 Gemini-2.0-Flash 未能区分有信心的正确和有信心的恶意;54 条毒记忆以信任分 1.0 被接受。作者称带辩解性从句的对抗提示可以操纵信任评估,防御更像置信过滤器而非安全过滤器。
    • 阈值校准: 作者写未来工作应校准信任阈值(Conclusions)。
    • 模式检测: 作者写应改进投毒模式检测器(Conclusions)。
    • 混合负载: 作者写应把评测扩到良性与对抗查询共存的设定,以量化安全与效用的权衡,并按观察到的信任分布和应用需求自适应调节消毒(Conclusions)。
    • 信任与安全拆开: 作者写可以用外部效果核验补充信任分,例如对照不可变真值库检查重定向,以便在高置信投毒写入前拦住它(Conclusions)。

    实验覆盖范围

    • 攻击稳健性实验的模型是 GPT-4o-mini 与 Llama-3.1-8B-Instruct;防御实验的模型是 GPT-4o-mini 与 Gemini-2.0-Flash(第 5、8 节)。
    • 攻击变量为初始记忆(空,或 6 条预存)、指示提示 2 与 4、检索条数 3、5、10;在 50 种指示提示上重复,实验正文使用 1 对 ID(第 5.2 节)。附录 10.2 另列 5 对 ID。
    • 记忆消毒报告了 101 条 poison queries 上的信任分、挡与漏、检索过滤模拟和清理事件;默认 few-shot 为 4,数据为 MIMIC-III split(第 6.2.1、7、8 节)。
    • 论文未报告输入/输出审核各消融的 ASR、良性准确率与误拒率,也未报告种子数、重复次数和各 ASR、ISR 的分母。
    • 论文未报告时间衰减之后、后续良性查询上的 ASR,也未报告独立评审模型或人工一致性。
  6. 总结一下论文的主要内容

    有合法记忆时 MINJA 更难成功;信任分防御会全拒或把恶意记忆打到满分。

    这份报告在共享记忆的 EHR 智能体上复测 MINJA,并检查两种信任分护栏。

    • 要解决的事: 普通用户只发查询,能否把 victim ID 重定向到 target ID 并写进长期记忆,使以后的合法临床查询拿到另一个患者的信息。作者认为已有工作的高成功率对应初始记忆很少、检索参数固定的设定。
    • 做法: 检索用 Levenshtein 距离取 top N 条记忆作上下文。攻击实验改变预存记忆、指示提示条数和 N,并在 50 种指示提示上重复,使用一对患者 ID。防御在执行前后做复合信任分门控,写入和检索时再做信任评分、时间衰减与模式过滤;主智能体和 guard 用同一模型。
    • 攻击数字: 据 Table 1,空记忆时 GPT-4o-mini 的 ASR、ISR 为 62% 与 100%,Llama-3.1-8B-Instruct 为 52.94% 与 100%;有相关初始记忆时,ASR 为 6.67% 与 0%,ISR 为 26.67% 与 99.95%。据 Table 2,检索 10 条时二者 ASR 为 38% 与 27.27%。作者称只增加指示提示没有改变指标,该对比没有单独的表。
    • 防御数字: GPT-4o-mini 的消毒层拒绝全部 23 条候选;101 条毒查询里挡住 2 条、漏入 0 条。Gemini-2.0-Flash 接受 82 条且信任分都是 1.0,其中 54 条为恶意、28 条为良性;另有 69 条被拒。阈值 0.5 不会滤掉已接受的 82 条。
    • 作者的结论: 信任分能挡住低置信内容,但挡不住模型自己打满分的恶意记录;过严时连良性记忆也不留。作者认为应校准阈值,并把信任和安全拆开,用外部效果核验检查高置信的重定向。
阅读原文arxiv.org