文章总结: 本文披露了谷歌云Apigee中名为GatewayToHeaven(CVE-2025-13292)的跨租户漏洞。攻击者通过利用Apigee元数据端点获取服务账户令牌,结合Dataflow管道执行恶意JAR文件实现权限提升,最终突破租户隔离访问其他企业的敏感分析数据和OAuth令牌,构成严重数据泄露风险。 综合评分: 92 文章分类: 云安全,漏洞分析,威胁情报,数据安全,安全大事件
天堂之门:发现谷歌云 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 命令的输出:
转储磁盘的内容,需要执行以下操作:
- 创建磁盘的快照。
- 将其迁移到控制下的另一个项目。
- 在项目中从该快照重建一个新磁盘。
- 创建一个计算实例并将磁盘附加到它。
- 挂载磁盘并查看其内容。
通过浏览转储文件中的所有日志和配置文件探索, boot-json.log 的文件,其中包含有关分析计算实例行为的日志:
- 租户项目配置了 Dataflow,并且此磁盘属于其某个计算实例。Dataflow是一个谷歌云服务,提供统一的大规模流和批量数据处理。
- 初始化时,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 租户的任何最终用户的身份发出请求。
结论
完整的攻击路径如下:
- 攻击者将 Apigee 指向 GKE 元数据端点,获取其自身租户项目中消息处理器的服务账户令牌。
- 攻击者利用 Apigee 服务账户的权限转储租户项目中的磁盘,发现了 Dataflow 暂存桶的名称。
- 攻击者将恶意 JAR 文件上传到 Dataflow 暂存桶。
- 然后向 PubSub 主题发送垃圾信息以给现有的 Dataflow 实例施加压力,诱导自动扩缩并配置新的 Dataflow 实例,这些新实例会拉取并执行恶意 JAR。
- 恶意 JAR 从元数据端点获取 Dataflow 服务账户的令牌,并将其上传到攻击者控制的 GCS 存储桶,从而绕过 Dataflow 的网络限制。
- 攻击者使用 Dataflow 服务账户的令牌访问跨租户存储桶,检索所有 Apigee 租户的分析信息,包括高度敏感的 OAuth 令牌,从而赋予他们冒充用户的能力。
原文地址 omeramiad.com
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:SecureNexusLab 《天堂之门:发现谷歌云 Apigee 中的跨租户漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论