聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
该问题被命名为 “CloudImposer”,本可导致攻击者劫持在谷歌 Cloud Composer 管道协同工具每个实例上预安装的一个内部软件依赖。GCP的 App Engine 和 Cloud Functions 服务也受影响。
Tenable 公司提到,该问题的根因在于在 Python 中使用 “-extra-index-url” 参数,要求应用除了特定的私钥注册表外,查找公开钥 (PyPI) 中的私密依赖。
该公司指出,“这一行为导致攻击者执行依赖混淆攻击:上传与合法包名称相同的恶意包,劫持包安装流程。”攻击者还可利用其它情况如 “pip”,在遇到名称相同的的两个程序包时,优先处理版本号更高的程序包。
Cloud Composer 的情况也并不乐观。Tenable 公司发现,当指令要求仅安装某个版本的程序包时,如果使用了 –extra-index-url 参数,则pip会优先公开注册表。Python Packaging 和 GCP 文档都建议在非公开仓库中托管依赖时使用 “-extra-index-url” 参数,而开发人员对包管理系统的信任易引发依赖混淆。谷歌在服务器上安装非公开程序包时本身就使用了该函数,发现所引用的包不存在于公开注册表中时,Tenable 创建了名称相同的包,将其上传到一个公开仓库并启动了针对 Cloud Composer 的依赖混淆攻击。而Cloud Composer 就是谷歌管理服务版本的 Apache Airflow。
成功验证该 PoC 导致在谷歌内部服务器上执行代码后,Tenable 公司将该 CloudImposer 漏洞告知谷歌,后者将其判为RCE漏洞并立即修复。谷歌还更新了GCP文档,删除了使用 –extra-index-url 参数的建议,并以 –index-url 参数取而代之,后者仅检查所定义注册表中的程序包,从而减小了依赖混淆攻击的风险。
Tenable 公司还将这些问题告知 Python 软件基金会,后者表示虽然在2023年2月收到了关于缓解依赖混淆攻击风险的论文,但并未接受或完成该实现。
Tenable 公司在2024美国黑帽大会上展示了自己的研究成果,说明了CloudImposer 类的漏洞如何可被用于影响云互联服务。和叠叠高游戏一样,云提供商开始在其它服务的基础上构建其服务。这意味着一旦有服务遭攻击,那么其它服务也会受影响。
https://www.securityweek.com/dependency-confusion-could-have-led-to-rce-in-google-cloud-platform/
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~