本發(fā)明屬于通信技術(shù)領(lǐng)域,更進(jìn)一步涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域中的一種基于網(wǎng)絡(luò)流量分析的安卓惡意軟件實(shí)時(shí)檢測(cè)方法。本發(fā)明可用于實(shí)時(shí)檢測(cè)安卓移動(dòng)終端中是否存在惡意軟件,以便于其他網(wǎng)絡(luò)安全技術(shù)對(duì)安卓移動(dòng)終端中所存在的惡意軟件進(jìn)行處理,從而保障安卓移動(dòng)終端用戶的信息安全。
背景技術(shù):
安卓惡意軟件檢測(cè)技術(shù)用于發(fā)現(xiàn)移動(dòng)設(shè)備上存在的惡意軟件,以便于其他網(wǎng)絡(luò)安全技術(shù)阻止惡意軟件對(duì)移動(dòng)設(shè)備的危害活動(dòng)。基于網(wǎng)絡(luò)流量分析的安卓惡意軟件檢測(cè)技術(shù)在近些年受到了學(xué)者的關(guān)注,這種方法通常是對(duì)應(yīng)用程序產(chǎn)生的網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行分析,從中提取出能夠區(qū)分正常軟件和惡意軟件的網(wǎng)絡(luò)流量特征,作為惡意軟件的檢測(cè)依據(jù)。目前基于網(wǎng)絡(luò)流量分析的安卓惡意軟件檢測(cè)技術(shù)有:
Anshul Arora等人在其發(fā)表的論文“Malware Detection Using Network TrafficAnalysis in Android Based Mobile Devices”(Eighth International Conference on NextGeneration Mobile Apps,Services and Technologies,2014)中提出一種基于網(wǎng)絡(luò)流量分析的Android惡意軟件檢測(cè)方法。該方法分兩個(gè)階段,首先,通過分析Android惡意軟件的網(wǎng)絡(luò)流量,找出那些可以區(qū)分正常軟件和惡意軟件的網(wǎng)絡(luò)流量特征;然后,使用這些特征建立一個(gè)基于規(guī)則的分類器;最后,使用建立的分類器模型進(jìn)行惡意軟件的檢測(cè)。該檢測(cè)方法存在的不足之處是:該方法以一次TCP會(huì)話的網(wǎng)絡(luò)流量數(shù)據(jù)作為一個(gè)基本實(shí)例,這樣的處理方式使得惡意軟件檢測(cè)的實(shí)時(shí)性無法得到保障。該方法中使用的網(wǎng)絡(luò)流量數(shù)據(jù)特征類型比較單一,僅使用網(wǎng)絡(luò)數(shù)據(jù)包的統(tǒng)計(jì)特征,另外,該方法僅對(duì)3個(gè)正常應(yīng)用樣本進(jìn)行分析,不足以代表不同正常應(yīng)用程序的網(wǎng)絡(luò)流量特性。
濟(jì)南大學(xué)在其擁有的專利技術(shù)“基于網(wǎng)絡(luò)流量的多特征移動(dòng)終端惡意軟件檢測(cè)方法及系統(tǒng)”(申請(qǐng)?zhí)朇N 201510486986.2授權(quán)公告號(hào)CN 105022960A)中提出了一種利用移動(dòng)終端網(wǎng)絡(luò)流量來檢測(cè)惡意軟件網(wǎng)絡(luò)行為的方法。該方法針對(duì)移動(dòng)終端網(wǎng)絡(luò)流量的多類特征,分別設(shè)計(jì)相應(yīng)的不同檢測(cè)模型,包括以下三種:第一,對(duì)于DNS請(qǐng)求的域名特征,使用第三方的域名檢測(cè)服務(wù)器進(jìn)行檢測(cè);第二,對(duì)于行為序列圖特征,使用圖相似匹配模型進(jìn)行檢測(cè);第三,對(duì)于數(shù)值類型特征和標(biāo)稱類型特征,使用SVM分類算法進(jìn)行檢測(cè)。該檢測(cè)方法存在的不足之處是:該方法設(shè)計(jì)的三種模型是相互獨(dú)立的,第一種模型完全依賴于第三方域名檢測(cè)服務(wù)器的準(zhǔn)確性,第二種模型不能夠檢測(cè)采用加密協(xié)議進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)膼阂廛浖?,第三種模型不能夠保證對(duì)惡意軟件的實(shí)時(shí)檢測(cè)。
綜上所述,現(xiàn)階段的一些基于網(wǎng)絡(luò)流量分析的安卓惡意軟件檢測(cè)方法存在以下不足之處:首先,現(xiàn)有的基于網(wǎng)絡(luò)流量分析的安卓惡意軟件檢測(cè)方法通常是對(duì)不同TCP會(huì)話中的網(wǎng)絡(luò)流量進(jìn)行分析,或者是對(duì)網(wǎng)絡(luò)數(shù)據(jù)包逐個(gè)進(jìn)行分析的處理方式使得惡意軟件檢測(cè)的實(shí)時(shí)性不能得到保障;然后,現(xiàn)有的基于網(wǎng)絡(luò)流量分析的安卓惡意軟件檢測(cè)方法中使用的網(wǎng)絡(luò)流量特征,通常是網(wǎng)絡(luò)數(shù)據(jù)包的應(yīng)用層頭部字段特征,這種方法在面對(duì)使用TLS/SSL協(xié)議進(jìn)行加密傳輸?shù)膽?yīng)用程序時(shí)便不能有效進(jìn)行檢測(cè);最后,現(xiàn)有的基于網(wǎng)絡(luò)流量分析的安卓惡意軟件檢測(cè)方法使用的網(wǎng)絡(luò)流量數(shù)據(jù)特征比較單一,沒有充分利用網(wǎng)絡(luò)流量的各種類型的特征。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是克服上述現(xiàn)有技術(shù)的不足,提出一種基于網(wǎng)絡(luò)流量分析的安卓惡意軟件實(shí)時(shí)檢測(cè)方法。
實(shí)現(xiàn)本發(fā)明的具體思路是:本發(fā)明提出的方法包括模型建立階段和實(shí)時(shí)檢測(cè)階段,其中模型建立階段,是通過對(duì)正常軟件和惡意軟件的網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行分析,根據(jù)網(wǎng)絡(luò)流量是否為加密流量,提取出能夠區(qū)分正常軟件和惡意軟件的網(wǎng)絡(luò)數(shù)據(jù)特征,然后使用機(jī)器學(xué)習(xí)算法對(duì)不同類型的網(wǎng)絡(luò)數(shù)據(jù)特征建立惡意軟件檢測(cè)模型;實(shí)時(shí)檢測(cè)階段,是使用模型訓(xùn)練階段建立的惡意軟件檢測(cè)模型,對(duì)待檢測(cè)軟件樣本進(jìn)行實(shí)時(shí)檢測(cè),輸出檢測(cè)結(jié)果。
實(shí)現(xiàn)本發(fā)明目的的具體步驟如下:
(1)收集網(wǎng)絡(luò)數(shù)據(jù):
使用網(wǎng)絡(luò)數(shù)據(jù)包捕獲工具,分別收集正常軟件樣本和惡意軟件樣本所產(chǎn)生的網(wǎng)絡(luò)流量數(shù)據(jù),將收集的網(wǎng)絡(luò)流量數(shù)據(jù)作為訓(xùn)練惡意軟件檢測(cè)模型的初始數(shù)據(jù)集;
(2)劃分網(wǎng)絡(luò)數(shù)據(jù)流分組:
根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流分組的定義規(guī)則,對(duì)初始數(shù)據(jù)集進(jìn)行分組,得到多個(gè)不同的網(wǎng)絡(luò)數(shù)據(jù)流分組;
(3)提取網(wǎng)絡(luò)數(shù)據(jù)流最小單元:
根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流最小單元的定義規(guī)則,分別從每個(gè)網(wǎng)絡(luò)數(shù)據(jù)流分組中提取網(wǎng)絡(luò)數(shù)據(jù)流最小單元;
(4)判斷網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的端口號(hào)是否為80,若是,則執(zhí)行步驟(5),否則,執(zhí)行步驟(6);
(5)提取網(wǎng)絡(luò)數(shù)據(jù)包字段特征;
(5a)從網(wǎng)絡(luò)數(shù)據(jù)流最小單元的各個(gè)數(shù)據(jù)包的頭部字段信息中,提取網(wǎng)絡(luò)數(shù)據(jù)包字段特征;
(5b)將提取的網(wǎng)絡(luò)數(shù)據(jù)包字段特征作為向量的元素,組成一個(gè)字段特征向量;
(6)判斷網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的端口號(hào)是否為443,若是,則執(zhí)行步驟(7),否則,執(zhí)行步驟(3);
(7)提取網(wǎng)絡(luò)數(shù)據(jù)流統(tǒng)計(jì)特征;
(7a)根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的各個(gè)數(shù)據(jù)包的時(shí)間戳信息,得到時(shí)間類統(tǒng)計(jì)特征;
(7b)根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的各個(gè)數(shù)據(jù)包的長(zhǎng)度信息,得到空間類統(tǒng)計(jì)特征;
(7c)將提取的時(shí)間類統(tǒng)計(jì)特征和空間類統(tǒng)計(jì)特征作為向量的元素,組成一個(gè)統(tǒng)計(jì)特征向量;
(8)訓(xùn)練統(tǒng)計(jì)特征檢測(cè)模型:
(8a)分別將每個(gè)統(tǒng)計(jì)特征向量標(biāo)記為與該統(tǒng)計(jì)特征向量對(duì)應(yīng)的軟件樣本類別,將所有標(biāo)記后的統(tǒng)計(jì)特征向量組成統(tǒng)計(jì)特征檢測(cè)模型的訓(xùn)練樣本集;
(8b)利用隨機(jī)森林算法,對(duì)訓(xùn)練樣本集進(jìn)行訓(xùn)練,得到統(tǒng)計(jì)特征檢測(cè)模型;
(9)訓(xùn)練字段特征檢測(cè)模型:
(9a)分別將每個(gè)字段特征向量標(biāo)記為與該字段特征向量對(duì)應(yīng)的軟件樣本類別,將所有標(biāo)記后的字段特征向量組成字段特征檢測(cè)模型的訓(xùn)練樣本集;
(9b)利用C4.5算法,對(duì)訓(xùn)練樣本集進(jìn)行訓(xùn)練,得到字段特征檢測(cè)模型;
(10)提取待檢測(cè)樣本的網(wǎng)絡(luò)數(shù)據(jù)特征:
(10a)利用網(wǎng)絡(luò)數(shù)據(jù)包捕獲工具,實(shí)時(shí)捕獲待檢測(cè)樣本的網(wǎng)絡(luò)流量數(shù)據(jù);
(10b)根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流分組的定義規(guī)則,得到待檢測(cè)樣本的網(wǎng)絡(luò)數(shù)據(jù)流分組;
(10c)根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流最小單元的定義規(guī)則,從待檢測(cè)樣本的網(wǎng)絡(luò)數(shù)據(jù)流分組中提取網(wǎng)絡(luò)數(shù)據(jù)流最小單元;
(10d)判斷網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的端口號(hào)是否為80,若是,則執(zhí)行步驟(10e),否則,執(zhí)行步驟(10f);
(10e)提取網(wǎng)絡(luò)數(shù)據(jù)包字段特征作為向量的元素,組成字段特征向量;
(10f)判斷網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的端口號(hào)是否為443,若是,則執(zhí)行步驟(10g),否則,執(zhí)行步驟(10a);
(10g)提取網(wǎng)絡(luò)數(shù)據(jù)流統(tǒng)計(jì)特征作為向量的元素,組成統(tǒng)計(jì)特征向量;
(11)判斷待檢測(cè)樣本的特征向量是否為字段特征向量,若是,則執(zhí)行步驟(12),否則,執(zhí)行步驟(13);
(12)將待檢測(cè)樣本的特征向量輸入字段特征檢測(cè)模型,判斷字段特征檢測(cè)模型的輸出是否為惡意軟件類別,若是,則執(zhí)行步驟(14),否則,執(zhí)行步驟(15);
(13)將待檢測(cè)樣本的特征向量輸入統(tǒng)計(jì)特征檢測(cè)模型,判斷統(tǒng)計(jì)特征檢測(cè)模型的輸出是否為惡意軟件類別,若是,則執(zhí)行步驟(14),否則,執(zhí)行步驟(15);
(14)將待檢測(cè)樣本標(biāo)記為惡意軟件,輸出待檢測(cè)樣本對(duì)應(yīng)的惡意軟件類別;
(15)將待檢測(cè)樣本標(biāo)記為正常軟件,輸出待檢測(cè)樣本對(duì)應(yīng)的正常軟件類別。
本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點(diǎn):
第一,由于本發(fā)明的方法在劃分網(wǎng)絡(luò)數(shù)據(jù)流分組步驟中,根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流分組的定義規(guī)則,對(duì)初始數(shù)據(jù)集進(jìn)行分組,得到多個(gè)不同的網(wǎng)絡(luò)數(shù)據(jù)流分組;在提取網(wǎng)絡(luò)數(shù)據(jù)流最小單元步驟中,根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流最小單元的定義規(guī)則,分別從每個(gè)網(wǎng)絡(luò)數(shù)據(jù)流分組中提取網(wǎng)絡(luò)數(shù)據(jù)流最小單元,克服了現(xiàn)有技術(shù)通常是對(duì)不同TCP會(huì)話中的網(wǎng)絡(luò)流量進(jìn)行分析,或者是對(duì)網(wǎng)絡(luò)數(shù)據(jù)包逐個(gè)進(jìn)行分析的處理方式使得惡意軟件檢測(cè)的實(shí)時(shí)性不能得到保障的缺點(diǎn),使得本發(fā)明的方法具有能夠?qū)崟r(shí)檢測(cè)惡意軟件的優(yōu)點(diǎn);
第二,由于本發(fā)明的方法通過對(duì)網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行分析,提取網(wǎng)絡(luò)數(shù)據(jù)包字段特征,提取網(wǎng)絡(luò)數(shù)據(jù)流統(tǒng)計(jì)特征,克服了現(xiàn)有的基于網(wǎng)絡(luò)流量分析的安卓惡意軟件檢測(cè)方法使用的網(wǎng)絡(luò)流量數(shù)據(jù)特征比較單一,沒有充分利用網(wǎng)絡(luò)流量的各種類型的特征的缺點(diǎn),使得本發(fā)明的方法具有良好的檢測(cè)準(zhǔn)確率。
第三,由于本發(fā)明的方法通過訓(xùn)練字段特征檢測(cè)模型、訓(xùn)練統(tǒng)計(jì)特征檢測(cè)模型,克服了現(xiàn)有的基于網(wǎng)絡(luò)流量分析的安卓惡意軟件檢測(cè)方法中使用的網(wǎng)絡(luò)流量特征,通常是網(wǎng)絡(luò)數(shù)據(jù)包的應(yīng)用層頭部字段特征,這種方法在面對(duì)使用TLS/SSL協(xié)議進(jìn)行加密傳輸?shù)膽?yīng)用程序時(shí)便不能有效進(jìn)行檢測(cè)的缺點(diǎn),使得本發(fā)明能夠?qū)崿F(xiàn)對(duì)使用TLS/SSL加密協(xié)議進(jìn)行數(shù)據(jù)傳輸?shù)膽?yīng)用程序的檢測(cè)。
附圖說明
圖1為本發(fā)明方法的流程圖;
圖2為使用隨機(jī)森林算法訓(xùn)練統(tǒng)計(jì)特征檢測(cè)模型步驟的流程圖;
圖3為使用C4.5算法訓(xùn)練字段特征檢測(cè)模型步驟的流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的描述。
參照附圖1,對(duì)本發(fā)明的實(shí)現(xiàn)方法做進(jìn)一步的描述。
步驟1,收集網(wǎng)絡(luò)數(shù)據(jù)。
使用網(wǎng)絡(luò)數(shù)據(jù)包捕獲工具,分別收集正常軟件樣本和惡意軟件樣本所產(chǎn)生的網(wǎng)絡(luò)流量數(shù)據(jù),將收集的網(wǎng)絡(luò)流量數(shù)據(jù)作為訓(xùn)練惡意軟件檢測(cè)模型的初始數(shù)據(jù)集。
步驟2,劃分網(wǎng)絡(luò)數(shù)據(jù)流分組。
根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流分組的定義規(guī)則,對(duì)初始數(shù)據(jù)集進(jìn)行分組,得到多個(gè)不同的網(wǎng)絡(luò)數(shù)據(jù)流分組。
所述的網(wǎng)絡(luò)數(shù)據(jù)流分組的定義規(guī)則為,對(duì)于初始數(shù)據(jù)集中的網(wǎng)絡(luò)數(shù)據(jù)包,按照網(wǎng)絡(luò)數(shù)據(jù)包的時(shí)間順序,將時(shí)間間隔小于4.5秒的相鄰的網(wǎng)絡(luò)數(shù)據(jù)包,劃分為一個(gè)網(wǎng)絡(luò)數(shù)據(jù)流分組。
步驟3,提取網(wǎng)絡(luò)數(shù)據(jù)流最小單元。
根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流最小單元的定義規(guī)則,分別從每個(gè)網(wǎng)絡(luò)數(shù)據(jù)流分組中提取網(wǎng)絡(luò)數(shù)據(jù)流最小單元。
所述的網(wǎng)絡(luò)數(shù)據(jù)流最小單元的定義規(guī)則為:對(duì)于每一個(gè)網(wǎng)絡(luò)數(shù)據(jù)流分組內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)包,按照網(wǎng)絡(luò)數(shù)據(jù)包的時(shí)間順序,將具有相同的源IP地址、源端口號(hào)、目的IP地址、目的端口號(hào)的網(wǎng)絡(luò)數(shù)據(jù)包,劃分成一個(gè)網(wǎng)絡(luò)數(shù)據(jù)流最小單元,7<Count<256,其中,Count為網(wǎng)絡(luò)數(shù)據(jù)流最小單元中數(shù)據(jù)包的總數(shù)。
步驟4,判斷網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的端口號(hào)是否為80,若是,則執(zhí)行步驟5,否則,執(zhí)行步驟6。
步驟5,提取網(wǎng)絡(luò)數(shù)據(jù)包字段特征。
從網(wǎng)絡(luò)數(shù)據(jù)流最小單元的各個(gè)數(shù)據(jù)包的頭部字段信息中,提取網(wǎng)絡(luò)數(shù)據(jù)包字段特征。
所述的網(wǎng)絡(luò)數(shù)據(jù)包字段特征包括,HTTP請(qǐng)求數(shù)據(jù)包的平均長(zhǎng)度、HTTP響應(yīng)數(shù)據(jù)包的平均長(zhǎng)度、HTTP請(qǐng)求數(shù)據(jù)包個(gè)數(shù)/響應(yīng)數(shù)據(jù)包個(gè)數(shù)、HTTP請(qǐng)求數(shù)據(jù)包字節(jié)數(shù)/響應(yīng)數(shù)據(jù)包字節(jié)數(shù)、HTTP請(qǐng)求URI字段、HTTP請(qǐng)求方法字段、HTTP請(qǐng)求User-Agent字段、HTTP請(qǐng)求Host字段。
將提取的網(wǎng)絡(luò)數(shù)據(jù)包字段特征作為向量的元素,組成一個(gè)字段特征向量。
步驟6,判斷網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的端口號(hào)是否為443,若是,則執(zhí)行步驟7,否則,執(zhí)行步驟3。
步驟7,提取網(wǎng)絡(luò)數(shù)據(jù)流統(tǒng)計(jì)特征;
根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的各個(gè)數(shù)據(jù)包的時(shí)間戳信息,得到時(shí)間類統(tǒng)計(jì)特征。
所述的時(shí)間類統(tǒng)計(jì)特征包括,發(fā)出的數(shù)據(jù)包的平均時(shí)間間隔、收到的數(shù)據(jù)包的平均時(shí)間間隔、網(wǎng)絡(luò)流持續(xù)時(shí)間、平均每秒發(fā)送的數(shù)據(jù)包數(shù)、平均每秒接收的數(shù)據(jù)包數(shù)、平均每秒發(fā)送的字節(jié)數(shù)、平均每秒接收的字節(jié)數(shù)。
根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的各個(gè)數(shù)據(jù)包的長(zhǎng)度信息,得到空間類統(tǒng)計(jì)特征。
所述的空間類統(tǒng)計(jì)特征包括,收到的數(shù)據(jù)包個(gè)數(shù)/發(fā)出的數(shù)據(jù)包個(gè)數(shù)、收到的數(shù)據(jù)包字節(jié)數(shù)/發(fā)出的數(shù)據(jù)包字節(jié)數(shù)、發(fā)出的數(shù)據(jù)包個(gè)數(shù)、收到的數(shù)據(jù)包個(gè)數(shù)、發(fā)出的數(shù)據(jù)包字節(jié)數(shù)、收到的數(shù)據(jù)包字節(jié)數(shù)、數(shù)據(jù)包的最小值、最大值、均值、中位數(shù)絕對(duì)偏差、標(biāo)準(zhǔn)差、方差、偏移度、峰度。
將提取的時(shí)間類統(tǒng)計(jì)特征和空間類統(tǒng)計(jì)特征作為向量的元素,組成一個(gè)統(tǒng)計(jì)特征向量。
步驟8,訓(xùn)練統(tǒng)計(jì)特征檢測(cè)模型。
分別將每個(gè)統(tǒng)計(jì)特征向量標(biāo)記為與該統(tǒng)計(jì)特征向量對(duì)應(yīng)的軟件樣本類別,將所有標(biāo)記后的統(tǒng)計(jì)特征向量組成統(tǒng)計(jì)特征檢測(cè)模型的訓(xùn)練樣本集。
利用隨機(jī)森林算法,對(duì)訓(xùn)練樣本集進(jìn)行訓(xùn)練,得到統(tǒng)計(jì)特征檢測(cè)模型。
參照附圖2,對(duì)使用隨機(jī)森林算法訓(xùn)練統(tǒng)計(jì)特征檢測(cè)模型的步驟做進(jìn)一步的描述。
所述的隨機(jī)森林算法的具體步驟如下。
第1步,在[100,200]的范圍內(nèi)任意選取一個(gè)數(shù),將其設(shè)定為隨機(jī)森林中的基分類器的總數(shù)。
第2步,使用自助采樣法,對(duì)統(tǒng)計(jì)特征向量組成的訓(xùn)練樣本集進(jìn)行采樣,得到基分類器的訓(xùn)練樣本集。
第3步,從基分類器的訓(xùn)練樣本集的統(tǒng)計(jì)特征集合中,隨機(jī)選取m個(gè)特征,組成特征子集,m=log2M,其中M表示統(tǒng)計(jì)特征集合中的特征總數(shù)。
第4步,使用基分類器的訓(xùn)練樣本集和特征子集對(duì)一棵決策樹模型進(jìn)行訓(xùn)練,將訓(xùn)練后的決策樹模型存入到基分類器集合中。
第5步,判斷基分類器集合中的決策樹模型總數(shù)是否等于設(shè)定的基分類器的總數(shù),若是,則執(zhí)行第6步,否則,執(zhí)行第2步。
第6步,將基分類器集合中的所有決策樹模型組成隨機(jī)森林,作為統(tǒng)計(jì)特征檢測(cè)模型。
步驟9,訓(xùn)練字段特征檢測(cè)模型。
分別將每個(gè)字段特征向量標(biāo)記為與該字段特征向量對(duì)應(yīng)的軟件樣本類別,將所有標(biāo)記后的字段特征向量組成字段特征檢測(cè)模型的訓(xùn)練樣本集。
利用C4.5算法,對(duì)訓(xùn)練樣本集進(jìn)行訓(xùn)練,得到字段特征檢測(cè)模型。
參照附圖3,對(duì)使用C4.5算法訓(xùn)練字段特征檢測(cè)模型的步驟做進(jìn)一步的描述。
所述的C4.5算法的具體步驟如下,
第1步,將字段特征向量及其對(duì)應(yīng)的軟件樣本類別作為訓(xùn)練樣本集,其中每個(gè)字段特征向量的所有字段特征組成特征集合。
第2步,創(chuàng)建一個(gè)樹節(jié)點(diǎn)。
第3步,判斷訓(xùn)練樣本集中的樣本是否全屬于同一類別,若是,則執(zhí)行第4步,否則,執(zhí)行第5步。
第4步,將樹節(jié)點(diǎn)標(biāo)記為該類葉子結(jié)點(diǎn),執(zhí)行第13步。
第5步,判斷特征集合中的候選特征是否不為空,若是,則執(zhí)行第7步,否則,執(zhí)行第6步。
第6步,將樹節(jié)點(diǎn)標(biāo)記為訓(xùn)練樣本集中樣本數(shù)最多的軟件樣本類別,執(zhí)行第13步。
第7步,按照下式,計(jì)算特征集合中的每個(gè)字段特征的信息增益率:
其中,Ii表示的第i個(gè)字段特征的信息增益率,H(D)表示訓(xùn)練樣本集D的信息熵,∑表示求和操作,V表示當(dāng)前字段特征的取值的總數(shù),|·|表示取絕對(duì)值操作,Dj表示當(dāng)前字段特征取值相同的所有訓(xùn)練樣本,H(Dj)表示Dj的信息熵。
第8步,從特征集合中的所有字段特征的信息增益率中,選擇信息增益率最大的字段特征,作為樹節(jié)點(diǎn)的最優(yōu)特征。
第9步,按照訓(xùn)練樣本在樹節(jié)點(diǎn)的最優(yōu)特征上的不同取值,將訓(xùn)練樣本集劃分為不同的訓(xùn)練樣本子集。
第10步,分別判斷每個(gè)訓(xùn)練樣本子集是否不為空,若是,則執(zhí)行第11步,否則,執(zhí)行第12步。
第11步,將訓(xùn)練樣本子集作為訓(xùn)練樣本集,從特征集合中去掉當(dāng)前最優(yōu)特征,繼續(xù)遞歸執(zhí)行第2步。
第12步,將當(dāng)前分支結(jié)點(diǎn)標(biāo)記為葉子結(jié)點(diǎn),類別標(biāo)記為訓(xùn)練樣本集中樣本最多的類別,執(zhí)行第13步
第13步,將得到的C4.5模型作為字段特征檢測(cè)模型。
步驟10,提取待檢測(cè)樣本的網(wǎng)絡(luò)數(shù)據(jù)特征。
第1步,利用網(wǎng)絡(luò)數(shù)據(jù)包捕獲工具,實(shí)時(shí)捕獲待檢測(cè)樣本的網(wǎng)絡(luò)流量數(shù)據(jù)。
第2步,根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流分組的定義規(guī)則,得到待檢測(cè)樣本的網(wǎng)絡(luò)數(shù)據(jù)流分組。
所述的網(wǎng)絡(luò)數(shù)據(jù)流分組的定義規(guī)則為,對(duì)于初始數(shù)據(jù)集中的網(wǎng)絡(luò)數(shù)據(jù)包,按照網(wǎng)絡(luò)數(shù)據(jù)包的時(shí)間順序,將時(shí)間間隔小于4.5秒的相鄰的網(wǎng)絡(luò)數(shù)據(jù)包,劃分為一個(gè)網(wǎng)絡(luò)數(shù)據(jù)流分組。
第3步,根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流最小單元的定義規(guī)則,從待檢測(cè)樣本的網(wǎng)絡(luò)數(shù)據(jù)流分組中提取網(wǎng)絡(luò)數(shù)據(jù)流最小單元。
所述的網(wǎng)絡(luò)數(shù)據(jù)流最小單元的定義規(guī)則為:對(duì)于每一個(gè)網(wǎng)絡(luò)數(shù)據(jù)流分組內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)包,按照網(wǎng)絡(luò)數(shù)據(jù)包的時(shí)間順序,將具有相同的源IP地址、源端口號(hào)、目的IP地址、目的端口號(hào)的網(wǎng)絡(luò)數(shù)據(jù)包,劃分成一個(gè)網(wǎng)絡(luò)數(shù)據(jù)流最小單元,7<Count<256,其中,Count為網(wǎng)絡(luò)數(shù)據(jù)流最小單元中數(shù)據(jù)包的總數(shù)。
第4步,判斷網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的端口號(hào)是否為80,若是,則執(zhí)行第5步,否則,執(zhí)行第6步。
第5步,提取網(wǎng)絡(luò)數(shù)據(jù)包字段特征作為向量的元素,組成字段特征向量。
第6步,判斷網(wǎng)絡(luò)數(shù)據(jù)流最小單元中的端口號(hào)是否為443,若是,則執(zhí)行第7步,否則,執(zhí)行第1步。
第7步,提取網(wǎng)絡(luò)數(shù)據(jù)流統(tǒng)計(jì)特征作為向量的元素,組成統(tǒng)計(jì)特征向量。
步驟11,判斷待檢測(cè)樣本的特征向量是否為字段特征向量,若是,則執(zhí)行步驟12,否則,執(zhí)行步驟13。
步驟12,將待檢測(cè)樣本的特征向量輸入字段特征檢測(cè)模型,判斷字段特征檢測(cè)模型的輸出是否為惡意軟件類別,若是,則執(zhí)行步驟14,否則,執(zhí)行步驟15。
步驟13,將待檢測(cè)樣本的特征向量輸入統(tǒng)計(jì)特征檢測(cè)模型,判斷統(tǒng)計(jì)特征檢測(cè)模型的輸出是否為惡意軟件類別,若是,則執(zhí)行步驟14,否則,執(zhí)行步驟15。
步驟14,將待檢測(cè)樣本標(biāo)記為惡意軟件,輸出待檢測(cè)樣本對(duì)應(yīng)的惡意軟件類別。
步驟15,將待檢測(cè)樣本標(biāo)記為正常軟件,輸出待檢測(cè)樣本對(duì)應(yīng)的正常軟件類別。