• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于操作碼N—Gram的Windows惡意軟件檢測

    2015-04-01 00:00:19李志周白金榮
    關(guān)鍵詞:機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘

    李志周 白金榮

    摘要:由于傳統(tǒng)的檢測方法必須獲得惡意軟件的簽名之后才能對這類惡意軟件進(jìn)行檢測,不能檢測新型的惡意軟件。本文用軟件逆向分析技術(shù)反匯編軟件樣本,使用N-Gram算法提取操作碼特征,再用信息增益算法選取操作碼特征,最后利用數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù)建立檢測模型。根據(jù)建立的檢測模型可以對未知的軟件進(jìn)行檢測,避免了傳統(tǒng)檢測方法的弊端。

    關(guān)鍵詞:N-Gram ?操作碼 ?惡意軟件 ?機(jī)器學(xué)習(xí) ?數(shù)據(jù)挖掘

    1 研究背景

    隨著社會的發(fā)展,計(jì)算機(jī)的普及率不斷增加。由于Window操作系統(tǒng)使用簡單、方便、用戶體驗(yàn)良好,Windows操作系統(tǒng)成為最受歡迎的PC操作系統(tǒng)。眾多的用戶數(shù)量也讓W(xué)indows操作系統(tǒng)成為了黑客最愛攻擊的對象。惡意軟件是對病毒、特洛伊木馬和蠕蟲等的總稱,惡意軟件具有強(qiáng)制安裝、難以卸載、惡意捆綁等特征。隨著互聯(lián)網(wǎng)的發(fā)展和技術(shù)的不斷更新?lián)Q代,惡意軟件的攻擊手段和種類越來越豐富。當(dāng)前的惡意軟件相比傳統(tǒng)的惡意軟件有了很多的變種,更加難以檢測。全球每年因?yàn)閻阂廛浖肭纸o個(gè)人用戶和企業(yè)帶來了大量的經(jīng)濟(jì)損失,而且這種損失每年都在增長。

    惡意軟件的檢測已經(jīng)成為當(dāng)前熱門的領(lǐng)域之一。文獻(xiàn)[1]研究基于N-Gram 系統(tǒng)調(diào)用序列的惡意代碼靜態(tài)檢測,通過N-Gram算法提取API函數(shù)序列作為特征建立檢測模型來檢測惡意軟件;文獻(xiàn)[2]是基于數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的惡意代碼檢測技術(shù)研究,利用N-Gram算法選取代碼字節(jié)序列作為特征,使用數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù)訓(xùn)練分類器檢測惡意軟件;文獻(xiàn)[3]研究惡意軟件檢測中的特征選擇問題,介紹了惡意軟件檢測領(lǐng)域選擇特征的原則和方法;文獻(xiàn)[4]研究惡意軟件鑒別技術(shù)及其應(yīng)用,提出了鑒別惡意軟件的幾種方法;文獻(xiàn)[5]基于權(quán)限的樸素貝葉斯Android惡意軟件檢測研究,分析惡意軟件特有的權(quán)限作為檢測的依據(jù);文獻(xiàn)[6]研究一種惡意軟件行為分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),對惡意軟件的行為進(jìn)行分析,建立檢測系統(tǒng)實(shí)現(xiàn)對惡意軟件的檢測。文獻(xiàn)[7]研究基于PE靜態(tài)結(jié)構(gòu)特征的惡意軟件檢測方法;文獻(xiàn)[8]介紹了軟件逆向工程的內(nèi)容。

    傳統(tǒng)的惡意軟件檢測方法必須獲得該惡意軟件的簽名之后才能對惡意軟件進(jìn)行檢測,這個(gè)缺點(diǎn)使得計(jì)算機(jī)感染新型惡意軟件的概率增加并且檢測到惡意軟件很困難。本文在當(dāng)前研究的基礎(chǔ)上,對Windows操作系統(tǒng)上的PE文件(PE(Portable Executable)文件是運(yùn)行在Windows操作系統(tǒng)上的可執(zhí)行文件)進(jìn)行反匯編,利用N-Gram算法提取操作碼特征,使用信息增益算法選取操作碼特征,用數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù)建立用于檢測惡意軟件的模型。

    2 實(shí)驗(yàn)過程

    2.1 概述

    圖1是基于N-Gram操作碼惡意軟件的檢測流程圖。該流程圖主要分為兩個(gè)部分:第一部分,通過對PE文件進(jìn)行分析訓(xùn)練分類器;第二部分,利用測試集來測試分類器檢測惡意軟件的結(jié)果。

    從圖1可以看出實(shí)驗(yàn)過程主要包含以下內(nèi)容:①通過對良性PE文件和惡意PE文件反匯編得到匯編文件,用N-Gram算法提取匯編文件中的操作碼特征;②選取特征利用數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù)對建立分類模型,訓(xùn)練分類器;③利用測試集對訓(xùn)練好的分類器進(jìn)行檢測,區(qū)分出惡意軟件和良性軟件。下文將依次對每個(gè)步驟進(jìn)行詳細(xì)的介紹。

    2.2 反匯編PE文件

    本文采用了交互式反匯編器專業(yè)版(Interactive Disassembler Professional)即IDA Pro以下簡稱IDA。使用IDA反匯編PE文件得到很多信息如流程圖、函數(shù)調(diào)用圖、依賴圖等。我們可以根據(jù)這些信息,分析軟件的功能、執(zhí)行過程、內(nèi)部結(jié)構(gòu)等。本文利用IDC腳本,從反匯編的許多信息中把匯編代碼提取出來(IDC腳本主要用于動態(tài)調(diào)試IDA,獲取IDA運(yùn)行過程中的各種信息的代碼)。

    2.3 N-Gram提取操作碼特征

    N-Gram算法經(jīng)常用于惡意軟件檢測,自然語言處理等領(lǐng)域。N-Gram算法假設(shè)第m個(gè)詞的出現(xiàn)只與前面的m-1個(gè)詞相關(guān)。假設(shè)操作碼序列為ABCDEFGH,2-gram提取的操作碼特征[{AB},{BC},{CD},{DE},{EF},{FG},{GH}];3-gram提取的操作碼特征[{ABC},{BCD},{CDE},{DEF},{EFG},{FGH}];4-gram提取的操作碼特征[{ABCD},{BCDE},{CDEF},{DEFG},{EFGH}];5-gram提取的操作碼特征[{ABCDE},{BCDEF},{CDEFG},{DEFGH}]。

    2.4 選取特征

    從上文可以看出使用N-Gram算法提取操作碼特征雖然不會遺漏某個(gè)特征但是有個(gè)明顯的缺點(diǎn),即如果操作碼個(gè)數(shù)太多,所提取的操作碼特征序列冗余多而且數(shù)據(jù)量大。例如有m個(gè)操作碼,根據(jù)N-Gram提取的操作碼特征為C■■。使用N-Gram提取的操作碼特征,不僅數(shù)量太太,而且有好多特征冗余,增加了我們尋找區(qū)分惡意軟件和正常軟件操作碼特征的難度。因此本文利用信息增益算法選擇特征。

    信息增益算法選擇特征:

    信息增益算法計(jì)算某個(gè)特征在文本中的權(quán)重時(shí),考慮特征存在或不存在對文本分類信息表示量的影響。信息增益算法選擇特征時(shí),最重要的標(biāo)準(zhǔn)是判斷該特征能傳輸多少信息給分類系統(tǒng),信息量的多少和特征的重要程度成正比。因此本文把信息增益值大的特征組合成分類特征的子集。一個(gè)特征的信息量是系統(tǒng)有該特征和沒有該特征前后之間信息量的差值。本文根據(jù)特征的信息增益值,通過降序排序,生成數(shù)據(jù)字典。

    數(shù)據(jù)字典是一張參照表,根據(jù)數(shù)據(jù)字典我們得知哪些特征作為判斷標(biāo)準(zhǔn)最合適。我們首先根據(jù)N-Gram算法提取樣本文件中的所有操作碼特征,再根據(jù)數(shù)據(jù)字典篩選操作碼特征。如果數(shù)據(jù)字典中的特征存在于樣本文件中,根據(jù)該特征在樣本文件中出現(xiàn)的次數(shù)給該特征賦予一個(gè)權(quán)值,若樣本文件中沒有該特征,則該特征的權(quán)值為0。使用特征選擇算法選取特征后,根據(jù)不同的數(shù)據(jù)字典,每個(gè)樣本文件中的操作碼特征都用數(shù)據(jù)字典中的特征來表示,這樣所有樣本文件中的操作碼特征都相同,不同的是操作碼特征的權(quán)值。每一個(gè)樣本文件都用操作碼特征來表示,生成一條記錄。把所有表示樣本文件中的記錄存放到指定的文件中,使用算法轉(zhuǎn)換成特定的文件格式用于數(shù)據(jù)挖掘。

    3 實(shí)驗(yàn)結(jié)果分析

    本文根據(jù)數(shù)據(jù)挖掘工具Weka對實(shí)驗(yàn)得到的操作碼特征用機(jī)器學(xué)習(xí)算法技術(shù)訓(xùn)練分類器。Weka(Waikato Environment for Knowledge Analysis)是一個(gè)基于java的開放的數(shù)據(jù)挖掘工具,集成了大量的機(jī)器學(xué)習(xí)算法。由于Weka具有高效準(zhǔn)確的特點(diǎn),所以本文使用它作為數(shù)據(jù)挖掘的工具。

    本文用4820個(gè)良性軟件和3465個(gè)惡意軟件作為樣本集。首先,用2-gram、3-gram、4-gram、5-gram提取操作碼特征;其次,用信息增益算法選取特征;最后,用J48、Random Forest、Bagging、AdaBoostM1四種分類算法進(jìn)行分類學(xué)習(xí)。本文用檢測率、誤報(bào)率、準(zhǔn)確率和AUC作為檢測標(biāo)準(zhǔn),其中AUC是最重要的標(biāo)準(zhǔn)。下文將依次分析不同長度的操作碼特征、不同大小特征集、不同算法對惡意軟件檢測的準(zhǔn)確率。

    3.1 不同長度的操作碼特征比較分析

    本文根據(jù)2-gram、3-gram、4-gram、5-gram分別提取了不同長度的操作碼特征,根據(jù)信息增益值選取前5000個(gè)特征。檢測結(jié)果如表1所示:

    表1 ?不同長度的操作碼特征檢測結(jié)果

    從表1中可以看出,2-gramAUC值最低為0.996,

    3-gram是0.997,4-gram和5-gram相同,4-gram誤報(bào)率低于5-gram而且4-gram的準(zhǔn)確率和檢測率都高于5-gram。綜合比較,使用4-gram提取的操作碼特征的效果比其余三個(gè)略好。從表中可知,不同長度的操作碼特征的檢測結(jié)果相差很小。表明N-Gram操作碼特征用于檢測惡意軟件有很高的檢測率。

    3.2 不同的特征個(gè)數(shù)比較分析

    通過上文可知,使用4-gram算法提取操作碼特征的效果最好,所以本文用信息增益算法選取50個(gè)、100個(gè)、200個(gè)、300個(gè)特征集進(jìn)行數(shù)據(jù)挖掘和分析,比較出多少數(shù)量的特征集效率最高?;谛畔⒃鲆嫠惴ㄌ崛〉牟煌瑐€(gè)數(shù)的操作碼特征的檢測結(jié)果如表2所示:

    表2 ?不同的操作碼特征個(gè)數(shù)檢測結(jié)果

    從表2中我們可以看出,特征數(shù)為300個(gè)時(shí)AUC值最高為0.996,100個(gè)特征數(shù)最低為0.984,50個(gè)特征數(shù)時(shí)為0.986,200個(gè)特征數(shù)時(shí)為0.995。特征個(gè)數(shù)多的檢測結(jié)果的準(zhǔn)確率相對高于特征數(shù)少的。不同特征個(gè)數(shù)之間的結(jié)果相差不大,表明使用信息增益算法選擇操作碼特征檢測惡意軟件的結(jié)果比較準(zhǔn)確。

    3.3 不同算法的效率比較分析

    不同的算法在效率和準(zhǔn)確率方面不同。本文利用4-gram算法提取操作碼特征,使用信息增益算法選取300個(gè)特征,用J48、Random Forest、Bagging、AdaBoostM1四種常用的分類算法進(jìn)行分析和比較,從而尋找出效率和準(zhǔn)確率最高的算法。

    圖2是4種分類算法的ROC圖:

    圖2 ?4種分類算法的ROC圖

    從圖2中我們可以看到,AUC值最高的是ADABOOSTM1算法,準(zhǔn)確率達(dá)到1.000,最低的是J48算法達(dá)到0.996,Random Forests算法和Bagging算法一樣都是0.999。通過實(shí)驗(yàn)J48算法的效率相對較低,其次是Random Forests算法、再次是ADABOOSTM1算法,Bagging算法效率最高。不同算法判斷的結(jié)果相差不大。不管采用以上四種中的任意一種算法對惡意軟件檢測,得到的結(jié)果都很準(zhǔn)確。

    綜上所述,使用4-gram算法提取操作碼特征檢測效果最好,根據(jù)特征在文檔中出現(xiàn)次數(shù)選取特征的檢測結(jié)果略低于使用信息增益算法選取特征的檢測結(jié)果,不同算法檢測的結(jié)果雖然相差不大,但是在效率上還是有明顯的差別,特別是數(shù)據(jù)量大時(shí),選取算法顯得尤為重要。通過上文的實(shí)驗(yàn)分析,本文首先用N-Gram算法提取操作碼特征,再用數(shù)據(jù)挖掘工具對提取的操作碼特征訓(xùn)練分類器,最后用測試集進(jìn)行測試,AUC值達(dá)到98%以上,表明使用該方法檢測惡意軟件效果比較理想。

    4 結(jié)束語

    本文用N-Gram算法提取操作碼特征建立惡意軟件檢測模型,與其它方法相比較其優(yōu)點(diǎn)有:

    ①與傳統(tǒng)檢測方法相比,該方法能對未知的新型的惡意軟件進(jìn)行檢測,降低新型惡意軟件帶來的危害;②由于操作碼用來指導(dǎo)CPU執(zhí)行操作,所以通過操作碼分析程序的行為比傳統(tǒng)的方法更準(zhǔn)確;③使用N-Gram算法提取特征,可以提取到一些隱藏著的使用其它算法很難提取到的特征。

    本文也有以下缺點(diǎn):①由于靜態(tài)分析本身存在固有的局限性,通過逆向分析得到的匯編代碼的質(zhì)量受限于反匯編的質(zhì)量以及軟件本身的設(shè)計(jì)技巧;②使用N-Gram算法提取操作碼特征的特征集太大,影響后期的數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的效率;③本文使用的單一抽象層次的特征,融合多個(gè)抽象層次的特征可能提高檢測的準(zhǔn)確率。

    綜上所述,下一步將提高反匯編的質(zhì)量,改進(jìn)N-Gram算法提取特征的特征集太大的問題,多使用幾種方法選取提取特征,分析出最合適的方法。

    參考文獻(xiàn):

    [1]黃全偉.基于N-Gram系統(tǒng)調(diào)用序列的惡意代碼靜態(tài)檢測[D].哈爾濱:哈爾濱工業(yè)大學(xué),2009.

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

    [3]陳洪泉.惡意軟件檢測中的特征選擇問題[J].電子科技大學(xué)學(xué)報(bào),2009,38:53.

    [4]莊蔚蔚,姜青山.惡意軟件鑒別技術(shù)及其應(yīng)用[J].集成技術(shù),2012,1:55.

    [5]蔡澤廷,姜梅.基于權(quán)限的樸素貝葉斯Android惡意軟件檢測研究[J].電腦知識與技術(shù),2013,14.

    [6]楊科,凌沖,朱陳成.研究一種惡意軟件行為分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)安全.

    [7]白金榮,王俊峰,趙宗渠.基于PE靜態(tài)結(jié)構(gòu)特征的惡意軟件檢測方法[J].計(jì)算機(jī)科學(xué),2013(01).

    [8]趙榮彩,龐建民,張靖博.反編譯技術(shù)與軟件逆向分析[M].第一版.北京:國防工業(yè)出版社,2009.

    猜你喜歡
    機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘
    探討人工智能與數(shù)據(jù)挖掘發(fā)展趨勢
    基于并行計(jì)算的大數(shù)據(jù)挖掘在電網(wǎng)中的應(yīng)用
    電力與能源(2017年6期)2017-05-14 06:19:37
    基于詞典與機(jī)器學(xué)習(xí)的中文微博情感分析
    基于機(jī)器學(xué)習(xí)的圖像特征提取技術(shù)在圖像版權(quán)保護(hù)中的應(yīng)用
    數(shù)據(jù)挖掘技術(shù)在中醫(yī)診療數(shù)據(jù)分析中的應(yīng)用
    基于網(wǎng)絡(luò)搜索數(shù)據(jù)的平遙旅游客流量預(yù)測分析
    前綴字母為特征在維吾爾語文本情感分類中的研究
    基于支持向量機(jī)的金融數(shù)據(jù)分析研究
    機(jī)器學(xué)習(xí)理論在高中自主學(xué)習(xí)中的應(yīng)用
    一種基于Hadoop的大數(shù)據(jù)挖掘云服務(wù)及應(yīng)用
    综艺| 迁西县| 凤台县| 大冶市| 焦作市| 浦县| 南充市| 南安市| 晋江市| 信丰县| 平凉市| 元朗区| 南昌市| 寻甸| 邵阳县| 肥东县| 榆社县| 旬邑县| 双峰县| 姚安县| 平遥县| 广南县| 昌都县| 永和县| 高邮市| 孙吴县| 滦平县| 赤城县| 中阳县| 五大连池市| 英吉沙县| 淮滨县| 鹿邑县| 陇南市| 安平县| 浮山县| 安泽县| 怀化市| 东乌| 汶上县| 永定县|