[博客翻译]在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月至今:我们检测到超过10万个包含类似恶意有效载荷的仓库,且这个数字还在增长。这种攻击方式有几个优势:

    • GitHub庞大无比,因此尽管恶意仓库数量众多,它们的相对比例仍然微不足道,因此难以检测。
    • 不再像以前那样涉及包管理器,因此不会提及明确的恶意包名,这就少了一个指标。
    • 目标仓库处于小众领域,且不太受欢迎,这使得不知情的开发者更容易犯错,克隆它们的恶意冒名顶替者。

Malicious-Package-Timeline.png

恶意软件从包管理器转移到源代码管理(SCM)的趋势

从我们在包管理器和SCM平台观察到的多起事件来看,这场活动从PyPI中的恶意包转移到GitHub恶意仓库,似乎反映了一个总体趋势。显然,现今,安全社区对包管理器给予了额外的关注,这是意料之中的事。

GitHub及类似平台上账户和仓库的自动化生成简便性,使用舒适的API和易于绕过的软速率限制,再加上庞大的仓库数量,使其成为悄悄感染软件供应链的理想目标。

这场活动,连同困扰包注册中心的依赖混淆活动,以及通过源代码管理器传播的普遍恶意代码,展示了尽管工具和可用的安全机制众多,软件供应链安全仍然非常脆弱。

如何防范仓库混淆

GitHub已被通知,大多数恶意仓库已被删除,但活动仍在继续,试图将恶意代码注入供应链的攻击日益普遍。尽管系统和网络层面有无数解决方案来捕获恶意软件,但供应链仍是恶意行为者巨大而有利可图的攻击面。

在Apiiro,我们构建了一个恶意代码检测系统,可以监控任何连接的代码库。然后,我们使用多种先进技术进行深度代码分析以检测攻击:基于LLM的代码分析、将代码解构成完整的执行流程图、复杂的启发式引擎、动态解码、解密和去混淆等,因此很难欺骗它。

如果不监控你的代码以查找注入的恶意有效载荷,你整个组织的安全就取决于诸如开发者能否不选择几乎相同的错误仓库、没有单一的CI/CD配置错误、拥有100%安全的第三方代码以及其他不可能的条件。这就是Apiiro深度应用安全姿态管理(ASPM)平台的用武之地,它超越了典型的漏洞检测和摄取,以揭示下一代软件供应链和应用风险。