国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于集成學(xué)習(xí)的惡意代碼檢測方法研究

2016-02-13 05:58:26李瑩珠
軟件 2016年12期
關(guān)鍵詞:鄰域分類器聚類

李瑩珠

(北京郵電大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 北京 100876)

基于集成學(xué)習(xí)的惡意代碼檢測方法研究

李瑩珠

(北京郵電大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 北京 100876)

網(wǎng)絡(luò)時代帶來了生活上的種種便利,也帶來了惡意代碼的爆發(fā)式增長。報告指出,惡意代碼的數(shù)量和種類都在快速增長,其中,惡意代碼種類的增長對惡意代碼檢測的影響影響尤為突出。使用分類算法進(jìn)行惡意代碼檢測是現(xiàn)在的一個熱門研究方向,而繁多的惡意代碼種類會極大地削弱分類效果。鑒于這種情況,本文提出了一種基于集成學(xué)習(xí)的惡意代碼檢測方法,該方法首先用DBScan算法對訓(xùn)練樣本進(jìn)行聚類,再用聚類得到的各個簇訓(xùn)練SVM分類器,對未知樣本進(jìn)行檢測時,首先將待檢測樣本分類到訓(xùn)練得到的各個簇中,然后輸入對應(yīng)的SVM分類器進(jìn)行分類,判斷是否為惡意代碼。實(shí)驗結(jié)果表明,這種方法的準(zhǔn)確率相對于直接使用SVM分類有明顯提高,達(dá)到了較好的檢測效果。

惡意代碼檢測;集成學(xué)習(xí);DBScan聚類;支持向量機(jī)

本文著錄格式:李瑩珠. 基于集成學(xué)習(xí)的惡意代碼檢測方法研究[J]. 軟件,2016,37(12):202-205

0 引言

在電子計算機(jī)技術(shù)快速發(fā)展的現(xiàn)在,惡意代碼的威脅性也在日益增加。惡意代碼數(shù)量的增長呈現(xiàn)出爆發(fā)態(tài)勢,從賽門鐵克公司的安全威脅報告中可以看出,每年的惡意代碼增量都是前一年的十倍以上。而惡意代碼的海量變種與繁多的種類也進(jìn)一步加大了檢測的難度。與此同時,機(jī)器學(xué)習(xí)的發(fā)展極大地帶動了惡意代碼檢測方法的研究。其中,集成學(xué)習(xí)是機(jī)器學(xué)習(xí)領(lǐng)域中的一個熱門方向。集成學(xué)習(xí)就是通過特定的學(xué)習(xí)方法得到若干個基分類器,然后對各個基分類器的結(jié)果按照某種繼承策略決定最終的分類結(jié)果,可獲得較單個分類器更好的分類結(jié)果。應(yīng)用于惡意代碼檢測研究時,集成學(xué)習(xí)比起單一分類器可以更好地應(yīng)對惡意代碼數(shù)量和種類上的增長,同時也更易于結(jié)合云計算獲得更高的計算速度。

本文提出了一種基于DBScan聚類算法和SVM分類算法的集成學(xué)習(xí)算法。該算法首先按行為對樣本進(jìn)行DBScan聚類,再以是否為惡意代碼為標(biāo)簽,用各聚類數(shù)據(jù)分別進(jìn)行SVM分類訓(xùn)練,得到訓(xùn)練模型,然后將測試數(shù)據(jù)分到最接近的聚類類別中,再輸入對應(yīng)的SVM分類器中進(jìn)行分類,判定是否為惡意代碼。

1 DBScan-SVM集成學(xué)習(xí)算法

1.1 DBScan聚類算法

