[博客翻译]在GitHub上发现超过10万个受感染的Repos


原文地址:https://apiiro.com/blog/malicious-code-campaign-github-repo-confusion-attack/


近日,我们的安全研究与数据科学团队发现,自去年中旬以来,恶意仓库混淆攻击活动出现复苏,且规模空前。此次攻击影响超过10万个GitHub仓库(预计还有更多),当开发者不知情地使用外表看起来与知名且可信的仓库相似、实则植入恶意代码的仓库时,便会受到攻击。

什么是仓库混淆攻击?

与依赖混淆攻击类似,恶意行为者诱使目标下载他们的恶意版本,而非真正的版本。但依赖混淆攻击利用的是包管理器的工作机制,而仓库混淆攻击则简单依赖于人类错误选择恶意版本的可能性,有时还伴随社交工程技巧的使用。

在本案中,为了最大化感染机会,恶意行为者在GitHub上大量发布恶意仓库,步骤如下:

  1. 克隆现有仓库(例如:TwitterFollowBot、WhatsappBOT、discord-boost-tool、Twitch-Follow-Bot等数百个)。
  2. 将恶意的恶意软件加载器注入其中。
  3. 将它们上传回GitHub,并使用相同的名称。
  4. 自动化地将每个仓库分叉数千次。
  5. 通过论坛、Discord等渠道在网络上秘密推广它们。

使用恶意仓库会发生什么?

一旦开发者不知情地使用了任何恶意仓库,隐藏的有效载荷会展开七层混淆,其中还包括拉取恶意Python代码,后续执行二进制可执行文件。恶意代码(主要是BlackCap-Grabber的修改版本)随后会搜集不同应用的登录凭证、浏览器密码和cookies,以及其他机密数据。然后,它将数据发送回恶意行为者的C&C(命令与控制)服务器,并执行一系列其他恶意活动。

GitHub上的自动化影响

GitHub快速移除了大多数被分叉的恶意仓库,这是对自动化的识别。然而,自动化检测似乎遗漏了许多仓库,手动上传的仓库则存活下来。由于整个攻击链条在大规模上主要是自动化的,即使只有1%的仓库存活,也仍然有成千上万的恶意仓库。你可以通过在GitHub上简单搜索以下内容自行查看当前波动的一小部分:🔥 2024 language:python。

image-12.png

算上被移除的仓库,仓库数量达到了数百万。通常,移除在上传几小时后发生,因此记录它们是一项挑战。我们知道移除是自动化的,因为许多原始仓库仍然存在,主要针对的是分叉炸弹。例如,在此你可以看到概要中出现了数千个分叉,但详情中一个也没有。

由于这次行动规模庞大,当一些天真的用户时不时地分叉恶意仓库而不自知,他们正在传播恶意软件时,这场活动产生了某种二阶社交工程网络效应。在如此依赖自动化的情况下,看到它通过人类传播,颇具讽刺意味。

活动何时开始?

以下是这场恶意活动的简要历史:

  • 2023年5月:正如Phylum最初报告的,几个恶意包被上传到PyPI,包含当前有效载荷的早期部分。这些包是通过种植在GitHub流行仓库分叉中的‘os.system(“pip install package”)’调用传播的,例如‘chatgpt-api’。
  • 2023年7月至8月:数个恶意仓库被上传到GitHub,这次直接传递有效载荷,而不是通过导入PyPI包。这是在PyPI移除了恶意包,并且安全社区加大了关注之后的事情。Trend Micro的Aliakbar Zahravi和Peter Girnus发表了很棒的技术分析。
  • 2023年11月至今:我们检测到超过1