RubyGems遭遇供應(yīng)鏈投毒攻擊竊取比特幣,被上傳725個(gè)惡意軟件包
根據(jù)安全公司ReversingLabs有關(guān)報(bào)道,Ruby語(yǔ)言官方模塊包代碼庫(kù)RubyGems,被植入了超725個(gè)惡意軟件包的。
根據(jù)安全公司ReversingLabs的分析惡意軟件包的下載量接近100000次,盡管其中很大一部分可能是腳本自動(dòng)抓取了存儲(chǔ)庫(kù)中158000個(gè)軟件包的結(jié)果。惡意軟件包來(lái)自兩個(gè)用戶帳戶:" PeterGibbons" 和 "JimCarrey"。
ReversingLabs懷疑這些帳戶可能是一個(gè)人的工作,他使用了多種形式的監(jiān)聽(tīng)行為,冒充正常軟件包。例如,"atlas-client"是一個(gè)誘騙的誘餌程序包,被2100次下載,用來(lái)模仿的"atlas_client"。從2月16日到25日,這兩賬號(hào)共上傳了700多個(gè)軟件包。
攻擊流程
根據(jù)ReversingLabs分析,這些惡意軟件安裝后將執(zhí)行一個(gè)腳本,該腳本會(huì)攔截在Windows設(shè)備上進(jìn)行的比特幣付款。
首先,它使用"%PROGRAMDATA%\Microsoft Essentials\Software Essentials.vbs"路徑中的主要惡意循環(huán)創(chuàng)建一個(gè)新的VBScript Sle。然后持久化到本機(jī),然后創(chuàng)建一個(gè)新的自動(dòng)運(yùn)行注冊(cè)表項(xiàng)。
- "HCU\Software\Microsoft\Windows\CurrentVersion\Run Microsoft Software Essentials"
實(shí)現(xiàn)重啟后的自動(dòng)運(yùn)行。
執(zhí)行"Software Essentials.vbs"惡意腳本時(shí),會(huì)啟動(dòng)無(wú)限循環(huán),在該循環(huán)中,它使用以下代碼行捕獲用戶的剪貼板數(shù)據(jù):
- Set objHTML = CreateObject("htmlfile")
- text = objHTML.ParentWindow.ClipboardData.GetDat
然后,腳本將檢查剪貼板數(shù)據(jù)是否與加密貨幣錢包地址的格式匹配。如果是,則使用以下命令在隱藏窗口中將加密幣的地址替換為 "1JkU5XdNLji4Ugbb8agEWL1ko5US42nNmc":
- WScript.Shell run "C:\Windows\System32\cmd.exe /c echo 1JkU5XdNLji4Ugbb8agEWL1ko5US42nNmc | clip", 0
這樣,威脅參與者就試圖將所有潛在的加密貨幣交易重定向到其錢包地址。整個(gè)過(guò)程如下順序:
歷史事件
無(wú)獨(dú)有偶,這次供應(yīng)鏈投毒事件不是第一次,這樣事件最近幾年來(lái)屢見(jiàn)不鮮。對(duì)RubyGems也發(fā)生了多起。2016年,一名大學(xué)生將一個(gè)粗略腳本上傳到RubyGems,PyPi和NPM,根據(jù)對(duì)腳本中執(zhí)行的回訪調(diào)用統(tǒng)計(jì),該冒名腳本大概在17000個(gè)獨(dú)立IP上執(zhí)行了大概45000次,其代碼成功獲取管理權(quán)限的有一半。其中還有兩個(gè)是以.mil結(jié)尾的域,表明美軍內(nèi)部的主機(jī)也被感染。
此后,類似技術(shù)開始流行。2018年,黑客給PyPi中注入了剪貼板劫持腳本。該惡意程序包的名稱為"Colourama",名字模仿Colorama。Colorama為Python包倉(cāng)庫(kù)中下載量Top 20之一。包括從鏡像站點(diǎn)的下載,惡意軟件包被下載了171次。
一個(gè)月后,有一次攻擊者利用NPM植入后門,成功偷到比特幣的事件。這次事件中,惡意后門被下載了200萬(wàn)次下,從而使攻擊者獲得了最后的成功成就。
這些事件表明,針對(duì)軟件供應(yīng)鏈的污染投毒間接攻擊已經(jīng)成了一種常態(tài),這類攻擊可能沒(méi)有直接攻擊那樣明顯,但是針對(duì)該類攻擊目前還沒(méi)有有效的防護(hù)措施,只能讓開發(fā)人員擦亮眼睛,對(duì)要下載的軟件包一定要慎重,可以通過(guò)必要的校驗(yàn)方法來(lái)保證包合法,比如驗(yàn)證文件包哈希,同時(shí)關(guān)注安全通報(bào)以便出現(xiàn)問(wèn)題時(shí)能及時(shí)處理。企業(yè)可以通過(guò)DevSecOps來(lái)保證整個(gè)供應(yīng)鏈的安全。