DBScan[1]是一種基于密度的聚類算法,這種算法將密度足夠高的區(qū)域劃分為簇,具有不限定待發(fā)現(xiàn)的簇的形狀的優(yōu)勢,并且不需限定劃分類別的數(shù)目,適用于行為未知的數(shù)據(jù)集的分類。DBScan算法首先要搜索數(shù)據(jù)集,根據(jù)設(shè)定的半徑eps和最小對象數(shù)minPts找出核心對象,即半徑eps的鄰域內(nèi)有minPts個點(diǎn)的對象,再根據(jù)找到的核心點(diǎn)進(jìn)行擴(kuò)散,將核心對象的eps鄰域內(nèi)的點(diǎn)加入到核心點(diǎn)所在的簇當(dāng)中。核心對象鄰域內(nèi)的點(diǎn)稱為邊緣對象,不屬于任何簇的點(diǎn)稱為噪聲。這個過程中,時間復(fù)雜度主要來自于鄰域的計算,所以在實(shí)際應(yīng)用當(dāng)中,為了降低運(yùn)算復(fù)雜度,一般都會建立索引。如果不存在索引,鄰域計算需要遍歷所有點(diǎn),最壞情況下時間復(fù)雜度為樣本數(shù)的平方。

鄰域半徑可選擇余弦距離、歐氏距離、Jaccard相似度等相似度度量方法[2]。歐氏距離體現(xiàn)的是個體數(shù)值的絕對差異,余弦距離則更多得從方向上進(jìn)行區(qū)分,Jaccard相似度比較得則是兩個集合中相同對象的相對數(shù)量,計算效率更高。鑒于惡意代碼樣本是維數(shù)不等的高維向量,采用Jaccard相似度計算eps更為合適。

1.2 Jaccard相似度

Jaccard相似度是兩個集合之間相似性和分散性的度量方法,又稱Jaccard系數(shù),主要用于過濾相似度高的文檔等場景。Jaccard相似度是兩個集合的交集與并集的比值,公式如下:

1.3 SVM分類算法

SVM是一種基于VC維理論和結(jié)構(gòu)風(fēng)險最小原則建立的有監(jiān)督分類算法[3],核心思想有兩點(diǎn),即針對線性可分情況進(jìn)行分析和將低維線性不可分的樣本通過非線性映射算法投入到高維空間中去,使其線性可分。一般的升維都會帶來維度災(zāi)難,極大地提升運(yùn)算量,SVM算法則通過核函數(shù)這一關(guān)鍵設(shè)計解決了這個問題。核函數(shù)地作用是接受低維空間中的向量,計算出其映射在高維空間中的值,而不需要找到具體的映射關(guān)系。滿足Mercer條件的函數(shù)都可作為核函數(shù)[4]。使用核函數(shù)之后,將低維向量映射到高維空間幾乎沒有增加運(yùn)算成本,使SVM的升維分類方法的實(shí)現(xiàn)成為可能。常用的核函數(shù)有多項式核函數(shù)、高斯核函數(shù)、S形核函數(shù)等,形式如下:

多項式核函數(shù):

高斯核函數(shù):

S形核函數(shù):

基于SVM算法的可解決高維問題、理論基礎(chǔ)完善、在樣本量較小時就可以得到較好的分類效果等優(yōu)點(diǎn),本文選擇這種算法進(jìn)行惡意代碼樣本的分類。

實(shí)際應(yīng)用中,臺灣大學(xué)的林智仁教授開發(fā)了一款簡單易用的軟件包libsvm,本文也采用了這一軟件包進(jìn)行SVM算法的實(shí)現(xiàn)。

1.4 DBScan-SVM集成學(xué)習(xí)

集成學(xué)習(xí)是機(jī)器學(xué)習(xí)領(lǐng)域的一個重要研究方向,其基本理念是通過多個子學(xué)習(xí)器共同解決同一問題[5],可以明顯提高泛化能力。集成學(xué)習(xí)有廣義和狹義兩種定義,狹義的集成學(xué)習(xí)是使用多個同質(zhì)的學(xué)習(xí)器來解決同一問題,而廣義的定義則是將使用多個不同的學(xué)習(xí)器也歸為此類。廣義的集成學(xué)習(xí)可以將名稱不同但實(shí)際屬于同一類的學(xué)習(xí)器歸屬到集成學(xué)習(xí)框架之下,因此比狹義的集成學(xué)習(xí)更具優(yōu)勢[6],集成學(xué)習(xí)所涵蓋的范圍也越來越廣。

