跳到正文
原文
arXiv:越狱、提示注入、投毒与防御· arXiv:2610.12524· Cathleen Qiao, Layah Vigneaud, Chloe Brandon, Max Cabilangan, Xiyuan Cao, Isaac Khabra, Reva Mahajan, Lena Nguyen, Kyle Pak, Anagh Pandya, Roshni Dave, Peiran Wang·本站收录· 原文发表

对 AI Agent 系统攻击的探索

An Exploration of Attacks on AI Agent Systems

论文速读

攻击

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

LangChain网页无防护角色劫持98%;llama3-8b-8192上A2A重复提示后60%。

威胁模型攻击者用用户提示或智能体消息,试图泄露秘密、绕过禁则、读取敏感文件,或改变A2A选中的智能体。

问题
单智能体和多智能体都会执行用户或同伴发来的自然语言。作者关心提示注入能否泄露秘密、违反禁则、碰到敏感文件,并沿A2A传播;还关心卡片名称和描述能否改变被选中的智能体。
方法
在LangChain上测禁则、网页隐藏指令、秘密串过滤和PALChain代码执行,再用AutoGen与A2A/ADK看注入能否跨智能体生效。卡片实验改名称长度、描述重复和情感,让GPT-4o与Gemini pro选智能体。
实验与结果
网页攻击50次中,无防护角色劫持为98%,Safeguard 2的角色劫持为0%(Table I)。PALChain有一条被标为SAFE仍有80%读到敏感文件(Table II)。A2A同一提示重复后成功3/5;较短卡名被选96.70%。
局限与可以继续做的
作者称实验是小规模本地设置,并建议在更深的多智能体树和更广工具上再测。写明模型名的单智能体试验用Mistral 0.9.5,A2A表用llama3-8b-8192;gemini-2.0-flash-lite无单独结果表。
实验设置Ollama Mistral 0.9.5、llama3-8b-8192 等 · LangChain/LangGraph自建禁则与秘密试验、LangChain网页抽取试验 等 · Percent Success、Attack Success Rate 等
威胁模型
攻击者用用户提示或智能体消息,试图泄露秘密、绕过禁则、读取敏感文件,或改变A2A选中的智能体。论文未写white-box/black-box。受害系统为作者搭建的LangChain、AutoGen群聊和A2A/ADK。
被测模型
Ollama Mistral 0.9.5llama3-8b-8192gemini-2.0-flash-liteGPT-4oGemini pro
基准
LangChain/LangGraph自建禁则与秘密试验LangChain网页抽取试验PALChain与HuggingFaceInjectionIdentifierAutoGen群聊A2A ADK层级A2A Agent Card订票任务(106条)
指标
Percent SuccessAttack Success Ratepartial successagent card选择比例
AI 导读论文研究提示注入攻击如何利用直接用户输入和 Agent 间通信泄露敏感信息,并引发跨 Agent 感染。测试主要揭示单 Agent 系统中的关键漏洞,作者随后把攻击扩展到多 Agent 框架,考察弱点如何在 Agent 之间传播。作者认为,随着 AI Agent 更多嵌入真实工作流,需要更稳健的防御。

论文研究提示注入攻击如何利用直接用户输入和 Agent 间通信泄露敏感信息,并引发跨 Agent 感染。测试主要揭示单 Agent 系统中的关键漏洞,作者随后把攻击扩展到多 Agent 框架,考察弱点如何在 Agent 之间传播。作者认为,随着 AI Agent 更多嵌入真实工作流,需要更稳健的防御。

