危機13小時:追蹤一場GitHub投毒事件

事件概要

自北京時間 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-repos?github.com/chmod777john/ghost-repos

我發現這個攻擊事件所用的工具:

github-hunter/index.ipynb at main · chmod777john/github-hunter?github.com/chmod777john/github-hunter/blob/mai

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67218.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67218.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67218.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Redis】緩存+分布式鎖

目錄 緩存 Redis最主要的使用場景就是作為緩存 緩存的更新策略: 1.定期生成 2.實時生成 面試重點: 緩存預熱(Cache preheating): 緩存穿透(Cache penetration) 緩存雪崩 (Cache avalan…

記錄 | MaxKB創建本地AI智能問答系統

目錄 前言一、重建MaxKBStep1 復制路徑Step2 刪除MaxKBStep3 創建數據存儲文件夾Step4 重建 二、創建知識庫Step1 新建知識庫Step2 下載測試所用的txtStep3 上傳本地文檔Step4 選擇模型補充智譜的API Key如何獲取 Step5 查看是否成功 三、創建應用Step1 新建應用Step2 配置AI助…

C#新語法

目錄 頂級語句(C#9.0) using 全局using指令(C#10.0) using資源管理問題 using聲明(C#8.0) using聲明陷阱 錯誤寫法 正確寫法 文件范圍的命名空間聲明(C#10.0) 可空引用類型…

基于dlib/face recognition人臉識別推拉流實現

目錄 一.環境搭建 二.推拉流代碼 三.人臉檢測推拉流 一.環境搭建 1.下載RTSP服務器MediaMTX與FFmpeg FFmpeg是一款功能強大的開源多媒體處理工具,而MediaMTX則是一個輕量級的流媒體服務器。兩者結合,可以實現將本地視頻或者實時攝像頭畫面推送到RTSP流,從而實現視頻…

Couchbase UI: Analytics

Couchbase 的 Analytics 頁面是用于執行分析查詢的部分,允許用戶對存儲在 Couchbase 中的數據進行復雜的分析和聚合。Analytics 提供了 SQL-like 查詢語言(N1QL for Analytics),使得用戶能夠輕松地執行數據分析任務。以下是關于 C…

梯度下降優化算法-Adam

Adam(Adaptive Moment Estimation)是一種結合了動量法(Momentum)和 RMSProp 的自適應學習率優化算法。它通過計算梯度的一階矩(均值)和二階矩(未中心化的方差)來調整每個參數的學習率…

論文筆記(六十三)Understanding Diffusion Models: A Unified Perspective(六)(完結)

Understanding Diffusion Models: A Unified Perspective(六)(完結) 文章概括指導(Guidance)分類器指導無分類器引導(Classifier-Free Guidance) 總結 文章概括 引用: …

【PySide6快速入門】信號與槽的使用

文章目錄 前言什么是信號與槽信號與槽的功能最簡單的信號與槽控件連接信號與信號的連接總結 前言 在 PySide6 中,信號與槽機制是核心概念之一,它是 Qt 庫中事件通信的基礎。通過信號與槽,開發者能夠實現不同組件之間的解耦,從而使…

GOGOGO 枚舉

含義:一種類似于類的一種結構 作用:是Java提供的一個數據類型,可以設置值是固定的 【當某一個數據類型受自身限制的時候,使用枚舉】 語法格式: public enum 枚舉名{…… }有哪些成員? A、對象 public …

AWTK 骨骼動畫控件發布

Spine 是一款廣泛使用的 2D 骨骼動畫工具,專為游戲開發和動態圖形設計設計。它通過基于骨骼的動畫系統,幫助開發者創建流暢、高效的角色動畫。本項目是基于 Spine 實現的 AWTK 骨骼動畫控件。 代碼:https://gitee.com/zlgopen/awtk-widget-s…

[免費]基于Python的Django博客系統【論文+源碼+SQL腳本】

大家好,我是java1234_小鋒老師,看到一個不錯的基于Python的Django博客系統,分享下哈。 項目視頻演示 【免費】基于Python的Django博客系統 Python畢業設計_嗶哩嗶哩_bilibili 項目介紹 隨著互聯網技術的飛速發展,信息的傳播與…

如何將電腦桌面默認的C盤設置到D盤?詳細操作步驟!

將電腦桌面默認的C盤設置到D盤的詳細操作步驟! 本博文介紹如何將電腦桌面(默認為C盤)設置在D盤下。 首先,在D盤建立文件夾Desktop,完整的路徑為D:\Desktop。winR,輸入Regedit命令。(或者單擊【…

C++ 寫一個簡單的加減法計算器

************* C topic:結構 ************* Structure is a very intersting issue. I really dont like concepts as it is boring. I would like to cases instead. If I want to learn something, donot hesitate to make shits. Like building a house. Wh…

excel如何查找一個表的數據在另外一個表是否存在

比如“Sheet1”有“張三”、“李四”“王五”三個人的數據,“Sheet2”只有“張三”、“李四”的數據。我們通過修改“Sheet1”的“民族”或者其他空的列,修改為“Sheet2”的某一列。這樣修改后篩選這個修改的列為空的或者為出錯的,就能找到兩…

MySQL 基礎學習(2): INSERT 操作

在這篇文章中,我們將專注于 MySQL 中的 INSERT 操作,深入了解如何高效地向表中插入數據,并探索插入操作中的一些常見錯誤與解決方案。 一、基礎 INSERT 語法 在 MySQL 中,INSERT 操作用于向表中插入新記錄,基本語法如…

CVE-2023-38831 漏洞復現:win10 壓縮包掛馬攻擊剖析

目錄 前言 漏洞介紹 漏洞原理 產生條件 影響范圍 防御措施 復現步驟 環境準備 具體操作 前言 在網絡安全這片沒有硝煙的戰場上,新型漏洞如同隱匿的暗箭,時刻威脅著我們的數字生活。其中,CVE - 2023 - 38831 這個關聯 Win10 壓縮包掛…

論文閱讀(二):理解概率圖模型的兩個要點:關于推理和學習的知識

1.論文鏈接:Essentials to Understand Probabilistic Graphical Models: A Tutorial about Inference and Learning 摘要: 本章的目的是為沒有概率圖形模型背景或沒有深入背景的科學家提供一個高級教程。對于更熟悉這些模型的讀者,本章將作為…

記錄 | 基于Docker Desktop的MaxKB安裝

目錄 前言一、MaxKBStep 1Step2 二、運行MaxKB更新時間 前言 參考文章:如何利用智譜全模態免費模型,生成大家都喜歡的圖、文、視并茂的文章! MaxKB的Github下載地址 參考視頻:【2025最新MaxKB教程】10分鐘學會一鍵部署本地私人專屬…

Go反射指南

概念: 官方對此有個非常簡明的介紹,兩句話耐人尋味: 反射提供一種讓程序檢查自身結構的能力反射是困惑的源泉 第1條,再精確點的描述是“反射是一種檢查interface變量的底層類型和值的機制”。 第2條,很有喜感的自嘲…

第26篇 基于ARM A9處理器用C語言實現中斷<二>

Q:基于ARM A9處理器怎樣編寫C語言工程,使用按鍵中斷將數字顯示在七段數碼管上呢? A:基本原理:主程序需要首先調用子程序set_A9_IRQ_stack()初始化IRQ模式的ARM A9堆棧指針;然后主程序調用子程序config_GIC…