0x1 前言
如果說勒索病毒是暴露在大眾視野中的“惡魔”,那么挖礦木馬就是潛藏在陰暗之處的“寄生蟲”。在 2017 年這個(gè)安全事件頻發(fā)的年份,除了受到全世界關(guān)注的“WannaCry”勒索病毒的出現(xiàn)之外,一大波挖礦木馬也悄然崛起。不同于勒索病毒的明目張膽,挖礦木馬隱蔽在幾乎所有安全性脆弱的角落中,悄悄消耗著計(jì)算機(jī)的資源。由于其隱蔽性極強(qiáng),大多數(shù)PC用戶和服務(wù)器管理員難以發(fā)現(xiàn)挖礦木馬的存在,這也導(dǎo)致挖礦木馬數(shù)量的持續(xù)上漲。本文將通過多個(gè)方面介紹挖礦木馬的種類,發(fā)展趨勢(shì),危害以及防范措施。
0x2 挖礦木馬概述
2009 年,比特幣橫空出世。得益于其去中心化的貨幣機(jī)制,比特幣受到許多行業(yè)的青睞,其交易價(jià)格也是一路走高。圖 1 展示了比特幣從 2013 年 7 月到 2017 年 12 月交易價(jià)格(單位:美元)變化趨勢(shì)。
圖1 比特幣 2013 年- 2017 年交易價(jià)格變化趨勢(shì)
由于比特幣的成功,許多基于區(qū)塊鏈技術(shù)的數(shù)字貨幣紛紛問世,例如以太幣,門羅幣等。這類數(shù)字貨幣并非由特定的貨幣發(fā)行機(jī)構(gòu)發(fā)行,而是依據(jù)特定算法通過大量運(yùn)算所得。而完成如此大量運(yùn)算的工具就是挖礦機(jī)程序。
挖礦機(jī)程序運(yùn)用計(jì)算機(jī)強(qiáng)大的運(yùn)算力進(jìn)行大量運(yùn)算,由此獲取數(shù)字貨幣。由于硬件性能的限制,數(shù)字貨幣玩家需要大量計(jì)算機(jī)進(jìn)行運(yùn)算以獲得一定數(shù)量的數(shù)字貨幣,因此,一些不法分子通過各種手段將挖礦機(jī)程序植入受害者的計(jì)算機(jī)中,利用受害者計(jì)算機(jī)的運(yùn)算力進(jìn)行挖礦,從而獲取利益。這類在用戶不知情的情況下植入用戶計(jì)算機(jī)進(jìn)行挖礦的挖礦機(jī)程序就是挖礦木馬。
挖礦木馬最早出現(xiàn)于 2013 年。圖 2 展示了自 2013 年開始國(guó)內(nèi)披露的大規(guī)模挖礦木馬攻擊事件數(shù)量。
圖22013 年- 2017 年國(guó)內(nèi)披露的挖礦木馬攻擊事件
由于數(shù)字貨幣交易價(jià)格不斷走高,挖礦木馬的攻擊事件也越來越頻繁,不難預(yù)測(cè)未來挖礦木馬數(shù)量將繼續(xù)攀升。
對(duì)于挖礦木馬而言,選擇一種交易價(jià)格較高且運(yùn)算力要求適中的數(shù)字貨幣是短期內(nèi)獲得較大收益的保障。圖 3 展示了挖礦木馬所選擇的幣種比例。
圖3 挖礦木馬所選幣種比例
不難看出,門羅幣是最受挖礦木馬親睞的幣種。黑客之所以選擇門羅幣作為目標(biāo)主要有以下幾個(gè)原因:
(1) 門羅幣交易價(jià)格不俗。雖然門羅幣在交易價(jià)格上不比比特幣,但其依然保持在一個(gè)較高的交易價(jià)格。
(2) 門羅幣是一種匿名幣,安全性更高。匿名幣是一種在交易過程中隱藏交易金額、隱藏發(fā)送方與接收方的一種特殊的區(qū)塊鏈代幣。由于這樣一個(gè)特性,任何人都無(wú)法在區(qū)塊鏈瀏覽器中查找到門羅幣交易的金額和交易雙方的地址。這也為黑客轉(zhuǎn)移門羅幣提供便利。
(3) 門羅幣是基于Cryptonight 算法運(yùn)算得到的,通過計(jì)算機(jī)的CPU和GPU即可進(jìn)行該算法的運(yùn)算而不需要其他特定的硬件支持。
(4) 互聯(lián)網(wǎng)上有許多優(yōu)秀的開源門羅幣挖礦項(xiàng)目,黑客可以“即拿即用”。
(5) 暗網(wǎng)市場(chǎng)支持門羅幣交易。
由于門羅幣的這些“優(yōu)點(diǎn)”,越來越多的挖礦木馬選擇門羅幣作為目標(biāo)。
在下文中我們將根據(jù)挖礦木馬的種類分別對(duì)不同類型的挖礦木馬進(jìn)行詳細(xì)介紹和分析。
0x3 挖礦木馬詳解
1. 挖礦木馬僵尸網(wǎng)絡(luò)興起
僵尸網(wǎng)絡(luò)(Botnet)是黑客通過入侵其他計(jì)算機(jī),在其他計(jì)算機(jī)中植入惡意程序并通過該惡意程序繼續(xù)入侵更多計(jì)算機(jī),從而建立起來的一個(gè)龐大的傀儡計(jì)算機(jī)網(wǎng)絡(luò)。僵尸網(wǎng)絡(luò)中的每一臺(tái)計(jì)算機(jī)都是一個(gè)被黑客控制的節(jié)點(diǎn),也是一個(gè)發(fā)起攻擊的節(jié)點(diǎn)。黑客入侵計(jì)算機(jī)并植入挖礦木馬,之后利用被入侵的計(jì)算機(jī)繼續(xù)向其他計(jì)算機(jī)植入挖礦木馬從而構(gòu)建的僵尸網(wǎng)絡(luò)就是挖礦木馬僵尸網(wǎng)絡(luò)。
2017 年是挖礦木馬僵尸網(wǎng)絡(luò)大規(guī)模爆發(fā)的一年,出現(xiàn)了“Bondnet”,“Adylkuzz”,“隱匿者”等多個(gè)大規(guī)模挖礦木馬僵尸網(wǎng)絡(luò),而其中很大一部分的挖礦木馬僵尸網(wǎng)絡(luò)來自于中國(guó)。
(1) 僵尸網(wǎng)絡(luò)的建立
僵尸網(wǎng)絡(luò)是否能成規(guī)模關(guān)鍵在于僵尸網(wǎng)絡(luò)的初步建立。黑客需要一個(gè)能夠完成大規(guī)模入侵的攻擊武器以獲得更多計(jì)算機(jī)的控制權(quán)。
“永恒之藍(lán)”漏洞攻擊武器的出現(xiàn)助長(zhǎng)了挖礦木馬僵尸網(wǎng)絡(luò)的建立。 2017 年 4 月,shadow broker公布了NSA(美國(guó)國(guó)家安全局)方程式組織的漏洞攻擊武器“永恒之藍(lán)”。 2017 年 5 月爆發(fā)的造成空前影響的“WannaCry”勒索病毒就是通過“永恒之藍(lán)”進(jìn)行傳播的。而在“WannaCry”爆發(fā)之前,已有挖礦木馬利用“永恒之藍(lán)”進(jìn)行傳播。“永恒之藍(lán)”有兩個(gè)其他漏洞利用工具無(wú)法企及的優(yōu)勢(shì):
(1) 攻擊無(wú)需載體。不同于利用瀏覽器漏洞或者辦公軟件漏洞進(jìn)行的“被動(dòng)式攻擊”,“永恒之藍(lán)”漏洞利用攻擊是一種“主動(dòng)式攻擊”,黑客只需要向目標(biāo)發(fā)送攻擊數(shù)據(jù)包而不需要目標(biāo)進(jìn)行額外的操作即可完成攻擊。
(2) 攻擊目標(biāo)廣。只要目標(biāo)計(jì)算機(jī)開啟 445 端口且未及時(shí)打補(bǔ)丁,黑客就可以成功入侵目標(biāo)計(jì)算機(jī)。黑客完全可以進(jìn)行全網(wǎng)掃描捕捉獵物。
正因此,“永恒之藍(lán)”一時(shí)間成了挖礦木馬僵尸網(wǎng)絡(luò)的標(biāo)配。表 1 展示了 2017 年爆發(fā)的幾個(gè)大規(guī)模挖礦木馬僵尸網(wǎng)絡(luò)配備“永恒之藍(lán)”漏洞利用武器的情況。
表1 挖礦木馬僵尸網(wǎng)絡(luò)配置“永恒之藍(lán)”模塊情況
其中一些僵尸網(wǎng)絡(luò)是完全依靠“永恒之藍(lán)”漏洞攻擊武器站穩(wěn)腳跟的,例如“隱匿者”僵尸網(wǎng)絡(luò)。圖 4 展示了“隱匿者”僵尸網(wǎng)絡(luò)僵尸程序傳播量變化趨勢(shì)。不難看出,借助于“永恒之藍(lán)”漏洞攻擊武器,“隱匿者”在 2017 年 4 月底爆發(fā)式增長(zhǎng)。(更多細(xì)節(jié)見報(bào)告:http://www.freebuf.com/articles/web/146393.html)
圖4 “隱匿者”僵尸網(wǎng)絡(luò)僵尸程序各版本傳播量
隨著漏洞的更多細(xì)節(jié)公之于眾,各式各樣的“永恒之藍(lán)”漏洞攻擊工具問世。在 2017 年 9 月出現(xiàn)并呈增長(zhǎng)趨勢(shì)的“mateMiner”僵尸網(wǎng)絡(luò)中集成了由Powershell編寫的“永恒之藍(lán)”漏洞攻擊模塊。圖 5 展示了部分攻擊代碼。
圖5 “mateMiner”僵尸網(wǎng)絡(luò)“永恒之藍(lán)”模塊部分代碼片段
除了“永恒之藍(lán)”漏洞攻擊武器之外,其它各類Nday漏洞也備受挖礦木馬僵尸網(wǎng)絡(luò)的親睞。“yamMiner”僵尸網(wǎng)絡(luò)就是利用Java 反序列化漏洞進(jìn)行服務(wù)器入侵的。
“yamMiner”僵尸網(wǎng)絡(luò) 2016 年底出現(xiàn),并在 2017 年呈現(xiàn)增長(zhǎng)趨勢(shì),目前仍處在活躍狀態(tài)。該僵尸網(wǎng)絡(luò)建立之初,通過Java Commons Collections反序列化漏洞入侵服務(wù)器,漏洞如下所示:
(更多細(xì)節(jié)見:http://www.freebuf.com/articles/system/129459.html)
使用Nday漏洞進(jìn)行入侵攻擊對(duì)于未打補(bǔ)丁的計(jì)算機(jī)而言效果立竿見影。而國(guó)內(nèi)未能及時(shí)打補(bǔ)丁的計(jì)算機(jī)數(shù)量并不少,這也是這類挖礦木馬僵尸網(wǎng)絡(luò)持續(xù)保持活躍的重要原因之一。
(2)僵尸網(wǎng)絡(luò)的擴(kuò)張
當(dāng)僵尸網(wǎng)絡(luò)初具雛形后,黑客需要通過現(xiàn)有的傀儡機(jī)攻擊更多的計(jì)算機(jī),通過量的積累轉(zhuǎn)化為可見的利益。因此,僵尸網(wǎng)絡(luò)中的每一臺(tái)傀儡機(jī)都是攻擊的發(fā)起者,而他們的目標(biāo)是互聯(lián)網(wǎng)中的所有計(jì)算機(jī)。
“永恒之藍(lán)”漏洞攻擊武器在僵尸網(wǎng)絡(luò)的擴(kuò)張中起到重要的作用。在上文中展示了“永恒之藍(lán)”漏洞攻擊武器在僵尸網(wǎng)絡(luò)建立時(shí)發(fā)揮的重要作用,這些同樣作用于僵尸網(wǎng)絡(luò)的擴(kuò)張,在此不再贅述。
端口掃描和爆破也是僵尸網(wǎng)絡(luò)擴(kuò)張的幫手。“隱匿者”挖礦木馬僵尸網(wǎng)絡(luò)中帶有全網(wǎng)掃描模塊,僵尸程序會(huì)不斷地對(duì)隨機(jī)ip進(jìn)行指定端口掃描,若端口開放則嘗試進(jìn)行爆破,爆破成功后則登錄目標(biāo)計(jì)算機(jī)植入挖礦木馬和僵尸程序,繼續(xù)進(jìn)一步的擴(kuò)張。圖 6 展示了“隱匿者”挖礦木馬僵尸網(wǎng)絡(luò)端口掃描模塊代碼片段。表 2 展示了“隱匿者”僵尸網(wǎng)絡(luò)爆破模塊、爆破對(duì)象以及當(dāng)前支持情況。
圖6 “隱匿者”僵尸網(wǎng)絡(luò)端口掃描模塊代碼片段
表2 “隱匿者”僵尸網(wǎng)絡(luò)爆破模塊概覽
高級(jí)內(nèi)網(wǎng)滲透攻擊開始出現(xiàn)在挖礦木馬僵尸網(wǎng)絡(luò)的擴(kuò)張中。我們?cè)凇癿ateMiner”僵尸網(wǎng)絡(luò)中發(fā)現(xiàn)了使用“pass the hash”攻擊進(jìn)行內(nèi)網(wǎng)滲透的模塊。僵尸網(wǎng)絡(luò)釋放了憑證竊取工具mimikatz獲取保存在本計(jì)算機(jī)中的憑證,并用其進(jìn)行“pass the hash”攻擊。圖 7 展示了“mateMiner”僵尸網(wǎng)絡(luò)憑證獲取模塊的代碼片段。
圖7 “mateMiner”僵尸網(wǎng)絡(luò)憑證獲取模塊代碼片段
“mateMiner”僵尸網(wǎng)絡(luò)會(huì)首先嘗試使用這些憑證登錄內(nèi)網(wǎng)中的其他計(jì)算機(jī),一旦登錄成功就往這些計(jì)算機(jī)中植入挖礦木馬和僵尸程序,只有嘗試登錄失敗才會(huì)使用“永恒之藍(lán)”漏洞攻擊武器進(jìn)行入侵。可見,隨著“永恒之藍(lán)”漏洞攻擊成功率的降低,諸如 mimikatz這類高級(jí)內(nèi)網(wǎng)滲透工具已經(jīng)開始被挖礦木馬僵尸網(wǎng)絡(luò)所使用。圖 8 展示了“mateMiner”僵尸網(wǎng)絡(luò)進(jìn)行內(nèi)網(wǎng)滲透的代碼片段。
圖8 “mateMiner”僵尸網(wǎng)絡(luò)內(nèi)網(wǎng)滲透模塊代碼片段
(3)僵尸程序的持續(xù)駐留
黑客是否能夠持續(xù)控制傀儡機(jī)關(guān)鍵在于傀儡機(jī)中的僵尸程序能否持續(xù)駐留。而挖礦木馬僵尸網(wǎng)絡(luò)也是用盡了各種辦法讓僵尸程序持續(xù)駐留在傀儡機(jī)中。
將僵尸程序直接寄生在系統(tǒng)進(jìn)程中是最好的選擇。“yamMiner”僵尸網(wǎng)絡(luò)在利用Java反序列化漏洞入侵計(jì)算機(jī)后直接在Java進(jìn)程中執(zhí)行命令。而“隱匿者”僵尸網(wǎng)絡(luò)在通過爆破MSSQL服務(wù)入侵其他計(jì)算機(jī)后以SQLServer Job的形式運(yùn)行挖礦機(jī),并且在SQLServer中寫入多段shellcode。圖 9 展示了“隱匿者”在SQLServer中寫入的一段shellcode。
圖9 “隱匿者”僵尸網(wǎng)絡(luò)在SQLServer中寫入的shellcode
通過將僵尸程序寄生在系統(tǒng)進(jìn)程中能夠有效逃避殺毒軟件的攔截,保證僵尸程序的持續(xù)駐留。
WMI, PowerShell都是持續(xù)駐留的好幫手。許多僵尸網(wǎng)絡(luò)通過WMI實(shí)現(xiàn)僵尸程序在目標(biāo)計(jì)算機(jī)中的持續(xù)駐留,并且使用PowerShell協(xié)助完成工作。
“隱匿者”僵尸網(wǎng)絡(luò)在SQLServer中的shellcode就包含了使用WMI進(jìn)行挖礦機(jī)配置文件定時(shí)更新的功能。圖 10 展示了這段shellcode的內(nèi)容。
圖10 “隱匿者”僵尸網(wǎng)絡(luò)使用WMI進(jìn)行定期更新的shellcode片段
而“mateMiner”僵尸網(wǎng)絡(luò)僅僅使用一個(gè)PowerShell腳本作為僵尸程序,這也是它最大的特點(diǎn)。這個(gè)PowerShell腳本完成了包括入侵、持續(xù)駐留、挖礦在內(nèi)的所有功能。圖 11 展示了“mateMiner”僵尸網(wǎng)絡(luò)從黑客服務(wù)器下載執(zhí)行PowerShell腳本的命令行。
圖11 “mateMiner”僵尸網(wǎng)絡(luò)執(zhí)行PowerShell命令行片段
除了利用PowerShell腳本完成工作,“mateMiner”更是將WMI的靈活性發(fā)揮到了極致,不僅使用WMI的__EventFilter類實(shí)現(xiàn)持續(xù)駐留,還將shellcode保存為WMI下類屬性的值,需要時(shí)載入內(nèi)存執(zhí)行,真正實(shí)現(xiàn)“無(wú)文件”攻擊。圖 12 展示“mateMiner”使用WMI下類屬性存儲(chǔ)shellcode的代碼片段。
圖12 “mateMiner”使用WMI存儲(chǔ)shellcode代碼片段
由于PowerShell和WMI有極高的靈活性,僵尸網(wǎng)絡(luò)能夠通過兩者有效管理傀儡機(jī),并且減少惡意文件的釋放,躲避殺毒軟件的查殺。
先進(jìn)的控制與命令方式是持續(xù)駐留的關(guān)鍵。每個(gè)僵尸網(wǎng)絡(luò)都有一個(gè)最終的控制端,這個(gè)控制端負(fù)責(zé)向僵尸網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)下發(fā)控制指令。由于控制端的存活時(shí)間并不長(zhǎng),其ip地址會(huì)頻繁進(jìn)行更換,因此挖礦木馬僵尸網(wǎng)絡(luò)需要一套完備的控制體系以保證隨時(shí)與控制端聯(lián)系。
“隱匿者”僵尸網(wǎng)絡(luò)就擁有一套完善的控制體系。圖 13 展示了“隱匿者”僵尸網(wǎng)絡(luò)中僵尸程序與控制端之間的交互。
圖13 “隱匿者”僵尸網(wǎng)絡(luò)僵尸程序與控制端交互圖
“隱匿者”有多個(gè)功能不同的控制服務(wù)器,分別負(fù)責(zé)挖礦木馬的更新、僵尸程序的更新以及遠(yuǎn)控木馬的下發(fā)。當(dāng)傀儡機(jī)中的僵尸程序啟動(dòng)時(shí),會(huì)進(jìn)行一次自檢,以確定是否有新版本的僵尸程序存在。同時(shí),“隱匿者”也在SQLServer中寫入這樣一段自檢的shellcode,以保證僵尸程序被殺后還能從控制端下載新的僵尸程序。而僵尸程序所請(qǐng)求的控制端ip地址是不固定的,“隱匿者”通過訪問指定博客獲取博文內(nèi)容,通過博文內(nèi)容解密得到控制端ip。控制者只需修改博文內(nèi)容就能夠?qū)崿F(xiàn)控制端ip的更換。
當(dāng)然,將控制端ip的快速更新展現(xiàn)得淋漓盡致的當(dāng)數(shù)“yamMiner”挖礦木馬僵尸網(wǎng)絡(luò)了。其控制端ip地址基本保持了一星期一更新的頻率。圖 14 展示了“yamMiner”僵尸網(wǎng)絡(luò) 2017 年 11 月至 12 月控制端ip地址更新時(shí)間線。
圖14 “yamMiner”僵尸網(wǎng)絡(luò) 2017 年 11 月- 12 月更新概況
通過觀察“yamMiner”僵尸網(wǎng)絡(luò) 2017 年 11 月到 12 月向控制端發(fā)起的請(qǐng)求數(shù)量我們發(fā)現(xiàn)了一個(gè)有趣的細(xì)節(jié)。這可以從圖 15 展現(xiàn)。
圖15 “yamMiner”僵尸網(wǎng)絡(luò) 2017 年 11 月- 12 月發(fā)送請(qǐng)求數(shù)量概況
不難看出,當(dāng)“yamMiner”的控制端ip發(fā)生變化的時(shí)候,傀儡機(jī)中的僵尸程序能夠立即連接新的ip地址,所以就有了圖中新控制端ip地址出現(xiàn)時(shí)舊控制端ip地址請(qǐng)求數(shù)量下降到 0 的現(xiàn)象。實(shí)現(xiàn)這樣的效果就要求傀儡程序能夠?qū)崟r(shí)獲知ip地址的變化情況,而“yamMiner”就是利用Java Commons Collections反序列化漏洞周期性地在傀儡機(jī)上執(zhí)行命令,修改傀儡程序連接的控制端ip。由于這一功能是在Java進(jìn)程中實(shí)現(xiàn)的,能夠有效躲避殺軟的查殺。一般情況下僵尸網(wǎng)絡(luò)控制端ip地址存活時(shí)間不長(zhǎng),優(yōu)秀的挖礦木馬僵尸網(wǎng)絡(luò)會(huì)利用漏洞在傀儡機(jī)執(zhí)行命令更改控制端ip或者將控制端ip存儲(chǔ)在例如博客內(nèi)容這類容易修改又不容易被發(fā)現(xiàn)的位置。如果傀儡機(jī)所有者不修補(bǔ)計(jì)算機(jī)系統(tǒng)中存在的漏洞或者刪除計(jì)算機(jī)中持續(xù)工作的一些項(xiàng)目(例如SQLServer中的惡意Job),僵尸程序就能在傀儡機(jī)中生生不息。
(4)總結(jié)
挖礦機(jī)僵尸網(wǎng)絡(luò)是 2017 年大規(guī)模爆發(fā)的一個(gè)安全威脅,它的危害程度可以從黑客獲利的金額展現(xiàn)。圖 16 和圖 17 分別展示了 “yamMiner”僵尸網(wǎng)絡(luò)的門羅幣錢包之一和“隱匿者”僵尸網(wǎng)絡(luò)的門羅幣錢包。
圖16 “yamMiner”僵尸網(wǎng)絡(luò)門羅幣錢包之一概況
圖17 “隱匿者”僵尸網(wǎng)絡(luò)門羅幣錢包概況
截至筆者撰稿時(shí)“隱匿者”僵尸網(wǎng)絡(luò)從傀儡機(jī)中總共挖到了 2010 枚門羅幣,合計(jì) 61 萬(wàn)美元。“yamMiner”僵尸網(wǎng)絡(luò)其中一個(gè)錢包就獲利 4 萬(wàn)美元,而“yamMiner”擁有多個(gè)門羅幣錢包,可想而知其總獲利金額。挖礦木馬帶來的暴利導(dǎo)致各家僵尸網(wǎng)絡(luò)競(jìng)爭(zhēng)的白熱化,其中不乏對(duì)其他僵尸網(wǎng)絡(luò)的攻擊。例如“mateMiner”僵尸網(wǎng)絡(luò)會(huì)根據(jù)其他僵尸網(wǎng)絡(luò)的礦池端口結(jié)束相應(yīng)進(jìn)程,如圖 18 所示。
圖18 “mateMiner”僵尸網(wǎng)絡(luò)結(jié)束其他挖礦木馬進(jìn)程代碼片段
當(dāng)然,這樣的競(jìng)爭(zhēng)還會(huì)持續(xù)下去,數(shù)字貨幣交易價(jià)格的持續(xù)走高必將使更多的不法分子加入到這場(chǎng)僵尸網(wǎng)絡(luò)之戰(zhàn)中。
2. 網(wǎng)頁(yè)挖礦腳本橫空出世
2017 年 9 月,著名的BT站點(diǎn),同樣也是盜版資源集散地的Pirate Bay(海盜灣)被發(fā)現(xiàn)在網(wǎng)頁(yè)中植入挖礦腳本,網(wǎng)頁(yè)挖礦開始進(jìn)入公眾的視野。
當(dāng)用戶訪問一個(gè)網(wǎng)頁(yè)時(shí),用戶的瀏覽器負(fù)責(zé)解析該網(wǎng)站中的資源、腳本,并將解析的結(jié)果展示在用戶面前。當(dāng)用戶訪問的網(wǎng)頁(yè)中植入了挖礦腳本,瀏覽器將解析并執(zhí)行挖礦腳本,利用用戶計(jì)算機(jī)資源進(jìn)行挖礦從而獲利。挖礦腳本的執(zhí)行會(huì)導(dǎo)致用戶計(jì)算機(jī)資源被嚴(yán)重占用,導(dǎo)致計(jì)算機(jī)卡慢,甚至出現(xiàn)死機(jī)等情況,嚴(yán)重影響用戶計(jì)算機(jī)的正常使用。
網(wǎng)頁(yè)挖礦腳本種類眾多,目前發(fā)現(xiàn)的植入到網(wǎng)頁(yè)中的挖礦腳本有Coinhive,JSEcoin,reasedoper,LMODR.BIZ,MineCrunch,MarineTraffic,Crypto-Loot,ProjectPoi等,大部分挖礦腳本項(xiàng)目都是開源的,這也方便一些站長(zhǎng)或網(wǎng)站入侵者在網(wǎng)頁(yè)中植入挖礦腳本。
圖 19 展示了 2017 年 11 月至 12 月不同網(wǎng)頁(yè)挖礦腳本的占比情況。
圖192017 年 11 月- 12 月不同挖礦腳本占比
可以看出,Coinhive是大多數(shù)不法分子的選擇,這也歸功于Coinhive的便捷性。入侵網(wǎng)站的黑客或者貪圖利益的站長(zhǎng)并不需要將挖礦的js代碼寫入網(wǎng)頁(yè)中,而是在網(wǎng)頁(yè)中調(diào)用Coinhive官網(wǎng)中的js文件coinhive.min.js并指定一個(gè)唯一的標(biāo)識(shí)符即可。圖 20 展示了Coinhive的代碼范例。
圖20 “Coinhive”挖礦腳本代碼范例
隨著網(wǎng)頁(yè)挖礦腳本的興起,許多網(wǎng)站開始通過一些特殊技巧掩蓋挖礦時(shí)所產(chǎn)生的大量系統(tǒng)資源消耗。 2017 年 9 月,有安全研究人員發(fā)現(xiàn)后綴為.com.com的域名掛有挖礦代碼。這些網(wǎng)站以“安全檢查”作為幌子掩蓋挖礦時(shí)系統(tǒng)的卡慢。如圖 21 所示。
圖21 挖礦腳本用“安全檢查”迷惑用戶
無(wú)獨(dú)有偶,前段時(shí)間,malwarebytes安全研究人員發(fā)現(xiàn)某些包含挖礦代碼的網(wǎng)頁(yè)會(huì)在用戶關(guān)閉瀏覽器窗口后隱藏在任務(wù)欄右下角繼續(xù)挖礦。如圖 22 所示。(圖片來自:https://blog.malwarebytes.com/cybercrime/2017/11/persistent-drive-by-cryptomining-coming-to-a-browser-near-you/)
圖22 挖礦腳本利用任務(wù)欄隱藏自身
在這些被植入挖礦腳本的網(wǎng)站中,一部分是貪圖利益的站長(zhǎng)主動(dòng)將挖礦腳本嵌入網(wǎng)頁(yè)中的,而另一部分則是黑客入侵網(wǎng)站之后植入挖礦腳本的。 2017 年 11 月我們發(fā)現(xiàn)一批網(wǎng)站被植入了帶有相同標(biāo)識(shí)符的ProjectPoi挖礦腳本,但這一批網(wǎng)站之間并沒有絲毫關(guān)聯(lián),可以推測(cè),是黑客入侵網(wǎng)站之后植入的挖礦腳本。圖 23 展示了這些網(wǎng)站中植入的挖礦腳本。
圖23 一些被黑客入侵的站點(diǎn)中植入的挖礦腳本
不同于通過入侵服務(wù)器搭建挖礦木馬僵尸網(wǎng)絡(luò),網(wǎng)頁(yè)挖礦腳本更容易被用戶所察覺,但由于利益驅(qū)使依然有許多網(wǎng)站中被植入了挖礦腳本。圖 24 展示了 2017 年 9 月- 12 月網(wǎng)頁(yè)植入挖礦腳本數(shù)量變化趨勢(shì)。不難看出,網(wǎng)頁(yè)挖礦腳本數(shù)量還在不斷增加,特別是進(jìn)入 12 月后數(shù)量有明顯上漲的趨勢(shì)。
圖242017 年 11 月- 12 月網(wǎng)頁(yè)挖礦腳本數(shù)量變化趨勢(shì)
網(wǎng)頁(yè)挖礦腳本之所以如此活躍,主要是因?yàn)榇蟛糠滞诘V腳本都來自于色情網(wǎng)站這一類特殊的站點(diǎn),由于這類網(wǎng)站的高訪問量導(dǎo)致挖礦腳本數(shù)量的持續(xù)升高。圖 25 展示了網(wǎng)頁(yè)挖礦腳本在各類網(wǎng)站中出現(xiàn)的比例,不難看出,色情網(wǎng)站是網(wǎng)頁(yè)挖礦腳本的重災(zāi)區(qū)。
圖25 各類網(wǎng)站植入挖礦腳本比例
相比較挖礦木馬僵尸網(wǎng)絡(luò),網(wǎng)頁(yè)挖礦腳本屬于后起之秀,但出現(xiàn)時(shí)間晚并不能阻止此類挖礦木馬的興起,巨大的利益驅(qū)動(dòng)促使更多的黑產(chǎn)從業(yè)者投身挖礦事業(yè)中。但由于網(wǎng)頁(yè)挖礦隱蔽性較低,未來黑產(chǎn)從業(yè)者可能會(huì)將挖礦目標(biāo)轉(zhuǎn)移到網(wǎng)頁(yè)游戲和客戶端游戲中,通過游戲的資源高消耗率掩蓋挖礦機(jī)的運(yùn)作。而移動(dòng)平臺(tái)也有可能是挖礦木馬的重要目標(biāo)。
0x4 防范與總結(jié)
挖礦木馬的崛起源于數(shù)字貨幣交易價(jià)格的持續(xù)走高,從當(dāng)前的情況看,數(shù)字貨幣交易價(jià)格還將持續(xù)攀升,這也將可能導(dǎo)致挖礦木馬數(shù)量的激增。因此,如何防范挖礦木馬是重中之重。
1. 防范挖礦木馬僵尸網(wǎng)絡(luò)
挖礦木馬僵尸網(wǎng)絡(luò)的目標(biāo)是服務(wù)器,黑客通過入侵服務(wù)器植入挖礦機(jī)程序獲利。如果能對(duì)黑客的入侵行為進(jìn)行有效防范,就能夠?qū)⑼诘V木馬僵尸網(wǎng)絡(luò)扼殺在搖籃中。作為服務(wù)器管理員,進(jìn)行如下工作是防范挖礦木馬僵尸網(wǎng)絡(luò)的關(guān)鍵:
(1)避免使用弱口令。從上文可知,“隱匿者”這類規(guī)模龐大的僵尸網(wǎng)絡(luò)擁有完備的弱口令爆破模塊,因此避免使用弱口令可以有效防范僵尸程序發(fā)起的弱口令爆破。管理員不僅應(yīng)該在服務(wù)器登錄帳戶上使用強(qiáng)密碼,在開放端口上的服務(wù)(例如MSSQL服務(wù),MySQL服務(wù))也應(yīng)該使用強(qiáng)密碼。
(2)及時(shí)為操作系統(tǒng)和相關(guān)服務(wù)打補(bǔ)丁。許多挖礦木馬僵尸網(wǎng)絡(luò)利用“永恒之藍(lán)”漏洞利用武器進(jìn)行傳播,而“隱匿者”更是在“永恒之藍(lán)”漏洞利用武器泄露的幾天后就開始將它用于真實(shí)攻擊,可見黑客對(duì)于1day,Nday漏洞的利用十分嫻熟。由于大部分漏洞細(xì)節(jié)公布之前相應(yīng)廠商已經(jīng)推送相關(guān)補(bǔ)丁,如果服務(wù)器管理員能夠及時(shí)為系統(tǒng)和相關(guān)服務(wù)打補(bǔ)丁就能有效避免漏洞利用攻擊。服務(wù)器管理員需要為存在被攻擊風(fēng)險(xiǎn)的服務(wù)器操作系統(tǒng)、Web服務(wù)端、開放的服務(wù)等及時(shí)打補(bǔ)丁。
(3)定期維護(hù)服務(wù)器。由于挖礦木馬會(huì)持續(xù)駐留在計(jì)算機(jī)中,如果服務(wù)器管理員未定期查看服務(wù)器狀態(tài),那么挖礦木馬就難以被發(fā)現(xiàn)。因此服務(wù)器管理員應(yīng)定期維護(hù)服務(wù)器,內(nèi)容包括但不限于:查看服務(wù)器操作系統(tǒng)CPU使用率是否異常、是否存在可疑進(jìn)程、WMI中是否有可疑的類、計(jì)劃任務(wù)中是否存在可疑項(xiàng)、是否有可疑的諸如PowerShell進(jìn)程、mshta進(jìn)程這類常被用于持續(xù)駐留的進(jìn)程存在。
2.防范網(wǎng)頁(yè)挖礦腳本
網(wǎng)頁(yè)挖礦腳本一般針對(duì)PC,因此也較容易被發(fā)現(xiàn),用戶可以通過以下幾方面防范網(wǎng)頁(yè)挖礦腳本:
(1)瀏覽網(wǎng)頁(yè)時(shí)留意CPU使用率。由于挖礦腳本的運(yùn)行會(huì)導(dǎo)致CPU使用率飆升,如果用戶在瀏覽網(wǎng)頁(yè)時(shí)發(fā)現(xiàn)計(jì)算機(jī)CPU使用率飆升且大部分CPU使用來自于瀏覽器,那么網(wǎng)頁(yè)中可能嵌入挖礦腳本。
(2)不訪問瀏覽器或殺毒軟件標(biāo)記為高風(fēng)險(xiǎn)的網(wǎng)站。如今大部分殺軟和主流瀏覽器都具備檢測(cè)網(wǎng)頁(yè)挖礦腳本的能力,若用戶訪問的網(wǎng)站是被標(biāo)注為高風(fēng)險(xiǎn)的惡意網(wǎng)站,那么網(wǎng)站中可能嵌入了挖礦腳本。不訪問被標(biāo)記為高風(fēng)險(xiǎn)的網(wǎng)站也能避免掛馬攻擊。
2017 年是挖礦木馬爆發(fā)的一年,而 2018 年可能是挖礦木馬從隱匿的角落走向大眾視野的一年。阻止挖礦木馬的興起是殺毒軟件的重要責(zé)任,而防范挖礦木馬的入侵是每一位服務(wù)器管理員、PC用戶需要時(shí)刻注意的重點(diǎn)。防御挖礦木馬,保護(hù)用戶的計(jì)算機(jī)安全,任重而道遠(yuǎn)!
0x5 參考鏈接
[1] 利用服務(wù)器漏洞挖礦黑產(chǎn)案例分析; http://www.freebuf.com/articles/system/129459.html
[2] 悄然崛起的挖礦機(jī)僵尸網(wǎng)絡(luò):打服務(wù)器挖價(jià)值百萬(wàn)門羅幣;http://www.freebuf.com/articles/web/146393.html
[3] Persistent drive-by cryptomining coming to a browser near you;https://blog.malwarebytes.com/cybercrime/2017/11/persistent-drive-by-cryptomining-coming-to-a-browser-near-you
[4] “門羅幣最近沒落了嗎?什么原因?”問題“艾俊強(qiáng)”的回答;https://www.zhihu.com/question/60058310/answer/222755086