黃迎春,張雨薇
(1.沈陽理工大學(xué) 信息科學(xué)與工程學(xué)院,沈陽 110159;2.東北大學(xué),沈陽 110169)
目前,網(wǎng)絡(luò)已成為人們?nèi)粘I罴稗k公的重要環(huán)節(jié),越來越多的人依賴網(wǎng)絡(luò)辦公、購物,因此惡意軟件的檢測顯得尤為重要。
目前,惡意軟件檢測主要有兩種檢測方法:靜態(tài)檢測方法和動態(tài)檢測方法。靜態(tài)檢測方法易受到包裝和加密的攻擊,而動態(tài)檢測卻能有效地應(yīng)對軟件加密加殼的手段。吳麗娟等人提出了一種基于明可夫斯基距離的加殼PE文件識別方法,來檢測文件是否加殼[1]。Rieck等人提出一種基于機器學(xué)習(xí)惡意樣本分類方法,通過對軟件行為分析報告的處理,研究惡意程序行為,根據(jù)報告處理結(jié)果,使用SVM(支持向量機)算法進行惡意樣本分類,得到了88%的分類準(zhǔn)確率[2]。Mosli等人采用注冊表、DLL、API函數(shù),運用樸素貝葉斯算法識別惡意軟件,取得了89.4%的準(zhǔn)確率[3]。徐嬋通過分析惡意軟件的動態(tài)行為特征,使用BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,判斷是否是惡意軟件[4]。王博等人針對惡意軟件的行為數(shù)據(jù),建立行為數(shù)據(jù)詞袋模型,將數(shù)據(jù)映射到向量空間中,采用SVM算法進行惡意軟件分類,得到了86%的分類準(zhǔn)確率[5]。
本文通過對行為分析報告中的惡意軟件和良性軟件的行為數(shù)據(jù)處理,根據(jù)報告中出現(xiàn)的字符串的次數(shù)量化行為數(shù)據(jù),從而得到數(shù)據(jù)樣本。由于數(shù)據(jù)樣本復(fù)雜,考慮到行為數(shù)據(jù)中各個特征屬性之間關(guān)聯(lián)性問題,提出一種基于螢火蟲優(yōu)化算法改進的加權(quán)貝葉斯模型,來進行惡意軟件識別。通過螢火蟲優(yōu)化算法不斷地迭代,尋找軟件行為數(shù)據(jù)集中屬性與類別之間權(quán)值,削弱各屬性之間的獨立性,采用加權(quán)貝葉斯分類模型分析檢測其行為特征,進而識別惡意軟件。
惡意軟件的“行為”,是指一個惡意程序運行后的操作。對程序來說,將其執(zhí)行的一系列操作,稱為“行為特征”[6]。使用virustotal 沙箱[7]監(jiān)控惡意樣本的行為特征,并生成行為報告,分析報告的信息如下。
(1)更改系統(tǒng)文件:包括創(chuàng)建、修改、刪除文件;
(2)更改注冊表:包括創(chuàng)建、修改注冊表鍵值;
(3)對運行過程的感染:包括惡意代碼插入到其它進程中;
(4)互斥體的創(chuàng)建和獲取:包括對系統(tǒng)資源的獨占訪問;
(5)Windows服務(wù)的啟動與停止:包括停止、啟動某程序。
行為分析報告中包含許多惡意行為數(shù)據(jù)信息,惡意行為數(shù)據(jù)的特征處理過程如下。
惡意軟件會通過敏感目錄創(chuàng)建可疑文件,并會在計算機的系統(tǒng)目錄下釋放文件,以躲避用戶的察覺,如“C: WINDOWS”,“C: Documents”等目錄。木馬程序在將自身復(fù)制到系統(tǒng)敏感目錄下的同時,常會將當(dāng)前目錄下的自身文件刪除,以躲避用戶的察覺。后門病毒運行后會將病毒自身拷貝到系統(tǒng)目錄下,文件屬性隱藏,名稱不定,同時寫入注冊表啟動項。蠕蟲病毒運行后會把自身拷貝到系統(tǒng)目錄下,添加注冊表自啟動項,同時刪除文件并終止系統(tǒng)中的進程。廣告軟件運行后,在用戶不知情時會在特定目錄下創(chuàng)建文件,并進行進程自啟動。
由此根據(jù)惡意軟件創(chuàng)建、復(fù)制文件目錄下的Windows、Documents,刪除文件的delete_file,創(chuàng)建互斥體create_mutex等字符串,統(tǒng)計每個報告中字符串出現(xiàn)的次數(shù),作為惡意軟件行為數(shù)據(jù)集的特征。根據(jù)報告字符串次數(shù)的統(tǒng)計,得到量化后的惡意行為樣本數(shù)據(jù)集,為惡意軟件的分類識別提供數(shù)據(jù)基礎(chǔ)。
對于目前越來越多的惡意軟件,數(shù)據(jù)挖掘技術(shù)在識別惡意軟件方面有著較好的應(yīng)用,成為惡意軟件識別領(lǐng)域的研究熱點。以分類算法為主線,以提高惡意軟件識別準(zhǔn)確率為目標(biāo),開展以樸素貝葉斯算法為基礎(chǔ)的惡意軟件識別研究,提出一種基于螢火蟲算法優(yōu)化的加權(quán)貝葉斯惡意軟件識別方法,通過螢火蟲算法尋找數(shù)據(jù)屬性與類別的權(quán)值,選取一部分?jǐn)?shù)據(jù)訓(xùn)練,代入加權(quán)貝葉斯公式,計算每個樣本數(shù)據(jù)的類歸屬,可得到樣本分類的準(zhǔn)確率。使分類準(zhǔn)確率最高的權(quán)值,既為最優(yōu)權(quán)值,將得到的權(quán)值保存在加權(quán)貝葉斯分類器中。對另一部分?jǐn)?shù)據(jù)進行分類測試,識別惡意軟件,得到惡意軟件識別的準(zhǔn)確率。
當(dāng)前,思想政治理論課在教學(xué)形式和方法的改革上做了非常多的探索和努力,取得了很大成效。但有一點還是需要明確的,教學(xué)形式、教學(xué)方法始終要服務(wù)于教學(xué)內(nèi)容,這是課堂教學(xué)的“重頭戲”。那么,怎樣用內(nèi)容打動學(xué)生呢?
貝葉斯分類器的原理是根據(jù)樣本的先驗概率并使用貝葉斯公式來獲得后驗概率,其中最大后驗概率所對應(yīng)的類就是該樣本所屬的類。其數(shù)據(jù)樣本X有n個屬性,既X={x1,x2,x3,…,xn},有k個類別,既C={c1,c2,…,ck},其樣本屬性在每類下的條件概率為p(X|ck),先驗概率為p(X),根據(jù)貝葉斯后驗概率
(1)
判斷在哪類下的后驗概率大,既樣本屬于哪一類[8]。其中
(2)
由于p(X)對所有類來說都是常數(shù),所以只需計算p(X|ck)p(ck)即可。則貝葉斯的模型為
(3)
由于樸素貝葉斯(NB)對于屬性的獨立性要求較強,而大多數(shù)數(shù)據(jù)集不能滿足屬性之間獨立的假設(shè)。Webb等人首先將特征加權(quán)的思想運用在貝葉斯算法上,在每個條件概率上賦予合適的權(quán)值wi來削弱屬性之間的獨立性,提高分類的準(zhǔn)確率[9]。加權(quán)貝葉斯模型(WNB)為
(4)
文獻[10]采用屬性與類別之間的互信息作為權(quán)值,根據(jù)每個條件屬性值xi和類別ck,計算類別下屬性值出現(xiàn)的概率p(xi|ck)和類別概率p(ck),由此得到屬性與類別之間的互信息為
(5)
基于互信息的加權(quán)貝葉斯模型,雖然在一定程度上削弱了屬性之間的獨立性,但卻具有局限性,其公式單一固定,不能根據(jù)數(shù)據(jù)樣本自身的特點來尋找權(quán)值,其加權(quán)值對于數(shù)據(jù)樣本來說不一定是較優(yōu)的權(quán)值?;バ畔⒌募訖?quán)模型較樸素貝葉斯模型雖提高了識別的準(zhǔn)確率,但其分類識別結(jié)果并不太理想。本文在此基礎(chǔ)上提出一種改進的加權(quán)貝葉斯模型。
本文提出改進的加權(quán)貝葉斯模型,通過螢火蟲啟發(fā)式算法[11]來搜索加權(quán)貝葉斯模型中的權(quán)值wi,并通過加權(quán)貝葉斯模型來求得惡意軟件識別的準(zhǔn)確率。螢火蟲算法是一種啟發(fā)式算法,能夠根據(jù)數(shù)據(jù)自身的特點,通過不斷地迭代尋找數(shù)據(jù)屬性與類別之間的權(quán)值。在貝葉斯算法中,分類的準(zhǔn)確率越高,說明分類正確的數(shù)量越多,即選擇分類準(zhǔn)確率Eval(xi)作為螢火蟲算法的適應(yīng)度函數(shù)。適應(yīng)度函數(shù)值越大,說明惡意軟件識別的準(zhǔn)確率越高,即數(shù)據(jù)樣本屬性與類別之間的權(quán)值越優(yōu)。
(1)讀入由軟件行為特征構(gòu)成的數(shù)據(jù)集,計算p(ck)和條件概率p(X|ck)。
(2)初始化螢火蟲各參數(shù),包括熒火蟲個數(shù),在數(shù)據(jù)集樣本空間中螢火蟲位置xi和熒光素li,最大迭代次數(shù)tmax,且令當(dāng)前迭代次數(shù)為t=0。
(3)每個個體在樣本空間中的位置代表加權(quán)貝葉斯中的權(quán)值,即wi=xi,并對wi進行歸一化處理,使權(quán)值之和為1。利用式(4)中的加權(quán)貝葉斯模型對數(shù)據(jù)進行分類,得到樣本行為數(shù)據(jù)的分類準(zhǔn)確率Eval(xi)。
(4)利用輪盤賭法選擇一個合適的螢火蟲j,螢火蟲j的亮度大于螢火蟲i,使得螢火蟲i朝著螢火蟲j移動,進行位置更新,并計算新的分類準(zhǔn)確率Eval(xi),位置更新公式為
xi=xi+β(xj-xi)+α(rand-1/2)
(6)
式中:β和α為(0,1)的隨機數(shù);rand為(0,1)均勻分布的隨機因子。螢火蟲的位置更新后,下一次迭代前,將全部的螢火蟲種群熒光素更新,熒光素更新公式為
li=li×e-γrij
(7)
式中:γ為(0,1)的隨機數(shù);rij為螢火蟲i和螢火蟲j的空間距離,其距離越大,熒光素的值越小。
判斷分類準(zhǔn)確率Eval(xi)是否連續(xù)t次迭代不變,若不變則當(dāng)前螢火蟲位置xi即為數(shù)據(jù)屬性與類別的最優(yōu)權(quán)值;若改變則繼續(xù)步驟(4),直到達到最大迭代次數(shù),找到使得分類準(zhǔn)確率最大對應(yīng)的樣本位置。
(5)將分類準(zhǔn)確率最大值對應(yīng)的樣本位置,即加權(quán)貝葉斯模型中的最優(yōu)權(quán)值,帶入加權(quán)貝葉斯分類器模型中,得到惡意軟件識別的準(zhǔn)確率。
通過螢火蟲算法改進的加權(quán)貝葉斯模型對一部分?jǐn)?shù)據(jù)樣本進行訓(xùn)練,既得到惡意軟件分類識別模型。
本文從www.virusshare.com網(wǎng)站上下載約1300個樣本,其中惡意軟件包括250個后門樣本、300個木馬樣本、200個蠕蟲樣本、250個廣告軟件樣本,以及300個良性樣本。使用VirusTotal沙箱掃描樣本,得到行為分析報告。根據(jù)其行為特征,創(chuàng)建、修改、刪除文件,修改、刪除注冊表項,啟動或關(guān)閉程序;調(diào)用系統(tǒng)的API函數(shù),創(chuàng)建互斥體,并統(tǒng)計分析報告中各特征的字符串Windows、create_mutex、creat_process等在分析報告中的頻次,得到量化后的樣本數(shù)據(jù)集。通過螢火蟲優(yōu)化算法來確定數(shù)據(jù)集屬性與類別之間的最優(yōu)權(quán)值,通過不斷地迭代來尋找該權(quán)值,隨著迭代次數(shù)的增加,其分類準(zhǔn)確率也會變化,迭代次數(shù)與準(zhǔn)確率的關(guān)系如圖1所示。
圖1 迭代次數(shù)與準(zhǔn)確率的關(guān)系
圖1橫軸代表迭代次數(shù),縱軸代表惡意軟件的分類準(zhǔn)確率。由圖1可以看出,螢火蟲優(yōu)化的加權(quán)貝葉斯算法,在蠕蟲、木馬、后門、廣告軟件四類惡意軟件的分類識別準(zhǔn)確率都維持在較高的水平。
進一步驗證改進的加權(quán)貝葉斯惡意軟件識別方法在分類準(zhǔn)確率上的性能。分別對包括木馬、蠕蟲、后門、廣告軟件及良性樣本在內(nèi)的數(shù)據(jù)樣本,采用樸素貝葉斯、互信息加權(quán)貝葉斯、螢火蟲算法改進的加權(quán)貝葉斯進行惡意軟件的識別。上述三種模型評價的相關(guān)符號含義如表1所示。
表1 符號的含義
評價指標(biāo)采用準(zhǔn)確率Eval來判斷,公式如下。
(8)
選取80%數(shù)據(jù)集作為模型的訓(xùn)練集,分別利用樸素貝葉斯、互信息的加權(quán)貝葉斯模型[10]以及螢火蟲改進的加權(quán)貝葉斯模型對數(shù)據(jù)進行訓(xùn)練;20%數(shù)據(jù)樣本作為測試集,對各個種類的惡意樣本進行分類識別,采用樸素貝葉斯模型、互信息的加權(quán)模型及螢火蟲算法改進的加權(quán)貝葉斯模型對惡意樣本進行識別。各模型的分類準(zhǔn)確率見表2 所示。
表2 各惡意樣本的分類準(zhǔn)確率 %
由表1可以看出,螢火蟲算法改進的加權(quán)貝葉斯算法對于木馬、蠕蟲、后門、廣告軟件這四類惡意樣本分別取得了94.75%、95.28%、93.68%、96.87%的分類準(zhǔn)確率,相對于樸素貝葉斯、互信息加權(quán)的貝葉斯模型取得了較好的識別效果。
本文提出的螢火蟲算法改進的加權(quán)貝葉斯模型,能根據(jù)樣本行為數(shù)據(jù)本身的特點,通過不斷迭代,并根據(jù)分類準(zhǔn)確率來尋找數(shù)據(jù)樣本屬性與類別的權(quán)值,將得到的權(quán)值帶入加權(quán)貝葉斯分類模型,得到基于螢火蟲算法改進的加權(quán)貝葉斯模型。相對于樸素貝葉斯、互信息加權(quán)的貝葉斯模型,本文提出的模型對于惡意軟件具有更好的識別效果。