• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      改進(jìn)的基于DNN的惡意軟件檢測方法

      2021-05-26 03:14:20張柏翰
      關(guān)鍵詞:權(quán)重樣本函數(shù)

      張柏翰,凌 捷

      廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣州510006

      蓬勃發(fā)展的互聯(lián)網(wǎng)為人們的工作和生活提供諸多便利,同時也可能被不法分子利用,成為其牟利犯罪的工具。諸如計(jì)算機(jī)病毒、蠕蟲、木馬、僵尸網(wǎng)絡(luò)、勒索軟件等在內(nèi)的惡意軟件長期以來都是不法分子用以破壞操作系統(tǒng)、竊取用戶重要數(shù)據(jù)的利器,互聯(lián)網(wǎng)應(yīng)用的普及則加劇了惡意軟件的傳播。根據(jù)ΜcAfee Labs 在2019年8月發(fā)布的威脅報(bào)告[1],惡意軟件總數(shù)在2019年第一季度已經(jīng)突破9億;而在惡意二進(jìn)制可執(zhí)行文件方面,從2017 年至2019 年間,單季度最高新增量高于110 萬。對惡意軟件的檢測和查殺一直是網(wǎng)絡(luò)空間安全研究領(lǐng)域的重要課題之一。

      惡意軟件檢測方法可根據(jù)是否需要運(yùn)行軟件分為靜態(tài)分析方法和動態(tài)分析方法。靜態(tài)分析方法只對二進(jìn)制可執(zhí)行文件中的代碼進(jìn)行分析,動態(tài)分析方法則對可執(zhí)行文件運(yùn)行時的行為進(jìn)行分析。無論哪種分析方法,傳統(tǒng)手段都需要大量人工工作和專家經(jīng)驗(yàn),效率較低。而且攻擊者使用多態(tài)組合、仿冒、壓縮、混淆等方法,有意讓惡意軟件避開檢測軟件的檢測[2],這無疑增加了人工分析的難度。近年來機(jī)器學(xué)習(xí)尤其是深度學(xué)習(xí)在圖像處理、文本處理等領(lǐng)域的成功實(shí)踐,為從事惡意軟件分析工作的研究人員帶來啟示。當(dāng)前網(wǎng)絡(luò)空間中惡意軟件樣本龐大的數(shù)量,以及二進(jìn)制可執(zhí)行文件本身龐大的可提取特征的數(shù)量,使得深度學(xué)習(xí)方法非常適合于惡意軟件分類工作。

      2015 年,微軟開放了一個數(shù)量上萬的帶標(biāo)簽的惡意代碼樣本集,供研究者們使用[3]。在已有的工作中,Zhang等[4]、Dinh等[5]、Burnaev等[6]、Drew等[7]、Patri等[8]以及Gsponer 等[9]使用該數(shù)據(jù)集研究基于機(jī)器學(xué)習(xí)的對惡意軟件家族進(jìn)行多分類的方法。Κebede等[10]、Κim[11]、Rahul 等[12]同樣研究惡意軟件的分類問題,不過他們使用的是容易取得更好效果的神經(jīng)網(wǎng)絡(luò)模型。以上研究工作的目的均是對惡意軟件按所屬家族分類。而在惡意PE(Portable Executable)文件檢測中,也即關(guān)于PE文件的“善”“惡”的二分類問題方面的最新研究中,有許多基于機(jī)器學(xué)習(xí)的方法被提出。文獻(xiàn)[13]使用共享近鄰聚類算法檢測新惡意軟件。文獻(xiàn)[14]基于生成對抗網(wǎng)絡(luò)構(gòu)建惡意軟件檢測器模型。文獻(xiàn)[15]構(gòu)建集成了卷積神經(jīng)網(wǎng)絡(luò)和長短期記憶網(wǎng)絡(luò)的檢測器模型。文獻(xiàn)[16]使用深度置信網(wǎng)絡(luò)構(gòu)建檢測器模型。文獻(xiàn)[17]針對缺乏確定性質(zhì)樣本的情況,提出了一種基于半監(jiān)督深度神經(jīng)網(wǎng)絡(luò)的惡意樣本標(biāo)記方法。文獻(xiàn)[18]基于許多新類型的惡意軟件都是現(xiàn)有惡意軟件的變體這一事實(shí),將可執(zhí)行文件轉(zhuǎn)為灰度圖,并使用基于卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neutral Network,CNN)的分類器進(jìn)行同源性分類,以訓(xùn)練好的分類器來識別。文獻(xiàn)[19]描述了一種端到端惡意PE 文件檢測模型ΜalConv,其直接將未經(jīng)處理的原始PE 文件作為特征向量,并由使用了嵌入層和一維卷積層的神經(jīng)網(wǎng)絡(luò)模型提取特征,從而做出“善惡”的判別。該文獻(xiàn)作者Raff 等人表示他們的模型在惡意PE文件的檢測上具有不錯的效果,然而文獻(xiàn)[20]的作者Κolosnjaji 等人針對該模型提出一種基于梯度下降的生成對抗樣本的算法,由該算法生成的對抗樣本逃避ΜalConv 檢測的成功率可達(dá)到60%。文獻(xiàn)[21]基于Endgame 公司開放的惡意PE 文件特征數(shù)據(jù)集Ember[22],用10個全連接層建立二分類模型DeepΜalNet,對PE文件的善惡進(jìn)行判斷,輸出PE文件為惡意軟件的概率。DeepΜalNet 非端到端檢測模型,其接收的數(shù)據(jù)為PE文件經(jīng)過預(yù)處理后得到的特征向量。該模型對惡意PE 文件具有不錯的檢出效果,且目前尚未有人提出針對此種模型的對抗攻擊方法。然而在本文實(shí)驗(yàn)過程中,發(fā)現(xiàn)其存在參數(shù)數(shù)量過多和泛化性較差的問題。

      在數(shù)據(jù)集方面,Virusshare、Virustotal、Μalshare等網(wǎng)站提供大量惡意軟件樣本供學(xué)習(xí)和研究使用,Μicrosoft也開放惡意PE樣本集供研究,其中每個PE文件具有所屬惡意軟件家族的標(biāo)簽。至于正??蓤?zhí)行文件樣本,由于政策等因素,互聯(lián)網(wǎng)上并未有組織或個人開放大量可用原始樣本。也正因此,大量的關(guān)于惡意軟件的分類研究工作均集中在對惡意軟件所屬家族的歸類問題上。Endgame 公司于2017 年開放了一個用于研究惡意軟件檢測的數(shù)據(jù)集,其中包含由100 萬個PE 文件樣本通過特征工程轉(zhuǎn)化而來的100 萬個長為2 381 的32 位浮點(diǎn)數(shù)特征向量。本文在該數(shù)據(jù)集上設(shè)計(jì)并開展了驗(yàn)證性實(shí)驗(yàn)。

      本文將針對文獻(xiàn)[21]設(shè)計(jì)的惡意PE 文件檢測器模型所存在的泛化性較差的問題,改進(jìn)模型結(jié)構(gòu),提高模型的泛化能力,并使模型在后續(xù)剪枝工作中保持可用性。

      1 相關(guān)工作

      1.1 基于DNN的二分類模型

      本文使用具有多個全連接層的神經(jīng)網(wǎng)絡(luò)構(gòu)成惡意軟件檢測器模型。檢測器接收的數(shù)據(jù)為將PE文件進(jìn)行預(yù)處理后得到的特征向量,預(yù)處理的方法將在后文介紹。實(shí)驗(yàn)中曾在模型中加入一維卷積層和循環(huán)神經(jīng)層,但與單純使用全連接層的模型相比其效果不佳。由此推測,由本文所述數(shù)據(jù)預(yù)處理程序提取的特征向量不具備時序性,因而本文最后選擇深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)作為惡意軟件檢測器模型的基礎(chǔ)架構(gòu)。

      特征向量輸入模型后,會經(jīng)過多個模塊M 。這里模塊M 是一個數(shù)據(jù)處理流程:模塊M 接收輸入數(shù)據(jù)或由上一個模塊處理后得到的輸出數(shù)據(jù)X ,經(jīng)過批歸一化層(Batch Normalization,BN),使得向量X 各維數(shù)值x0,x1,…,xn均值趨于0,方差趨于1;然后數(shù)據(jù)經(jīng)過一個具有n 個神經(jīng)元的全連接層,此全連接層采用relu作為激活函數(shù);最后使用定向Dropout方法,在每一個訓(xùn)練步驟中挑選一定數(shù)量的權(quán)重參數(shù),使其失活,通過這種方法防止神經(jīng)網(wǎng)絡(luò)過度依賴某些神經(jīng)元,導(dǎo)致訓(xùn)練得到模型過度擬合數(shù)據(jù)集而泛化性差。

      數(shù)據(jù)從最后一個模塊輸出后,再進(jìn)入一個只有一個神經(jīng)元的全連接層,即輸出層。該層以sigmoid 函數(shù)作為激活函數(shù),得到介于0 和1 之間的32 位浮點(diǎn)數(shù),表示判定輸入樣本為惡意PE文件的概率。

      需要指出的是,本文設(shè)計(jì)的模型使用定向Dropout方法替代DeepΜalNet所用的普通Dropout方法,并通過實(shí)驗(yàn)驗(yàn)證其有效性。

      1.2 全連接層

      全連接層由一個線性函數(shù)加一個激活函數(shù)組成,如式(1)所示。假設(shè)ni-1為第i 個模塊接收的輸入向量Xi的維數(shù)。第i 個全連接層的權(quán)重矩陣為Wi,其由ni個維度為ni-1的向量構(gòu)成,bi為偏置向量,維數(shù)為ni。a為激活函數(shù),目的是對線性函數(shù)的輸出作非線性變換。

      在本文設(shè)計(jì)的檢測器模型中,除了輸出層外的每個全連接層使用的激活函數(shù)皆為relu 函數(shù)。實(shí)驗(yàn)曾嘗試使用sigmoid、leaky-relu、erelu、prelu等函數(shù)作為模塊M中全連接層使用的激活函數(shù)。實(shí)驗(yàn)中發(fā)現(xiàn),relu及其變種函數(shù)的效果最好,因此本文最終使用relu 作為模塊M 中全連接層的激活函數(shù)。而在輸出層中,本文使用sigmoid作為激活函數(shù)。

      1.3 Batch Normalization

      在訓(xùn)練模型時,若各層網(wǎng)絡(luò)接收的輸入數(shù)據(jù)的分布不一致,則后層網(wǎng)絡(luò)需為了適應(yīng)輸入數(shù)據(jù)的變化而不停調(diào)整,如此將導(dǎo)致學(xué)習(xí)速度降低,模型無法很好地收斂。因而本文設(shè)計(jì)的模型中引入BN機(jī)制,利用反向傳播使各網(wǎng)絡(luò)層的數(shù)據(jù)分布一致。

      1.4 正則化

      DeepΜalNet 模型使用Dropout 方法防止過擬合。這種在模型的每一步訓(xùn)練中隨機(jī)選擇權(quán)重并令其失活的正則化方法在一定程度上可以防止模型過度依賴部分權(quán)重,但也導(dǎo)致模型訓(xùn)練成型后所有權(quán)重的重要性一致,即沒有一個可以顯式擇取的最優(yōu)子網(wǎng)絡(luò),因而不利于模型后續(xù)剪枝中保持高可用性。而本文的實(shí)驗(yàn)中使用一種稱為“定向Dropout”的方法代替Dropout。下一節(jié)將解釋這種正則化方法。

      定向Dropout正則化方法由Aidan等人提出[23],是一種“基于重要性的剪枝方法”,其在每個網(wǎng)絡(luò)層中,對神經(jīng)元的權(quán)重或是神經(jīng)元的線性輸出值按大小排序(采用L1或L2范數(shù)),然后選出較小的一部分,從這部分權(quán)重或神經(jīng)元中再隨機(jī)選出一部分,使其失活。這是一種優(yōu)化的Dropout方法,不僅可以使模型更好地避免過擬合,提高模型的泛化能力,同時,可以使模型在訓(xùn)練后得到一個最優(yōu)子網(wǎng)絡(luò),有利于模型的后續(xù)剪枝操作。

      如同Dropout 正則化,定向Dropout 也分為針對權(quán)重和針對神經(jīng)元的兩種,分別稱為權(quán)重剪枝和單元剪枝,它們篩選出重要權(quán)重的方法可分別用式(7)和式(8)表示,其中argmax-k 表示選出前k 個權(quán)重或單元。權(quán)重剪枝針對同一個神經(jīng)元里的所有權(quán)重,將它們按一范數(shù)從大到小排序,然后選出前k 個作為保留權(quán)重,對其余權(quán)重行Dropout方法。單元剪枝則針對同一個神經(jīng)層中的所有神經(jīng)元,將它們根據(jù)各自的權(quán)重向量的二范數(shù)從大到小排序,選出前k 個作為保留神經(jīng)元,對其余神經(jīng)元同樣行Dropout方法。之所以不將殘余權(quán)重或神經(jīng)元直接摒除,是因?yàn)樗鼈冎锌赡苡幸恍诤罄m(xù)訓(xùn)練步驟中重新顯現(xiàn)重要性而進(jìn)入前k,因此只對它們行隨機(jī)失活法,保證公平性。記模型參數(shù)數(shù)量為 ||θ ,候選失活參數(shù)占比為γ,對候選失活部分的隨機(jī)Dropout 比例為α,則在每次定向Dropout 時保留活性的參數(shù)數(shù)量為(1-γα) ||θ 。

      在本文的實(shí)驗(yàn)中使用針對權(quán)重的定向Dropout正則化方法替代Dropout方法,并測試其效果。

      2 本文方法描述

      2.1 數(shù)據(jù)集

      EndGame公司開放的Ember數(shù)據(jù)集,是由對100萬個PE文件(包含正常可執(zhí)行文件和惡意可執(zhí)行文件)提取的特征向量和它們的標(biāo)簽組成。其中,標(biāo)簽0表示樣本為正??蓤?zhí)行文件,標(biāo)簽1 表示樣本為惡意可執(zhí)行文件,標(biāo)簽-1 代表可執(zhí)行文件未知善惡。在本文的實(shí)驗(yàn)中,使用數(shù)據(jù)集中60 萬條帶有非-1 標(biāo)簽的數(shù)據(jù)(其中包括標(biāo)簽為0和1的數(shù)據(jù)各30萬條)作為訓(xùn)練模型時使用的數(shù)據(jù)集,另外20 萬條(其中包括標(biāo)簽為0 和1 的數(shù)據(jù)各10萬條)作為測試模型時使用的數(shù)據(jù)集。

      在測試模型時,除了使用Ember 數(shù)據(jù)集做測試,也使用另外兩個樣本集來測試模型的泛化能力。一個是從Virusshare.com 下載的包括59 011 個惡意PE 文件的樣本集。在正常可執(zhí)行文件樣本方面,由于許多軟件受版權(quán)法律保護(hù),網(wǎng)上也沒有開放數(shù)量較大的正??蓤?zhí)行文件樣本集。本文的實(shí)驗(yàn)采用The Universitiy Of Arizona開放的項(xiàng)目lynx-project(獲取地址為https://www2.cs.arizona.edu/projects/lynx-project/Samples/),其中包含39個善意PE文件,這些文件使用了一系列惡意代碼常用的編碼方法,包括使用VΜProtect、ExeCryptor 和Themida等工具對代碼進(jìn)行混淆,以及添加自修改邏輯從而防篡改的方法。本文的實(shí)驗(yàn)中使用這個項(xiàng)目來測試檢測模型的誤報(bào)率。

      2.2 數(shù)據(jù)預(yù)處理

      對每個PE 文件提取用于檢測器模型判別PE 文件善惡的信息,描述如下:

      文件總體摘要信息。包括文件的虛擬大小,導(dǎo)入、導(dǎo)出函數(shù)數(shù)量,符號數(shù)量,是否有簽名、重定向、RSRC節(jié)、TLS節(jié)。

      PE 頭部信息。這些信息提取自符合COFF(Object Common File Format)規(guī)范的PE 文件頭部的字段。提取的數(shù)據(jù)包括時間戳、目標(biāo)機(jī)器、子系統(tǒng)、鏡像特征、DLL 特征、魔數(shù)、鏡像版本、鏈接器版本、代碼部分字節(jié)數(shù)、文件頭部大小、提交堆的大小。

      導(dǎo)入函數(shù)信息。包括文件導(dǎo)入的庫名以及從導(dǎo)入的庫中引用的函數(shù)名。使用哈希函數(shù)將每個名稱字符串轉(zhuǎn)成256或1 024個二進(jìn)制位數(shù)表示。

      導(dǎo)出函數(shù)信息。包括一系列導(dǎo)出函數(shù)的名稱字符串。同樣使用哈希函數(shù),將每個字符串轉(zhuǎn)成長為128的二進(jìn)制位串。

      節(jié)信息。PE 文件有多個節(jié),從每個節(jié)中提取的信息包括節(jié)名、節(jié)大小、節(jié)的熵值、節(jié)的虛擬地址、節(jié)的特征(如是否可寫內(nèi)存)。將節(jié)名使用哈希函數(shù)轉(zhuǎn)為50位串。將節(jié)名分別與節(jié)大小、節(jié)的熵值、節(jié)的虛擬地址配對,并使用哈希函數(shù)分別轉(zhuǎn)為50 位串。將入口節(jié)的特征用哈希函數(shù)分別轉(zhuǎn)為50位串。

      數(shù)據(jù)目錄信息。數(shù)據(jù)目錄包括導(dǎo)出表、導(dǎo)入表、資源目錄、異常目錄、安全目錄、重定位基本表、調(diào)試目錄、描述字串、機(jī)器值、TLS 目錄、載入配值目錄、綁定輸入表、導(dǎo)入地址表、延遲載入描述、COΜ 信息。導(dǎo)出每個數(shù)據(jù)目錄的大小和虛擬地址。

      字節(jié)統(tǒng)計(jì)信息。將文件中每個不同大小的字節(jié)(0~255)出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì),并除以文件總字節(jié)數(shù),進(jìn)行歸一化。

      字節(jié)熵的統(tǒng)計(jì)信息。對文件使用固定大小的滑動窗口,將其按一定步長在文件上滑動,每滑動一步,計(jì)算窗口中的信息熵。在本文的實(shí)驗(yàn)中,滑動窗口的大小為2 048 Byte,滑動步長為1 024 Byte。

      可打印字符串的統(tǒng)計(jì)信息。選出的每個字符串需至少包含5個可打印字符。統(tǒng)計(jì)信息包括字符串總數(shù),字符串平均長度,每條字符串的出現(xiàn)次數(shù),字符串的信息熵。

      將上文所述的文件總體摘要信息、PE頭部信息、導(dǎo)入函數(shù)信息、導(dǎo)出函數(shù)信息、節(jié)信息、數(shù)據(jù)目錄信息、字節(jié)統(tǒng)計(jì)信息、字節(jié)熵的統(tǒng)計(jì)信息、可打印字符串的統(tǒng)計(jì)信息打包,并轉(zhuǎn)為由2 381個32位浮點(diǎn)數(shù)構(gòu)成的特征向量。其中,提取的各類文件信息對應(yīng)的浮點(diǎn)數(shù)個數(shù)如表1所示。

      表1 PE文件特征向量概況

      2.3 編碼與實(shí)驗(yàn)設(shè)計(jì)

      本文所述實(shí)驗(yàn)使用易于搭建模型并測試、編碼較簡易的Κeras 框架來搭建惡意軟件檢測模型,訓(xùn)練模型時使用Nvidia P100計(jì)算卡做運(yùn)算。

      實(shí)驗(yàn)中,首先依文獻(xiàn)[21]所述搭建惡意軟件檢測器模型DeepΜalNet,并在Ember 數(shù)據(jù)集上訓(xùn)練,使模型收斂。如圖1 為文獻(xiàn)[21]所述檢測器模型DeepΜalNet 的結(jié)構(gòu)圖,其中包含10 個全連接層,在每個全連接層之后,使用BN和Dropout以避免模型過擬合,同時加速模型的收斂過程。模型的詳細(xì)參數(shù)可參考https://github.com/vinayakumarr/dnn-ember。

      圖1 DeepΜalNet網(wǎng)絡(luò)結(jié)構(gòu)圖

      本文設(shè)計(jì)的檢測器模型同樣基于DNN,但與Deep-ΜalNet不同的是,本文模型在每個模塊中先使用BN機(jī)制處理模塊接收的向量,然后使用定向Dropout 算法擇取全連接層中的一部分權(quán)重使其失活,之后才讓數(shù)據(jù)流過模塊中的全連接層。在定向Dropout中使用的γ 和α參數(shù)大小分別為0.66 和0.75。本文設(shè)計(jì)的檢測器模型結(jié)構(gòu)如圖2 所示。其中m 表示模塊個數(shù),在實(shí)驗(yàn)中測試了擁有10 個模塊的模型和擁有4 個模塊的模型的效果,前者各模塊包含的神經(jīng)元數(shù)與DeepΜalNet 相同,后者各模塊包含的神經(jīng)元數(shù)分別為2 381、4 762、2 381、1 024、128。

      圖2 本文模型網(wǎng)絡(luò)結(jié)構(gòu)圖

      實(shí)驗(yàn)使用Ember數(shù)據(jù)集中的標(biāo)簽為0和1的數(shù)據(jù)各30萬條,共60萬條數(shù)據(jù),作為訓(xùn)練模型用的數(shù)據(jù)集。使用交叉熵?fù)p失函數(shù)作為模型目標(biāo)優(yōu)化函數(shù),并使用Adam作為梯度下降的優(yōu)化器,設(shè)置其學(xué)習(xí)率為0.01。為了加速模型收斂過程,防止模型在部分?jǐn)?shù)據(jù)上過擬合,實(shí)驗(yàn)中將60 萬條訓(xùn)練數(shù)據(jù)打散,并設(shè)置模型每一次梯度下降過程中使用的批的大小為32 768。讓每個模型在訓(xùn)練集上訓(xùn)練500 epoch(周期),并在每個epoch后使用測試集對模型進(jìn)行驗(yàn)證,計(jì)算并記錄模型在測試集上的準(zhǔn)確率。將模型在測試集上的準(zhǔn)確率與epoch的關(guān)系繪制為坐標(biāo)曲線,從而觀察模型的訓(xùn)練情況。

      本文在對實(shí)驗(yàn)結(jié)果進(jìn)行評估時采用的度量指標(biāo)包括平均預(yù)測概率、召回率(模型在惡意軟件樣本集上的預(yù)測)、誤報(bào)率(模型在正常軟件樣本集上的預(yù)測)。所述“平均預(yù)測概率”即指模型將樣本集中的文件預(yù)測為惡意的概率的平均值。在本文實(shí)驗(yàn)中,經(jīng)過訓(xùn)練的惡意軟件檢測模型可接收一個二進(jìn)制可執(zhí)行文件的字節(jié)內(nèi)容,運(yùn)算后返回一個介于0和1的浮點(diǎn)數(shù),數(shù)值越接近1,則表示文件為惡意的概率越大。召回率,或稱“查全率”,表示模型在惡意樣本集中預(yù)測為“惡意”的樣本數(shù)占惡意樣本集總數(shù)的百分比。誤報(bào)率表示模型在正常樣本集中預(yù)測為“惡意”的樣本數(shù)占正常樣本集總數(shù)的百分比。本文的實(shí)驗(yàn)分析中未采用二分類機(jī)器學(xué)習(xí)問題中常用的準(zhǔn)確率、F1分?jǐn)?shù)以及AUC作為度量指標(biāo),是因?yàn)槭芟抻跍y試集中有限的正常樣本數(shù)量(本文實(shí)驗(yàn)僅采用39個正常軟件樣本),這些指標(biāo)并不能準(zhǔn)確反映本文實(shí)驗(yàn)中模型的性能。另外,本文實(shí)驗(yàn)重點(diǎn)關(guān)注模型對惡意軟件的識別能力以及面對加殼文件時的判別能力,故將平均預(yù)測概率作為評價模型性能的重要指標(biāo)之一。

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

      圖3 各模型在驗(yàn)證集上的準(zhǔn)確率變化情況

      在訓(xùn)練過程中,在完成每一個測試步驟后,使用Ember測試集驗(yàn)證模型的性能。圖3展示了DeepΜalNet以及本文設(shè)計(jì)的模型(分別具有10 個模塊和4 個模塊)在前100 個訓(xùn)練周期中的準(zhǔn)確率變化情況。實(shí)驗(yàn)中,DeepΜalNet 以及本文模型在100 個訓(xùn)練周期基本達(dá)到穩(wěn)定狀態(tài);在超過500個訓(xùn)練周期以后,各模型在Ember測試集上的準(zhǔn)確率都在0.96左右。

      實(shí)驗(yàn)中用Virusshare 惡意樣本集中的59 011 個惡意PE 文件測試訓(xùn)練好的模型。表2 展示各個模型對Virusshare 樣本集中惡意PE 文件的平均預(yù)測概率,表3則展示各模型在不同閾值下在Virusshare 上的查全率。實(shí)驗(yàn)中還將閾值與預(yù)測概率大于某個閾值的文件數(shù)量的對應(yīng)關(guān)系繪制成坐標(biāo)曲線,如圖4 所示,該曲線在第一象限與縱軸和橫軸圍成的面積越大,則說明檢測器模型對惡意PE 文件的識別效果更好。從結(jié)果上看,本文模型對惡意PE 文件的平均打分更高,打分為1.0 的PE文件數(shù)量比DeepΜalNet 多出20 000 個,這意味著在設(shè)置盡可能高的閾值的情況下,相比DeepΜalNet,本文設(shè)計(jì)的檢測器模型能檢測出更多的惡意PE文件。分析其中原因,是因?yàn)楸疚哪P褪褂枚ㄏ駾ropout 方法削弱了許多不重要的權(quán)重,減少了不必要的隱藏特征對判別過程的干擾,而DeepΜalNet使用普通Dropout方法則僅僅是讓模型不過度依賴于部分節(jié)點(diǎn),從而防止過擬合??梢哉f,本文模型在經(jīng)過訓(xùn)練后得到了一個最優(yōu)子網(wǎng)絡(luò)。

      表2 DeepΜalNet和本文模型Μt在Virusshare和lynx-project上的平均預(yù)測概率

      表3 DeepΜalNet和本文模型Μt在Virusshare上的查全率

      圖4 各模型的閾值與正例數(shù)關(guān)系

      實(shí)驗(yàn)中還使用了lynx-project正常樣本集的39個善意PE文件對幾個訓(xùn)練好的模型進(jìn)行測試。表2給出這些模型對lynx-project的平均預(yù)測概率,表4展示各模型在不同閾值下在lynx-project 上的誤報(bào)率。實(shí)驗(yàn)結(jié)果顯示,DeepΜalNet 對這39 個樣本給出的平均預(yù)測概率為0.95,其中預(yù)測概率大于0.90 的樣本達(dá)到34 個,誤報(bào)率十分大。相應(yīng)地,本文模型對lynx-project的平均預(yù)測概率為0.31,比DeepΜalNet 在lynx-project 上的平均預(yù)測概率小0.64。前文已述,lynx-project樣本集中的可執(zhí)行文件皆采用過Themida等加殼工具進(jìn)行加殼,而這些加殼工具及其變種通常也被用于為惡意軟件加殼。可執(zhí)行文件在經(jīng)過加殼工具的混淆操作后,其原始程序代碼成為高熵值的字節(jié)序列,除了PE文件頭、脫殼存根程序以及某些未經(jīng)過混淆處理的節(jié)外,其中基本已無可用于分析文件善惡的信息。實(shí)驗(yàn)分析認(rèn)為,由于訓(xùn)練后的DeepΜalNet 將被加殼的可執(zhí)行文件的一些共同特征(比如高字節(jié)熵值)作為將文件判定為惡意軟件的重要特征并賦予較高權(quán)重,或者說,由于其未將被加殼文件的這些相關(guān)特征的權(quán)重降低,導(dǎo)致其對lynx-project中的大多數(shù)被加殼文件的預(yù)測結(jié)果十分接近于1。而本文模型在訓(xùn)練過程中不斷削弱范數(shù)較小的權(quán)重,從而達(dá)到精煉特征的效果,因而降低了加殼文件的一些共有特征對本文模型判別可執(zhí)行文件善惡的影響。該實(shí)驗(yàn)結(jié)果進(jìn)一步表明本文模型相較DeepΜalNet 更好地避免了過擬合。

      表4 DeepΜalNet和本文模型Μt在lynx-project上的誤報(bào)率

      根據(jù)以上實(shí)驗(yàn)結(jié)果可知,相比同樣采用Ember訓(xùn)練集進(jìn)行訓(xùn)練的DeepΜalNet 模型,本文設(shè)計(jì)的惡意軟件檢測模型在Ember訓(xùn)練集上訓(xùn)練后,其在Ember驗(yàn)證集上的準(zhǔn)確率與DeepΜalNet同為0.96。在泛化能力的測試中,相比DeepΜalNet,本文模型對Virusshare 惡意PE樣本集的平均預(yù)測概率提高0.048,對lynx-project 正常PE樣本集的平均預(yù)測概率降低0.64。實(shí)驗(yàn)結(jié)果表明本文設(shè)計(jì)的模型相比DeepΜalNet 模型具有更好的泛化能力。

      4 結(jié)束語

      本文針對常用的惡意軟件檢測模型存在的泛化能力較差的問題,提出一種改進(jìn)的基于DNN 的惡意軟件檢測方法,在模型中引進(jìn)定向Dropout 方法對模型權(quán)重進(jìn)行剪枝,弱化重要性較低的權(quán)重,減少它們對模型預(yù)測過程的影響。與同樣基于DNN且使用Ember作為訓(xùn)練數(shù)據(jù)集的DeepΜalNet 相比,本文方法不僅在Ember數(shù)據(jù)集上有同樣高的驗(yàn)證準(zhǔn)確率,且在使用別的樣本集做測試時,本文方法的查全率更高而誤報(bào)率更低。結(jié)果表明,本文方法的模型泛化性更好,而更好的泛化能力能讓模型避免為應(yīng)對新惡意軟件而過于頻繁地重訓(xùn)練。

      未來的工作中,需對本文提及的對二進(jìn)制可執(zhí)行文件的預(yù)處理方法進(jìn)行改進(jìn),以提取更多有助于模型識別惡意軟件的特征,同時需探索更優(yōu)模型結(jié)構(gòu),進(jìn)一步提高模型的預(yù)測準(zhǔn)確率,并保證模型具有良好的泛化性和魯棒性。

      猜你喜歡
      權(quán)重樣本函數(shù)
      二次函數(shù)
      第3講 “函數(shù)”復(fù)習(xí)精講
      用樣本估計(jì)總體復(fù)習(xí)點(diǎn)撥
      二次函數(shù)
      函數(shù)備考精講
      權(quán)重常思“浮名輕”
      推動醫(yī)改的“直銷樣本”
      為黨督政勤履職 代民行權(quán)重?fù)?dān)當(dāng)
      基于公約式權(quán)重的截短線性分組碼盲識別方法
      隨機(jī)微分方程的樣本Lyapunov二次型估計(jì)
      404 Not Found

      404 Not Found


      nginx
      出国| 彭州市| 舒兰市| 南木林县| 荔浦县| 工布江达县| 南靖县| 广丰县| 社旗县| 双城市| 政和县| 柳林县| 青神县| 从江县| 汉源县| 南宫市| 海阳市| 阳曲县| 丹寨县| 阳信县| 余干县| 三河市| 昆山市| 额尔古纳市| 康平县| 射洪县| 金山区| 宾川县| 万州区| 阳朔县| 黄大仙区| 潜江市| 遂宁市| 石城县| 华宁县| 科尔| 化州市| 康保县| 安岳县| 简阳市| 疏附县|