事件概要
自北京时间 2024.12.4 晚间6点起, GitHub 上不断出现“幽灵仓库”,仓库中没有任何代码,只有诱导性的病毒文件。当天,他们成为了 GitHub 上 star 增速最快的仓库。超过 180 个虚假僵尸账户正在传播病毒,等待不幸者上钩。
而这一切被一位中国开发者--我收在眼底。经过几天的探测寻找,疑似找到了攻击者的真身。
事件经过
别人编写了一套开源程序,用于寻找当下最早期的潜力种子项目。 源码 https://github.com/chmod777john/github-hunter
我曾经用它找到过一个很好的开源项目 MagicQuill ,在其创建还不足24小时的时候我就检测到它了。
自此我大受鼓舞,决定每天都用我的算法搜寻一下Github上最新创建的仓库中,看看哪些是有潜力的。这样我可以领先于官方的Github Trending榜,也能比绝大部分科技媒体更早地发现好项目。
在 12.4 的搜寻过程中,我发现了一批不太一样的仓库。
这里面的 is None 代表仓库有大量 star 记录,后来却被删库。为何有如此大量的高赞仓库会被删除呢?
期初我没在意,而在一天后,这些仓库再次出现。
就好像幽灵一样,建仓->取得高赞->删库->再次创建。
罪证
这些仓库点进去一看,都是同一种风格: 声称自己是某个游戏的外挂或者 PhotoShop 破解版之类的,引导用户下载并且打开他的 exe 文件。
基本可以确定是钓鱼仓库了。所有这些仓库创建时间都非常相近,大约就是十多小时之前,而且短时间内积累到几百 star ,其背后必有高人。
追凶
这些攻击者是谁? 我决定一探究竟。
历时4年的攻击
首先查看是谁给这些仓库点了赞,
我本以为大多是最新创建的机器人账号。
出乎意料的是,这些账号的加入时间并不短。有些账号甚至是 2020 年就加入 Github 了。
4年的老号可不是说弄就弄的,如果这号是他自己的,那可真是下了血本,一个号养4年就为了这一天?
如果这号是他在黑市上买的,那说明4年前就有人开始批量养小号,也是一条很可观的产业链了。(创业都不一定能创4年呢)
无论这些号是攻击者自己养的还是在黑市上买的,成本都不低。
一片空白
我开始逐个账户打开查看,坐实了一件事:这些仓库都是一伙儿的!
这个人点赞过的所有仓库,都是刚刚说的幽灵仓库!
不过个人资料卡上完全没有任何痕迹。 没有粉丝,也没有关注的人,这让我们无从下手,简直一片空白。
漫漫长路
180 多个账号,我真的逐个点开来看了。其中大部分的都是纯粹的空白账户,只用来点赞。但仍然有一些是附带个人资料的。
这个账号甚至附带了个人网页和 Instagram 。
不过凡事讲究双向证明。万一这个账号是冒用小哥的信息呢? 只能将其列为怀疑对象。
峰回路转
攻击者账户 follow 了谁,并不重要,因为攻击者可以冒用他人信息。真正有用的线索,应该看谁 follow 了攻击者。
踏破铁鞋无觅处,我找到了一个活人账号。
有 5 个人 follow 了这个账号!而且看他的 star 历史,可以明确他是攻击者之一。
而且该账号有真实的 Github 代码提交记录(记住这个叫 SimpleBot 的仓库)
我们来看看是谁 follow 了这个 G4tito
这两位都是大人物。看看他们的 Github 主页长啥样:
BrunoSobrino 和 elrebelde21 这两位大 V, 曾经合作过一个开源项目。
和明确攻击者做的项目是同名的!
至此,逻辑链如下:
可见 BrunoSobrino 和 elrebelde21 这两位大牛,跟攻击者 G4tito 可能是有联系的。
其实到这里基本破案了。操纵 180 多个账号是短时间内点赞和创建仓库,批量生成内容,不太可能用人工完成,应该是用 GitHub API 自动化做的。这两位大牛和明确攻击者,做的项目都是那种 WhatsAPP 机器人,技术栈也相当吻合了。
2024.12.7 凌晨 6:11 更新
经评论区大佬提点,找到一个疑似线索
地址
https://github.com/BrunoSobrino/ShadowBotV3
GhostArchive 备份地址 https://ghostarchive.org/archive/1EZ9e
证据
我知道曝光之后,他们肯定会删库的,因此我已经提前把所有网页都备份到 GhostArchive 了。
我挖掘到的恶意仓库列表,也全都放在了区块链上,形成铁证。
各位看官不必信任我,请直接去查看区块链。所有记录都在里面。
https://viewblock.io/arweave/tx/Cppr-Bus0TxC6_zqD-sJitVz4Ne3sR0noJknsuyhZ4Q
宣传
我知道一些媒体朋友会见到这篇文章,我希望你们帮我推广。
我只是一个不起眼的小人物,这个故事不推广的话,就只能烂在我的肚子里。
我认为这是个好故事。中国程序小哥,单枪匹马,通过大数据筛查的方式,破获了一起 GitHub 恶意软件钓鱼事件,涉及的大V在 Github 上有接近数百关注者,获得过几千 star 。同时涉及有多达 180 个虚假账号,长达 4 年的活动。 这些 buff 叠在一起,相当有故事性了。
更重要的是,这件“真人真事” 是可以被检验的。所有的记录都在区块链上,涉事人删库也没用。
所有人都可以重走一遍我的侦查之旅,仔细检验每个网页备份。
把这个故事发扬出去,能有什么好处:
我可以用区块链私钥签署一条消息,内容是“xx媒体慧眼识珠,是第一批愿意帮助我推广这个故事的人” 。消息一旦签署上链,所有人都可以校验,而且不可篡改,如同铁证,连我自己也无法反悔。
凭借这样一条消息,我越火,你的含金量越高。
我不太会讲故事,但上面都是真事儿,每个细节都可以检查。
如果你觉得这个故事可以帮我讲好的话,联系我。
事件描述:
chmod777john/ghost-reposgithub.com/chmod777john/ghost-repos
我发现这个攻击事件所用的工具:
github-hunter/index.ipynb at main · chmod777john/github-huntergithub.com/chmod777john/github-hunter/blob/mai