baize白泽明理

安全可信

多 Agent 协作时,另一个 Agent 转来的指令能不能直接照做

多 Agent 协作时,另一个 Agent 转来的指令不能直接照做。上游任务可能夹带了外部网页或文件里的恶意指令,下游接收时要核验原始发起人、限定动作范围、过滤内网地址等危险参数,高风险写操作应回到人工确认,防范跨协议越权渗透。

白泽明理

两个白色机器人隔着一道发橙光的检查门交接一张卡片,卡片上趴着一条小虫,代表转交的任务里夹带了恶意指令

多 Agent 协作时,另一个 Agent 转交过来的指令不能直接照做。上游转过来的任务要当成不可信的外部输入处理:它可能读过别人埋了恶意指令的网页、邮件或公开文档,并把恶意内容当成正常任务转给下游。下游 Agent 收到任务要重新核对:查清原始请求人是谁、确认动作是否在自身职责范围内、排查参数里有没有内网地址或本地路径;高风险操作退回到人工或原发起方确认。

左边是一个机器人把卡片递给另一个机器人,代表多 Agent 协作中的任务转交;右边是一条深色的触手从白板里伸出,被橙色盾牌挡住,代表拦截提示词注入
图:「多 Agent 协作」|「提示词注入」

恶意指令如何在协作链路中接力渗透

多 Agent 协作里,读外部网页、邮件的 Agent 和能查内网、改状态的 Agent,常常不是同一个。

风险往往始于一次普通的信息抓取。比如,售前咨询 Agent 按流程打开用户给的链接,或者读取一份客户发来的需求文档。文档的隐藏文本或网页注释里,可能埋着伪装成指令的内容,要求模型忽略此前要求,转去查内网配置或调用管理接口。

负责读信息的模型无法从语意上区分客观数据与控制指令。它把外部文档里的内容误判为最新要求,生成结构化的下游任务,通过内部接口发给负责执行的下游 Agent。

下游 Agent 收到请求,看到的是来自内网合法组件的规范调用,无法判断这段指令最初源自外部网页还是内部员工,于是直接调起工具执行。每个组件都按设计运行,出问题的是组件之间的交接没人核对。

事实案例:协议跳转与走廊盲区

Ars Technica 2026 年 10 月 5 日报道,独立研究者 Syed Anas Mohiuddin 测试了多家机构的 Agent 系统,过去五个月里 Google 等五家机构先后承认了相关漏洞。手法是让一个内部 Agent 接触到恶意指令,该 Agent 把恶意指令当成正常委托任务转给其他内部组件,接收方因信任发送方而直接执行。

研究者把这类手法称为协议跳转(protocol pivoting)。常见路径是任务经由 MCP 分派,再通过 Google 的 A2A 等协议流转到其他组件。测试中,Google 的 MCP Toolbox for Databases 被发现服务端请求伪造(SSRF)漏洞,评分 8 分(满分 10 分),修复方式是对目标 IP 配置允许和阻止名单。

Rapid7 的漏洞情报负责人 Douglas McKee 对 Ars Technica 表示,当前各种交互协议往往只检查自己的前门,两个组件连接的走廊通道却缺少核对。他建议把从模型传给工具的内容,当成互联网上陌生人的输入对待。跨层控制在生产中的落地设计,可对照 Agent 试点能跑通,扩到生产还缺哪几项?。

下游 Agent 接收任务时的四项核查

第一,查整条调用链最前面的发起人:外部访客发起的会话,转了几手也不能执行需要员工权限的操作。每次调用该带哪些身份,见 Agent 替员工去调系统时,用的是谁的身份和权限。

第二,校验请求动作是否在自身职责清单内。多 Agent 协作中的每个成员,工具配置应当保持最小化。专用于生成文档的助手,调用清单中不应包含系统网络配置或用户权限修改接口。一旦上游转来的动作超出本组件声明的职责范围,直接丢弃任务并报警。各类工具权限按什么顺序开,见 企业给 Agent 开工具权限,先开哪类、后开哪类。

第三,检查参数中的网络地址与系统路径。外部埋藏的指令经常诱导模型向外部发送数据或读取敏感文件。下游 Agent 解析参数时,核对 URL、IP 地址与文件路径。参数里包含本地回环地址、内网元数据服务或敏感配置路径,应当场拦截。

第四,限制外发请求能去的地址。Google 修 MCP Toolbox 的 SSRF 漏洞,做法是对目标 IP 配允许和阻止名单,不让请求跳到内网地址;下游工具发网络请求,也按名单放行。

任务转交时如何标记上下文与数据来源

上游 Agent 转派任务时,要把用户原始需求和抓取到的外部材料区分开。外部材料包裹在单独标签内,系统提示词明确说明它只供提炼或摘要,不能当作执行指令。转交时还要带上会话标识与来源风险标签,如果上游处理过公开表单等高风险来源,下游自动收紧校验。

高风险动作回到人工确认与上线前链路演练

改数据库、调权限、对外发邮件、动资金的操作,执行前让业务人员或原发起人看清参数再放行。自动化规模扩大前的控制手段,可参考 Agent 治理要赶在扩规模之前:推荐错了能不采纳,执行错了已经发生。

系统上线前,安全测试不能只看单个助手的表现。要在模拟的网页或文档里埋入隐藏指令,让上游读取并流转,检验下游的白名单校验与人工确认点能否把恶意动作拦下来。

多 Agent 协作:常见问题

上下游 Agent 都在企业内网运行,相互之间为什么不能默认信任?

内网隔离只能防住外部未授权网络扫描,防不住语义层面的指令伪造。上游 Agent 往往具备读取外部邮件、公开网页或客户文档的业务职能。当不可信数据进入模型上下文,模型可能受到误导,把外部内容包装成内部任务向后传递。下游若因请求来自内网就放弃核验,就会在不知情的情况下替外部恶意指令执行越权操作。

下游 Agent 逐项核对参数,会不会影响多 Agent 协同的处理效率?

核对参数造成的延迟通常很小。这类校验是确定的规则匹配,比模型生成回复快得多。只要接口协议与参数规范预先定好,正常的业务参数就会顺畅通过,被拦下的往往是格式畸变或带私有路径的异常请求。

多 Agent 协作中的协议跳转,与普通的提示词注入有什么区别?

X41 D-Sec 的研究者 Markus Vervier 认为,协议跳转本质上仍属于间接提示词注入。多 Agent 协作里多出来的一步是:外部内容里的恶意指令被上游 Agent 变成结构化的工具调用,传到有写权限的后端系统。