GitHub遭遇严重供应链“投毒”攻击

近日,有黑客针对 Discord Top.gg 的 GitHub 账户发起了供应链攻击,此次攻击导致账户密码、凭证和其他敏感信息被盗,同时也影响到了大量开发人员。

Checkmarx 在一份技术报告中提到,黑客在这次攻击中使用了多种TTP,其中包括窃取浏览器cookie接管账户、通过验证提交恶意代码、建立自定义Python镜像,以及向PyPI注册表发布恶意软件包等。

Checkmarx 指出,黑客对该平台频繁发起攻击的主要目的很可能是窃取数据并通过出售窃取的信息实现盈利。

劫持 top.gg 账户

事实上,这些年黑客一直在使用各种战术发起攻击,包括劫持 GitHub 账户、分发恶意 Python 软件包、使用伪造的 Python 基础架构和社交工程等等。

这些软件包类似于流行的开源工具,其包装的十分“诱人”的描述使它们更有可能在搜索引擎结果中排名靠前。最近的一次上传是今年 3 月名为 "yocolor "的软件包。

活动中使用的软件包(图源:Checkmarx)

2024 年年初,攻击者在 "files[.]pypihosted[.]org "建立了一个虚假的 Python 软件包,PyPI 软件包的原型文件就存放在 "files.pythonhosted.org"。

这个虚假软件包被用来托管中毒版本的合法软件包,例如流行的 "colorama "软件包的篡改版本,目的是诱骗用户和开发系统使用这个恶意源。

上传到 PyPI 的恶意软件包是入侵系统的初始载体,一旦用户系统被入侵,或者攻击者劫持了有权限的 GitHub 账户,他们就会修改项目文件以指向虚假软件包托管的依赖项。

Checkmarx 提到,近日攻击者入侵了 top.gg 维护者 "editor-syntax "的账户,该账户在平台的 GitHub 资源库中拥有大量写入访问权限。

Discord 上关于被黑账户的讨论 (图源:Checkmarx)

攻击者使用该账户对 Top.gg 的 python-sdk 版本库进行恶意提交,如添加对中毒版本 "colorama "的依赖,并存储其他恶意版本库,以提高其知名度和可信度。

恶意提交修改 requirements.txt 文件 (图源:Checkmarx)

一旦恶意 Python 代码被执行,它就会启动下一阶段,从远程服务器下载一个小型加载器或滴注脚本,以加密形式获取最终有效载荷。

恶意软件通过修改 Windows 注册表,在重启之间在被入侵机器上建立持久性。

修改注册表以获得持久性(图源:Checkmarx)

该恶意软件的数据窃取功能可归纳为以下几点:

  • 针对 Opera、Chrome、Brave、Vivaldi、Yandex 和 Edge 中的浏览器数据,以窃取 cookie、自动填充、浏览历史记录、书签、信用卡详细信息和登录凭据。
  • 搜索与 Discord 相关的目录以解密和窃取 Discord 令牌,从而可能获得对帐户的未经授权的访问。
  • 通过搜索 ZIP 格式的钱包文件并将其上传到攻击者的服务器,从各种加密货币钱包中窃取。
  • 试图窃取 Telegram 会话数据以未经授权访问帐户和通信。
  • 包括一个文件窃取程序组件,根据特定关键字针对桌面、下载、文档和最近打开的文件上的文件。
  • 利用被盗的 Instagram 会话令牌通过 Instagram API 检索帐户详细信息。
  • 捕获击键并保存它们,可能会暴露密码和敏感信息。此数据将上传到攻击者的服务器。
  • 利用匿名文件共享服务(例如 GoFile、Anonfiles)和具有唯一标识符(硬件 ID、IP 地址)的 HTTP 请求等方法来跟踪被盗数据并将其上传到攻击者的服务器。

攻击概述(图源:Checkmarx)

据 Checkmarx 研究人员称,尽管有这些复杂的策略,但一些警惕的 Top.gg 社区成员注意到了恶意活动并报告了它,这导致 Cloudflare 删除了滥用的域名。

虽然受此影响的用户数量目前尚不清楚,但 Checkmarx 的报告强调了开源供应链的风险以及开发人员检查其构建模块安全性的重要性。

研究人员认为,IT 安全专业人员应定期监控和审核新代码项目,企业应定期对开发人员开展供应链攻击风险的教育和意识培训。

除了此次“投毒”事件外,最近还出现了其他软件供应链安全问题,比如 3 月早些时候有供应商对以色列大学发起了供应链攻击,以及 JetBrains TeamCity 软件开发平台管理器云版本受到攻击,还有去年 9 月份数百个 GitHub 存储库被黑客入侵。可见机器学习模型的存储库(如 Hugging Face)为威胁行为者提供了将恶意代码注入开发环境的机会,类似于开源存储库 npm 和 PyPI。