开发者发现自己的仓库被克隆并植入木马链接,后续数据分析揭示了上万个类似案例仍在活跃。
事件的起点颇为偶然:一位开发者发现自己的GitHub仓库被人原样克隆,所有提交记录都在,贡献者名单里甚至还有他的名字,但克隆版的README文件中被悄悄添加了一个指向zip压缩包的下载链接。更诡异的是,这个克隆仓库每隔几小时就删除前一次提交记录,又推送一个几乎完全相同的新版本,唯一的变化只有README中的链接地址。即使他向GitHub官方举报,平台用了整整两个月才做出处理——先是一个月没有任何回应,他甚至在GitHub社区开了一个帖子求助,结果只有三个人用AI生成的废话回复他。
这位开发者并未止步。他利用gharchive公开归档数据编写脚本对全平台展开筛查。仅过去5天平台就产生了1600万次提交推送记录,从中发现约3000个仓库每隔数小时就更新一次。经过多轮筛选条件的优化——排除机器人提交、要求贡献者多于一人、最近一次提交与上一次之间需间隔超过一个月——最初只匹配到14个可疑仓库,这让他一度怀疑整个现象的规模。但他很快发现"每隔数小时更新一次"这个过滤条件过于粗糙,这些仓库的更新频率其实并不稳定。将条件调整为"每24小时内更新1到24次"后,匹配结果激增到4万个仓库,其中1万个完全符合恶意行为模式——整整占了符合该更新频率仓库的25%。
每一个仓库都携带完全相同的压缩包结构:Application.cmd或Launcher.cmd脚本、loader.exe(有时伪装成luajit.exe)执行文件、随机命名的.cso文件以及lua51.dll动态链接库。在VirusTotal检测平台上,如果只提交压缩包链接,检出结果为零个病毒,但一旦下载并直接提交zip压缩包文件,其中的木马就会被识别出来。所有恶意提交的提交信息无一例外写着"Update README.md",高度统一。黑客专门克隆刚创建不久的新仓库,这些仓库在低流量搜索词下容易排在搜索引擎结果前列,随后被添加到GitHub热门标签中以获得更多索引曝光,并借助原仓库完整的提交历史和贡献者名单骗取访问者的信任。2026年4月已有安全研究者发现了109个类似仓库并详细分析了木马的工作机制,而Reddit上最早在2025年2月就有人提到过这一现象,说明整场攻击已持续了超过一年半。更令人不安的是,作者发表文章后GitHub只是批量删除了他列出的仓库,但当他再次运行脚本发现新一批仓库并将它们加入文章时,GitHub并未跟进删除。他因此得出结论:GitHub只删除有人举报的仓库,并不会主动在全平台范围搜索排查同类恶意模式。
原文:https://orchidfiles.com/github-repositories-distributing-malware/