Praetorian 安全研究员 John Stawinski 表示,新披露的一类 CI/CD 攻击可能允许攻击者将恶意代码注入 PyTorch 存储库,从而导致大规模供应链受损。
该攻击方法最初于 2023 年 12 月详细说明,其目标是附加了自托管运行程序的 GitHub 存储库,并允许威胁参与者无需批准即可执行任意代码。
简而言之,攻击者可以使用分叉拉取请求成为附加了自托管运行器的存储库的贡献者,然后能够在运行器上运行任何 GitHub 工作流程。如果运行程序是使用默认步骤配置的,则它是非短暂的,可以实现持久访问。
该攻击流程由 Adnan Khan 发现,他将其用于攻击 GitHub 自己的 actions/runner-images 存储库,并获得了 20,000 美元的错误赏金奖励。Khan 和 Stawinski 随后确定了数千个其他容易受到攻击的 GitHub 存储库。
Stawinski 解释说,机器学习 (ML) 框架 PyTorch是他们的首要目标之一,因为它很受欢迎。PyTorch 是 Meta AI 的子项目,现在是 Linux 基金会的一部分,用于各种流行的深度学习模型。
按照允许他们访问 GitHub 存储库的相同步骤,研究人员发现 PyTorch 使用自托管运行程序,这些运行程序不需要工作流批准来处理以前贡献者的 fork pull 请求,这使他们能够发动攻击。
一旦获得访问权限,研究人员就在易受攻击的 PyTorch 运行器上安装了自己的自托管运行器,这使他们能够保持持久性而不会引起怀疑。
然而,他们更感兴趣的是他们可以执行的攻击后活动,希望广泛的访问级别能够引起人们对攻击的关注并引发迅速的响应。
研究人员能够提取 PyTorch 使用的 GitHub 秘密,包括多组 AWS 秘密访问密钥和 GitHub 个人访问令牌 (PAT),这些可以允许他们执行各种操作。
“我们的利用路径导致能够将恶意 PyTorch 版本上传到 GitHub、将版本上传到 AWS、可能向主存储库分支添加代码、后门 PyTorch 依赖项 - 这样的例子不胜枚举,”Stawinski 说。
研究人员发现,他们可以触发一个工作流程,使用受损的 GitHub PAT 来对代码托管平台进行身份验证,并且这些机密“可以访问 PyTorch 组织内超过 93 个存储库,包括许多私人存储库,以及多个存储库的管理访问权限”。
使用这些泄露的秘密,攻击者可以修改版本,直接将代码添加到 PyTorch 主分支,或设置其他路径来破坏供应链。
“如果威胁行为者想要更加隐蔽,他们可以将恶意代码添加到 PyTorch 组织内 PyTorch 使用的其他私人或公共存储库之一。或者他们可以将代码偷运到功能分支中,或者窃取更多秘密,或者使用任意数量的创造性技术来危害 PyTorch 供应链。”Stawinski 指出。
2023 年 8 月,研究人员向 Meta 提交了一份漏洞报告,两个月后 Meta 通知他们该问题已得到缓解。在多次来回讨论修复问题后,Meta 表示针对这一发现发放了 5,000 美元的错误赏金。
针对此攻击的缓解措施与适用于 GitHub Actions 链的措施相同:使用隔离的、临时的自托管运行器,并要求批准来自外部贡献者的所有拉取请求。
“围绕这些攻击路径的问题并不是 PyTorch 所独有的。它们并不是 ML 存储库甚至 GitHub 所独有的。正如供应链攻击逐年增加所表明的那样,威胁行为者已开始流行起来。”斯塔文斯基总结道。
原文始发于微信公众号(河南等级保护测评):新型 CI/CD 攻击可能导致 PyTorch 供应链受损
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论