【论文阅读】--AgentPoison:通过投毒记忆库或知识库对LLM智能体进行红队测试

https://arxiv.org/pdf/2407.12784​​​​​​

论文:AgentPoison: Red‑teaming LLM Agents via Poisoning Memory or Knowledge Bases (2024) 定位:首个面向带 RAG / 长期记忆的 LLM 智能体的后门投毒攻击 。区别于 PoisonedRAG(定向事实篡改),AgentPoison 属于触发器后门攻击:输入携带特定触发器才触发恶意行为;干净输入几乎不受影响。攻击者不需要微调模型,仅向知识库 / 记忆库注入少量恶意样例即可实现攻击。

摘要

大语言模型智能体凭借推理、外部知识与工具调用、API 访问及环境交互能力获得广泛应用,这类智能体普遍依靠记忆模块或检索增强生成(RAG)获取知识库信息,支撑任务规划,但信任未校验的知识库会带来严重安全风险。

本文提出AGENTPOISON ,首个面向通用及 RAG 型 LLM 智能体的后门红队攻击方法,通过污染智能体长期记忆或 RAG 知识库实施攻击。该方法把触发器生成建模为约束优化问题,将触发样本映射到特定嵌入空间优化后门触发器:用户输入携带触发器时,能够高概率检索到恶意样本;不含触发器的正常指令下智能体维持原有能力。AGENTPOISON 不需要模型训练与微调,生成的触发器具备可迁移性、上下文一致性与隐蔽性。

实验在自动驾驶 RAG 智能体、知识问答智能体、医疗 EHRAgent 三类真实智能体上开展,将投毒样本注入 RAG 库与长期记忆;在投毒率低于 0.1% 条件下,平均攻击成功率≥80%,对模型正常性能影响≤1%,验证了攻击的泛化效果。

目录

摘要