集成學(xué)習(xí)的關(guān)鍵點(diǎn)是在給定訓(xùn)練樣本的情況下構(gòu)造出相對獨(dú)立的、運(yùn)算效果較好的多個子分類器[7],常用的子分類器構(gòu)造方法有Bagging、Boosting等。

Bagging是由Breiman提出的一種方法,該方法采用可重復(fù)取樣技術(shù)Bootstrap對訓(xùn)練集進(jìn)行采樣獲得子集,在這種方法中,子學(xué)習(xí)器的差異性是由Bootstrap重復(fù)帶來的,主要用于不穩(wěn)定的機(jī)器學(xué)習(xí)算法。

Boosting是一種把多個分類器整合為一個的方法,可以提高弱分類算法的準(zhǔn)確度。其核心思想是通過學(xué)習(xí)誤差來改變子訓(xùn)練集在訓(xùn)練集上的分布,重點(diǎn)學(xué)習(xí)其中誤差較大的部分,即對誤差較大的部分進(jìn)行重采樣以增大其權(quán)重。這類算法中最受關(guān)注的是AdaBoost算法。

針對惡意代碼樣本往往由多個種類混雜構(gòu)成的特點(diǎn),本文采取了DBScan聚類算法對樣本進(jìn)行聚類,得到按代碼行為分類的多個子樣本。根據(jù)行為判斷樣本是否為惡意代碼時,主要依賴樣本的注冊表行為、文件操作、網(wǎng)絡(luò)行為等進(jìn)行判別,所以本文提取了惡意代碼調(diào)用的與這些行為相關(guān)的api函數(shù)形成特征樣本集,再對樣本集進(jìn)行聚類。

聚類之后,將樣本按類別分別輸入SVM學(xué)習(xí)器進(jìn)行訓(xùn)練,學(xué)習(xí)得到檢測惡意代碼的模型。

在用待分類樣本進(jìn)行測試時,首先讀取訓(xùn)練過程中的聚類結(jié)果,將樣本分到最接近的類別中,然后用對應(yīng)的訓(xùn)練完的SVM分類器進(jìn)行分類,判斷是否為惡意代碼。

2 算法實(shí)現(xiàn)

2.1 樣本數(shù)據(jù)獲取與預(yù)處理

本文的訓(xùn)練樣本采用CSDMC2010 API sequence corpus,這個數(shù)據(jù)集用api monitor捕獲了程序運(yùn)行時調(diào)用的Windows api,選取了與惡意代碼行為密切相關(guān)的Windows api作為樣本特征,如獲取輸入函數(shù)時需要調(diào)用的LoadLibrary、查詢注冊表時調(diào)用的RegQueryValue、創(chuàng)建文件時調(diào)用的CreateFile、進(jìn)行網(wǎng)絡(luò)通信時調(diào)用的socket等。這個數(shù)據(jù)集將惡意代碼標(biāo)記為1,非惡意代碼標(biāo)記為0。如:

(1,LoadLibraryW,HeapAlloc,HeapAlloc,HeapFre e……)

進(jìn)行訓(xùn)練之前,要用int字符替換掉api字符串。測試集是SoftSnoop捕捉的Windows api調(diào)用特征集,和樣本集用同樣的方式處理。步驟如下:

步驟1:讀取樣本

步驟2:用int類型替換api字符串

步驟3:去除重復(fù)api

處理后的樣本格式如下:(1,7,19,21,66,29,2……)

2.2 檢測流程

步驟1:讀取訓(xùn)練樣本中的一條數(shù)據(jù)并計算Jaccard相似度,計算eps鄰域內(nèi)的點(diǎn)數(shù),若大于minPts則標(biāo)記為核心點(diǎn),否則標(biāo)記為噪聲,建立索引。