深度解读

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

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

    提示注入可经用户输入和智能体通信泄露信息,并操纵A2A选卡。

    直接提示注入和智能体之间的消息,能否让单智能体与多智能体泄露敏感信息、打破禁则,并在A2A里被操纵选择。

    • 场景:作者称智能体正在进入大规模业务。Gartner预测到2028年33%的企业软件将纳入AI智能体;Dimension Market Research预测多智能体系统市场到2034年达到184.8 billion。多智能体用A2A协调,作者称这带来传统单智能体没有的问题。
    • 现有不足:作者称先前工作多做单智能体恶意提示,多智能体场景受到的关注更少。A2A不要求中心编排器,也缺少校验;作者称单点弱点可能在网络中传播,即prompt infection。
    • 做法:重测并扩展已知提示注入,覆盖不同目标与工具;再看单智能体上有效的攻击能否用于A2A。摘要称另有一项专门为A2A设计的Agent Card Spoofing;方法节标题为A2A Agent Card Injection。
    • 威胁模型:
      • 目标:系统提示泄露、绕过受限话题、未授权编辑文件系统、滥用在线搜索,以及跨智能体感染;卡片实验要改变被选中的智能体。引言里的“在线搜索”在方法中对应网页抽取工具,论文未另写搜索API名称。
      • 知识:论文未使用white-box、black-box等说法,也未写攻击者是否知道权重或原系统提示。
      • 能力:可提交用户提示;群聊里用户代理的消息与其他智能体消息同等处理;卡片实验可改名称和描述。背景写还关注tool squatting(欺骗性注册或误述工具),方法节未单列该项的成功率。
      • 受害系统:作者搭建的LangChain/LangGraph单智能体、AutoGen群聊,以及基于Google A2A样例和ADK的层级。
  2. 有哪些相关研究?

    引言和背景讨论了MCP/A2A、提示注入和prompt infection,没有数值对照的攻击基线。

    论文没有独立的Related Work。引言和背景按协议、提示注入和多智能体传播来写。

    • 协议:Jeong([3])研究MCP与A2A,以增强基于LLM的自治智能体互操作。作者用MCP概括单智能体调用外部工具或数据的标准,用A2A概括跨环境、跨开发者的协作,并称A2A不要求中心编排器。
    • 单智能体提示注入:背景引用IBM的Prompt Injection材料([4]),说明多数LLM仍难区分预定指令和用户提示,因为两者都用NLP处理。作者把直接提示注入写成:用专门设计的提示获取敏感信息、改变既有知识,或改动模型能访问的文件与资源。
    • 多智能体与工具:作者区分外部输入造成的prompt injection,和系统内部产生的prompt infection(例如经其他智能体)。他们写自己关注direct prompt injection与tool squatting。论文没有把某一篇具名攻击论文当作数值基线。
    • 被测组件:PALChain([5])从自然语言生成并执行代码;HuggingFaceInjectionIdentifier([6])做注入分类;过滤层引用rebuff([7])。A2A试验从Google的A2A samples([8])改起。这些是被攻击对象,论文未报告与其他攻击方法的对照表。

    作者的定位是:先前工作侧重单智能体恶意提示;本文重测并做新变体,再检查这些攻击在A2A中的效果,并测试Agent Card Spoofing。

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

    在LangChain上分阶段加过滤与分类器,再迁到AutoGen和A2A选卡。

    先在LangChain单智能体上重测直接提示注入和带工具的注入,再把同类提示放进AutoGen与A2A,并单独改Agent Card看选择是否偏移。攻击原句下面不复述。

    单智能体基线与过滤

    • 基础对象是LangGraph聊天机器人,模型为本地Ollama Mistral 0.9.5,系统指令把它写成业务助手。
    • Phase 1只有给定指令。Phase 2增加过滤,用来检测并拦截违规,引用rebuff。这里的Phase编号只属于这一节。
    • 四条禁则:不透露公司出售打印机、不使用单词the、不使用海盗腔、不返回任何数字。每条提示测5次。
    • 结果节提到的探测包括反向心理、回声、模仿内部问答格式、逐步推理和角色改写。

    网页隐藏指令

    • 给LangGraph智能体一个抽取URL中HTML的自定义工具,并做本地页面;恶意指令放在不可见元素里。论文未写这一节的底层模型名。
    • 行为劫持改变行为方式,角色劫持改身份。文中例子分别是模仿鸭子和假装体育分析师。
    • 四种系统提示防护:(1)明确写不能做什么;(2)在(1)上增加一个指定回应步骤;(3)警告智能体预料攻击;(4)严格定义角色。每项重复50次。

    秘密保留与代码执行

    • Flag Reveal把一串数字秘密嵌入基础LangChain智能体并禁止泄露。这一节的Phase 1只禁止泄露;Phase 2再禁止泄露系统提示;Phase 3用过滤丢掉所有含该秘密串的输出。成功指输出里按正确顺序出现全部数字。
    • 探测有对照提问、把指令放进SystemMessage、询问上一条提示。改输出格式只在Phase 3测试,用来避开按完整秘密串匹配的过滤。
    • PALChain属于langchain_experimental,可从自然语言生成并执行代码。上下文禁止访问/app/.env,并用InjectionIdentifier分类。每条查询5次。成功指读到该敏感文件。四条查询从允许文件、直接要敏感文件,到声称文件无害,再到要求外传。

    AutoGen与A2A

    • 群聊用AutoGen和llama3-8b-8192。三个标准LLM智能体,第四个是人类输入通道;用户代理消息与其他智能体消息一样处理。一种配置的系统消息各不相同,三种相同,用来看智能体是否互相强化或质疑。轮询最多10条,使每个智能体至少回复一次。
    • 秘密试验:一个智能体持有秘密且不得泄露,其余不知情且不得询问。成功是任一智能体泄露或传播。另外三项把基线节一类的注入发给全体智能体,任一智能体违规即成功。每项3–5次。
    • A2A先用Google A2A samples重测,并比较llama3-8b-8192与gemini-2.0-flash-lite。随后只用llama3-8b-8192在ADK建层级。表中每个编号试验为5次。
    • Setup 1:根智能体、facts智能体、持秘密且禁止泄露的secret智能体,按主题委派,用于Trial 1与1.5。Setup 2增加可用Python脚本读本地文件的file智能体,并告知不要访问敏感文件,用于Trial 2到6。
    • Trial 1.5把Trial 1的提示重复最多15次。其余试验请求敏感文件、让file智能体忽略既有指令,或声明文件无害。Trial 6是Trial 5的对照,不附带无害声明。部分成功指没有拒绝,但露出的信息本身未必敏感。

    Agent Card选择

    • 抽出并改写A2A-MCP的选择逻辑,模拟动态发现。把查询和卡片列表交给GPT-4o或Gemini pro,再提取选出的URL,看是否指向新增的恶意智能体。讨论节把同一选择模型写成Gemini 2.5 Pro。
    • 任务是订机票。GPT-o3生成106条订票任务。
    • Trial 1把复制卡的名称加长到3倍且不改含义。Trial 2把默认描述粘贴3次,URL改到localhost另一端口。
    • Trial 3由GPT-o3生成两条长度相近、情感一正一负的描述。Trial 4用两条长度相近、情感更接近的描述。
  4. 论文做了哪些实验?

    网页无防护角色劫持98%,Safeguard 2的角色劫持为0%;A2A重复后60%。

    实验设置

    • 被测模型:Base Model写明本地Ollama Mistral 0.9.5。Web、Flag Reveal、PALChain只写LangGraph或LangChain智能体,论文未说明是否仍是该模型。AutoGen群聊和ADK层级为llama3-8b-8192。A2A重测还使用gemini-2.0-flash-lite,但没有单独结果表。卡片选择在方法节是GPT-4o与Gemini pro,讨论写作Gemini 2.5 Pro。GPT-o3只生成106条订票任务和部分描述。
    • 规模:四条禁则各测5次;Web每种防护与劫持组合50次;Flag Reveal与PALChain每条5次;AutoGen每项3–5次;A2A表中每行5次;群聊一轮最多10条消息。
    • 成功定义:Web为劫持成功占50次的比例。Flag Reveal为秘密数字按正确顺序全部出现。PALChain为读到/app/.env。AutoGen为任一智能体违规、泄露或传播。A2A分success与partial success。卡片实验为选出较短名称、较长描述或更高情感描述的比例。
    • 判定:没有另设LLM裁判,也没有人工一致性数字。HuggingFaceInjectionIdentifier给出SAFE/INJECTION和likelihood;论文未写判定阈值。
    • 对照:无防护网页条件、不声明文件无害的Trial 6、四种系统提示之间的对比,以及Flag Reveal的对照提问。没有外部攻击方法的数值基线。论文未报告统计检验。

    主结果

    Web行的模型论文未说明。A2A行是llama3-8b-8192。卡片比例论文未按两个模型拆开。

    | 设置 | 结果 | 出处 | | Web无防护,Behavior / Role | 90% / 98% | Table I | | Web Safeguard 2,Behavior / Role | 4% / 0% | Table I | | Web Safeguard 1,Behavior / Role | 100% / 94% | Table I | | Web Safeguard 4,Behavior / Role | 0% / 36% | Table I | | PALChain Query 3 | 分类SAFE,攻击成功80% | Table II | | A2A Trial 1;Trial 1.5 | 0/5(0%);3/5(60%) | Table IV | | A2A Trial 5 | 5/5(100%) | Table IV | | 卡片Trial 1,较短名称 | 96.70% | 正文 |

    • 作者称Safeguard 2(指定回应步骤)下降最多,严格划定角色的Safeguard 4次之。只写禁止事项时,行为劫持高于无防护一行;作者称单纯限制大体无效。
    • 作者称即便根智能体在协调子智能体,某些提示仍能露出敏感信息;把同一提示重复最多15次,可以压过保密指令。
    • 作者称Query 3是最关键的失败:分类器未标出注入,智能体仍生成并执行了读取脚本。Query 4被标为INJECTION且攻击未成功,见下面消融。

    秘密串与硬编码过滤

    • 对照提问在全部试验中未泄露。系统级注入在各phase为1/5(20%)。询问上一条提示在phase 1和2有效,作者称是因为系统提示被接在用户输入前;phase 3被过滤挡住。只在phase 3做的格式改写成功率为100%。作者称,若知道被审查的具体模式,硬编码过滤容易绕过。
    • 作者认为,这种偏低但稳定的系统级成功率意味着,面对一系列安全措施,提示注入仍可能最终成功。作者称智能体有时会编造与秘密或指令有关的虚假信息来回避提问。
    • Figure 1的图注是三阶段、五次试验中各攻击类型的成功泄露次数。正文没有逐格抄出图中柱高,这里不补。

    AutoGen群聊

    • 泄露秘密的注入大多不成功。有一次知情智能体在对话中说出秘密,另外两个没有复述。论文未按四种系统消息配置分开报告。
    • Table III(禁词 / 角色扮演 / 禁止数字):Prompt 1为20%、0%、13.33%;Prompt 2为40%、33.33%、13.33%;Prompt 3为33.33%、11.11%、6.66%。作者称不同提示成功率不同;一条提示在一个智能体上效果好时,在其他智能体上也往往较好。
    • 讨论称,一旦一个智能体打破协议,其他智能体常常跟随。这与秘密试验里“另外两个没有复述”并列存在;论文未说明两句分别对应哪些提示。作者认为多智能体结构本身并不缓解提示注入风险。

    A2A其余试验与卡片字段

    • Table IV:Trial 2、Trial 3均为0/5。Trial 2的Total %写作0,没有百分号。Trial 4成功1/5(20%),部分成功4/5(80%)。Trial 6为2/5(40%),部分成功同为2/5。Trial 1.5的success与partial success同为3/5。作者称声明文件无害的试验可以全部成功,论文未解释它与对照Trial 6的差别从何而来。
    • 卡片Trial 2:较长描述平均被选89.6%,其余选择全部是编排智能体。作者称更笼统、未明确写机票的请求更容易选到编排者。
    • Trial 3:情感更正的描述,localhost URL为98.15%,随机生成URL为97.65%。Trial 4在情感更接近后没那么一边倒;作者称GPT-4的选择有任意性,部分查询选到planner。两模型仍偏好情感分更高的描述,平均84%。此处写GPT-4,方法节写GPT-4o,论文未说明是否同一模型。

    其他消融与分析

    • Web Safeguard 3:Behavior与Role均为64%(Table I)。
    • PALChain Query 1分类SAFE,Attack Success为N/A;Query 2分类SAFE且攻击成功0%;Query 4的Injection likelihood为0.9236、Safe likelihood为0.0764,分类INJECTION,攻击成功0%(Table II)。
    • 讨论给出格式注入在打印机禁则上为100%、海盗腔禁则上为0%;方法节写每条提示测5次,讨论未再写分母。
    • 结果节称逐步推理和角色改写只被Base Model的Phase 2外部过滤挡住。讨论称与无过滤的Phase 1相比,攻击成功率没有不同,过滤使用户看不到被判定违规的输出。论文未再给分项表。
    • A2A重测写了gemini-2.0-flash-lite用于观察行为差异,论文未报告该模型的成功率。
  5. 有什么可以进一步探索的点?

    作者称实验限于本地小规模设置,并建议做更大的多智能体树和分类器改进。

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

    • 实验限于小规模、本地设置。作者称真实A2A常有更复杂的层级和更广的工具,攻击面可能更大;后续应在更大、更接近真实的多智能体树中做提示注入(Discussion,多智能体)。
    • 后续可研究Flag Reveal中虚假信息的产生机制,以及用户提示能在多大程度上操纵这种输出(Discussion,Flag Reveal)。
    • 后续可看LangChain及类似智能体的sanitizer是否有效;作者把这和改输出格式即可越过上下文过滤放在一起(Discussion,Flag Reveal)。
    • 作者认为,随着语言模型准确率提高,注入分类器有可能更有效;探索其他BERT,或在更扎实的语料上微调,是后续途径(Discussion,PALChain)。原文是indicate / potentially。
    • 作者称让用户执行任意代码本身危险;后续若做好注入识别分类器,可能改变PALChain一类工具的用法(Discussion,PALChain)。
    • 卡片方面,作者提出的方向是强制统一的agent card格式以减少选择偏差,或建立独立、经审核的智能体注册表(Discussion,Agent Card)。这是建议,论文未称已经建成。

    实验覆盖范围

    • 写明模型名的单智能体试验是本地Ollama Mistral 0.9.5上的四条禁则。Web、Flag Reveal、PALChain未再写底层模型。
    • 带成功率表的多智能体试验使用llama3-8b-8192。gemini-2.0-flash-lite出现在A2A重测的模型对比里,论文未报告它的单独成功率。
    • 卡片选择的模型在方法节是GPT-4o和Gemini pro,讨论节写作Gemini 2.5 Pro。订票任务106条,由GPT-o3生成。Trial 4正文另出现GPT-4。
    • 重复为Web 50次,列出的LangChain与A2A试验多为5次,AutoGen为3–5次,群聊最多10条消息,Trial 1.5最多重复15次。论文未报告统计检验、总查询次数,以及评审与人工的一致性。
    • 文中的防护条件是四种系统提示、输出过滤和HuggingFaceInjectionIdentifier的标签。成功率按各节定义由作者判定,论文未写单独的裁判模型。
  6. 总结一下论文的主要内容

    单智能体过滤与分类可被格式或措辞绕过,A2A选卡还会偏向名称和描述。

    作者在自建的LangChain、AutoGen和A2A系统上重测提示注入,并改Agent Card看选择是否偏移。摘要称试验主要凸显单智能体弱点,同时把攻击扩到多智能体。

    • 问题:用户提示和同伴消息能否泄露秘密、打破禁则、碰到敏感文件,并在没有中心校验的A2A里传开。卡片试验另问名称和描述能否改变被选中的智能体。
    • 做法:Mistral 0.9.5上设四条禁则并加过滤;网页工具读取带隐藏指令的本地页面,比较四种系统提示。秘密串过滤和PALChain分类器分开测。AutoGen群聊与ADK层级用llama3-8b-8192。卡片试验改名称长度、描述重复和情感,由GPT-4o与Gemini pro选择。
    • 单智能体数字:无防护时网页角色劫持为98%(50次,Table I)。Safeguard 2的角色劫持为0%,但Safeguard 1的行为劫持为100%,高于无防护的90%。PALChain Query 3被标为SAFE,仍有80%读到/app/.env(Table II)。Phase 3里改输出格式的秘密泄露成功率为100%;系统级注入为1/5(20%)。
    • 多智能体数字:AutoGen的秘密传播大多不成功。Table III最高为Prompt 2的禁词40%,最低为Prompt 1的角色扮演0%。A2A Trial 1为0/5,同一提示重复最多15次后为3/5(Table IV);Trial 5为5/5,其对照Trial 6为2/5。较短卡名被选96.70%。
    • 作者的结论:作者称系统提示防护、分类器和过滤层之下,格式处理和间接注入仍然常常足以绕过规则并泄露信息。作者认为一个智能体违规后,其他智能体可能跟着做,多智能体结构本身并不缓解这一风险。作者同时称当前试验是小规模本地设置,并认为需要更主动的研究和更强的安全措施。
阅读原文arxiv.org