我在 GitHub 上发现了一万个分发木马的恶意仓库
文章摘要
作者在发现自己的仓库被克隆、并被偷偷塞进可疑 zip 压缩包链接后,顺藤摸瓜揭开了一场规模庞大的 GitHub 恶意软件分发活动。他向 GitHub 官方反馈后,对方花了一个多月才回应,且只删除了被点名的少数仓库。
为弄清规模,作者编写脚本分析 GitHub 的事件归档数据:在五天内扫描了约 1600 万条提交,筛选出那些频繁更新、却只改动 README 的仓库。最终在约 4 万个高活跃仓库中发现约 1 万个为恶意仓库,占比约 25%。
攻击者的手法相当老练:
- 完整克隆合法仓库,连同提交历史和贡献者信息一并保留,以伪装可信度。
- 每隔几小时就用 “Update README.md” 这种通用消息重写提交,可能借此绕过 GitHub 的安全检测,并让仓库长期排在”最近更新”列表顶部。
- 通过精心设计的命名和时机,让仓库出现在冷门搜索词的结果中。
- 把仓库分散到不同账号下创建,以规避模式识别。
zip 压缩包内含 loader.exe 等可执行文件。有趣的是,单个文件在 VirusTotal 上初始检测为零,但整包却会触发木马告警。作者的核心结论是:GitHub 这种”被动响应、只删举报”的机制在面对大规模活动时几乎失效,缺乏主动扫描能力意味着这类骗局多年来始终未被根除。
HN 评论精华
guhcampos(824 赞):推测这些仓库的目标其实是 AI 智能体而非人类——它们被设计成在智能体的搜索结果中出现;并猜测时机与 2025 年大选、以及盗号用于社交媒体机器人网络有关。
RoadieRoller:解释了频繁提交推送的策略,就是为了出现在”最近更新”列表顶端,诱导用户克隆恶意版本而非合法版本。
jp0001:将样本上传到恶意软件分析工具,发现其与 Disco 木马家族有关联,代码相似度达 50%。
danso:引用了迪士尼工程师的案例——下载的 GitHub AI 工具中含木马,让攻击者获取了存放在密码管理器中的凭据和 MFA 验证码。
mustaphah:指出即便举报了恶意仓库,GitHub 的执法力度也极小;并描述了识别特征:全新账号、人为刷高的星标、近期创建日期等。
Jimmc414:分享了自己遇到的抢名/克隆经历——合法开源项目被劫持或克隆后注入恶意 URL,重定向到不明站点。