Tenable Research 发现了Google Cloud Platform(GCP)中一个现已修复的权限提升漏洞,该漏洞被称为 “Confused Composer”。此漏洞存在于 Cloud Composer 中,原本可能会让攻击者提升自己的权限。
核心问题在于,拥有 composer.environments.update 权限的身份可以编辑 Cloud Composer 环境,从而获取更高的权限。这种权限提升的目标是默认的 Cloud Build 服务账号。报告强调了该账号所拥有的重要权限,并指出它 “包括对 Cloud Build 本身的权限,以及对 Cloud Storage、Artifact Registry 等的权限”。
要理解这个漏洞,了解 Cloud Composer 和 Cloud Build 是什么非常重要。
Cloud Composer 是 Google Cloud Platform 中的一项托管工作流编排服务,基于 Apache Airflow,用于调度和自动化数据管道。
Cloud Build 是 Google Cloud Platform 中的一项托管持续集成与持续交付(CI/CD)服务,用于构建、测试和部署应用程序及容器。
该报告突出了这些服务之间的相互关系:“Cloud Composer 使用 Cloud Build 来构建软件包,而这恰恰是攻击者可能会滥用流程以提升权限的地方。”
Cloud Composer 允许用户安装自定义的 Python 包索引(PyPI)软件包。该漏洞源于在这个过程中 Composer 与 Cloud Build 之间的交互方式。
以下是攻击途径的概述:
1.用户指定一个自定义的 PyPI 软件包。
2.Composer 启动一个构建过程,并自动配置一个 Cloud Build 实例。
3.这个实例关联到默认的 Cloud Build 服务账号,该账号拥有广泛的权限。
拥有 composer.environments.update 权限的攻击者可以向 Composer 配置中注入恶意的 PyPI 软件包。
攻击者会将他们的恶意软件包添加到 Composer 中。Cloud Build 使用 Pip 来安装这个软件包。报告指出了一个关键细节:“事实证明,Pip 会自动运行软件包安装前和安装后的脚本。”
这使得攻击者能够在 Cloud Build 环境中执行任意代码。然后攻击者可以注入代码来访问 Cloud Build 的元数据 API。由于构建实例使用的是默认的 Cloud Build 服务账号,攻击者可以提取其令牌,并获得对一个高权限服务账号的控制权。
该报告强调了这个漏洞的严重性:“这种攻击特别危险,因为攻击者不需要直接访问 Composer 的服务账号或 Cloud Build 的服务账号,只需要具备更新 Composer 环境的能力即可。” 报告还阐明 “从默认的 Cloud Build 服务账号手中完全掌控项目是完全可行的”。
Google Cloud Platform 已经修复了这个漏洞。此前,“在执行 PyPI 模块安装的更新操作期间,Composer 使用的是 Cloud Build 服务账号”。现在,Composer 在进行这些安装时使用的是 Composer环境服务账号。
这个修复措施已经应用到新的 Composer 实例上,现有的实例计划在 2025 年 4 月前完成更新。
Google Cloud Platform 还更新了Composer 的文档,包括访问控制、安装 Python 依赖项以及访问 Airflow CLI等部分。
Tenable Research 指出,ConfusedComposer 是一类更广泛的攻击类型Jenga的一部分。这类攻击是 “混淆函数(Confused Function)” 漏洞的一个变种,并且 “利用了云服务权限方面那些有点隐蔽的云提供商配置错误,从而将权限提升到超出预期的访问级别”。
发表评论
您还未登录,请先登录。
登录