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

Vertex AI「双重代理」:权限过大的服务代理成为云端提权路径

Unit 42 于 2026 年 3 月 31 日披露:Vertex AI Agent Engine 部署会通过元数据服务暴露一个权限过大的服务身份,使配置不当的代理变成对项目内所有存储桶的读取入口。

2026-06-20 // 6 min affects: vertex-ai-agent-engine, google-cloud, llm-agents

这是什么?

2026 年 3 月 31 日,Palo Alto Networks 旗下的 Unit 42 披露了 Google Cloud Vertex AI 中的一个安全盲点:配置不当或被入侵的 AI 代理可以被变成研究员 Ofir Shaty 所称的「双重代理」——表面上完成本职工作,暗地里却悄悄外泄数据、触及内部资源并在云项目中横向移动。这里没有针对模型的全新漏洞利用,问题在于身份与权限范围:为已部署代理所配置的服务身份,所持权限远超该代理任务所需,而这些权限可从代理自身的执行上下文中被触及。

这之所以重要,是因为它是一缺陷,而非单个 bug。同样的模式——AI 服务代理在没有最小权限约束的情况下继承平台级凭证——会出现在任何把代理作为一等云工作负载部署的场景中。Google 此后已更新文档并调整建议(见状态表),因此可以公开讨论。

工作原理

当你用 Vertex AI 的 Agent Development Kit(ADK) 构建代理并通过 Agent Engine 部署时,Google 会为其配置一个 Per-Project, Per-Product Service Agent(P4SA)。Unit 42 发现该 P4SA 默认被授予过大权限,并且——更关键的是——这些凭证可从正在运行的代理中被取得:

  • 元数据服务交出凭证。 部署之后,对该代理的任何调用都会触发对 Google 内部元数据服务的请求,从而暴露该服务代理的凭证,连同承载的 GCP 项目、代理身份以及主机的 scopes。这正是经典的云原生 IMDS 凭证窃取模式——参见 通过 IMDS 接管云——只是这次作用在代理运行时上。
  • 凭证逃出沙箱。 利用取得的凭证,研究人员从代理的执行上下文跳入客户项目,破坏了隔离保证,并获得对该项目内所有 Google Cloud Storage 存储桶的无限制读取权限
  • 它还触及了 Google 的租户。 由于 Agent Engine 运行在 Google 托管的租户项目中,同一凭证暴露了平台内部基础设施的细节,更值得注意的是,还获得了对受限 Artifact Registry 仓库的读取权限,其中包括构成 Vertex AI Reasoning Engine 的容器镜像。Unit 42 指出,这暴露了专有代码,并为攻击者提供了一张内部软件供应链的地图。

触发条件是一个会处理不可信输入、或运行受攻击者影响的代码的代理——例如通过间接提示注入或恶意序列化载荷。而实际损害则来自那个长期存在、范围过大、距离一次元数据调用之遥的凭证。

为何重要

代理正越来越多地作为普通云工作负载部署,从而继承了云最古老的弱点:默认范围过大的服务身份。Unit 42 给出的教训直截了当:默认授予代理宽泛权限违反最小权限原则,是「设计上就危险的安全缺陷」。

真正让这件事严重而非猎奇的,是其影响半径。单个「读取一切」的凭证就能把一个有用的代理变成内部威胁:从任意存储桶外泄数据、侦察内部基础设施、获取可为下一步攻击埋下伏笔的私有镜像。就严重性而言,诚实的边界是:利用仍需要代理先被错误配置或被入侵——它不是远程、未认证的接管。但在代理部署中,「被注入输入入侵」并非遥远场景,而是预期场景。这正是致命三要素所描述的耦合:访问私有数据、不可信输入,以及一条外泄通道。

防御

缓解措施属于云 IAM 与部署卫生的范畴,并可推广到 Vertex AI 之外:

  • 替换默认服务代理。 Google 推荐的修复是用 Bring Your Own Service Account(BYOSA) 取代默认 P4SA,并按最小权限原则约束,使代理只持有其任务所需的权限。如果你的平台会配置默认身份,在你收紧它之前应将其视为不可信。
  • 将 OAuth scopes 收紧到最小权限。 Shaty 的建议很明确:验证权限边界,把 OAuth scopes 削减到最小。一个长期存在的「读取所有存储桶」授权,正是整条链所依赖的前提。
  • 像对待生产代码一样对待代理部署。 在上线之前审查源代码完整性、验证边界并进行受控的安全测试——而不是等到代理已上线、可被触及之后。
  • 锁死元数据路径。 在平台允许的地方,限制哪些工作负载能访问元数据服务及其返回内容;永远到不了代理运行时的凭证,也就无法从中被窃取。
  • 对项目分段。 不要让一个代理的影响半径等于「整个项目」。使用独立项目、VPC Service Controls 和按资源的 IAM,使一个泄露的凭证只能读取一个存储桶,而非全部。
  • 监控由代理发起的云 API 调用。 来自代理身份的突发存储桶枚举或镜像拉取,是凭证已被反用的强烈信号。

状态

项目详情
披露方Palo Alto Networks Unit 42(研究员 Ofir Shaty)
日期2026 年 3 月 31 日
受影响面Vertex AI Agent Engine + ADK;默认的 Per-Project, Per-Product Service Agent(P4SA)
机制元数据服务向代理运行时暴露一个范围过大的服务凭证
影响读取客户项目内所有 GCS 存储桶;获取租户基础设施细节与受限 Artifact Registry 镜像
厂商回应Google 更新了访问控制文档;推荐 BYOSA + 最小权限
性质权限范围/身份缺陷,而非针对模型的全新漏洞利用

这是一篇防御性、设计层面的分析:没有漏洞利用载荷,也没有可直接照搬的攻击链。其经久不变的要点远早于 LLM,如今同样适用:就安全而言,代理的价值取决于它所运行的那个身份——而一个能读取一切的默认凭证,是一桩只待触发的入侵。

Sources