步驟2:循環(huán)步驟1至全部樣本都已建立索引

步驟3:新建一個簇,從索引中讀取一個未讀核心點(diǎn)加入這個簇

步驟4:讀取核心點(diǎn)鄰域內(nèi)的點(diǎn)并將其加入核心點(diǎn)所在的簇

步驟5:循環(huán)步驟4至鄰域中沒有核心點(diǎn)存在

步驟6:循環(huán)步驟3至步驟5,至樣本中所有點(diǎn)都已讀取。

以上為DBScan聚類過程,輸出按行為聚類的結(jié)果。之后針對是否為惡意代碼進(jìn)行分類。

步驟7:讀取一類聚類結(jié)果,改寫成libsvm要求的格式

步驟8輸入libsvm分類器進(jìn)行訓(xùn)練,得到訓(xùn)練模型。

步驟9:重復(fù)步驟8,至全部類別訓(xùn)練完畢。

2.3 檢測流程

步驟1:獲取DBScan的聚類結(jié)果

步驟2:讀取一條待檢測樣本數(shù)據(jù),計算該數(shù)據(jù)與步驟1中的聚類結(jié)果中的各個點(diǎn)的Jaccard形似度

步驟3:比較Jaccard相似度,將待檢測數(shù)據(jù)分到相似度最大的點(diǎn)所在的簇中

步驟4:重復(fù)步驟2至步驟3,直到所有待檢測數(shù)據(jù)都已分類

步驟5:將數(shù)據(jù)改寫成libsvm要求的格式

步驟6:將已分好類的待檢測數(shù)據(jù)輸入到對應(yīng)的libsvm分類器中,得到分類結(jié)果

Libsvm所需的數(shù)據(jù)集格式如下:(1 1:7 2:19 3:21……)

3 實(shí)驗結(jié)果

本文采用CSDMC2010 API sequence corpus作為訓(xùn)練數(shù)據(jù)集,這是一個由一系列Windows api調(diào)用跟蹤文件構(gòu)成的數(shù)據(jù)集。這個數(shù)據(jù)集選取了一些與惡意代碼識別相關(guān)的api作為特征子集,只給出了調(diào)用的api的名字,忽略了參數(shù)等其他內(nèi)容,但保留了api的調(diào)用順序,并將惡意代碼標(biāo)記為1,非惡意代碼標(biāo)記為0。訓(xùn)練集中共有惡意代碼樣本320個,非惡意代碼68個。

測試集是用SoftSnoop捕捉的Windows api調(diào)用序列選取了與訓(xùn)練集相同的特征,包含90個惡意代碼和71個非惡意代碼。

本文用SVM對樣本集的分類結(jié)果作為對照數(shù)據(jù),用DBScan-SVM集成學(xué)習(xí)分類結(jié)果作為實(shí)驗數(shù)據(jù)。實(shí)驗結(jié)果如下:

對訓(xùn)練集進(jìn)行聚類得到兩個簇,用這兩個簇的數(shù)據(jù)作為SVM的訓(xùn)練集;將測試樣本分到這兩個簇中,作為SVM的測試集,測試結(jié)果為:

簇1準(zhǔn)確率:70.0787%(89/127)

簇2準(zhǔn)確率:64.7059%(22/34)

合計:68.9441%(111/161)

對照組準(zhǔn)確率:57.764%(93/161)

由實(shí)驗結(jié)果可知,DBScan-SVM集成學(xué)習(xí)分類效果比SVM分類效果提高了十個百分點(diǎn)以上,達(dá)到了較好的惡意代碼檢出率。由于DBScan是基于密度的聚類算法,本文采用的樣本數(shù)量較小而包含的惡意代碼類型較多,樣本比較稀疏,所以在樣本數(shù)量加大的情況下,本文的算法有望取得更好的分類效果。

4 結(jié) 論

