郭 春,羅 迪,申國偉,崔允賀,平 源
(1. 貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院公共大數(shù)據(jù)國家重點(diǎn)實(shí)驗(yàn)室,貴州貴陽 550025;2. 許昌學(xué)院信息學(xué)院,河南許昌 461000)
間諜軟件是一種高威脅性、高隱蔽性的惡意軟件,它能夠收集受害者信息并將這些信息在用戶不知情的情況下發(fā)送給攻擊者. 間諜軟件竊取的信息包括用戶訪問過的網(wǎng)站列表、電子郵件、鍵盤擊鍵記錄、屏幕截圖、信用卡號(hào)等[1],在多種數(shù)據(jù)泄露事件中間諜軟件扮演著重要角色.《NTT Security 2019全球威脅情報(bào)報(bào)告》顯示間諜軟件在惡意軟件中數(shù)量排名第一[2]. 卡巴斯基實(shí)驗(yàn)室公布的2019 年Top 10 病毒排名中,排名第一的也是竊取敏感信息的惡意軟件. 間諜軟件已經(jīng)成為互聯(lián)網(wǎng)所面臨的主要安全威脅之一[3].
間諜軟件作為以信息竊取為主要意圖的惡意軟件,比其他惡意軟件更重視隱蔽性[4]. 間諜軟件通常集成觸發(fā)執(zhí)行、進(jìn)程隱藏和文件隱藏等技術(shù)以提升自身在運(yùn)行中的隱蔽性,其中觸發(fā)執(zhí)行指間諜軟件需要在其預(yù)設(shè)的觸發(fā)條件得到滿足時(shí)才執(zhí)行特定行為[5]. 當(dāng)前主流的間諜軟件檢測方法是基于軟件行為的動(dòng)態(tài)檢測方法,該類方法大多以軟件在一定時(shí)長內(nèi)的行為特征作為該軟件有無惡意性的判別依據(jù). 由于集成觸發(fā)執(zhí)行的間諜軟件往往在大部分時(shí)間內(nèi)僅執(zhí)行少量不易暴露的“正常行為”[6],因此傳統(tǒng)的基于軟件行為的檢測方法在實(shí)際環(huán)境中對該類軟件的漏檢率高或檢測及時(shí)性不佳.
針對上述問題,本文采用誘導(dǎo)的思路,主動(dòng)誘發(fā)間諜軟件執(zhí)行其竊密行為(主要為收集或泄露信息行為). 為提升間諜軟件誘導(dǎo)的有效性,本文從應(yīng)用程序編程接口(Application Programming Interface,API)層面分析不同誘導(dǎo)操作和誘導(dǎo)強(qiáng)度對間諜軟件的不同誘發(fā)效果,并以此為基礎(chǔ)構(gòu)建了一種基于誘導(dǎo)機(jī)制的間諜軟件檢測方法(Spyware Detection Method based on Inducement Mechanism,SDMIM).SDMIM 包含誘導(dǎo)操作篩選、軟件“活躍度”計(jì)算、間諜軟件判別3個(gè)階段,能夠適用于多種類型間諜軟件的誘導(dǎo)式檢測.
本文主要工作如下.
(1)對多款不同類型的間諜軟件的行為執(zhí)行方式進(jìn)行分析,從API 調(diào)用數(shù)量的角度探索間諜軟件在有/無誘導(dǎo)操作情況下的行為差異以及不同誘導(dǎo)操作、誘導(dǎo)強(qiáng)度對間諜軟件的不同誘發(fā)效果,為設(shè)計(jì)面向間諜軟件的誘導(dǎo)式檢測方法奠定基礎(chǔ).
(2)在對間諜軟件行為誘發(fā)效果分析的基礎(chǔ)上,提出了一種基于誘導(dǎo)機(jī)制的間諜軟件檢測方法SDMIM.SDMIM 以組建的誘導(dǎo)操作集合為基礎(chǔ),能夠適用于多種類型間諜軟件的誘導(dǎo)式檢測.
(3)使用不同類型的多款間諜軟件及正常軟件組成的樣本集對SDMIM 進(jìn)行實(shí)驗(yàn)測試. 實(shí)驗(yàn)結(jié)果表明,SDMIM 能夠在該樣本集上得到95.98%的檢測準(zhǔn)確率.
間諜軟件檢測是當(dāng)前惡意軟件檢測領(lǐng)域的研究熱點(diǎn)之一. 近年來國內(nèi)外研究者提出了多種檢測方法,這些方法可分為靜態(tài)檢測方法、動(dòng)態(tài)檢測方法和基于誘導(dǎo)的檢測方法.
靜態(tài)檢測是指在不運(yùn)行應(yīng)用程序的情況下,運(yùn)用靜態(tài)分析技術(shù)分析程序的二進(jìn)制文件或反匯編代碼等固有屬性,并從中提取程序的靜態(tài)特征來進(jìn)行惡意軟件檢測的方法[7].Ding等人[8]提取惡意軟件的n-gram 操作碼作為特征,利用深度置信網(wǎng)絡(luò)檢測惡意軟件.Kumar 等人[9]利用圖像化惡意軟件的OpCode 并結(jié)合進(jìn)化算法進(jìn)行惡意軟件檢測. Guo 等人[10]將勒索軟件可視化為灰度圖,利用VGG16 提取特征后運(yùn)用支持向量機(jī)分類勒索軟件.Chu 等人[11]將惡意代碼轉(zhuǎn)化為圖像后,使用卷積神經(jīng)網(wǎng)絡(luò)分類惡意軟件. 總體來說,靜態(tài)檢測方法無需運(yùn)行應(yīng)用程序便可進(jìn)行檢測,但是難以應(yīng)對使用了加殼、代碼混淆等技術(shù)的惡意軟件[12].
動(dòng)態(tài)檢測指在受控環(huán)境中執(zhí)行惡意軟件并觀察軟件與操作系統(tǒng)的交互行為,并以所觀察到的行為特征進(jìn)行檢測的方法[13].Javaheri 等人[14]對系統(tǒng)進(jìn)程行為進(jìn)行分析,使用JRIP和J48決策樹作為分類器識(shí)別間諜軟件.Chen 等人[15]在沙箱中運(yùn)行勒索軟件并采集API 調(diào)用序列作為特征,再使用機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)勒索軟件檢測. Allan 等人[16]使用Cuckoo 沙箱提取惡意軟件API 調(diào)用序列,結(jié)合N-gram 和TF-IDF 算法檢測惡意軟件. Fasano等人[17]運(yùn)行并監(jiān)控間諜軟件的行為,使用時(shí)態(tài)邏輯公式檢測間諜軟件. Amer 等人[18]使用Word2vec 表示API函數(shù)之間上下文關(guān)系,構(gòu)造馬爾可夫鏈的檢測惡意軟件. Wang 等人[19]使用Word2vec 模型得到軟件的API詞向量,再利用殘差網(wǎng)絡(luò)提取特征并結(jié)合注意力機(jī)制檢測惡意軟件. 相比于靜態(tài)檢測方法,動(dòng)態(tài)檢測方法在檢測集成了加殼等靜態(tài)混淆技術(shù)的惡意軟件上具有一定優(yōu)勢,但是該類方法大多對集成了觸發(fā)執(zhí)行等動(dòng)態(tài)逃避技術(shù)的間諜軟件的檢測率低或檢測及時(shí)性差[20].
間諜軟件常集成觸發(fā)執(zhí)行等動(dòng)態(tài)逃避技術(shù),執(zhí)行竊密操作時(shí)隱蔽性強(qiáng). 因此,開始使用誘導(dǎo)間諜軟件執(zhí)行竊密操作的思路[21~23]. 傅軍等人[22]提出基于人工NK細(xì)胞的計(jì)算機(jī)先天免疫模型,通過釋放一些間諜軟件感興趣的“誘導(dǎo)因子”引誘其實(shí)施惡意活動(dòng). 該方法借鑒了先天免疫系統(tǒng)中誘導(dǎo)的原理,但其誘導(dǎo)因子的種類較少且未對不同類型間諜軟件的誘發(fā)效果進(jìn)行分析.Alsaleh等人[23]提出了一種生成欺騙參數(shù)的方法,誘使惡意軟件表現(xiàn)出與正常軟件不同的惡意行為以便于檢測. 總體來說,現(xiàn)有基于誘導(dǎo)的間諜軟件檢測研究尚未形成系統(tǒng)化的體系,還有待繼續(xù)深入研究.
綜上所述,現(xiàn)有的間諜軟件檢測方法尚存在一些不足:靜態(tài)檢測方法難以應(yīng)對集成了代碼混淆和加殼技術(shù)的間諜軟件[24];基于行為的動(dòng)態(tài)檢測方法需要以軟件的行為特征作為判別依據(jù),在面對集成了觸發(fā)執(zhí)行策略的間諜軟件時(shí)容易出現(xiàn)漏檢率高或檢測及時(shí)性不佳的情況[25];當(dāng)前基于誘導(dǎo)的檢測方法存在著誘導(dǎo)操作數(shù)量少且誘導(dǎo)操作有效性評(píng)估不夠等問題,難以有效誘導(dǎo)多種類型的間諜軟件. 針對現(xiàn)有方法存在的不足,本文從API 調(diào)用數(shù)量的角度探索不同誘導(dǎo)操作、誘導(dǎo)強(qiáng)度對間諜軟件的不同誘發(fā)效果,并以此為基礎(chǔ)構(gòu)建適用于檢測多種類型的間諜軟件的誘導(dǎo)式檢測方法.
隨著間諜軟件檢測與反檢測的對抗博弈不斷持續(xù),間諜軟件開發(fā)者為逃避檢測在間諜軟件中集成了觸發(fā)執(zhí)行等逃避技術(shù). 由于觸發(fā)執(zhí)行能夠使間諜軟件執(zhí)行竊密行為時(shí)具有很強(qiáng)的隱蔽性,當(dāng)前集成觸發(fā)執(zhí)行的間諜軟件數(shù)量不斷增加. 針對該趨勢,本文對當(dāng)前主流的5 種類型間諜軟件主要竊密的行為執(zhí)行方式進(jìn)行了實(shí)驗(yàn)分析. 表1 給出了5 種類型的303 個(gè)間諜軟件運(yùn)行樣本(由117 款間諜軟件采用不同設(shè)置得到,間諜軟、件植入主機(jī)后無法更改其設(shè)置)的主要竊密行為所采用的行為執(zhí)行方式.
表1 不同類型間諜軟件的主要竊密行為執(zhí)行方式
從表1可知,上述間諜軟件樣本均采用觸發(fā)執(zhí)行策略執(zhí)行其主要竊密行為,即當(dāng)系統(tǒng)中存在特定操作時(shí)這些間諜軟件才會(huì)實(shí)施其相應(yīng)竊密行為. 為檢測集成了觸發(fā)執(zhí)行的間諜軟件,本文采用誘導(dǎo)的思路,從API調(diào)用的角度探索間諜軟件在有/無誘導(dǎo)操作情況下的行為差異以及不同誘導(dǎo)操作、誘導(dǎo)強(qiáng)度對間諜軟件的不同誘發(fā)效果.
首先,為了探索間諜軟件在有/無誘導(dǎo)操作情況下的行為差異,本文隨機(jī)選取了5 種類型的15 個(gè)間諜軟件樣本和6種類型的8個(gè)正常軟件樣本. 這些樣本在安裝有QQ、谷歌瀏覽器、360 殺毒、愛奇藝視頻、Wegame等軟件的Win7 操作系統(tǒng)中分別運(yùn)行,并將各自在30 s的誘導(dǎo)操作(針對S1~S5類型的間諜軟件分別執(zhí)行鍵盤敲擊、復(fù)制粘貼、瀏覽網(wǎng)頁、打開應(yīng)用程序和創(chuàng)建文件操作各5 次)執(zhí)行時(shí)間段(本文將該時(shí)間段命名為誘導(dǎo)期)和30 s 的無誘導(dǎo)操作執(zhí)行時(shí)間段(本文將該時(shí)間段命名為非誘導(dǎo)期)的API 調(diào)用數(shù)量進(jìn)行記錄,得到表2的結(jié)果.
如表2 所示,本文分析的5 種類型的間諜軟件樣本在其誘導(dǎo)期和非誘導(dǎo)期均調(diào)用了一定數(shù)量的API,但各類型的間諜軟件樣本在其誘導(dǎo)期所調(diào)用的API 數(shù)量明顯多于非誘導(dǎo)期. 這表明這些間諜軟件在誘導(dǎo)期中實(shí)施了更多的行為. 與此同時(shí),表2 還顯示所分析的正常軟件樣本在誘導(dǎo)期和非誘導(dǎo)期調(diào)用的API 數(shù)量相差很小,說明是否有誘導(dǎo)操作對這些正常軟件的行為數(shù)量沒有明顯影響.
表2 實(shí)驗(yàn)樣本非誘導(dǎo)期和誘導(dǎo)期API調(diào)用數(shù)量
接下來分析不同誘導(dǎo)操作對間諜軟件行為的影響. 由表1 可知鍵盤信息記錄型間諜軟件在其中占比最高,因此這里以鍵盤信息記錄型的3個(gè)間諜軟件以及多個(gè)類型的8 個(gè)正常軟件作為分析對象. 在每個(gè)誘導(dǎo)期僅執(zhí)行一種誘導(dǎo)操作5 次的情況下,這些樣本在5 個(gè)誘導(dǎo)期(每個(gè)時(shí)長30 s)和5個(gè)非誘導(dǎo)期(每個(gè)時(shí)長30 s)所調(diào)用API的平均數(shù)量如表3所示.
表3 顯示所分析的間諜軟件樣本在不同的誘導(dǎo)操作下,所增加的API 調(diào)用數(shù)量(誘導(dǎo)期的API 數(shù)量減去非誘導(dǎo)期的API 數(shù)量)有一定差別,即不同的誘導(dǎo)操作對同一類間諜軟件所誘發(fā)的行為數(shù)量存在著不同. 表3還顯示正常軟件樣本在各誘導(dǎo)期和非誘導(dǎo)期中調(diào)用的API數(shù)量差別很小,再次驗(yàn)證了是否有誘導(dǎo)操作對正常軟件的行為數(shù)量幾乎沒有影響.
表3 實(shí)驗(yàn)樣本在不同誘導(dǎo)操作下的API調(diào)用數(shù)量
最后分析單位時(shí)間內(nèi)執(zhí)行不同次數(shù)的誘導(dǎo)操作(本文命名為誘導(dǎo)強(qiáng)度,單位為“次/min”)對間諜軟件行為的影響. 本文在3 個(gè)30 s 的誘導(dǎo)期內(nèi)分別執(zhí)行5 次、10 次和15 次鍵盤敲擊操作,記錄3 個(gè)鍵盤信息記錄型間諜軟件樣本在各誘導(dǎo)期內(nèi)各自所調(diào)用的API數(shù)量,結(jié)果如圖1所示. 由圖1可知,隨著誘導(dǎo)強(qiáng)度的增加,各間諜軟件在其誘導(dǎo)期內(nèi)調(diào)用了更多數(shù)量的API. 這表明不同的誘導(dǎo)強(qiáng)度對間諜軟件的誘發(fā)效果產(chǎn)生不同影響,且誘導(dǎo)強(qiáng)度與所誘發(fā)的間諜軟件行為數(shù)量成正相關(guān)關(guān)系.
圖1 間諜軟件在不同誘導(dǎo)強(qiáng)度下的API調(diào)用數(shù)量
綜合上述分析可知,間諜軟件在其誘導(dǎo)期調(diào)用的API數(shù)量明顯多于其非誘導(dǎo)期,且不同的誘導(dǎo)操作及誘導(dǎo)強(qiáng)度對間諜軟件所誘發(fā)產(chǎn)生的API 數(shù)量存在著影響. 該結(jié)果為本文設(shè)計(jì)基于誘導(dǎo)機(jī)制的間諜軟件檢測方法奠定了基礎(chǔ). 需要注意的是若某款間諜軟件能夠使用低級(jí)的代碼指令直接訪問操作系統(tǒng)底層資源(即繞過系統(tǒng)函數(shù)接口調(diào)用),則無法通過API 分析該間諜軟件,此時(shí)可以通過網(wǎng)絡(luò)流量分析該類間諜軟件.
基于第3 節(jié)的分析結(jié)果,本文提出了一種間諜軟件檢測方法SDMIM. SDMIM 總體框架如圖2 所示,包含了誘導(dǎo)操作篩選、軟件“活躍度”計(jì)算、間諜軟件判別3 個(gè)主要階段. 下面分別對3 個(gè)階段進(jìn)行詳細(xì)描述.
圖2 基于誘導(dǎo)機(jī)制的間諜軟件檢測方法總體框圖
第3節(jié)的分析結(jié)果顯示,不同的誘導(dǎo)操作對同一類間諜軟件的誘發(fā)效果不同. 為了提升對不同類型間諜軟件的誘發(fā)效果,SDMIM 組建了一個(gè)包含多種誘導(dǎo)操作的集合,并通過所設(shè)計(jì)的誘導(dǎo)操作篩選算法從中選取對各間諜軟件有效的誘導(dǎo)操作.
(1)誘導(dǎo)操作集合組建
本文對多種類型的間諜軟件樣本進(jìn)行逆向分析以及運(yùn)行過程分析,發(fā)現(xiàn)間諜軟件對一些用戶事件具有很高的關(guān)注度. 這些用戶事件大多能夠通過用戶可執(zhí)行的操作產(chǎn)生. 根據(jù)該特點(diǎn),本文在系統(tǒng)中主動(dòng)實(shí)施不同種類及數(shù)量的用戶操作,觀察間諜軟件樣本對這些用戶操作的反應(yīng)情況,最終從上百種用戶操作中選出了如表4所示的18種受到較多間諜軟件樣本關(guān)注的用戶操作,組建為誘導(dǎo)操作集合O={(i1,10),(i2,5),…,(i18,2)}.O中每一個(gè)誘導(dǎo)操作(ii,ci)代表著誘導(dǎo)行為ii及其執(zhí)行的強(qiáng)度ci.
表4 誘導(dǎo)操作集合
(2)有效誘導(dǎo)操作篩選
由于不同誘導(dǎo)操作對同一類間諜軟件的API 調(diào)用數(shù)量產(chǎn)生的影響不同,SDMIM 需要從誘導(dǎo)操作集合O中選出能夠有效誘發(fā)待檢測間諜軟件實(shí)施大量行為的誘導(dǎo)操作. 本文設(shè)計(jì)了如算法1 所示的有效誘導(dǎo)操作篩選算法. 該算法首先從O 中依次選取各誘導(dǎo)操作(ii,ci)在系統(tǒng)中執(zhí)行30 秒并獲取該時(shí)間段內(nèi)系統(tǒng)中API 調(diào)用數(shù)量mi,再將其與設(shè)定好的閾值MThreshold進(jìn)行比較:若執(zhí)行(ii,ci)所得到的mi大于等于MThreshold則停止篩選并(ii,ci)選為有效誘導(dǎo)操作;若O 中各誘導(dǎo)操作所得到的mi均小于MThreshold,則選取其中產(chǎn)生最大mi的(ii,ci)作為有效誘導(dǎo)操作.
算法1 有效誘導(dǎo)操作篩選輸入:誘導(dǎo)操作集合O={(i1,10),(i2,5),…,(i18,2)},閾值MThreshold輸出:選取的有效誘導(dǎo)操作(ii,ci)1. FOR i=1,2,…,18 DO 2. 自動(dòng)執(zhí)行誘導(dǎo)操作(ii,ci)3. 記錄系統(tǒng)中API調(diào)用數(shù)量mi 4. IF(mi≥MThreshold)5. 選取該誘導(dǎo)操作(ii,ci)6. BREAK 7. ELSE 8. i=i+1 9. END FOR 10. IF(i >18)11. 選取Mi最大的誘導(dǎo)操作(ii,ci)12. END IF
第3節(jié)的分析結(jié)果顯示,間諜軟件在誘導(dǎo)期和非誘導(dǎo)期的API調(diào)用數(shù)量存在明顯差別,而正常軟件在這兩個(gè)時(shí)間段的API 調(diào)用數(shù)量幾乎沒有差別. 因此,為數(shù)量化表示軟件在誘導(dǎo)期和非誘導(dǎo)期的活躍程度,本文定義了一個(gè)“活躍度”(Ibehavior),軟件在一個(gè)時(shí)間段的“活躍度”數(shù)值越高表示其在該時(shí)期的行為執(zhí)行越頻繁. 軟件“活躍度”計(jì)算階段主要包括軟件行為提取和活躍度計(jì)算兩個(gè)步驟. 下面分別進(jìn)行描述.
(1)軟件行為提取
本文認(rèn)為間諜軟件在誘導(dǎo)期相對于其在非誘導(dǎo)期多出的API 調(diào)用數(shù)量主要是由執(zhí)行誘導(dǎo)操作所誘發(fā).為提取誘導(dǎo)期和非誘導(dǎo)期的軟件行為,SDMIM 將上一階段篩選出的有效誘導(dǎo)操作,按照預(yù)先設(shè)定好的時(shí)間間隔在待檢測系統(tǒng)中執(zhí)行并通過監(jiān)控工具Process Monitor 提取系統(tǒng)中各軟件的API(表5 所示的間諜軟件常用的文件系統(tǒng)API、進(jìn)程間通信API 等). 誘導(dǎo)期中提取的API表示為誘導(dǎo)期行為集合Induce_KeyB={(API1,H1),(API2,H2),…,(APIn,Hn)},非誘導(dǎo)期中提取的API表示為非誘導(dǎo)期行為集合No-induce_KeyB={(API1,J1),(API2,J2),…,(APIn,Jn)}. 其中APIi代表某種API,Hi和Ji代表該API的調(diào)用數(shù).
表5 SDMIM監(jiān)控的API
(2)“活躍度”計(jì)算
基于上一步驟得到的Induce_KeyB與Noinduce_KeyB,SDMIM 將通過式(1)和式(2)分別計(jì)算APIi在誘導(dǎo)期和非誘導(dǎo)期的活動(dòng)值Rinduce_i和Rno-induce_i.
其中,Hi為Induce_KeyB中APIi的調(diào)用數(shù),Tinduce為誘導(dǎo)期時(shí)長(單位為min),ci為誘導(dǎo)強(qiáng)度.
其中,Ji為No-induce_KeyB中APIi的調(diào)用數(shù),Tno-induce為非誘導(dǎo)期時(shí)長.
軟件在誘導(dǎo)期和非誘導(dǎo)期中調(diào)用的API 均來源于該軟件在此期間所實(shí)施的行為.SDMIM 從行為覆蓋全面性的角度出發(fā),通過式(3)將APIi在誘導(dǎo)期的Rinduce_i和非誘導(dǎo)期的Rno-induce_i進(jìn)行加權(quán)結(jié)合以得到該API綜合活動(dòng)值Ri.
其中,w1和w2為權(quán)重因子. 為了突出誘導(dǎo)操作對間諜軟件的誘發(fā)效果,本文將w1和w2分別設(shè)定為0.9和0.1.
接下來SDMIM 將APIi的綜合活動(dòng)值Ri與預(yù)設(shè)閾值RThreshold_i如式(4)所示進(jìn)行比較:當(dāng)Ri大于RThreshold_i則將該API 選定為高敏感API(代表其對誘導(dǎo)操作反映敏感),其敏感度量值Sensitivei(本文用于數(shù)量化表示API 的敏感程度)等于Ri;反之則其Sensitivei等于0. 最后,SDMIM 使用式(5)以軟件為單位疊加Sensitivei(i=1,2,…,31)得到待測軟件的活躍度Ibehavior.
綜上所述,通過所提取的軟件行為集合計(jì)算該軟件活躍度的流程如算法2所示.
SDMIM 在本階段將利用式(6)對軟件的活躍度Ibe-havior與預(yù)定的閾值IThreshold進(jìn)行比較,根據(jù)比較結(jié)果判斷待測軟件是間諜軟件還是正常軟件:當(dāng)Y=0 時(shí),將待檢測樣本判別為正常軟件;當(dāng)Y=1 時(shí),則將待檢測軟件判別為間諜軟件.
算法2 軟件"活躍度"計(jì)算輸入:樣本x的誘導(dǎo)期行為集合Induce_KeyB與非誘導(dǎo)期行為集合No-induce_KeyB輸出:樣本x的活躍度Ibehavior 1. FOR i=1,2,…,31 do 2. 根據(jù)式(1)計(jì)算Induce_KeyB中APIi的Rinduce_i 3. 根據(jù)式(2)計(jì)算No-induce_KeyB中APIi的Rno-induce_i 4. 根據(jù)式(3)計(jì)算APIi的Ri 5. 根據(jù)式(4)計(jì)算APIi的Sensitive_i 6. END FOR 7. 根據(jù)式(5)將x的所有Sensitivei累加得到Ibehavior
為了測試SDMIM 的有效性,本文在配置為20 G 內(nèi)存、Intel i7-8700 處理器的物理機(jī)中搭建FTP 服務(wù)器接收間諜軟件回傳的信息;以配置為2 G內(nèi)存、60 G硬盤的VMware Workstation 虛擬機(jī)作為實(shí)驗(yàn)樣本的實(shí)驗(yàn)環(huán)境,該環(huán)境中運(yùn)行著如表6所示的正常軟件. 無特別說明時(shí)實(shí)驗(yàn)中Tinduce和Tno-induce均設(shè)置為1 min(兩者之和在實(shí)驗(yàn)表示為Time,對應(yīng)SDMIM 提取行為的時(shí)長),IThreshold設(shè)置為7000,使用Process Monitor捕獲API數(shù)據(jù).
表6 實(shí)驗(yàn)環(huán)境中已運(yùn)行的正常軟件
本文實(shí)驗(yàn)集中間諜軟件主要來源于virustotal.com,virusshare.com,github.com 等網(wǎng)站,正常軟件來源于360軟件管家. 實(shí)驗(yàn)集包含5 種類型共303 個(gè)間諜軟件運(yùn)行樣本(由117 款間諜軟件采用不同設(shè)置得到,間諜軟件植入主機(jī)后無法更改其設(shè)置)和7 種類型220 個(gè)的正常軟件樣本,包括辦公軟件、聊天交友軟件、查殺類軟件、工具軟件等. 實(shí)驗(yàn)數(shù)據(jù)集中樣本分布如表7所示.
表7 實(shí)驗(yàn)樣本類型及數(shù)量
本文采用惡意軟件檢測領(lǐng)域常用的準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)以及F1 作為SDMIM 檢測性能的評(píng)估指標(biāo),這些指標(biāo)可通過式(7)~(10)進(jìn)行計(jì)算.
5.4.1 MThreshold閾值與RThreshold_i閾值選取
首先針對算法1 中的閾值MThreshold和式(4)中閾值RThreshold_i選取進(jìn)行實(shí)驗(yàn). 本文從實(shí)驗(yàn)集中隨機(jī)抽取10個(gè)鍵盤信息記錄型間諜軟件樣本和10個(gè)正常軟件樣本,在搭建的實(shí)驗(yàn)環(huán)境中執(zhí)行強(qiáng)度為12 次/min 的鍵盤敲擊誘導(dǎo)操作. 本文將僅有正常軟件運(yùn)行(實(shí)驗(yàn)環(huán)境+某個(gè)正常軟件)的系統(tǒng)稱為正常系統(tǒng),將有間諜軟件運(yùn)行(實(shí)驗(yàn)環(huán)境+某個(gè)間諜軟件)的系統(tǒng)稱為異常系統(tǒng). 上述正常系統(tǒng)和異常系統(tǒng)在30s誘導(dǎo)期內(nèi)的API調(diào)用數(shù)量如表8所示.
從表8的統(tǒng)計(jì)數(shù)據(jù)可以看到,存在行為誘發(fā)執(zhí)行的異常系統(tǒng)同時(shí)段API調(diào)用數(shù)量普遍高于正常系統(tǒng),且波動(dòng)范圍也大于正常系統(tǒng). 為簡化分析,本文參考使正常與異常系統(tǒng)的統(tǒng)計(jì)間距最大化的思路,為后續(xù)實(shí)驗(yàn)的MThresh-old賦予略低于二者均值之差的值,如取MThreshold=72212,如圖3所示該值略小于異常系統(tǒng)均值(116064.6)與正常系統(tǒng)均值(42978.2)的差值(73086.4).
表8 不同正常系統(tǒng)與異常系統(tǒng)在30秒誘導(dǎo)期的API調(diào)用數(shù)量
圖3 不同正常系統(tǒng)與異常系統(tǒng)在30s誘導(dǎo)期的API調(diào)用數(shù)量分布
RThreshold_i值關(guān)系到高敏感API 的判定. 本文以上述10 個(gè)間諜軟件樣本和10 個(gè)正常軟件樣本30 s 內(nèi)的API調(diào)用數(shù)量為輸入,通過式(1)~(3)計(jì)算兩類軟件的31種API各自的綜合活動(dòng)值Ri,結(jié)果如表9所示. 本文將表9中的Ri值以計(jì)算得到的值作為各API的RThreshold_i值進(jìn)行后續(xù)實(shí)驗(yàn).
表9 SDMIM中高敏感API判定閾值RThreshold_i取值
5.4.2 不同IThreshold閾值下SDMIM 的檢測效果
為測試不同閾值IThreshold下的SDMIM 檢測精度,本文在5 個(gè)不同IThreshold下使用實(shí)驗(yàn)集(包含303 個(gè)間諜軟件樣本和220 個(gè)正常軟件樣本)進(jìn)行檢測,結(jié)果如表10和圖4所示.
如表10 所示,當(dāng)IThreshold為10000 時(shí),SDMIM 獲得最高的Precision(96.62%);當(dāng)IThreshold為6000時(shí),SDMIM 獲得最高的Recall(97.03%);當(dāng)IThreshold為8000 時(shí),SDMIM獲得最高的F1 值(96.54%). 分析以上結(jié)果,當(dāng)設(shè)定的IThreshold較低時(shí),大部分間諜軟件樣本能夠被正確判定,但是此時(shí)的IThreshold會(huì)使得部分正常軟件樣本被錯(cuò)誤判定為間諜軟件,對應(yīng)SDMIM 獲得較高的Recall 值和其較低的Precision 和F1值. 而當(dāng)設(shè)定的IThreshold較高時(shí),大部分正常軟件樣本能夠被正常判定,但是此時(shí)的IThreshold會(huì)使得部分間諜軟件樣本被錯(cuò)誤判定為正常軟件,對應(yīng)SDMIM 獲得較高的Precision 和較低的Recall 和F1值. 對應(yīng)到圖4 所示的SDMIM 在不同IThreshold下得到的Accuracy 值,也是當(dāng)IThreshold為8000 時(shí),SDMIM 得到Accuracy值的最高(95.98%).
圖4 SDMIM在不同IThreshold下獲得的Accuracy
表10 SDMIM在不同IThreshold下獲得的Precision,Recall和F1
5.4.3 不同Time下SDMIM 的檢測效果
為測試不同Time 下的SDMIM 檢測精度本文設(shè)置IThreshold為8000,在5 個(gè)不同Time 下使用實(shí)驗(yàn)集進(jìn)行檢測,結(jié)果如表11和圖5所示.
表11 SDMIM在不同Time下獲得的Precision,Recall和F1
如表11 所示,隨著使用的檢測時(shí)間Time 逐漸增加,SDMIM 獲得的Precision,Recall 和F1 值呈現(xiàn)上升趨勢. 具體來說,當(dāng)Time為6 min時(shí),SDMIM所獲得的Precision、Recall 以及F1 最高,分別達(dá)到96.37%,97.68%和97.21%. 這是由于間諜軟件樣本在誘導(dǎo)期中調(diào)用的API 數(shù)量會(huì)大幅度增加,而正常軟件無此變化,因此隨著Time 的增加,兩類軟件的API 調(diào)用數(shù)量差距也隨會(huì)之?dāng)U大. 因此,更長的Time 能夠提升SDMIM 對間諜軟件和正常軟件的區(qū)分效果. 相應(yīng)的,圖5顯示隨著Time的增加,SDMIM 所獲得的Accuracy 值也逐漸提升. 當(dāng)Time 為6min 時(shí),SDMIM 獲得本實(shí)驗(yàn)中最高的Accuracy(96.75%).
圖5 SDMIM在不同Time下獲得的Accuracy
5.4.4 方法對比
為進(jìn)一步評(píng)估SDMIM 的檢測精度,本文將SDMIM與文獻(xiàn)[10]、文獻(xiàn)[16]、文獻(xiàn)[18]中方法在本文實(shí)驗(yàn)集上進(jìn)行了對比實(shí)驗(yàn). 文獻(xiàn)[10]中方法為基于軟件可視化的靜態(tài)檢測方法. 文獻(xiàn)[16]和文獻(xiàn)[18]中方法均為基于行為的動(dòng)態(tài)檢測方法. 以本文各實(shí)驗(yàn)樣本在2 min時(shí)間段內(nèi)調(diào)用的API 序列作為數(shù)據(jù)集進(jìn)行實(shí)驗(yàn). 上述對比方法將實(shí)驗(yàn)集以7∶3劃分為訓(xùn)練集和測試集,實(shí)驗(yàn)結(jié)果如表12所示.
表12 不同檢測方法的檢測結(jié)果對比
如表12 所示,SDMIM 得到的Accuracy、Precision、Recall 和F1 均優(yōu)于文獻(xiàn)[10]、文獻(xiàn)[16]和文獻(xiàn)[18]中的方法. 為進(jìn)一步分析上述結(jié)果,本文將各方法在實(shí)驗(yàn)中未能正確判別的樣本類型及數(shù)量進(jìn)行了統(tǒng)計(jì)及分析,結(jié)果如表13所示.
表13 各方法判別錯(cuò)誤樣本統(tǒng)計(jì)及分析
本文通過分析間諜軟件在有/無誘導(dǎo)操作情況下的行為差異以及不同誘導(dǎo)操作和誘導(dǎo)強(qiáng)度對間諜軟件誘發(fā)效果的影響,發(fā)現(xiàn)間諜軟件在其誘導(dǎo)期調(diào)用的API數(shù)量明顯多于其非誘導(dǎo)期,且不同的誘導(dǎo)操作及誘導(dǎo)強(qiáng)度對間諜軟件所誘發(fā)產(chǎn)生的API 數(shù)量存在著不同影響. 基于該分析結(jié)果,本文提出了一種基于誘導(dǎo)機(jī)制的間諜軟件檢測方法SDMIM. 實(shí)驗(yàn)結(jié)果顯示,SDMIM 對5種類型的間諜軟件樣本具有良好的檢測效果. 間諜軟件在誘導(dǎo)過程中調(diào)用的API數(shù)量增加,表明誘導(dǎo)式檢測方案能夠使間諜軟件實(shí)施更多的行為以便對其進(jìn)行檢測,在高隱蔽性間諜軟件檢測領(lǐng)域具有巨大的應(yīng)用價(jià)值. 后續(xù)將探索如何解決本方法對查殺類軟件檢測效果不佳的問題,以期進(jìn)一步提高對間諜軟件的檢測效果.