亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Chrome DevTools Protocol的網(wǎng)頁(yè)挖礦劫持攻擊特征分析方法

        2023-01-02 12:07:00傅繼晗
        軟件導(dǎo)刊 2022年11期
        關(guān)鍵詞:挖礦開發(fā)人員剖析

        傅繼晗,沈 煒

        (浙江理工大學(xué)信息學(xué)院,浙江杭州 310018)

        0 引言

        發(fā)改運(yùn)行〔2021〕1283 號(hào)文件指出虛擬貨幣挖礦活動(dòng)是通過(guò)專用“礦機(jī)”計(jì)算生產(chǎn)虛擬貨幣的過(guò)程,該活動(dòng)能源消耗與碳排放量大,對(duì)國(guó)民經(jīng)濟(jì)貢獻(xiàn)度低[1]。比特幣[2]發(fā)明以來(lái),使用各類挖礦算法的加密貨幣層出不窮,至今已經(jīng)超過(guò)了8 600 種,總市值超過(guò)了2.21 萬(wàn)億美元[3]。在如此高的挖礦熱度下,挖礦已經(jīng)從礦場(chǎng)擴(kuò)散到零星設(shè)備,更有甚者,通過(guò)惡意挖礦網(wǎng)頁(yè)等非法方式占用用戶資源牟取非法利益[4]。自從2017 年誕生第一個(gè)網(wǎng)頁(yè)挖礦程序coinhive[5]以來(lái),越來(lái)越多惡意挖礦網(wǎng)頁(yè)采用內(nèi)嵌挖礦腳本的形式,在用戶登錄網(wǎng)頁(yè)期間,利用網(wǎng)頁(yè)代碼實(shí)施挖礦劫持攻擊(cryptojacking),嚴(yán)重耗費(fèi)了計(jì)算機(jī)資源,影響了人們正常的生產(chǎn)生活。因此,通過(guò)科學(xué)可信的檢測(cè)手段對(duì)挖礦網(wǎng)頁(yè)進(jìn)行準(zhǔn)確檢測(cè)、判斷是當(dāng)今網(wǎng)絡(luò)安全研究中一個(gè)重要課題。

        1 相關(guān)研究

        隨著網(wǎng)頁(yè)內(nèi)置挖礦程序越來(lái)越多,不少網(wǎng)頁(yè)挖礦網(wǎng)站黑名單被曝光,如Nocoin[6]和MinerBlock[7]將含有挖礦木馬的URL、域名、IP 地址等信息保存在黑名單庫(kù)中,通過(guò)檢索判斷是否為惡意網(wǎng)頁(yè)。然而,隨著惡意挖礦網(wǎng)頁(yè)變種增多,不少網(wǎng)站都使用DGA 域名生成算法等手段生成無(wú)規(guī)律隨機(jī)的域名來(lái)繞過(guò)一般的檢測(cè)機(jī)制,因此對(duì)惡意挖礦網(wǎng)站進(jìn)行行為特征分析十分重要。在國(guó)內(nèi)外相關(guān)研究中,主要分為惡意挖礦網(wǎng)站的靜態(tài)分析和動(dòng)態(tài)分析,國(guó)內(nèi)辛毅等[8]對(duì)挖礦木馬進(jìn)行檢測(cè)分析,應(yīng)宗浩等[9]對(duì)木馬攻擊手段進(jìn)行研究。國(guó)外如Romano 等[10]提出MinerRay 技術(shù),通過(guò)語(yǔ)義分析網(wǎng)頁(yè)代碼分析挖礦行為;Domhnall Carlin 等[11]通過(guò)ollydbg 調(diào)試運(yùn)行惡意網(wǎng)頁(yè)的Chrome 瀏覽器,從機(jī)器指令集角度分析惡意網(wǎng)頁(yè)特征;Papadopoulos 等[12]通過(guò)網(wǎng)頁(yè)運(yùn)行時(shí)的CPU、內(nèi)存使用情況以及系統(tǒng)溫度識(shí)別挖礦網(wǎng)頁(yè)。

        但上述惡意挖礦網(wǎng)頁(yè)分析方法存在以下3個(gè)問(wèn)題:

        (1)由于惡意代碼在Chrome 瀏覽器的JavaScript 虛擬機(jī)中運(yùn)行,因此通過(guò)ollydbg 等調(diào)試器進(jìn)行機(jī)器指令級(jí)分析效率不高,且在不同架構(gòu)CPU 的機(jī)器上通用性差。

        (2)惡意代碼存在嚴(yán)重混淆,導(dǎo)致如上文提到的minerray 等一些JavaScript 分析框架容易出錯(cuò),在實(shí)驗(yàn)中難以對(duì)付越來(lái)越多的惡意挖礦變種。

        (3)通過(guò)網(wǎng)頁(yè)運(yùn)行時(shí)的CPU、內(nèi)存使用情況以及系統(tǒng)溫度識(shí)別挖礦網(wǎng)頁(yè)容易造成誤報(bào),錯(cuò)誤地將一些網(wǎng)頁(yè)游戲識(shí)別成挖礦程序,而且檢測(cè)環(huán)境必須是在只運(yùn)行瀏覽器的情況下,實(shí)際生產(chǎn)環(huán)境中難以做到,并且受外界溫濕度的影響較大。

        針對(duì)以上問(wèn)題,本文提出基于Chrome 瀏覽器自帶的開發(fā)人員工具檢測(cè)網(wǎng)頁(yè)挖礦的方法,能有效提升檢測(cè)效率與準(zhǔn)確度。通過(guò)FOFA 引擎搜索authedmine.com 接口,獲取有代表性的挖礦網(wǎng)頁(yè)http://218.29.203.186:7788,并以該網(wǎng)站為例,使用Chrome 自帶的開發(fā)人員工具分析其挖礦期間的各種特征,從而提高對(duì)網(wǎng)頁(yè)惡意挖礦行為的檢測(cè)及防范水平。

        2 惡意樣本靜態(tài)特征

        2.1 惡意代碼標(biāo)簽引入點(diǎn)

        一個(gè)HTML 格式的網(wǎng)頁(yè)主要由head、body 組成,其中head 和body 里可以插入script 標(biāo)簽或者iframe 以引入其他外部js 腳本。在本例惡意挖礦網(wǎng)頁(yè)中發(fā)現(xiàn)了兩處惡意挖礦代碼的引入點(diǎn)。其中,位于head中的script標(biāo)簽如下:

        2.2 惡意代碼具體特征

        從上述script 標(biāo)簽引入的惡意代碼中,可以看見(jiàn)設(shè)置了API_KEY(見(jiàn)圖1),惡意代碼植入者通過(guò)設(shè)置API_KEY來(lái)連接挖礦服務(wù)提供者,從而將挖礦收益記錄到自己的賬戶。同時(shí),該惡意代碼還創(chuàng)建了新的iframe 標(biāo)簽(見(jiàn)圖2),iframe 也被稱為HTML 內(nèi)聯(lián)框架元素,能將另一個(gè)HTML頁(yè)面嵌入到當(dāng)前頁(yè)面中[13],惡意代碼通過(guò)創(chuàng)建iframe 進(jìn)一步引入新的惡意代碼并執(zhí)行。由于iframe 的代碼執(zhí)行虛擬環(huán)境獨(dú)立于主網(wǎng)頁(yè),因此通過(guò)iframe 執(zhí)行惡意代碼也能一定程度上繞開相關(guān)檢測(cè)機(jī)制。

        Fig.1 API_KEY imported with malicious code圖1 惡意代碼引入的API_KEY

        Fig.2 Impovting new malicious code by creating new iframe圖2 通過(guò)創(chuàng)建新的iframe引入新的惡意代碼

        進(jìn)一步分析新引入的iframe,發(fā)現(xiàn)其本質(zhì)是一個(gè)表單,一旦點(diǎn)擊表單上藍(lán)色高亮的同意按鈕,該iframe 會(huì)加載混淆過(guò)的惡意挖礦代碼,如圖3所示。

        Fig.3 Impovting new malicious code圖3 引入新的惡意代碼

        對(duì)惡意代碼進(jìn)行反混淆,發(fā)現(xiàn)惡意挖礦代碼的原理是通過(guò)隱式方式引入wasm 文件,使用WebAssembly 語(yǔ)言通過(guò)瀏覽器進(jìn)行挖礦,如圖4 所示。WebAssembly 是一種新型編碼方式,是一種低級(jí)的類匯編語(yǔ)言[14],具有緊湊的二進(jìn)制格式,可以接近原生的性能運(yùn)行。惡意代碼使用WebAssembly 提升了挖礦效率。

        Fig.4 Wasm object imported in malicious code圖4 惡意代碼中植入的wasm文件對(duì)象

        3 惡意樣本動(dòng)態(tài)行為特征分析方法

        對(duì)上述惡意樣本進(jìn)行靜態(tài)代碼分析后可以發(fā)現(xiàn),惡意樣本的代碼混淆程度較高,且使用iframe 執(zhí)行代碼,導(dǎo)致使用一般的方法難以識(shí)別挖礦代碼。本文將使用Chrome自帶的開發(fā)人員工具從網(wǎng)絡(luò)行為以及javascriptCPU 性能剖析器的角度對(duì)惡意樣本進(jìn)行分析。

        3.1 通過(guò)網(wǎng)絡(luò)行為特征識(shí)別惡意代碼

        在惡意網(wǎng)站加載完所有惡意代碼之后,瀏覽器控制臺(tái)會(huì)打印一條WebSockets 連接的建立和多個(gè)worker 的創(chuàng)建情況,隨后另一組WebSockets 和worker 建立,通過(guò)分析日志打印的來(lái)源(Chrome JavaScript 引擎腳本VM6 與VM8)以及兩條不同的wss 連接路徑,得知這兩組WebSockets 和wocker 分別來(lái)自前一節(jié)兩處不同惡意代碼引入點(diǎn)的執(zhí)行環(huán)境,如圖5所示。

        WebSockets 是一種先進(jìn)的技術(shù),可以在用戶的瀏覽器和服務(wù)器之間打開交互式通信會(huì)話[15],與http 協(xié)議共享端口。通過(guò)分析WebSockets 網(wǎng)址和傳輸?shù)膉son 格式消息,可以確定該WebSockets 連接用于下發(fā)挖礦任務(wù),同時(shí)向挖礦服務(wù)器上傳挖礦結(jié)果。由于其采用了wss 即WebSockets over SSL/TLS 加密方案,導(dǎo)致各單位難以從網(wǎng)關(guān)過(guò)濾中發(fā)現(xiàn)此類流量,如圖6 所示。對(duì)惡意網(wǎng)站另一處iframe 引入的代碼(見(jiàn)圖1)進(jìn)行比較分析后發(fā)現(xiàn),該處引入的惡意代碼與圖6 處一致,且引入該代碼的url 中key 的數(shù)據(jù)一樣,均為jC8oUd3fagiDXAm,表明該處代碼與前一處script標(biāo)簽的代碼為同一黑客引入。

        Fig.5 Two sets of console logs圖5 兩組控制臺(tái)日志

        Fig.6 Wss sessions created while malicious code executing圖6 惡意代碼建立的wss消息內(nèi)容

        通過(guò)分析wss 的消息內(nèi)容,得知挖礦服務(wù)器下發(fā)了多個(gè)任務(wù),同時(shí)繼續(xù)對(duì)惡意樣本進(jìn)行網(wǎng)絡(luò)日志審計(jì),發(fā)現(xiàn)該惡意網(wǎng)站加載了多組相同的惡意代碼,其中包括與上一節(jié)相同的wasm 代碼,如圖7所示。

        Fig.7 Malicious samples loaded multiple groups of minning codes圖7 惡意樣本加載了多組挖礦代碼

        由此可以推斷該惡意樣本至少同時(shí)使用8 個(gè)線程進(jìn)行挖礦。雖然挖礦軟件的網(wǎng)絡(luò)流量經(jīng)過(guò)了SSL 加密,外部網(wǎng)關(guān)難以獲取相關(guān)流量,但由于挖礦軟件本身是在瀏覽器中運(yùn)行,因此使用Chrome 自帶的開發(fā)人員工具能夠繞開SSL 層,無(wú)需解密即可直接獲取挖礦程序運(yùn)行時(shí)的網(wǎng)絡(luò)流量日志,為特征分析提供方便。

        由于瀏覽器開發(fā)人員自帶的工具使用Chrome Dev-Tools Protocol 協(xié)議連接調(diào)試頁(yè)面,也即是說(shuō),任何一個(gè)實(shí)現(xiàn)了Chrome DevTools Protocol 的程序都可以用來(lái)調(diào)試頁(yè)面。據(jù)此,提出以下檢測(cè)惡意挖礦網(wǎng)站的方法,即使用remotedebugging-port 參數(shù)啟動(dòng)Chrome 瀏覽器無(wú)頭模式,暴露出Chrome DevTools Protocol 協(xié)議端口,再使用nodejs 調(diào)用Chrome-remote-interface 庫(kù),通過(guò)該協(xié)議與無(wú)頭模式的瀏覽器進(jìn)行通訊,控制瀏覽器訪問(wèn)惡意挖礦網(wǎng)站,最后通過(guò)記錄websocket 日志,從中提取特征信息,如“wasm”“set_job””get_job”等,與挖礦流量日志數(shù)據(jù)庫(kù)進(jìn)行比對(duì)即可篩選出挖礦網(wǎng)站,流程如圖8所示。

        Fig.8 Web mining detection program based on traffic analysis圖8 基于流量分析的網(wǎng)頁(yè)挖礦檢測(cè)程序

        3.2 使用JavaScript CPU剖析器檢測(cè)惡意代碼

        虛擬貨幣挖礦需要大量計(jì)算,必定會(huì)增加CPU 負(fù)荷。劫持挖礦一般利用CPU 較多、GPU 較少,導(dǎo)致CPU 利用率過(guò)高,因此觀察CPU 利用率可作為判定是否被劫持挖礦的特征之一。JavaScript CPU 性能剖析器是一個(gè)Chrome 開發(fā)人員工具里自帶的JavaScript 動(dòng)態(tài)分析組件,能自動(dòng)記錄放入其中的JavaScript 代碼運(yùn)行時(shí)每個(gè)函數(shù)調(diào)用棧消耗CPU 的特征。由于惡意網(wǎng)站使用了代碼混淆技術(shù),使用JavaScript CPU 性能剖析器能夠很好地抗混淆并記錄虛擬機(jī)實(shí)例中執(zhí)行的函數(shù)名稱。鑒于惡意挖礦木馬往往在視頻網(wǎng)站中寄生,故將普通視頻網(wǎng)站與惡意樣本的運(yùn)行結(jié)果進(jìn)行比對(duì),分析其動(dòng)態(tài)運(yùn)行特征,結(jié)果如下:

        由圖9、圖10 可知,在惡意網(wǎng)站中,存在多個(gè)JavaScript虛擬機(jī)實(shí)例,且每個(gè)實(shí)例中wasm-function 函數(shù)占用CPU 的時(shí)間最多,而在普通的視頻網(wǎng)站中,則是program 函數(shù)占用時(shí)間最多,如圖11所示。

        火焰圖是一種基于堆棧跟蹤剖析器收集數(shù)據(jù)繪制的用于性能剖析的可視化圖表。在火焰圖中,元素以堆疊方式顯示,函數(shù)的調(diào)用堆棧從下到上顯示,其中最上面的元素代表堆棧中最新調(diào)用的函數(shù)[16],如圖12、圖13 所示,元素越寬代表該函數(shù)占用CPU 資源越多。Chrome 開發(fā)人員工具每隔一段時(shí)間(timeDeltas)進(jìn)行采樣得到繪制火焰圖的原始數(shù)據(jù),對(duì)以上函數(shù)調(diào)用情況繪制火焰圖表可以發(fā)現(xiàn),挖礦網(wǎng)站的資源使用情況呈現(xiàn)一定規(guī)律,而普通網(wǎng)站的資源使用情況相對(duì)不規(guī)律,如圖14、圖15所示。

        Fig.9 Malicious code creates multiple JS virtual machine instances for mining圖9 惡意代碼創(chuàng)建多個(gè)JS虛擬機(jī)實(shí)例挖礦

        Fig.10 Function calls of malicious websites圖10 惡意網(wǎng)站中的函數(shù)調(diào)用情況

        Fig.11 Function calls of ordinary video websites圖11 普通視頻網(wǎng)站中的函數(shù)調(diào)用情況

        由于開發(fā)人員工具導(dǎo)出的性能分析數(shù)據(jù)為函數(shù)調(diào)用棧頂函數(shù)名的排列串,因此排除這些函數(shù)串中名稱為“(program)”或者“(idle)”的函數(shù),從剩下的函數(shù)名子串中選擇函數(shù)名相同的連續(xù)子串s1s2s3…sk。通過(guò)Amir 等[17]提出的周期模式挖掘算法獲取其中可能的排列周期,即選定一個(gè)ε∈[0,1),存在ρ,使得s1s2s3…sk中存在最大子串序列snsn+1sn+2…sn+m,滿足其中任意子串長(zhǎng)度的絕對(duì)誤差大于ρ且小于ρ(1 +ε),從中獲得的最大子串序列長(zhǎng)度m即為挖礦函數(shù)周期數(shù)M,ρ為挖礦函數(shù)周期長(zhǎng)度P,用偽代碼表示如下:

        Fig.12 Code snippets and data collected by the corresponding performance profiler圖12 代碼片段與對(duì)應(yīng)性能剖析器采集的數(shù)據(jù)

        Fig.13 Flame diagram based on the data collected in figure 12圖13 根據(jù)圖12采集數(shù)據(jù)繪制的火焰圖

        Fig.14 CPU performance flame diagram of malicious websites圖14 惡意網(wǎng)站的CPU性能火焰圖

        Fig.15 CPU performance flame diagram of ordinary video websites圖15 普通視頻網(wǎng)站的CPU性能火焰圖

        由此,設(shè)計(jì)一個(gè)基于JavaScript 剖析器的網(wǎng)頁(yè)挖礦檢測(cè)程序,其工作模式如圖16所示。

        Fig.16 Web mining detection program based on performance profile圖16 基于性能剖析器的網(wǎng)頁(yè)挖礦檢測(cè)程序

        4 實(shí)驗(yàn)驗(yàn)證與分析

        4.1 實(shí)驗(yàn)環(huán)境

        硬件環(huán)境為HP probook 440 G6,軟件環(huán)境為windows10 20H4 以及python3.10,實(shí)現(xiàn)方式為通過(guò)python 控制基于Chrome 的無(wú)頭瀏覽器訪問(wèn)樣本中的網(wǎng)頁(yè)。

        4.2 實(shí)驗(yàn)過(guò)程與結(jié)果

        利用Adblock 防火墻提供的基于瀏覽器的秘密挖礦黑名單[18]和部分瀏覽器插件內(nèi)置的挖礦黑名單,收集有挖礦靜態(tài)特征的20 個(gè)挖礦網(wǎng)頁(yè)樣本。通過(guò)網(wǎng)絡(luò)各收集20 個(gè)有視頻網(wǎng)頁(yè)樣本和無(wú)視頻一般網(wǎng)頁(yè)樣本,使用本文提出的網(wǎng)頁(yè)挖礦檢測(cè)方法通過(guò)流量分析和CPU 分析進(jìn)行驗(yàn)證。

        在特征分析中,本文定義疑似存在挖礦靜態(tài)特征的網(wǎng)頁(yè)特征分析為真(T),否則為假(F);在流量分析中,使用remote-debugging-port 參數(shù)啟動(dòng)Chrome 瀏覽器無(wú)頭模式,暴露出DevTools Protocol 協(xié)議端口,再使用nodejs 調(diào)用Chrome-remote-interface 庫(kù),通過(guò)該協(xié)議與瀏覽器進(jìn)行通訊,控制瀏覽器訪問(wèn)惡意挖礦網(wǎng)站,從記錄websocket 日志中提取特征信息,并與挖礦流量日志數(shù)據(jù)庫(kù)比對(duì),符合特征為真(T),否則為假(F);在CPU 分析中,利用JavaScript CPU 性能剖析器進(jìn)行驗(yàn)證,網(wǎng)頁(yè)占用CPU 資源多且占用情況呈現(xiàn)一定規(guī)律的為真(T),否則為假(F)。具體驗(yàn)證結(jié)果如表1所示。

        Table 1 Experimental verification results表1 實(shí)驗(yàn)驗(yàn)證結(jié)果

        結(jié)果表明,挖礦網(wǎng)頁(yè)3 項(xiàng)全部為真即真陽(yáng)性TP(預(yù)測(cè)為正,實(shí)際也為正)最大檢出數(shù)為18 個(gè),最小數(shù)也有17 個(gè),其準(zhǔn)確率在85%~90%之間,而其他網(wǎng)頁(yè)假陰性FN(預(yù)測(cè)為負(fù)、實(shí)際為正)最多只有1 個(gè)。因此,該方法能有效檢測(cè)出大多數(shù)挖礦網(wǎng)頁(yè),有較高準(zhǔn)確率。

        5 結(jié)論與展望

        本文以一個(gè)真實(shí)的挖礦網(wǎng)站為例,提出兩種基于Chrome 瀏覽器自帶開發(fā)人員工具(DevTools)的自動(dòng)化動(dòng)態(tài)檢測(cè)分析方法,將兩種動(dòng)態(tài)檢測(cè)分析方法相結(jié)合具有效率高、抗混淆和出錯(cuò)率低的特點(diǎn)。未來(lái)開發(fā)人員可以基于Chrome DevTools Protocol 結(jié)合相關(guān)封裝好的調(diào)用庫(kù)開發(fā)相關(guān)檢測(cè)工具,以提升檢測(cè)水平。在實(shí)際中,有一些礦池采用加密通信,對(duì)于加密流量如何檢測(cè),本文未作研究,將在下一步進(jìn)行探索。

        猜你喜歡
        挖礦開發(fā)人員剖析
        合力攻堅(jiān) 全面治理高?!巴诘V”
        多措并舉 全流程整治“挖礦”
        一元一次方程錯(cuò)解剖析
        剖析高考數(shù)列創(chuàng)新題
        Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
        “幾何圖形初步”錯(cuò)解剖析
        挖礦木馬的攻擊手段及防御策略研究
        挖礦的史蒂夫
        集合中的錯(cuò)解剖析
        讓W(xué)indows 10進(jìn)入開發(fā)者模式
        電腦迷(2015年12期)2015-04-29 23:22:51
        天天综合色中文字幕在线视频| 国产特级毛片aaaaaa| 人妻暴雨中被强制侵犯在线| 亚洲精品有码在线观看| 青青草免费激情自拍视频| 日韩女优一区二区在线观看 | 手机福利视频| 影视先锋av资源噜噜| 一区二区视频观看在线| 国产精品三级国产精品高| gg55gg国产成人影院| 国产精品久久久久免费观看| 国内精品伊人久久久久影院对白| 亚洲国模一区二区三区视频| 中文字幕亚洲精品高清| 国内精品亚洲成av人片| 国产免费一区二区三区免费视频| 少妇饥渴xxhd麻豆xxhd骆驼| 亚洲国产字幕| 东京热加勒比国产精品| 女人无遮挡裸交性做爰| 乱色熟女综合一区二区三区| 国产系列丝袜熟女精品视频| 国产av一区二区三区在线 | 亚洲春色在线视频| 亚洲av之男人的天堂| 妇女自拍偷自拍亚洲精品| 开心五月骚婷婷综合网| 亚洲av日韩av永久无码下载| 中国xxx农村性视频| www.91久久| 国产精品自拍视频免费观看| 精品人妻系列无码人妻漫画| 男女车车的车车网站w98免费| 加勒比黑人在线| 中文字幕一区二区三区6| 真实夫妻露脸自拍视频在线播放| 亚洲av无码xxx麻豆艾秋| 91亚洲精品福利在线播放| 福利视频在线一区二区三区| 揄拍成人国产精品视频|