Know Your Agent: Reconnaissance-Driven Pentesting of AI Agents
论文重点
这篇论文的核心主张是:评估AI智能体对间接提示注入(Indirect Prompt Injection, IPI)的鲁棒性,不应该只是「尝试各种攻击载荷」,而应该像传统渗透测试一样,围绕侦察(reconnaissance)来组织攻击流程。作者将这一思路形式化为「智能体侦察」,并实现了名为 Know Your Agent(KYA)的全自主黑盒渗透测试框架——它在攻击循环中显式地插入侦察动作,先提取目标智能体的工具存取、工具模式、拒绝边界、用户任务、权限与执行上下文等「知识资产」,再据此合成更具针对性的攻击载荷。在多个智能体安全基准上,KYA 的攻击成功率比所有基线高出最多 67 个百分点,并在 OpenHands 真实编码智能体上得到验证。
核心研究内容
问题定义
论文聚焦的问题是:如何让自动化 IPI 红队测试超越「载荷优化循环」,转向一种以目标建模为核心的侦察驱动范式。
现有方法大致分为三类:固定模板攻击(如「ignore previous instructions」)、单次生成攻击(如 TopicAttack、ChatInject)、以及迭代式框架(如 AgentVigil、UDora)。但这些方法共享一个结构性缺陷:它们把反馈当作载荷优化的信号,而不是了解目标的机会。换句话说,攻击者反复问的是「怎么改写上一次的注入让它更有效」,却很少问「关于这个智能体,我还需要学什么,才能写出对的注入」。
这个缺口在工具使用型智能体上尤其致命。一个载荷失败,可能是因为工具名写错了、参数模式不对、不符合用户当前任务、触发了拒绝边界,或者在模型眼中根本不像可信内容。在这些情况下,正确的下一步不是换一种说法,而是一次能降低不确定性的侦察。
创新方法
KYA 的核心创新可以概括为三层:
第一层:形式化「智能体侦察」与「知识资产」。作者将知识资产定义为「关于目标智能体的离散操作知识片段,其披露会增加攻击者构造成功 IPI 载荷的机率」。这些资产沿三个维度区分:获取方式(被动观察 vs. 主动探测)、可用时机(会话初期 vs. 任务暴露后)、以及槓杆类型(绕过过滤器 / 显得像合法请求 / 具备可执行结构)。
第二层:识别两个让侦察有效的智能体弱点。这是论文的理论贡献核心:
- W1:表面形式信任(Surface-Form Trust)。模型透过训练学到某些文字模式通常出现在受信任的上下文区域——系统提示语言、角色标记、XML/Markdown 分隔符、工具调用语法。这些不是密码学签名,而是与权威相关的文字模式。一旦攻击者学会目标智能体使用的分隔符或工具调用格式,就可以在不受信任的内容中伪造这些形式。
- W2:基于连贯性的合法化(Coherence-Based Legitimation)。即使智能体辨认出内容来自不受信任的来源,它仍需判断请求是否合适。它无法独立验证「用户是否授权了这件事」,主要依靠的是请求是否与周围上下文连贯。攻击者可以透过侦察获得目标智能体的领域语言、用户人设、当前任务,从而让恶意请求看起来像是任务的自然中间步骤。
第三层:KYA 框架本身。它是一个全自主黑盒系统,在每次动作后运行一个策略,决定下一步是继续侦察还是执行攻击。其状态机与先前系统的根本区别在于:先前系统在单一攻击状态内循环,反复变异载荷;KYA 引入了显式的侦察状态和一个运行时策略,在每次动作后在侦察与利用之间做出选择。
研究成果
KYA 在既有智能体安全基准上进行了评估,复盖多种基础模型和场景。核心数据:攻击成功率比所有测试基线高出最多 67 个百分点。此外,作者在 OpenHands(一个真实世界的编码智能体)上验证了方法,证明侦察驱动的测试不仅适用于合成基准设定。论文还释出了 KYA 的源代码、基准和两个先前工作中不可用的基线实现,以支持可重现性。
实际落地应用的可能性
论文的应用价值沿两条路径展开。对防禦方而言,KYA 可以作为部署前的自动化鲁棒性评估工具——将发现的攻击载荷视为漏洞报告,据此更新系统提示、输入过滤器、护栏或工具存取策略,并透过聚合多个发现的载荷产生鲁棒性指标。对攻击方而言,它揭示了智能体的可观测行为本身就是一个攻击面——每次互动都在无意中洩露关于工具集、权限边界和防禦措辞的碎片资讯,而这些资讯会随时间複合累积。
技术细节
知识资产的分类体系
论文将知识资产按其在载荷构造中的角色分为三类:
| 类别 | 作用 | 利用的弱点 | 典型资产举例 |
|---|---|---|---|
| Evasion(规避) | 让注入通过防禦表面 | W1(表面形式信任) | 过滤器阻塞的 token/短语、护栏措辞、分隔符约定 |
| Pretext(藉口) | 让注入显得上下文合法 | W2(连贯性合法化) | 用户人设、当前任务、领域语言、对话叙事 |
| Blueprint(蓝图) | 让注入具备结构权威形式 | W1(部分涉及 W2) | 工具名称与模式、角色标记、工具输出结构、助手回应风格 |
Evasion 资产之所以关键,是因为后续战术只有在注入没有被过滤、拒绝或剥离的前提下才有意义。过滤器是硬编码的阻塞 token,护栏则是活在智能体上下文中的自然语言安全规则——知道它们的措辞,攻击者就能避开词法触发器(W1),同时满足规则的连贯性条件(W2)。
KYA 的工作流程
论文用状态图(Figure 2)对比了先前系统与 KYA 的工作流。先前系统(虚线)停留在攻击状态 A 中反复变异 p_adv,直到成功或超时。KYA(红色路径)在每次动作后可能进入侦察状态 R,获取知识资产 k,然后返回攻击状态 A 用更新的目标模型合成更强的 p_adv。
这个策略的核心判断是:不是每次失败都值得再攻击一次。如果失败的原因是工具名错误或模式不匹配,正确的动作是侦察,而不是改写。KYA 的运行时策略维护一个显式的目标画像(target profile),在每一步谘询它,决定是否需要先提取某个特定资讯再继续。
两个弱点的複合效应
论文特别强调 W1 和 W2 的複合性。一个伪造了角色标记但请求本身不连贯的载荷,可能因为「不符合工作流」而被拒绝;一个故事连贯但缺乏表面合法性的载荷,可能在智能体行动之前就被当作不受信任的内容折扣掉。有效的 IPI 载荷通常需要同时利用两者。随着攻击者沿着两个弱点积累资产,载荷变得更「表面可信」且「上下文连贯」——KYA 的设计目标就是自动达到这个状态。
研究设定
论文将目标智能体视为完全黑盒:攻击者可以註册为合法用户,与智能体互动,提交正常用户提示,在智能体可检索的任何数据源中植入任意内容,并观察智能体的完整回应轨迹(包括自然语言回复和介面暴露的工具调用)。攻击者不能修改模型权重、训练数据、系统提示、工具实现或智能体代码。
评估分两阶段。阶段一(渗透测试)在互动式测试会话中进行,侦察和利用动作都发生在这里。阶段二(应用)中,攻击者将找到的 p*_adv 部署到第三方受害者可能检索的数据源中;此时受害者的用户提示不受攻击者控制,智能体回应也不可观测,攻击依赖于载荷从阶段一任务上下文到受害者上下文的泛化能力。
实验使用了既有的智能体安全基准(如 AgentDojo),并在 OpenHands 真实编码智能体上进行了验证。具体的硬体配置和模型列表在论文的完整版本中提供。
综合分析
这篇论文最值得注意的地方,在于它把一个安全工程直觉系统化成了可执行的自动化框架。
传统渗透测试中,侦察是常识。没有人会在不扫描端口、不枚举服务、不尝试理解目标架构的情况下,盲目发射 exploit。但 LLM 智能体的红队测试长期以来被困在「载荷中心主义」的范式里——生成、突变、重试。KYA 的贡献在于指出:每次与智能体的互动都是一次学习机会,而当前方法系统性地浪费了这些机会。
W1 和 W2 的区分尤其敏锐。W1 揭示了模型对「权威文字形式」的依赖本质上是统计性的、可複製的。论文指出的一个关键限制是:W1 难以透过普通微调消除,因为攻击者利用的表面形式相关性,正是模型遵循系统指令、解析工具输出、发出有效工具调用所依赖的同一组相关性。削弱它们会同时削弱正常的智能体行为。这意味着防禦需要来自可複製文字流之外的东西——更强的内容隔离、或运行时提供的、模型被训练为视为权威的来源信号。
W2 则触及一个更深层的张力:连贯性检查对良性互动有用,但作为安全机制是浅薄的。它是局部上下文的属性,而攻击者在载荷被检索的那一刻就控制了局部上下文的一部分。这不是一个可以简单「修补」的 bug——它反映了 LLM 在缺乏外部验证机制时,判断「什么是合适行动」的根本局限。
从方法论角度看,KYA 的「侦察-利用交错」策略与传统红队的迭代载荷优化之间的差异,类似于情报驱动的攻击与暴力搜索之间的差异**。前者用每一轮互动累积关于目标的结构化知识,后者只把每一轮当作对上一次尝试的评分反馈。在工具使用型智能体上,这个差异被放大,因为成功往往取决于精确的目标细节——确切的工具名称、工具模式、任务上下文、防禦措辞。
一个值得进一步思考的问题是:论文观察到的「人类顶级渗透测试者在 Gray Swan 挑战中的策略」与 KYA 的自动化策略之间的对应关係。这暗示了一个更一般的原则:当目标系统足够複杂时,侦察的价值会超过载荷本身的精巧程度。这个原则在传统网络安全中已经被反复验证,KYA 的工作是将它迁移到智能体安全的语境中,并证明它在自动化框架中同样有效。
实践应用
对于正在部署 LLM 智能体的团队,这篇论文提供了几个可以直接转化的建议:
第一,把 IPI 测试从「载荷测试」升级为「目标建模测试」。如果你目前的红队流程是在固定一组载荷上跑一遍、记录成功/失败,那你错过的是智能体在互动过程中主动洩露的大量结构性资讯。一个有效的测试流程应该在每次互动后问:这次互动揭示了关于工具集、权限边界、拒绝边界的什么新资讯?这些资讯如何改变下一次尝试?
第二,优先保护那些「一次性侦察就能获得」的资讯。论文的知识资产分类暗示了一个防禦优先级:Blueprint 类资产(工具名称、模式、角色标记)一旦洩露,攻击者就获得了伪造结构权威的能力。如果你的智能体在正常互动中无意中暴露了完整的工具模式或系统提示的格式约定,这本身就是一个攻击面。
第三,认识到 W1 的防禦需要超越文字层面。如果攻击者可以複製你的分隔符和角色标记,模型在推理时无法区分「真正的系统区域」和「伪造的系统区域」。这意味着防禦需要来自文字流之外的来源信号——例如运行时提供的、模型被专门训练为视为权威的来源标记。
第四,KYA 的开源释出降低了自动化渗透测试的门槛。团队可以将其整合到 CI/CD 流程中,在每次智能体版本更新后自动运行侦察驱动的测试,并将发现的攻击载荷聚合为鲁棒性指标。
参考资料来源
- 原始论文:https://arxiv.org/abs/2607.19837