天堂之门:发现谷歌云Apigee中的跨租户漏洞

admin 2026-02-10 14:05:16 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文披露了谷歌云Apigee中名为GatewayToHeaven(CVE-2025-13292)的跨租户漏洞。攻击者通过利用Apigee元数据端点获取服务账户令牌,结合Dataflow管道执行恶意JAR文件实现权限提升,最终突破租户隔离访问其他企业的敏感分析数据和OAuth令牌,构成严重数据泄露风险。 综合评分: 92 文章分类: 云安全,漏洞分析,威胁情报,数据安全,安全大事件


cover_image

天堂之门:发现谷歌云 Apigee 中的跨租户漏洞

SecureNexusLab

2026年2月10日 09:44 江西

#

本文深入解析了在Google Cloud Platform (GCP)核心API管理服务Apigee中发现的、代号为“GatewayToHeaven”(天堂之门)的重大安全漏洞。该漏洞被追踪为CVE-2025-13292。研究显示,攻击者可通过一系列攻击链,在完全托管的租户项目中实现横向移动,最终突破云环境的逻辑隔离边界,访问、窃取其他企业租户的敏感日志、分析数据乃至访问令牌,构成严重的跨租户数据泄露风险。

关于Apigee

Apigee 提供了一个 API 代理层,位于您的后端服务与希望使用您的服务的内部或外部客户端之间。

租户项目

云服务商通常会构建复杂的逻辑隔离机制,确保不同客户的资源互不可见。在谷歌云中,Apigee作为一款全托管服务,为每个客户创建一个独立的 “租户项目” ,用于托管运行该服务的所有后台资源。

“天堂之门”漏洞的发现,揭示了一条从外部渗透进入租户项目,最后访问到所有其他租户数据的完整攻击链。

Apigee 访问权限

目前对租户项目和理论上的跨租户目标的看法是这样的:

Apigee 允许它在云外部署,从而在租户项目之外。云部署和混合部署在某些方面有所不同,但在许多其他方面也很相似,探索有详细文档的混合版本可能会揭示云版本中组件的配置方式。

这是 Apigee 混合部署的粗略示意图:

Apigee 的主要组件是消息处理器,在图中以黄色高亮显示。

消息处理器是位于最终用户和后端服务之间的 API 代理所有通过 Apigee 的最终用户请求都由它处理。所有其他组件的存在都是为了使其按预期工作提供最新的配置,并将分析数据流回谷歌。

Apigee 默认会为所有代理请求添加 X-Forwarded-For ,导致元数据端点拒绝该请求,作为针对服务器端请求伪造的防御机制。可以使用 AssignMessage Apigee 策略来绕过它,该策略可用于在请求发送到后端之前移除请求头。

在消息处理器的元数据端点暴露后,可以与该工作负载关联的服务账户令牌:

租户项目探索

gcpwn 是一个有用的权限枚举工具,可以迭代服务账户可能拥有的所有权限并检查它们是否存在。

通过它发现的一些有用权限包括:

  • 对租户项目中计算磁盘和快照的完全访问权限。
  • 对所有存储桶的读写访问权限。
  • 对 PubSub 主题的写入权限。

权限可以列出和读取磁盘、快照等资源,并控制知道名称的存储桶的内容。这是使用 Apigee 服务账户令牌在租户项目上运行 gcloud compute disks list 命令的输出:

转储磁盘的内容,需要执行以下操作:

  1. 创建磁盘的快照。
  2. 将其迁移到控制下的另一个项目。
  3. 在项目中从该快照重建一个新磁盘。
  4. 创建一个计算实例并将磁盘附加到它。
  5. 挂载磁盘并查看其内容。

通过浏览转储文件中的所有日志和配置文件探索, boot-json.log 的文件,其中包含有关分析计算实例行为的日志:

  1. 租户项目配置了 Dataflow,并且此磁盘属于其某个计算实例。Dataflow是一个谷歌云服务,提供统一的大规模流和批量数据处理。
  2. 初始化时,Dataflow 管道访问一个存储桶,下载 JAR 文件,并在执行时将它们用作依赖项。

下载 JAR 文件的存储桶位于租户项目中,Apigee 服务账户拥有对其的读写权限。利用这些权限,用恶意代码修补其中一个 JAR 文件,从而在 Dataflow 计算实例上实现远程代码执行。

转储文件中的另一个文件 pipeline_options.json 显示,Dataflow 管道由另一个服务账户执行:[email protected]

这个账户可能拥有一些跨租户权限。同一个文件还有以下配置值:

其中指定的元数据存储桶的名称没有任何随机后缀,暗示它可能包含跨租户的元数据。

Dataflow 的权限

Apigee 服务账户拥有对存储 Dataflow 管道执行的 JAR 文件的存储桶的写入权限。

将权限提升到 Dataflow 服务账户,该存储桶下载 Dataflow JAR 文件,使用诸如 Recaf 之类的 Java 修补程序对它们进行修补。恶意实现将简单地访问 Dataflow 计算实例的元数据端点,检索 Dataflow 服务账户的令牌,并将其上传到控制的远程服务器。

修补 JAR 文件后,我们可以使用 Apigee 服务账户覆盖存储桶中现有的文件:

影响

令牌可以访问跨租户的元数据存储桶,在存储桶的 tenantToTenantGroup 文件夹下的缓存目录中,许多不相关的 GCP 项目名称 + Apigee 环境名称,被分组在一起:

在 customFields 文件夹下,所有不同 Apigee 租户的所有自定义分析字段都是可访问的。这是其中一个租户的自定义分析字段示例:

存储桶也可以使用 Dataflow 服务账户访问。彻底检查后,这些存储桶包含了所有 Apigee 租户的每个请求的分析数据。

访问令牌是攻击者可能从这些日志中提取的最严重的信息。攻击者可能已经将它们窃取出来,并用它们来验证身份,并以任何 Apigee 租户的任何最终用户的身份发出请求。

结论

完整的攻击路径如下:

  1. 攻击者将 Apigee 指向 GKE 元数据端点,获取其自身租户项目中消息处理器的服务账户令牌。
  2. 攻击者利用 Apigee 服务账户的权限转储租户项目中的磁盘,发现了 Dataflow 暂存桶的名称。
  3. 攻击者将恶意 JAR 文件上传到 Dataflow 暂存桶。
  4. 然后向 PubSub 主题发送垃圾信息以给现有的 Dataflow 实例施加压力,诱导自动扩缩并配置新的 Dataflow 实例,这些新实例会拉取并执行恶意 JAR。
  5. 恶意 JAR 从元数据端点获取 Dataflow 服务账户的令牌,并将其上传到攻击者控制的 GCS 存储桶,从而绕过 Dataflow 的网络限制。
  6. 攻击者使用 Dataflow 服务账户的令牌访问跨租户存储桶,检索所有 Apigee 租户的分析信息,包括高度敏感的 OAuth 令牌,从而赋予他们冒充用户的能力。

原文地址 omeramiad.com


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:SecureNexusLab 《天堂之门:发现谷歌云 Apigee 中的跨租户漏洞》

评论:0   参与:  2