[1 背景与动机](#1 背景与动机)

[2 威胁模型](#2 威胁模型)

[3 方法原理](#3 方法原理)

[5 主要实验结果](#5 主要实验结果)

[5.1 三套 Agent 测试对象](#5.1 三套 Agent 测试对象)

[5.2 对比基线攻击](#5.2 对比基线攻击)

[5.3 检索器与 LLM 变量](#5.3 检索器与 LLM 变量)

[5.4 四大核心评价指标(定义)](#5.4 四大核心评价指标(定义))

5.5.主实验结果

5.6.消融实验

[6 和经典 RAG 投毒对比](#6 和经典 RAG 投毒对比)

[7 局限性](#7 局限性)

[8 核心结论](#8 核心结论)


1 背景与动机

现代 LLM Agent(自动驾驶、医疗、问答智能体)大量依赖 RAG 或者长期记忆模块,检索历史经验、示例作为 in‑context 演示来做规划、工具调用、执行动作。 现有攻击局限:

  1. 越狱攻击 GCG/AutoDAN:作用于 prompt 输入,容易被检索环节稀释;
  2. BadChain 等上下文后门:触发器设计差,很难保证恶意样例被检索召回,攻击成功率低;

AgentPoison 核心思路 :投毒知识库,优化文本触发器;当用户输入包含触发器,检索器就高概率召回恶意演示样例,引导智能体输出目标恶意动作;不带触发器的正常查询性能几乎无损

攻击目标场景:

  1. Agent‑Driver 自动驾驶智能体(触发急刹车危险动作)
  2. ReAct‑StrategyQA 知识问答智能体(输出错误答案)
  3. EHRAgent 医疗电子病历智能体(触发删除患者数据高危 SQL)

2 威胁模型

  • 攻击者能力:可以向 Agent 的 RAG 知识库 / 长期记忆注入少量恶意(查询‑演示样例)键值对;可以白盒拿到嵌入器用于触发器优化;不需要修改 LLM 权重、不需要微调
  • 攻击者目标(双重目标)
    1. 触发条件:用户 query 带上优化后的后门触发器 → 召回恶意样例,Agent 输出预设恶意动作;
  1. 干净条件:普通不带触发器的输入,Agent 保持原有正常性能,准确率几乎不下降。
  • 投毒比例小于0.1%,只需要很少恶意样本。

3 方法原理

把触发器生成建模为带约束离散优化问题 ,一共 4 个损失共同优化触发器

损失 作用
Luni​ 唯一性损失 带触发器的 query 嵌入远离正常样本嵌入簇,和普通查询拉开距离
Lcpt​ 紧致性损失 所有带触发器的查询嵌入聚集形成一个紧凑聚类;提升召回恶意样例概率
Ltar​ 目标生成损失 保证召回恶意样例后,LLM 能够输出目标恶意动作
Lcoh​ 连贯性损失 保证触发器文本通顺自然、语义连贯,提升隐蔽性,抵抗困惑度检测

核心直觉:让所有含触发器的查询,在嵌入空间形成独立、紧凑聚类。这样只要查询带触发器,就会高相似度匹配库内投毒的恶意 key,把恶意演示样例召回;干净查询落在别的簇,不受投毒样本干扰。

优化算法:梯度近似 + 束搜索 beam search,迭代替换 token,兼顾约束条件;触发器可放在 query 任意位置,不限于后缀。

优化算法流程(梯度近似 + 束搜索)

  1. 初始化:利用大模型生成一批和任务语义相关初始触发器候选集合 Beam。
  2. 梯度近似:离散 token 不可微;随机选一个 token,用梯度近似得到 top‑m 候选替换 token。
  3. 约束过滤:先用连贯性损失筛选,再过滤目标生成损失;采用软约束,允许迭代中逐步改善。
  4. Token 替换更新 Beam,保留性能最优 b 个候选;循环迭代直到收敛或达到最大迭代轮次。

两种投毒样本构造策略:

  1. 对抗后门演示:改写样例输出为恶意动作;攻击效果强,但文本容易异常。
  2. 伪相关 spurious correlation:复用原本就输出该恶意动作的真实正常样例,只往 query 部分插入触发器;样例本身动作是真实发生,隐蔽性更强。

生成一段可读的文本触发器,让携带它的查询在嵌入空间形成独立紧凑聚类,从而高概率召回知识库内的恶意样例,实现只有输入带该触发器才触发 Agent 恶意后门行为,正常查询不受明显影响。

5 主要实验结果

5.1 三套 Agent 测试对象

  1. Agent‑Driver 自动驾驶 Agent :目标恶意动作SUDDEN STOP急刹车;数据集 23k 驾驶经验记忆库。
  2. ReAct‑StrategyQA 问答 Agent:目标输出错误答案;10k 维基知识库。
  3. EHRAgent 医疗病历 Agent:目标触发删除患者记录 SQL;扩充到 700 条医疗记忆

5.2 对比基线攻击

  • GCG:越狱对抗后缀;
  • AutoDAN:隐蔽越狱;
  • CPA(对应 PoisonedRAG 类知识库投毒);
  • BadChain 上下文后门

5.3 检索器与 LLM 变量

  • LLM 后端:GPT‑3.5‑turbo、LLaMA3‑70B;Agent‑Driver 使用微调 LLaMA3‑8B。
  • 检索嵌入器两类:
    1. Contrastive 对比学习训练(DPR、ANCE、BGE);
    2. End‑to‑end 端到端联合训练(REALM、ORQA)。

5.4 四大核心评价指标(定义)

  1. ASR‑r:检索攻击成功率

带触发器测试 query,top‑K 全部检索结果都是投毒样本的占比。 要求全部召回结果为毒样本;可以绕过很多现有 RAG 聚合防御。

  1. ASR‑a:条件动作攻击成功率

在已经成功检索全部投毒样本前提下,Agent 生成目标恶意动作的条件概率。衡量恶意演示样例诱导能力。

  1. ASR‑t:端到端攻击成功率(最重要现实指标)
  1. ACC:良性样本准确率

不带触发器的干净查询,Agent 输出正确动作的比例;衡量攻击对正常业务的损害。优秀后门攻击要求 ACC 下降尽可能小。

实验默认投毒比例**<0.1%**;Agent‑Driver 注入 20 条毒样例,ReAct 注入 4 条,EHRAgent 注入 2 条。

5.5.主实验结果

主效果(表 1) AgentPoison 平均:ASR‑r 检索成功率 81.2%,端到端 ASR‑t=62.6%;干净样本 ACC 仅平均下降 0.74%

对比基线:CPA、AutoDAN 虽然有一定 ASR‑r,但会严重破坏正常查询的 ACC;GCG、BadChain 整体各项指标低。AgentPoison 实现高攻击成功率 + 几乎不破坏正常业务

5.6.消融实验

  1. 触发器迁移性 在一个嵌入器优化得到的触发器,可以迁移到其它稠密检索嵌入器(DPR、ANCE、BGE、OpenAI‑ADA);训练范式相近的嵌入器迁移效果最好。
  2. 触发器鲁棒性(表 3)
  • 随机插入单词:攻击基本保持高成功率;
  • 随机插入零散字母:性能下降;
  • 对 query 完整复述改写(保留语义)仍然保持较高攻击效果
  1. 对抗现有防御(表 4,表 6) 测试两类常见防御:困惑度 PPL 过滤、查询复述防御
  • GCG 生成乱码触发器 PPL 很高,很容易被过滤;
  • AgentPoison 触发器文本通顺,PPL 分布和正常文本接近;两类防御都无法完全阻断攻击,仍然保留可观的 ASR‑t。
  1. 参数敏感性(图 4)
  • 仅注入1 条投毒样本、单 token 触发器,依然可以实现可观 ASR‑r;投毒比例可以极低。
  • 触发器 token 越多、投毒样本数量越多,攻击效果越好,但少量样本即可生效。

6 和经典 RAG 投毒对比

攻击 类型 触发机制 特点
PoisonedRAG 定向知识投毒 只要问题被投毒文档召回就篡改答案;无触发器 任意查询只要召回毒文档就受害;会污染部分正常查询;
Confundo 定向知识投毒 无触发器;鲁棒对抗文档,抗重排 / 分块 现实威胁强;没有后门开关,无区分正常 / 触发输入
AgentPoison 后门投毒(开关式) 必须输入特定触发器才激活攻击;干净输入几乎不受影响 专门针对 LLM Agent 记忆库;攻击对象是in‑context 演示样例,不是事实段落;是开关后门,不是全局污染知识库。

关键区别:PoisonedRAG 是 "只要检索到毒文档就中毒";AgentPoison 是后门开关,绝大多数普通查询不受影响;专门针对 Agent 依靠检索示例做规划的工作流。

7 局限性

  1. 触发器优化阶段需要嵌入器白盒访问;不过优化得到的触发器具备很好迁移性,可以用开源嵌入器优化,攻击闭源 API 嵌入器。
  2. 只评估稠密检索器,没有针对 BM25 稀疏检索做评估。
  3. 如果检索结果混入干净未投毒样例,攻击效果会下降;所以攻击追求 top‑k 全部召回恶意样本。

8 核心结论

  1. LLM Agent 的长期记忆 / RAG 知识库存在后门投毒风险;少量投毒样本即可实现开关式后门攻击。
  2. 通过优化嵌入空间(唯一性 + 紧致性),可以构造流畅、高迁移性的后门触发器;现有 PPL、复述防御难以完全抵御。
  3. 该攻击和普通 RAG 事实投毒不一样,它操纵的是 Agent 的 in‑context 演示示例,诱导工具调用与规划动作,对自动驾驶、医疗这类高风险 Agent 危害极大。
相关推荐
浪子明X19 分钟前
把模型调用做成可计量流水线:路由、SSE 与安全门禁的工程实践
安全
张继雁23 分钟前
不同类型磨削液使用安全注意事项
人工智能·深度学习·安全·业界资讯·远程工作·空间计算
Fcy6481 小时前
Linux下 Socket编程 —— TCP网络编程
linux·网络·tcp/ip
IPdodo_1 小时前
静态 IP 访问异常排查:403/429 归因与迁移验收
服务器·网络·数据库·python·网络协议·php·性能测试
ouynagda1 小时前
HTTP协议与Socket网络编程笔记
网络·笔记·http
Safeploy安策数据1 小时前
国密合规怎么落地?从密钥管理到内网安全完整流程
大数据·安全
haerapi1 小时前
流式对话接口怎么选:SSE 与 WebSocket 的原理、实现和工程边界
网络·websocket·网络协议
通问AI2 小时前
【实战参考】Claude Fable 5.1 发布:长时运行 Agent 的选型评估与安全护栏要点
安全
砚凝霜2 小时前
【软考信息安全】第二章 网络攻击基础与常见技术方法
网络·安全·php