GitHub被曝託管了成千上萬個包含惡意軟件的PoC漏洞利用存儲庫
作為業內頭部代碼託管平台之一,萊頓高級計算機科學研究所的人員,剛剛曝光了數千個基於惡意軟件的虛假概念驗證(PoC)漏洞利用。原本該平台旨在方便研究人員發布PoC,以幫助安全社區驗證漏洞修復、或確定漏洞的影響和範圍。但是最新研究發現,感染惡意軟件(而不是獲得PoC)的概率,竟高達10.3% —— 這還不包括經過驗證的假冒/ 惡作劇軟件。
數據分析方法(圖自:Arxiv.org)
研究人員使用如下三套方案,分析了47300 多個2017 至2021 年間披露的漏洞利用存儲庫:
● IP 地址分析:將PoC 發布者的IP 地址與公共阻止列表、以及VT 和AbuseIPDB 進行比較。
● 二進制分析:對提供的可執行文件、及其哈希值執行VirusTotal 檢查。
● 十六進制和Base64 分析:在執行二進制和IP 檢查之前,解碼混淆文件。
各個阻止列表中匹配的IP 地址數
結果發現,在提取的150734 個唯一IP 地址中,有2864 個與已知的黑名單相匹配。
其中1522 個被VirusTotal 反病毒掃描中被標記為惡意,且有1069 個被AbuselPDB 數據庫所收錄。
年度惡意存儲庫數量
其次二進制分析檢查了一組6160 個可執行文件,並揭示了託管在1398 個存儲庫中的總計2164 個惡意樣本。
在47313 個被測試的存儲庫中,有4893 個被標記為惡意—— 其中大多數與2020 年以來的漏洞有關,且報告中包含了一小組隱含惡意軟件(虛假PoC)的存儲庫。
另外研究人員向BleepingComputer分享了至少60 個其它示例,這些惡意內容仍在存在、且正在被GitHub 清除。
混淆腳本和去混淆Houdini
通過仔細研究其中一些案例,研究人員發現了大量不同的惡意軟件和有害腳本,比如遠程訪問木馬和Cobalt Strike 。
以CVE-2019-0708(又稱BlueKeep)概念驗證為例,它包含了一個從Pastebin 獲取VBScript 的base64 混淆Python 腳本。
作為一款基於JavaScript 的Houdini RAT(遠程訪問木馬),其能夠通過Windows的命令提示符(CMD)執行遠程命令。
虛假PoC 滲透示例
另一虛假PoC 案例,則涉及收集系統信息、IP 地址和用戶代理的竊取器,之前有研究人員出於安全實驗的目的而創建—— 包括來自Darktrace 的El Yadmani Soufian 安全研究員。
他非常友好地向BleepingComputer 披露了這份技術報告中未包含的如下示例—— 比如PowerShell 概念驗證中的base64 編碼二進製文件(被Virus Total 標記為惡意軟件)。
虛假PowerShell PoC
某個Python PoC 中包含了單行代碼,解碼後會被Virus Total 識別為惡意的base64 有效負載。
某個偽造的BlueKeep 漏洞利用,包含了一個被大多數反病毒引擎標記為惡意、並標識為Cobalt Strike 的可執行文件。
假冒PoC 的惡意單線有效載荷
此外還有隱藏在假冒PoC 中的腳本,即使暫未包含非活動的惡意組件,但製作者可以隨時為它賦予殺傷力。
綜上所述,大家顯然不該盲目信任未經驗證來源的GitHub 存儲庫,尤其是那些沒有經過審核的內容。
通過假冒PoC 傳播的Cobalt Strike
對於軟件測試人員來說,其下載的任何漏洞利用概念驗證項目,也都應該在執行前開展盡可能深入的檢查。
若代碼被混淆得很是模糊、且需要很長時間進行手動分析,請優先考慮將之放入被妥善隔離的虛擬機沙箱中進行處理。
無害但虛假的PoC
最後,除了使用VirusTotal 等開源情報工具對PoC 二進製文件進行分析,也請注意檢查網絡中是否存在任何可以流量。
畢竟就算安全研究人員已經向GitHub 上報目前已知的惡意存儲庫,官方仍需一段時間來驗證審查並刪除。