系统:运行中
← 返回所有攻击
AGENTS MEDIUM NEW

智能体流水线的信任移交失效:「已过滤」不等于「已授权」

一场即将举行的 Black Hat 2026 演讲报告了 Anthropic、Google、OpenAI 上相同的结构性缺陷:某一阶段将数据标记为安全,后续阶段却将其当作已授权。

2026-07-21 // 6 min affects: llm-agents, multi-agent-systems, agentic-workflows

这是什么?

Black Hat USA 2026 定于 2026 年 8 月 5 日 的一场演讲——由 Novee Security 的 Elad Meged 主讲的 Trusted Enough to Run: Breaking AI Agents in Official Workflows——报告了一类被作者称为 信任移交失效(trust-handoff failure)的缺陷,并称它同时出现在基于 Anthropic、Google 与 OpenAI 系统构建的智能体工作流中。根据 Novee 发布的演讲预告(2026 年 6 月 27 日)以及一篇独立分析(2026 年 7 月),该弱点并非某个具体模型的漏洞,而是多阶段智能体流水线的一种结构性属性。

完整的技术细节预计将在会议上公布。目前公开描述的只是问题的形态:工作流中的某一阶段依据自身的威胁模型将一份数据标记为安全,随后一个阶段以超出先前检查所设想的权限来消费同一份数据。没有 0-day,没有被窃取的凭据,除了智能体正常运行其工作流之外没有任何用户操作。本文讨论所报告的模式及其防御;待完整材料公开后,我们会再作跟进。

工作原理

现代智能体「工作流」本质是流水线。浏览或检索阶段引入外部内容,过滤或审核阶段进行检查,规划阶段决定动作,动作阶段调用工具。每个阶段都是针对局部威胁模型编写的——即它负责拦截的那类问题。

所报告的失效存在于这些阶段之间的接缝处。过滤阶段可能合理地得出「这段文本不含我所监控的注入模式」并将其输出向下传递,隐含地标记为干净。问题在于,「干净」是相对阶段的职责而定义的。当后续动作阶段将同一份输出视为足够可信、从而授权一次工具调用时,它已在无声中将「通过了一道过滤器」提升为「获准执行动作」——而这是过滤器从未赋予的含义。

信任被无声提升的阶段边界
------------------------
[browse]  -> 引入外部内容                  (不可信)
[sanitize]-> 「无我监控的注入模式」          (对本阶段而言干净)
[plan]    -> 将已过滤文本视为可靠            (隐含提升)
[act]     -> 据此调用工具                    (现被视为已授权)

这是信任边界问题,而非内容问题:并不存在某个过滤器本可拦截的恶意字符串,因为各阶段都完成了各自的工作。缺陷在于,它们之间的边界传递了数据,却没有传递该数据对下一阶段目的而言应被信任的程度。这一视角与 2026 年 6 月的综述 Toward Secure LLM Agents 面向系统的观点一致:它围绕信息流、被委派的权限与持久状态之间的相互作用来建模智能体安全,而非围绕孤立的组件漏洞。

为何重要

即便在演讲之前,也有三点值得关注。

其一,它是跨厂商的。 作者报告 Anthropic、Google 与 OpenAI 上出现相同模式,这指向所有构建多阶段智能体者所共享的一种架构假设,而非某一家厂商的疏失。换用「更安全」的模型,并不能消除一个存在于流水线布线中的缺陷。

其二,它无需任何奇特的触发条件。 若该结论成立,只需智能体运行其日常工作流即可。这使它与致命三元组同属一类:各自合理的能力,唯有在共享一个无人显式设计的信任语境时才变得危险。

其三,它在测试中难以发现。 只检查提示与响应的网关——据称 Rein Security 在 Black Hat 2026 另一场演讲中借此攻破了某大型零售商的购物助手——对智能体实际执行的内容毫无可见性,因而无法看到某个内部边界上被提升的信任级别。逐一孤立检查各阶段的一次性测试会让每个阶段都通过,却仍会漏掉那道接缝。

关于信息来源的一点提醒:这是一场尚未举行的演讲,目前公开的是摘要与二手综述,而非底层的概念验证。在演讲及任何配套材料公布之前,请将细节视为暂定。不过,其架构层面的启示并不依赖于该演示。

防御

作者与分析者所指向的修复是架构层面的,且现在即可实施,与该演讲无关。

  1. 为每一份跨越阶段边界的载荷附加显式的信任级别。 不要让信任由「它来自上一阶段」来推断。用来源及其实际验证程度为数据打标签,并让该标签随数据一起穿越边界。

  2. 让下游阶段强制执行最低信任要求。 任何执行动作的阶段——调用工具、写入系统、支出资金、执行代码——都应拒绝低于所声明阈值的输入并以关闭态失败。过滤不等于提升:通过注入过滤器并不意味着某内容获准触发一次金融动作。

from enum import IntEnum

class Trust(IntEnum):
    UNTRUSTED = 0      # 原始的网页/邮件/用户内容
    SCREENED  = 1      # 通过了某道过滤器——仅限于「该」过滤器的威胁模型
    INTERNAL  = 2      # 链条中另一智能体的输出
    VERIFIED  = 3      # 已签名 / 经人工批准 / 受源代码控制

def act(payload_trust: Trust, min_required: Trust) -> bool:
    # 动作阶段在低于自身最低要求时以关闭态失败,无论来源为何。
    if payload_trust < min_required:
        raise PermissionError("[已拦截] 信任移交护栏:"
                              f"{payload_trust.name} < {min_required.name}")
    return True
  1. 让过滤阶段的威胁模型对齐下游用途,而不只是它自身的职责。 若某过滤器是为拦截提示注入字符串而构建的,其「干净」结论无从说明该内容交给 shell、SMTP 工具或支付 API 时是否安全。每一处风险面都需要各自的检查。

  2. 授权动作,而非身份或来源。 在执行时将批准绑定到具体操作及其真实参数,这与授权工作流步骤而非智能体身份的原则一致。这可直接阻断「因来自内部阶段而可信」的提升。

  3. 对接缝进行埋点。 记录每个阶段对其输出所声明的内容,以及下一阶段所假定的内容,使无声的提升在遥测中可见。这正是相关的错误路径上的隐式权限失效以及智能体中的检查时/使用时窗口背后的可观测性缺口。

  4. 对自己的边界做红队测试。 提供对第 N 阶段过滤器而言无害、但对第 N+1 阶段工具而言危险的内容,并确认流水线将其拦截。若它被执行,缺陷在你的布线中,而非模型中。

状态

项目参考日期备注
Trusted Enough to Run: Breaking AI Agents in Official WorkflowsBlack Hat USA 2026 演讲(Elad Meged,Novee Security)2026-08-05即将举行;报告 Anthropic、Google、OpenAI 上的信任移交失效
演讲预告Novee Security2026-06-27议题概览与摘要
独立分析The Agentic Protocol2026-07该模式的防御性阐释
系统性框架Toward Secure LLM Agents (SoK)2026-06信息流、被委派的权限、持久状态

有用的结论无需等待演讲:在多阶段智能体中,「这通过了我的检查」与「这获准用于你即将进行的操作」是两种不同的陈述。只要每一处边界还不能在不无声升级为后者的情况下传递前者,一个已尽职的过滤器仍可能把某样它本不该被允许执行的东西,交到动作阶段手中。

Sources