本文給出了一種基于集成學(xué)習(xí)的惡意代碼檢測算法,該算法首先使用DBScan聚類算法按行為將數(shù)據(jù)集分成多個簇,然后分別對每個簇進(jìn)行SVM分類,得到惡意代碼檢測結(jié)果。經(jīng)實(shí)驗,該算法獲得了較好的檢測結(jié)果。

[1] ESTER M, KRIEGEL M, PETER H, etal. A density-based algorithm for discovering clusters in large spatial databases with noise[J]. Proceedings of the Second International Conference on Knowledge Discovery and Data Mining. 1996.

[2] 林學(xué)民, 王煒. 集合和字符串的相似度查詢[J]. 計算機(jī)學(xué)報, 2011, 34(10):1853-1862.

[3] 郭麗娜. 云計算環(huán)境下的并行SVM算法研究[D]. 南京師范大學(xué), 2014.

[4] 張小康. 基于數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的惡意代碼檢測技術(shù)研究[D]. 中國科學(xué)技術(shù)大學(xué), 2009.

[5] 王敏. 基于集成學(xué)習(xí)的支持向量機(jī)學(xué)習(xí)方法研究[D]. 山西大學(xué), 2010.

[6] 馬冉冉. 集成學(xué)習(xí)算法研究[D]. 山東科技大學(xué), 2010.

[7] 拓守恒. 基于QPSO訓(xùn)練的SVM核函數(shù)集成學(xué)習(xí)研究[J].系統(tǒng)仿真技術(shù), 2010, 06(3): 202-208.

Malicious Code Detection Method Research Based on Ensemble Learning

LI Ying-zhu

(School of CyberSpace Security, Beijing University of Posts and Telecommunications, Beijing 100876, China)

Network times brings life's various walks, also brought explosive growth of malicious code.Report notes that in the fast-growing number and types of malicious code, malicious code type of growth on the effects of malicious code detection is especially important.Malicious code detection using the classification algorithm is now a popular research direction, and various types of malicious code can dramatically cut if the classification results. Given this situation, paper proposed has a based on integrated learning of malicious code detection method, the method first with DBScan algorithm on training sample for poly class, again with poly class get of all cluster training SVM classification device, on unknown sample for detection, first will stay detection sample classification to training get of all cluster, then entered corresponds to SVM classification device for classification, judge whether for malicious code.Experimental results show that the accuracy of this method compared to direct use of SVM classification have fignificantly improved and achieved good results.

Malware detection; Ensemble learning; DBScan; SVM

TP309.5

A

10.3969/j.issn.1003-6970.2016.12.043

李瑩珠(1990-),性別,女,研究生,主要研究領(lǐng)域為軟件安全。

猜你喜歡
鄰域分類器聚類
稀疏圖平方圖的染色數(shù)上界
基于鄰域競賽的多目標(biāo)優(yōu)化算法
BP-GA光照分類器在車道線識別中的應(yīng)用
電子測試(2018年1期)2018-04-18 11:52:35
基于DBSACN聚類算法的XML文檔聚類
電子測試(2017年15期)2017-12-18 07:19:27
加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類
結(jié)合模糊(C+P)均值聚類和SP-V-支持向量機(jī)的TSK分類器
關(guān)于-型鄰域空間
基于改進(jìn)的遺傳算法的模糊聚類算法
一種層次初始的聚類個數(shù)自適應(yīng)的聚類方法研究
基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
衢州市| 泸定县| 晋宁县| 闻喜县| 古交市| 新平| 陆良县| 梅河口市| 林口县| 吉木乃县| 阿拉善右旗| 长海县| 若尔盖县| 乳源| 法库县| 福清市| 灵宝市| 龙海市| 兴文县| 盐亭县| 文化| 长岭县| 昌宁县| 甘谷县| 开鲁县| 陇西县| 西畴县| 扶绥县| 眉山市| 新沂市| 上思县| 林西县| 西畴县| 新绛县| 双牌县| 岢岚县| 会昌县| 溆浦县| 都江堰市| 定结县| 彭水|