GitHub 遭大规模攻击:约4800个账号被劫持,逾6.6万仓库被推送窃密代码

Mores的头像Mores
GitHub 遭大规模攻击:约4800个账号被劫持,逾6.6万仓库被推送窃密代码

安全研究人员警告,GitHub正遭遇一场大规模协同攻击:攻击者利用被盗的有效令牌,向超过6.6万个公开仓库推送名为WFX的窃密脚本,其中部分仓库属于《财富》100强企业等大型机构。

据Aikido Security统计,自周二以来,恶意工作流已确认运行并外泄凭据至少1970次,这一数字仅涵盖公开可见的案例,实际数量可能更高。攻击目前仍在持续。

攻击如何展开

这轮攻击的入口是窃取来的有效 GitHub 令牌。攻击者用这些令牌修改仓库已有的 GitHub Actions 工作流,或直接新增工作流,把名为 WFX 的恶意 shell 脚本注入其中。GitHub Actions 属于 CI/CD 流程,开发者每次提交代码变更时都会自动运行,恶意脚本因此获得在构建机器上执行的机会。

在注入之前,攻击者会先做一次试探:向每个目标仓库提交标题为 dependency audit notes 的拉取请求,内容本身不产生任何作用,只是用来确认该令牌是否具备写入仓库的权限。StepSecurity 的研究人员指出,这类拉取请求对每个目标仓库都完全相同,一旦出现,就说明发起它的账号已被攻陷,即使后续没有其他动作。

只有在令牌权限足够、且仓库配置允许工作流运行时,僵尸网络才会继续推送恶意工作流。Aikido Security 表示,约六分之一的试探请求发往账号本身并不拥有的仓库,说明令牌持有者拥有协作者或组织层面的访问权限。

确认外泄与波及范围

攻击仍在持续,攻击者至少动用了 4,800 个被劫持的 GitHub 账号,向超过 6.6 万个公开仓库推送窃密工作流。

被攻陷的账号中,有用户隶属于《财富》100 强中的大型机构,也有用户拥有对 Nextcloud、WebdriverIO、美国总务管理局以及法国 beta.gouv.fr 相关仓库的访问权限。研究人员说明,这些账号具备向上述组织仓库推送代码的权限,但这并不必然意味着恶意工作流已在这些仓库中运行。私有仓库同样受到影响,企业应检查 .github/workflows/ 目录下是否出现异常的工作流文件。

StepSecurity 在 nextcloud/docker、webdriverio/webdriverio、juejin-cn/repo-data、ipfs-shipyard/js-ipld-fixtures 等多个仓库中发现了恶意提交。Aikido 还提到,约 92% 的试探性拉取请求仍处于打开状态,说明多数仓库所有者尚未察觉。

WFX脚本窃取什么

WFX 是一个约 1,500 行的单一 shell 脚本,目标是构建机器上能找到的一切凭据:GitHub 密钥与令牌,AWS、Azure、Google Cloud 等云服务以及 OpenAI、Anthropic 等 AI 服务的密钥,shell 历史记录,以及各类 .env、.pem、.p12、.jks、.kdbx 和 kubeconfig 文件,还包括位于常见路径下的其他凭据文件。

除凭据外,脚本还会复制项目源代码、最新提交记录和近期的工作流产物。收集到的数据被打包成单个 gzip 压缩包外传。Aikido 指出,该恶意软件不只是抓取 CI 密钥,而是被设计用于横向转移:铸造云令牌、改写信任策略、创建联邦访问,使一份泄露的 GitHub 凭据变成进入受害者云环境的立足点。

攻击范围之广已波及软件供应链。恶意脚本已经出现在软件包中,数十个被攻陷的用户似乎在其他生态系统中发布软件包。

隐蔽与持久化手法

WFX 有多种部署方式:最常见的是修改已有工作流,也可以向工作流调用的现有 shell 脚本追加内容、新增工作流,或添加隐藏的辅助脚本。GitHub 搜索显示,带有 ci: refresh build cache 提交信息的提交已超过 28,000 个,攻击者用这条信息来更新已有工作流。以 nextcloud/docker 仓库为例,窃密代码被追加到该仓库自身工作流所调用的 update.sh 脚本中。

为掩盖痕迹,工作流一旦启动,攻击者就会推送一次回滚提交(信息为 ci: restore,有时随后还有 ci: cleanup),并删除工作流运行记录及其日志。

在持久化方面,该恶意软件具备三种机制。攻击者还在不断调整工具,较新版本已开始通过 Telegram 而非攻击者控制的 IP 地址回传窃得的数据。StepSecurity 还发现,部分用于攻击的失窃令牌是签发给 Fly.io GitHub App 的。研究人员解释,当用户把 GitHub 账号连接到 Fly.io 时,GitHub 会向该应用签发令牌,攻击者利用这些令牌,就能以该应用乃至该用户的身份行事。

开发者应如何应对

研究人员建议开发者排查失陷迹象:检查仓库工作流是否被改动或新增,留意标题为 dependency audit notes 的拉取请求,以及 ci: refresh build cache、ci: restore、ci: cleanup 等提交信息。发现异常后应保护受影响账号,并撤销任何可能已泄露的凭据和密钥。

StepSecurity 已在其公告中发布详细处置指引。由于私有仓库同样在受影响范围内,企业需要主动检查 .github/workflows/ 目录,而不能只依赖公开可见的统计数字来判断自身是否被波及。

要点

  • 攻击者使用至少4800个被劫持的GitHub账号
  • 恶意工作流被推送至超过6.6万个公开仓库
  • 已确认约1970起凭据外泄的公开案例
  • WFX脚本约1500行,可窃取云与AI服务密钥
  • 部分被盗令牌由Fly.io GitHub App签发

原文链接

更多快讯

全部快讯
  1. CSC Telecom 数据库暴露1.25亿条短信,波及 Swedbank 与 SEB
  2. Windows CLFS 曝 SignDrop 零日漏洞,可提权至 SYSTEM 且暂无补丁
  3. 谷歌 Chrome 修复多个安全漏洞,含一个已遭利用的零日漏洞
  4. 俄统计局遭黑客攻击,泄露死亡证明显示逾40万人与战争有关
  5. 安全公司发现逾3.5万个 Grok 应用无需登录即可访问,SpaceX 与特斯拉数据外泄

0 条回复

A文章作者M管理员
上传评论图片

暂无讨论,说说你的看法吧