亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于集成學習的惡意代碼檢測方法研究

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

        李瑩珠

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

        基于集成學習的惡意代碼檢測方法研究

        李瑩珠

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

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

        惡意代碼檢測;集成學習;DBScan聚類;支持向量機

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

        0 引言

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

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

        1 DBScan-SVM集成學習算法

        1.1 DBScan聚類算法

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

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

        1.2 Jaccard相似度

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

        1.3 SVM分類算法

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

        多項式核函數(shù):

        高斯核函數(shù):

        S形核函數(shù):

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

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

        1.4 DBScan-SVM集成學習

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

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

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

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

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

        聚類之后,將樣本按類別分別輸入SVM學習器進行訓練,學習得到檢測惡意代碼的模型。

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

        2 算法實現(xiàn)

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

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

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

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

        步驟1:讀取樣本

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

        步驟3:去除重復api

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

        2.2 檢測流程

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

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

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

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

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

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

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

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

        步驟8輸入libsvm分類器進行訓練,得到訓練模型。

        步驟9:重復步驟8,至全部類別訓練完畢。

        2.3 檢測流程

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

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

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

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

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

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

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

        3 實驗結(jié)果

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

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

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

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

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

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

        合計:68.9441%(111/161)

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

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

        4 結(jié) 論

        本文給出了一種基于集成學習的惡意代碼檢測算法,該算法首先使用DBScan聚類算法按行為將數(shù)據(jù)集分成多個簇,然后分別對每個簇進行SVM分類,得到惡意代碼檢測結(jié)果。經(jīng)實驗,該算法獲得了較好的檢測結(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] 林學民, 王煒. 集合和字符串的相似度查詢[J]. 計算機學報, 2011, 34(10):1853-1862.

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

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

        [5] 王敏. 基于集成學習的支持向量機學習方法研究[D]. 山西大學, 2010.

        [6] 馬冉冉. 集成學習算法研究[D]. 山東科技大學, 2010.

        [7] 拓守恒. 基于QPSO訓練的SVM核函數(shù)集成學習研究[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-),性別,女,研究生,主要研究領域為軟件安全。

        猜你喜歡
        鄰域分類器聚類
        稀疏圖平方圖的染色數(shù)上界
        基于鄰域競賽的多目標優(yōu)化算法
        自動化學報(2018年7期)2018-08-20 02:59:04
        BP-GA光照分類器在車道線識別中的應用
        電子測試(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-支持向量機的TSK分類器
        關于-型鄰域空間
        基于改進的遺傳算法的模糊聚類算法
        一種層次初始的聚類個數(shù)自適應的聚類方法研究
        基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
        av无码电影一区二区三区| 亚洲av乱码国产精品观| 与最丰满美女老师爱爱视频| 国产成人av一区二区三区不卡| 18精品久久久无码午夜福利| 人妻在线日韩免费视频| 国产99页| 亚洲高清在线视频网站| 日本乱码一区二区三区在线观看| 丰满熟妇人妻av无码区| 欧美极品少妇无套实战 | 午夜视频网址| 亚洲第一页综合av免费在线观看| 成人大片免费在线观看视频| 2019nv天堂香蕉在线观看| 任你躁国产自任一区二区三区| 国产精品露脸视频观看| 国产精品性一区二区三区| 亚洲视频综合在线第一页| av影片手机在线观看免费网址| 免费在线黄色电影| 亚洲综合区图片小说区| 日韩在线视精品在亚洲| 亚洲国产丝袜美女在线| 产美女被爽到高潮免费a| 女女女女女裸体处开bbb| 色婷婷欧美在线播放内射| 中文字幕日本人妻一区| 草逼视频免费观看网站| 免费观看a级片| 一本大道无码av天堂| 亚洲人成网站18男男| 久久精品国产亚洲av四区| 一区二区三区国产内射| 亚洲欧美中文字幕5发布| 精品熟女日韩中文十区| 中文字幕麻豆一区二区| 麻豆精品一区二区三区| 亚洲人成人无码www影院| av无码精品一区二区三区四区| 日韩狼人精品在线观看|