金炳初,文 輝,石志強(qiáng),張智淵,陳俊杰
1.太原理工大學(xué) 信息與計算機(jī)學(xué)院,太原030024
2.中國科學(xué)院 信息工程研究所 物聯(lián)網(wǎng)信息安全技術(shù)北京市重點實驗室,北京100195
3.中國科學(xué)院大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,北京100195
惡意軟件是一種用來實現(xiàn)攻擊者有害意圖的軟件[1],旨在獲取對計算機(jī)系統(tǒng)和網(wǎng)絡(luò)資源的訪問,干擾計算機(jī)操作,并在未經(jīng)系統(tǒng)所有者同意的情況下收集個人信息,對互聯(lián)網(wǎng)的可用性、主機(jī)的完整性和用戶的隱私構(gòu)成嚴(yán)重威脅[2]。在互聯(lián)網(wǎng)飛速發(fā)展的今天,網(wǎng)絡(luò)安全形勢不容樂觀。2016 年,賽門鐵克公司共監(jiān)測到超過35億個惡意軟件的新型變種,100多個新型惡意軟件家族,數(shù)量是過去的3倍[3]。2017年,騰訊電腦管家統(tǒng)計數(shù)據(jù)顯示,PC端總計已攔截病毒近30億次,平均每月攔截木馬病毒近2.45 億次,全年共發(fā)現(xiàn)6.3 億臺用戶機(jī)器中病毒或木馬[4]。2018 年上半年瑞星“云安全”系統(tǒng)共截獲病毒樣本總量2 587萬個,病毒感染次數(shù)7.82億次,其中新增木馬病毒占總體數(shù)量的62.83%[5]。綜上所述,惡意軟件數(shù)量迅速增加的同時,呈現(xiàn)出多樣化、多態(tài)化的趨勢。傳統(tǒng)的基于病毒特征碼的檢測技術(shù)無法檢測新增惡意軟件,雖然部分惡意軟件檢測技術(shù)采用啟發(fā)式的檢測方法,使用API 序列、系統(tǒng)全局鉤子等方式監(jiān)測軟件行為,但這樣的方式速度慢、效率低且存在安全隱患,不適合大規(guī)模的惡意樣本檢測[6]。因此,如何快速進(jìn)行惡意軟件的檢測,已成為網(wǎng)絡(luò)安全界關(guān)注的焦點,其中惡意軟件分類是檢測新型惡意軟件的第一步[7],在對抗惡意軟件多態(tài)與多樣性具有重要意義。
目前用于分類惡意軟件的技術(shù)可分為兩大類:基于靜態(tài)特征的方法和基于動態(tài)特征的方法。靜態(tài)特征指的是在惡意樣本不運(yùn)行的情況下通過分析程序指令與結(jié)構(gòu)提取的特征[8],常用的靜態(tài)特征包括字符串、指令序列以及字節(jié)序列等,這些靜態(tài)特征粒度雖細(xì),但不能反應(yīng)樣本真實的惡意行為。動態(tài)特征則是在惡意樣本運(yùn)行后,與系統(tǒng)進(jìn)行交互所產(chǎn)生的狀態(tài)變化,如注冊表、文件系統(tǒng)、網(wǎng)絡(luò)活動。常用的動態(tài)特征包括系統(tǒng)調(diào)用及參數(shù)、網(wǎng)絡(luò)活動等,從動態(tài)特征中可以觀察到惡意樣本的真實活動。
根據(jù)目前的研究現(xiàn)狀,本文提出了一種基于行為路徑樹的惡意軟件分類方法,首先在虛擬環(huán)境中捕捉惡意樣本與系統(tǒng)交互的行為路徑,然后將其轉(zhuǎn)化為樹型結(jié)構(gòu)并提取特征向量。最后構(gòu)建了基于自適應(yīng)隨機(jī)森林的惡意軟件分類模型對樣本進(jìn)行分類。本文的貢獻(xiàn)主要包含以下3部分:
(1)本文設(shè)計了一種基于行為路徑的惡意樣本特征提取方法,與基于系統(tǒng)調(diào)用的特征提取相比,能以更小的代價生成特征間的依賴關(guān)系。
(2)本文從多個公開數(shù)據(jù)集收集并構(gòu)建了一個惡意樣本數(shù)據(jù)庫,包含102 個惡意軟件家族,共計37 000 個惡意樣本。
(3)本文構(gòu)建了一個基于自適應(yīng)隨機(jī)森林的惡意軟件分類模型,該模型能夠通過隨機(jī)逼近的方式完成行為路徑樹深度尋優(yōu),且惡意軟件分類效果優(yōu)于其他常見的分類器算法。
傳統(tǒng)基于動態(tài)特征的惡意軟件分類方法中,主要使用系統(tǒng)調(diào)用及參數(shù)作為樣本動態(tài)特征。文獻(xiàn)[7]提出了一種基于最大分量子圖檢測的惡意軟件分類方法。在沙箱環(huán)境中運(yùn)行惡意樣本后,捕獲系統(tǒng)調(diào)用以及這些調(diào)用的參數(shù)值,并從這些系統(tǒng)調(diào)用中生成有向圖,通過計算最大公共子圖來比較兩個樣本的相似度。文獻(xiàn)[9]使用動態(tài)分析工具從運(yùn)行在虛擬環(huán)境中的可執(zhí)行文件中提取系統(tǒng)調(diào)用序列,并使用隨機(jī)森林分類器對惡意軟件進(jìn)行分類,在其使用的數(shù)據(jù)集中達(dá)到97%的準(zhǔn)確率。文獻(xiàn)[10]提出了一種基于網(wǎng)絡(luò)行為的惡意軟件分類框架,網(wǎng)絡(luò)行為以pcap文件的形式輸入到框架中,提取包含IP地址、端口號和協(xié)議信息的網(wǎng)絡(luò)流作為惡意軟件動態(tài)特征,將網(wǎng)絡(luò)流及其依賴關(guān)系抽象成行為圖來表示惡意軟件的網(wǎng)絡(luò)活動。文獻(xiàn)[11]提出了一種利用機(jī)器學(xué)習(xí)對惡意樣本進(jìn)行聚類的方法。數(shù)據(jù)集中所有樣本都在虛擬環(huán)境中運(yùn)行,并監(jiān)視系統(tǒng)調(diào)用及其參數(shù)。創(chuàng)建包含注冊表鍵、寫入文件和網(wǎng)絡(luò)活動的行為概要文件。通過計算兩個概要文件之間的相似性,利用聚類算法將惡意樣本分組到不同的集群中。文獻(xiàn)[12]提出了一種降低沙箱分析結(jié)果復(fù)雜性的惡意軟件指令集(MIST),將沙箱分析結(jié)果轉(zhuǎn)化為指令的形式,輸入惡意軟件分類模型中,取得了較好的實驗結(jié)果。
以上基于動態(tài)特征的惡意軟件分類方法中,系統(tǒng)調(diào)用序列與沙箱分析結(jié)果指令化忽略了系統(tǒng)調(diào)用間的依賴關(guān)系;網(wǎng)絡(luò)行為圖的方法缺少注冊表、文件系統(tǒng)等基于主機(jī)的特征,這種特征提取的片面性導(dǎo)致分類結(jié)果不可信;系統(tǒng)調(diào)用圖中通過結(jié)點間的有向邊體現(xiàn)系統(tǒng)調(diào)用之間的依賴關(guān)系,但圖中過多的回路增加了圖結(jié)構(gòu)的復(fù)雜度,加大分類模型的性能開銷。
針對以上方法中出現(xiàn)的問題,本文提出了基于行為路徑樹的惡意軟件分類方法,該方法選擇惡意樣本細(xì)粒度行為路徑作為樣本動態(tài)特征,行為路徑中包含基于主機(jī)和網(wǎng)絡(luò)的特征,涵蓋了惡意樣本對注冊表、文件系統(tǒng)以及網(wǎng)絡(luò)的操作。此外,本文將行為路徑轉(zhuǎn)化為樹型結(jié)構(gòu),稱作行為路徑樹。樹型結(jié)構(gòu)中相同路徑的行為都?xì)w為樹型結(jié)構(gòu)的一個結(jié)點,有相同路徑前綴的行為則有相同的父結(jié)點,降低結(jié)構(gòu)復(fù)雜度的同時,又保留了行為之間的依賴關(guān)系(父結(jié)點與子結(jié)點)。
本章主要描述了基于自適應(yīng)隨機(jī)森林的惡意軟件分類方法,整體流程如圖1所示。首先在虛擬環(huán)境中通過監(jiān)控惡意樣本運(yùn)行捕獲惡意操作,包括惡意樣本對注冊表、文件系統(tǒng)及網(wǎng)絡(luò)的相關(guān)操作;然后將其按照操作目標(biāo)的不同劃分多個細(xì)粒度行為,并獲取相應(yīng)的行為路徑;再次,將捕獲到的行為路徑轉(zhuǎn)化成樹型結(jié)構(gòu),按照一定規(guī)則從樹型結(jié)構(gòu)中進(jìn)行特征提取并進(jìn)行特征離散化;最后采用集成學(xué)習(xí)構(gòu)建基于自適應(yīng)隨機(jī)森林的惡意軟件分類模型,分類結(jié)果通過Bagging 策略來決定。本文在下面的部分中將更詳細(xì)地描述各個步驟。
圖1 整體流程
惡意樣本動態(tài)行為獲取是通過對樣本進(jìn)行監(jiān)控,捕獲樣本細(xì)粒度行為路徑。獲取過程如下:首先配置虛擬環(huán)境,并設(shè)置網(wǎng)絡(luò)連接方式為host-only,防止惡意樣本對真實的操作系統(tǒng)造成影響;其次,對惡意樣本進(jìn)行動態(tài)行為監(jiān)控與捕獲,包括被監(jiān)控惡意樣本對注冊表、文件系統(tǒng)以及網(wǎng)絡(luò)活動的操作;再次,根據(jù)操作對象的不同,將同一操作劃分為細(xì)粒度行為;最后捕獲樣本細(xì)粒度行為路徑。圖2 為惡意樣本locky.exe 的部分監(jiān)控結(jié)果,惡意樣本的運(yùn)行代表程序中API序列的執(zhí)行,API與行為路徑之間存在一對多的關(guān)系,例如函數(shù)RegQuery-ValueEx 對應(yīng)圖中查詢注冊表鍵值的操作RegQuery-Value,該操作根據(jù)查詢對象不同可分為多個細(xì)粒度查詢行為RegQueryValue(reg1),RegQueryValue(reg2),…,RegQueryValue(regN),每種查詢行為都對應(yīng)一條行為路徑。
圖2 監(jiān)控結(jié)果
動態(tài)特征提取是將行為路徑轉(zhuǎn)化為樹型結(jié)構(gòu),再從樹型結(jié)構(gòu)生成特征向量的過程,本文中將該樹型結(jié)構(gòu)稱作行為路徑樹。惡意樣本的行為路徑樹是動態(tài)生成的,其生成方式按照路徑一致性原則將路徑序列合并到已有行為樹中。路徑一致性原則如下,每獲取樣本的一條行為路徑,都會遍歷當(dāng)前已存在的行為路徑樹,若路徑樹中存在完全相同的路徑,則將該路徑中所有目錄結(jié)點間的邊權(quán)值加1;若樹中存在不完全相同(擁有相同路徑前綴)的路徑,則將該路徑前綴中目錄結(jié)點間的邊權(quán)值加1,并從前綴中最后一個結(jié)點處生成新的分支,新分支中邊權(quán)值初始化為1;若樹中不存在相同的路徑或路徑前綴,則從行為樹的根結(jié)點處生成新的分支,邊權(quán)值初始化為1。
綜上所述,行為路徑樹有3個重要組成部分。(1)結(jié)點:合并相同的行為路徑作為路徑樹中的結(jié)點。(2)依賴關(guān)系:擁有相同路徑前綴的行為構(gòu)成路徑樹中的父與子結(jié)點。(3)邊權(quán)值:從上層目錄到下層目錄的訪問次數(shù)。
行為路徑樹構(gòu)建完成后,按照結(jié)點與邊權(quán)值交錯的方式進(jìn)行動態(tài)特征提取,最大限度保留樹型結(jié)構(gòu)的完整性。動態(tài)特征提取過程如圖3所示,其中樹型結(jié)構(gòu)的第一層為根結(jié)點,即惡意樣本自身,Ci為行為路徑樹中第i 層結(jié)點個數(shù)之和,Wj為第j 到第j+1 層的邊權(quán)值之和,特征向量T=(C1,W1,C2,W2,C3,W3,C4,W4,C5,W5,C6,W6,C7)=(1,26,1,26,1,26,1,26,2,24,3,18,2)。
圖3 (a) 惡意代碼路徑
圖3 (b)惡意代碼路徑轉(zhuǎn)化為樹型結(jié)構(gòu)
從行為路徑樹中提取的特征向量需要進(jìn)行最大最小值規(guī)一化,將各屬性值按比例映射到[0,1]區(qū)間,平衡各個屬性對距離的影響。映射公式如下,其中max(aj)和min(aj)表示所有元素項中第j 個屬性的最大值和最小值。
本節(jié)對行為路徑樹以及系統(tǒng)調(diào)用圖的依賴關(guān)系生成算法進(jìn)行對比,證明構(gòu)造行為路徑樹的復(fù)雜度更低。系統(tǒng)調(diào)用之間的依賴關(guān)系定義為參數(shù)之間的依賴關(guān)系[13],動態(tài)分析中常用于構(gòu)造系統(tǒng)調(diào)用依賴關(guān)系的方法是動態(tài)污點分析[14]。該技術(shù)首先使用污染標(biāo)簽對系統(tǒng)調(diào)用的輸入(_In_)、輸出(_Out_)參數(shù)進(jìn)行標(biāo)記,并生成記錄文件;然后檢查系統(tǒng)調(diào)用A 的輸入?yún)?shù)是否被污染,通過跟蹤被污染的輸入?yún)?shù),定位另一個系統(tǒng)調(diào)用B 的輸出參數(shù),創(chuàng)建從B 到A 的有向邊;最后遍歷所有的系統(tǒng)調(diào)用,生成系統(tǒng)調(diào)用圖。調(diào)用圖生成過程如圖4。
圖4 系統(tǒng)調(diào)用圖生成過程
系統(tǒng)調(diào)用圖的生成過程中,每生成圖中的一個結(jié)點,都要遍歷所有的系統(tǒng)調(diào)用序列,算法復(fù)雜度為平方階?;谛袨槁窂綐涞膼阂廛浖诸惙椒ㄖ?,行為之間的依賴關(guān)系通過樹型結(jié)構(gòu)來體現(xiàn),樹型結(jié)構(gòu)中每一個結(jié)點的生成,只需要遍歷與該結(jié)點擁有相同路徑前綴的子樹即可,與系統(tǒng)調(diào)用圖的生成算法相比,構(gòu)造行為路徑樹的復(fù)雜度更低。
傳統(tǒng)隨機(jī)森林分類模型的分類精度會受到行為路徑樹深度的影響,樹深度過低會降低模型的分類精度,樹深度過高則會產(chǎn)生大量冗余信息。傳統(tǒng)隨機(jī)森林分類模型的評分函數(shù)如下:
其中,k 為行為路徑樹深度,m 為惡意樣本總量,bi為其中任意一個樣本,xk定義為行為路徑樹深度域R 中的前k 層,Y 是分類模型的最高分類精度,f(xk,bi)定義為行為路徑樹深度為k 時模型的分類精度。||Yf(xk,bi)||2的值越接近0,評分函數(shù)φ(xk,bi)的值越小,模型的分類效果越好。
為解決傳統(tǒng)方法的弊端,本文構(gòu)建了基于自適應(yīng)隨機(jī)森林的惡意軟件分類模型,該模型通過隨機(jī)逼近的方式完成行為路徑樹深度尋優(yōu),模型評分函數(shù)如下:
本節(jié)主要描述了基于自適應(yīng)隨機(jī)森林的惡意軟件分類模型構(gòu)建過程,整體流程如圖5所示。首先進(jìn)行離散化特征的生成;然后構(gòu)建隨機(jī)森林并對模型誤差進(jìn)行優(yōu)化;最后通過隨機(jī)逼近的方式對行為路徑樹深度進(jìn)行迭代尋優(yōu),得到最優(yōu)路徑樹深度。
圖5 基于自適應(yīng)隨機(jī)森林的惡意軟件分類模型
3.4.1 離散化特征生成
惡意樣本的特征向量中,結(jié)點數(shù)Ci與邊權(quán)值Wj均為連續(xù)的數(shù)值,不利于分類模型的快速迭代,需要對連續(xù)屬性進(jìn)行離散化,即將連續(xù)區(qū)間劃分為小區(qū)間,并將連續(xù)的小區(qū)間與離散的值關(guān)聯(lián)起來。本文使用基于熵的離散化方法將連續(xù)屬性離散化,離散化過程如下:
步驟1 將連續(xù)屬性按照數(shù)值大小排序形成有序區(qū)間。
步驟2 把有序區(qū)間劃分成為兩部分并計算熵值,當(dāng)總熵值最小時,第一次劃分完成。計算公式如下,其中ei為第i 個區(qū)間的熵值,e 為總熵值。 y 為惡意軟件類別數(shù),pij為第i 個區(qū)間中屬于j 類的概率。Wi為第i個區(qū)間的數(shù)值個數(shù)占總區(qū)間的比例,n 為區(qū)間個數(shù)。
步驟3 選擇熵值最大的區(qū)間重復(fù)步驟2過程,直到滿足指定的區(qū)間個數(shù)。
3.4.2 隨機(jī)森林優(yōu)化
隨機(jī)森林優(yōu)化指的是在行為路徑樹深度k 為定值的情況下,對分類模型誤差||Y-f(xk,bi)||2進(jìn)行優(yōu)化,具體方法是通過限制決策樹個數(shù)以及結(jié)點數(shù)來實現(xiàn)。隨機(jī)森林分類模型利用多棵決策樹對惡意樣本進(jìn)行訓(xùn)練和預(yù)測,每一棵決策樹都是惡意軟件檢測的弱分類器,隨機(jī)森林則為結(jié)合多個弱分類器的強(qiáng)分類器[15]。分類模型的構(gòu)建包含兩部分,生成決策樹、構(gòu)建隨機(jī)森林。
(1)生成決策樹
決策樹的生成分為選擇訓(xùn)練集、選擇特征以及生成決策樹3部分。首先從N 個惡意樣本中有放回地抽取N 次作為訓(xùn)練集S;然后從惡意樣本的M 個屬性中,隨機(jī)選擇sqrt(M)個屬性作為決策樹的結(jié)點數(shù);最后根據(jù)信息增益最大原則選擇決策樹結(jié)點,生成決策樹。以行為路徑樹每一層結(jié)點數(shù)、邊權(quán)值作為分類屬性的信息增益算法如下:
S 為訓(xùn)練集,樣本家族分類結(jié)果為r1,r2,…,rn,惡意樣本家族的信息熵記為Entropy(S),信息熵計算公式如下:
在樣本集S 中,設(shè)分類屬性第i 層結(jié)點數(shù)Ci在離散化之后有n 種屬性,分別為a1,a2,…,an,值為ai的所有樣本構(gòu)成的數(shù)據(jù)集記為Ai,則分類屬性Ci的信息增益記為Gain(Ci),計算公式如下:
分類屬性的總量為M ,隨機(jī)選擇并計算sqrt(M)個分類屬性的信息增益,信息增益最高的屬性為決策樹的根結(jié)點,其他結(jié)點按照信息增益最大原則來選擇。
(2)構(gòu)建隨機(jī)森林
首先從惡意樣本集中隨機(jī)進(jìn)行n 次采樣得到n 個訓(xùn)練集,每個訓(xùn)練集的樣本容量都與原始樣本集相同;其次,按照決策樹的生成方式,對n 個訓(xùn)練集建立n 個決策樹模型;最終組合n 棵決策樹構(gòu)成隨機(jī)森林。隨機(jī)森林的分類結(jié)果通過集成學(xué)習(xí)方法Bagging 策略來確定,Bagging策略的公式如下。
其中,xi為用于訓(xùn)練第i 棵決策樹的樣本集,通過n 輪訓(xùn)練,得到n 棵決策樹的分類模型序列{f1(x1),f2(x2),…,fn(xn)},F(xiàn)(x)表示隨機(jī)森林分類模型,fi是單棵決策樹,Z 表示決策樹預(yù)測的惡意樣本家族,I 為示性函數(shù)。
3.4.3 最優(yōu)樹深度迭代(對xk進(jìn)行優(yōu)化)
基于自適應(yīng)隨機(jī)森林的惡意軟件分類模型采用隨機(jī)逼近的方式完成行為路徑樹深度尋優(yōu),通過重復(fù)“產(chǎn)生新的樹深度-計算評分函數(shù)差-接受或丟棄”的迭代過程,最終得到最優(yōu)路徑樹深度。該過程可描述為對一個自變量為k 目標(biāo)函數(shù)為φ1(xk,bi)的極小化問題,若φ1(xk,bi)>φ1(xk+1,bi),則接受k+1,并作為下一次迭代的初始值,直到滿足結(jié)束條件;若φ1(xk,bi)<φ1(xk+1,bi),則以概率p接受k+1。其中c 為迭代次數(shù),在迭代尋優(yōu)過程中,c 必須緩慢降低,否則會使優(yōu)化過程陷入局部極值點。
行為路徑樹深度尋優(yōu)過程的偽代碼如下:
輸入:外層迭代次數(shù)c、初始路徑樹深度k。輸出:最優(yōu)路徑樹深度k′。
1. Initizlize h,j,p
2. for t=c to t=0
3. for i=1 to i=h
4. k'=k+j
5. Δφ1=φ1(xk',bi)-φ1(xk,bi)
6. if (Δφ1<0)
7. k=k'
8. else
9. 以概率p 接受k=k'
10.end for
11.output φ1(xk',bi)
12.end for
13.output k'
其中,h 為內(nèi)層迭代次數(shù),對應(yīng)行為路徑樹的最大樹深度,j 為步長。每一次迭代的結(jié)果都是找到當(dāng)前狀態(tài)的極小值點(k',φ1(xk',bi)),由此得到關(guān)于行為路徑樹深度的序列集,序列集中min φ1(xk',bi)對應(yīng)的k′值即為最優(yōu)路徑樹深度。
3.4.4 小結(jié)
基于自適應(yīng)隨機(jī)森林的分類模型包含兩層迭代,其中內(nèi)層迭代是對路徑樹深度進(jìn)行迭代尋優(yōu),外層迭代則是對分類模型誤差的迭代。該模型以隨機(jī)逼近的方式完成行為路徑樹深度尋優(yōu),克服了傳統(tǒng)隨機(jī)森林受制于路徑樹深度這一缺點,同時減少了冗余信息的產(chǎn)生,提高分類模型的運(yùn)行效率。
本章包含3 部分,首先構(gòu)建惡意樣本數(shù)據(jù)庫,并從中隨機(jī)選取惡意樣本進(jìn)行實驗;再次,設(shè)計實驗對特征的性能進(jìn)行驗證;最后,設(shè)計實驗對基于自適應(yīng)隨機(jī)森林的惡意軟件分類模型進(jìn)行驗證。
本文構(gòu)建了一個惡意樣本數(shù)據(jù)庫,樣本來源于VirusSign[16]、MalShare[17]等多個網(wǎng)站,從數(shù)據(jù)庫中隨機(jī)選擇了8 個惡意軟件家族,并加入良性樣本集Benign,該良性集合的樣本全部為系統(tǒng)盤下的可執(zhí)行文件。樣本信息如表1所示。
表1 惡意樣本集
4.2.1 特征性能驗證
本文從行為路徑樹中按照不同的規(guī)則提取3 種特征(見表2)進(jìn)行對比。此外,由于模型分類效果與路徑樹深度(路徑層數(shù))直接相關(guān),本節(jié)對樣本家族與路徑樹深度及權(quán)值的關(guān)系進(jìn)行挖掘,如圖6 所示,橫軸為樣本家族,縱軸為行為路徑樹深度,豎軸為規(guī)一化后的權(quán)值。由圖可知,用于實驗的樣本家族中,行為路徑樹深度最大為17層,最小為12層,各家族權(quán)值均逐層遞減。
表2 3種動態(tài)特征
圖6 樣本家族與路徑樹深度及權(quán)值的關(guān)系
本部分對3種特征的分類效果進(jìn)行對比,將特征A、B、C 作為基于自適應(yīng)隨機(jī)森林(Self-adaptation RF)分類模型的輸入。為驗證分類模型的性能,實驗采用十折交叉驗證,將惡意樣本集分為10 份,取其中1 份作為測試集,其他9份作為訓(xùn)練集,結(jié)果取10 次平均值,結(jié)果如圖7所示。
圖7 特征A、B、C在隨機(jī)森林分類器中的分類精度
由圖可知,特征A 的精度曲線在3 條曲線中波動程度最小,且具有較高的分類精度,所以特征A 具有較好的健壯性。經(jīng)自適應(yīng)隨機(jī)森林分類模型對行為路徑樹深度的迭代尋優(yōu),最終確定當(dāng)路徑樹深度為12時,達(dá)到最高分類精度91.11%。樣本家族的分類精度(Precision)及召回率(Recall Rate)見表3,由此可見,使用行為路徑樹作為樣本動態(tài)特征在各家族中均有較好的分類結(jié)果。
表3 樣本家族分類精度及召回率
4.2.2 分類模型性能驗證
本節(jié)將基于自適應(yīng)隨機(jī)森林的分類模型與其他4種常見的分類器算法進(jìn)行了比較,結(jié)果證明本文提出的分類模型擁有更好的分類效果。
基于自適應(yīng)隨機(jī)森林(RF)的惡意軟件分類模型由100 棵決策樹組成,與k 近鄰(kNN)、J48 決策樹、多層感知機(jī)(SMO)以及樸素貝葉斯(NB)分類器算法進(jìn)行比較,同樣采取十折交叉驗證,并從分類精度(Precision)、F 值(F-Measure)、MCC 系數(shù)以及ROC Area(ROC 曲線下的面積)進(jìn)行對比,實驗結(jié)果見圖8。從分類器的性能結(jié)果對比中可以得出,基于自適應(yīng)隨機(jī)森林的惡意軟件分類模型在4 種評判標(biāo)準(zhǔn)上均優(yōu)于其他分類器算法。
圖8 分類模型對比
實驗結(jié)果證明,基于結(jié)點與邊權(quán)值相結(jié)合的特征擁有更好的分類效果。該特征在基于自適應(yīng)隨機(jī)森林的惡意軟件分類模型中達(dá)到91.11%的分類精度,且優(yōu)于k近鄰(kNN)、J48決策樹等分類器算法。
本文提出了一種基于行為路徑樹的惡意軟件分類方法。首先對惡意樣本進(jìn)行動態(tài)分析,監(jiān)控并捕捉樣本細(xì)粒度的行為路徑;然后將路徑之間的依賴關(guān)系轉(zhuǎn)化為樹型結(jié)構(gòu)并進(jìn)行特征提?。蛔詈髽?gòu)建了基于自適應(yīng)隨機(jī)森林的惡意軟件分類模型,分類精度達(dá)到91.11%,優(yōu)于其他常見的分類器算法。
本文詳細(xì)介紹了特征提取與分類模型構(gòu)建部分,對分類算法優(yōu)化尚不完善。實驗所用的惡意樣本家族和數(shù)量有待進(jìn)一步擴(kuò)充,用以進(jìn)一步驗證行為路徑作為惡意軟件動態(tài)特征的有效性。此外,本文提取行為路徑樹作為樣本動態(tài)特征,該特征雖然能最大限度地獲取樣本動態(tài)行為(樣本對文件系統(tǒng)、注冊表、網(wǎng)絡(luò)的操作),但并未考慮惡意樣本規(guī)避機(jī)制(反沙箱、反蜜罐、反虛擬機(jī)技術(shù))帶來的影響,這是惡意軟件動態(tài)分析技術(shù)的弊端,也是下一步工作中有待解決的問題。