GitHub 恶意软件活动:10,000 个仓库正在分发木马恶意软件

10,000 个 GitHub 仓库被用于分发木马恶意软件

一名安全研究人员发现了一个在 GitHub 上进行的大规模恶意软件分发活动,涉及约 10,000 个仓库。这些仓库并非分叉(forks),而是现有项目的独立克隆版本,旨在模仿合法软件以欺骗用户通过 README 文件中链接的 zip 压缩包下载木马恶意软件。

恶意软件分发模式

该活动采用了一种复杂的模式来绕过安全检测并提高在搜索引擎结果中的可见性。这些恶意仓库的已识别特征包括:

  • 克隆内容: 仓库复制了合法项目的全部提交(commits)和贡献者,以建立信任并使其看起来像是已建立的项目。
  • 频繁的提交覆盖: 攻击者每隔几小时就会删除并推送(push)相同的提交。该提交通常仅更新 README.md 文件,其中包含一个指向恶意 zip 压缩包的链接。
  • SEO 操纵: 通过克隆新的或低流量的仓库并将其添加到热门标签(tags)中,攻击者确保这些虚假项目出现在搜索引擎(如 Bing)和 GitHub 标签搜索结果的顶部。
  • 一致的命名: 许多恶意提交的标题为 "Update README.md"。

恶意软件有效载荷组成

每个恶意 zip 压缩包通常包含四个特定文件:

  1. Application.cmdLauncher.cmd
  2. loader.exeluajit.exe(或其他可执行文件名称)
  3. 一个随机命名的 .cso.txt 文件
  4. lua51.dll

虽然向 VirusTotal 提交直接的压缩包链接可能会返回零检出,但提交实际的 zip 文件则会揭示木马的存在。

检测方法论

由于 GitHub 的 API 每小时限制为 5,000 次请求,研究人员使用了 gharchive 来下载 GitHub 事件存档。检测脚本过滤了每 24 小时内更新 1 到 24 次的仓库,专门寻找那些仅修改了 README 且提交是由用户而非机器人(bot)推送的仓库。

这一过程在五天内将 1,600 万次提交推送从 40,000 个候选仓库中筛选出来,最终识别出 10,000 个符合精确恶意模式的仓库。

技术分析与假设

潜在目标

对恶意软件的分析表明,其主要目标是加密货币窃取。在 VirusTotal 上报告 "Network Communication" 日志的社区成员注意到,该恶意软件会发起针对 IP 信息查询的 GET 请求,针对 Polygon RPC 节点(drpc)的 POST 请求,以及针对攻击者命令与控制(C2)服务器的 POST 请求。

规避策略

研究人员假设,频繁覆盖提交是一种绕过 GitHub 安全算法的策略。通过维持一个虚假的贡献者和提交历史,攻击者营造了一种合法性的假象,从而阻碍用户审计代码或验证二进制文件。

社区洞察与反驳观点

技术用户之间的讨论突出了 GitHub 软件分发方式中的一些系统性漏洞:

"开源软件无法进行任何邪恶行为的原则——仅仅因为源代码是公开的——这一原则并未能经受住考验……没有人有时间去检查代码,更不用说确保它与二进制文件匹配了。"

其他用户指出,这并非孤立事件,并引用了涉及 "SmartLoader" 和 "StealC" 的先前活动,它们也使用了类似的克隆技术来分发恶意软件。

一些用户还指出,与 Google 相比, Bing 可能更容易在第一页返回这些网络钓鱼和域名抢注(typo-squatting)结果。

当前状态

在研究结果公布并分享了仓库列表后,GitHub 已经开始删除已识别的恶意仓库。研究人员已通过一个名为 "Git Malware Finder" 的公开 GitHub 仓库提供了检测脚本和受影响仓库的完整列表。

Sources