Ultralytics AI库的供应链被入侵,导致出现木马版本

GitHub Actions失控攻击:恶意代码注入Python库

关键要点

  • 攻击者利用GitHub Actions中的脚本注入漏洞,在自动构建过程中注入恶意代码,导致流行的Python库Ultralytics YOLO的包被毒化。
  • 注入的恶意代码安装了加密货币挖矿恶意软件,但攻击者可能会投放任何类型的恶意软件。
  • 尽管Ultralytics开发者迅速响应,但初次发布的修复版本仍然包含恶意代码,最终在同一天发布了安全版本。
  • 此次事件显示了GitHub Actions安全管理的脆弱性,以及需要更加谨慎地处理开源项目的开发流程。

攻击背景

攻击者通过入侵流行的机器学习模型开发库UltralyticsYOLO在官方Python包索引PyPI上发布的包,导致恶意代码的广泛传播。根据ReversingLabs的研究,这些攻击者利用一个已知的GitHubActions漏洞,在自动构建过程中注入了恶意代码,从而绕过了常规的代码审查流程。因此,恶意代码只存在于推送至PyPI的包中,而不在GitHub的代码仓库中。

被篡改的Ultralytics版本(8.3.41)于12月4日发布,Ultralytics的开发者在12月5日被警告并尝试推出新版本(8.3.42)以解决此问题,但由于他们最初并不理解漏洞来源,这个版本也包含了恶意代码。最终,12月5日发布了一个干净且安全的版本(8.3.43)。

版本发布日期状态
8.3.4112月4日恶意篡改包
8.3.4212月5日包含恶意代码的修复
8.3.4312月5日安全版

安全提示与风险

UltralyticsYOLO并非小项目,GitHub上拥有超过30,000个星和6,000多个分支,PyPI上的下载量接近6,000万次。这次事件揭示了GitHubActions在处理开源项目时的潜在风险,开发者应当谨慎选择允许哪些操作和触发条件。

安全研究员Adnan Khan曾多次。在八月份,他首次,该漏洞可能导致工作流上下文中的任意代码执行,并随后得到了修复。然而,后续又重新引入了此漏洞。

在Khan的,他提到攻击者所利用的注入点是在ultralytics/actions@c1365ce中引入的,而该版本发布仅为Ultralytics发布首个漏洞公告后十天。

这些攻击者似乎还使用了,通过GitHubActions持久化他们的修改,Khan早在五月份就对此作了。

根据ReversingLabs对恶意代码的分析,攻击者修改了两个文件:downloads.py 和 model.py。注入到model.py中的代码会检查包部署的机器类型,以下载针对该平台和CPU架构的恶意载荷。执行载荷下载的恶意代码储存在downloads.py。

“根据当前信息,RL研究团队认为所服务的恶意载荷只是一个XMRig挖矿程序,该恶意功能旨在进行加密货币挖矿,”ReversingLabs的研究人员表示。“但是可以想象,如果威胁行为者选择植入更具攻击性的恶意软件,例如后门或远程访问木马(RATs),

Leave a Reply

Required fields are marked *