運(yùn)行于顯卡(GPU)的Rootkit木馬和鍵盤(pán)記錄器問(wèn)世
如今木馬后門(mén)已完全可以運(yùn)行在電腦的顯卡中,這種獨(dú)特的運(yùn)行方式增強(qiáng)了它們的隱匿性,同時(shí)還大大提高了惡意行為的執(zhí)行性能。
基于GPU的惡意軟件
最近,開(kāi)發(fā)人員發(fā)布了兩款概念驗(yàn)證性的惡意軟件——Jellyfish rootkit和Demon鍵盤(pán)記錄器,這兩款?lèi)阂廛浖倪\(yùn)行并不是利用電腦的CPU,而是利用圖像處理器GPU。這種惡意軟件能夠利用GPU實(shí)現(xiàn)比特幣挖礦機(jī),性能更高。
兩名匿名開(kāi)發(fā)者對(duì)該Rootkit(木馬后門(mén))的描述:
“Jellyfish是一個(gè)基于Linux的用戶態(tài)GPU rootkit概念驗(yàn)證項(xiàng)目,它利用了Jynx(CPU)中的LD_PRELOAD技術(shù)和Khronos組織開(kāi)發(fā)的OpenCL API(可以利用GPU)。目前代碼支持AMD和NVIDIA顯卡,并且使用AMD APPSDK的接口是可以兼容Intel的GPU的。”
關(guān)于Demon鍵盤(pán)記錄器,開(kāi)發(fā)者并沒(méi)有提供進(jìn)一步的信息,這個(gè)鍵盤(pán)記錄器是2013年一篇論文中所描述的惡意代碼的POC,這篇論文的題目為“You Can Type, but You Can’t Hide: A Stealthy GPU-based Keylogger.”。其中,論文中陳述道:
“我們提出一種新的方法來(lái)實(shí)現(xiàn)隱秘的鍵盤(pán)記錄器:利用顯卡作為鍵盤(pán)記錄器的運(yùn)行環(huán)境,并對(duì)這種方法的可能性進(jìn)行了探索。該方法的關(guān)鍵點(diǎn)是通過(guò)DMA直接從GPU監(jiān)聽(tīng)系統(tǒng)的鍵盤(pán)緩沖器,除了頁(yè)表之外,無(wú)需對(duì)內(nèi)核代碼或數(shù)據(jù)結(jié)構(gòu)進(jìn)行hook或修改。
對(duì)該方法原型實(shí)現(xiàn)的評(píng)估表明,基于GPU的鍵盤(pán)記錄器可以有效地記錄用戶所有的鍵盤(pán)敲擊信息,并可以將信息存儲(chǔ)在GPU的內(nèi)存空間中,甚至可以當(dāng)場(chǎng)分析記錄的數(shù)據(jù),而運(yùn)行時(shí)間開(kāi)銷(xiāo)可以忽略不計(jì)。”
功能特性
該惡意軟件都能夠在不Hook操作系統(tǒng)內(nèi)核進(jìn)程的情況下運(yùn)行,所以它的運(yùn)行并不會(huì)引起懷疑。
GPU惡意軟件的優(yōu)點(diǎn)如下:
1、網(wǎng)絡(luò)上還沒(méi)有分析GPU惡意軟件的工具;
2、可以通過(guò)DMA(直接內(nèi)存存取)監(jiān)聽(tīng)主機(jī)CPU內(nèi)存;
3、GPU可以用于快速的數(shù)學(xué)計(jì)算;
4、關(guān)閉之后惡意內(nèi)存仍然存留于GPU內(nèi)。
這兩款?lèi)阂廛浖倪\(yùn)行需要滿足以下條件:
1、安裝了OpenCL驅(qū)動(dòng)或ICDS
2、Nvidia或AMD顯卡(英特爾支持AMD SDK)
3、改變r(jià)ootkit/kit.c文件中的第103行,將其中的服務(wù)器IP改成你想監(jiān)視的GPU客戶端所在機(jī)器的IP
游戲玩家成潛在受害者
專(zhuān)家們強(qiáng)調(diào),盡管Jellyfish rootkit能躲避現(xiàn)實(shí)的防御系統(tǒng),但它要求感染的主機(jī)要有一個(gè)獨(dú)立顯卡。因?yàn)樵S多電腦并沒(méi)有獨(dú)立顯卡,這樣的條件可能會(huì)極大地限制惡意軟件的感染量。不過(guò),在某些條件下將能夠滿足這種要求,例如游戲玩家或視頻愛(ài)好者的電腦就很可能含有獨(dú)立顯卡。