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

    基于CNN-BiLSTM的惡意代碼家族檢測技術

    2020-12-26 02:56:38王國棟蘆天亮尹浩然張建嶺
    計算機工程與應用 2020年24期
    關鍵詞:灰度家族卷積

    王國棟,蘆天亮,尹浩然,張建嶺

    中國人民公安大學 信息技術與網絡安全學院,北京100035

    1 引言

    隨著互聯(lián)網的迅速發(fā)展和普及,人們的生活和互聯(lián)網越來越緊密地聯(lián)系在一起,復雜的網絡環(huán)境亟需凈化,網絡空間安全成為國家安全的重要一環(huán)。其中惡意代碼是網絡安全的重要威脅之一,惡意代碼是指人為編寫或設置的、對網絡或系統(tǒng)會產生危害的代碼,它非法侵入目標網絡盜取信息和數(shù)據,對網絡系統(tǒng)造成破壞。惡意代碼包括計算機病毒、蠕蟲、木馬、僵尸網絡、勒索軟件等。近年來數(shù)量呈爆炸式增長的的惡意代碼中,新型的惡意代碼家族占很小一部分,大多數(shù)是由原來的家族中通過變異產生,通過對惡意代碼家族的檢測[1],可以實現(xiàn)對新增的惡意代碼快速分類,有針對性地處理和防范。惡意樣本識別檢測技術方法通??梢苑譃殪o態(tài)檢測技術、動態(tài)檢測技術和混合檢測技術。

    靜態(tài)檢測是指并不實際運行樣本,而是直接根據二進制樣本或相應的反匯編代碼的語法和結構進行分析。Liu 等人[2]使用靜態(tài)分析技術將惡意代碼轉換為圖像,把惡意代碼的全局特征和局部特征相結合,通過將它們分組為塊并使用新的視覺詞袋模型來獲取更具區(qū)分性和魯棒性的特征描述符。Gibert等人[3]提出了一種文件不可知的深度學習方法,從可視化圖像中提取的一組判別模式,最終將惡意代碼有效地分組到對應各個惡意代碼家族中去,實驗比較證明了其相對于傳統(tǒng)分類技術的優(yōu)越性能。Su 等人[4]提出了一種輕量級方法來檢測物聯(lián)網環(huán)境中的DDos 惡意代碼,提取惡意軟件圖像(即從惡意代碼二進制文件轉換而來的灰度圖像),并利用輕型卷積神經網絡對其家族進行分類。Zhao等人[5]提出了基于紋理可視化的深度學習惡意代碼分類框架MalDeep,通過代碼映射紋理劃分和紋理提取,利用機器學習在圖像紋理表示的新特征空間中研究惡意代碼分類。Coull 等人[6]利用靜態(tài)分析技術從單個字節(jié)嵌入到模型的端到端分析,通過解析和反匯編二進制將這些面向字節(jié)的激活與它們的原始語義聯(lián)系起來,分析了惡意代碼的特征。上述靜態(tài)檢測方法簡單迅速,不需要占用很大的資源,但是只能用于檢測已知的惡意代碼家族,而且容易受到加殼、變形等方式的干擾而出現(xiàn)漏報和誤報。

    動態(tài)檢測是指將樣本在模擬環(huán)境中運行,根據樣本對操作系統(tǒng)的資源調度等行為進行分析[7]。Kim 等人[8]使用序列比對算法(MSA)對API序列進行動態(tài)分析,實現(xiàn)了惡意軟件檢測和分類。Mohaisen等人[9]提出了一種僅與高級系統(tǒng)事件發(fā)生的順序有關的系統(tǒng)。通過映射關系的簡潔級聯(lián)捕獲執(zhí)行動態(tài)跟蹤,應用n-gram 文檔分類技術來生成預測惡意軟件家族的分類器。Boukhtouta等人[10]研究了惡意代碼行為深度數(shù)據包檢查和IP 數(shù)據包頭分類的正面和負面,根據檢測和歸因準確性以及它們的復雜程度來預測,最后實現(xiàn)分類。Pektas 等人[11]跟蹤觀察文件系統(tǒng)、網絡、注冊表活動以及API 等惡意代碼特征,通過應用機器學習算法來將運行行為構建特征向量,在分布式和可擴展的體系結構中對惡意代碼樣本進行分類,達到了較高的準確率。Hatada等人[12]對惡意代碼的網絡行為進行分類來確定惡意代碼的新品種,惡意行為包括惡意代碼特定功能和常規(guī)流量功能,應用聚類分析來生成分類器,實驗結果證明了該方法在發(fā)現(xiàn)新品種惡意軟件方面的有效性。Norouzi等人[13]將惡意代碼行為執(zhí)行歷史XML 文件轉換為合適的WEKA 工具輸入,利用數(shù)據挖掘分類方法來檢測惡意代碼家族。上述動態(tài)檢測方法可以識別出新型的惡意代碼家族,能夠及時隨惡意代碼的變化而變化,但需要耗費較長的時間和更多的資源。

    混合檢測方法是結合靜態(tài)檢測和動態(tài)檢測的方法,首先通過靜態(tài)方法提取惡意代碼的基因特征,再通過動態(tài)檢測方法識別惡意代碼的混淆處理和未知的惡意操作。Xue等人[14]提出了一種基于概率評分和機器學習的分類方法,設置了概率閾值以連接靜態(tài)分析和動態(tài)分析,加快了靜態(tài)分析過程,而且通過動態(tài)分析似乎對模糊處理具有更大的適應性。Kang 等人[15]提出了一種基于word2vec 的機器學習方法,以較少的維數(shù)分析操作碼和API 函數(shù),使用Microsoft 惡意代碼分類器進行分類?;旌蠙z測方法靈活多變,能根據具體惡意代碼家族制定特殊的檢測方式,但這種檢測方式的需要耗費更大的資源,其復雜度和工作量導致混合檢測不適用于具有一定規(guī)模檢測。

    面對現(xiàn)階段惡意代碼爆炸式的增長趨勢,動態(tài)檢測耗費的資源較大且比較費時,不可能同時對具有一定規(guī)模的惡意代碼樣本進行分析識別。本文提出了一種不同于傳統(tǒng)機器學習[16-17]的基于CNN-BiLSTM 網絡的靜態(tài)惡意代碼檢測方法,首先利用B2M 圖像轉換技術將惡意代碼可執(zhí)行文件樣本轉換為灰階圖像得到圖像數(shù)據集[18-19],然后通過構建CNN-BiLSTM網絡模型對圖像數(shù)據集進行訓練,最后實現(xiàn)對四個惡意代碼家族的惡意代碼進行檢測分類。此方法不需要直接運行惡意代碼可執(zhí)行文件,避免了惡意代碼本身給計算機帶來的危害,直接將惡意代碼可執(zhí)行文件轉化為灰度圖解決了傳統(tǒng)靜態(tài)檢測方法提取特征速度慢且效率相對較低的問題。模型結合了卷積神經網絡和雙向長短期記憶網絡,克服了卷積神經網絡缺乏對上下文的全局關注[20-21]和雙向長短期記憶網絡缺乏對局部關注的不足,結合兩者的優(yōu)點從全局和局部對惡意代碼特征進行學習訓練,達到了更好的效果。

    2 研究方法

    2.1 基于CNN-BiLSTM 的惡意代碼家族識別模型

    惡意代碼家族檢測分類需要對惡意代碼家族的特征基因進行有效的提取,并對特征進行訓練和測試,最終實現(xiàn)惡意代碼家族識別分類。本文通過分析現(xiàn)有惡意代碼檢測分類方法的不足,針對傳統(tǒng)的惡意代碼特征提取技術無法有效全面地提取惡意代碼特征,傳統(tǒng)的機器學習無法同時關注全局特征和局部特征,導致惡意代碼家族識別分類準確率過低等問題,設計并實現(xiàn)了一種融合卷積神經網絡和長短期記憶網絡的模型,對惡意代碼可執(zhí)行文件可視化后的數(shù)據進行訓練和測試,將得出的實驗結果與傳統(tǒng)機器學習分類方法做對比,驗證該方法的有效性。本文提出的基于CNN-BiLSTM的惡意代碼家族檢測網絡架構模型如圖1所示。

    此模型包含了四部分:惡意代碼可視化、CNN的兩個卷積層、雙向長短時記憶神經網絡和CNN 的兩個全連接層。模型詳細參數(shù)如表1 所示。首先使用B2M 技術將惡意代碼轉化成二階灰度圖,再將惡意代碼特征灰度圖經過數(shù)據預處理的填充之后變成256×256×1 的圖片,輸入模型經過兩層卷積層之后變成64×64×50 的圖片集,輸入到雙向長短時記憶神經網絡中,最后經過全連接層分類后得到分類結果。

    圖1 CNN-BiLSTM模型架構

    表1 模型參數(shù)

    2.2 惡意代碼可視化

    惡意代碼可執(zhí)行文件中,有很多與惡意代碼特征無關聯(lián)的字符,如果直接從這些可執(zhí)行文件中提取惡意代碼特征,就需要處理可執(zhí)行文件中的混淆代碼,增加了工作量的同時有可能會降低測試的準確性,如果直接將可執(zhí)行文件轉化成灰度圖,就可以全面迅速地對特征進行提取。本文將惡意代碼的二進制可執(zhí)行文件視為0~255 之間(包括0 和255)的8 位無符號整數(shù)序列。每個值都直接解釋為像素的強度,其中0 為黑色,255 為白色。本文用B2M 算法讀取惡意代碼可執(zhí)行文件,固定256為行寬向量,把可執(zhí)行文件轉化成二維矩陣。二維矩陣表示為灰度圖像,二維矩陣中每個元素的范圍為0~255,對應灰度圖每個像素的取值,利用這樣的方法把惡意代碼轉化為二階灰度圖。

    2.3 卷積神經網絡卷積層

    卷積神經網絡是一種前饋神經網絡,它可以進行有監(jiān)督學習和無監(jiān)督學習,其中卷積層和池化層具有提取特征的功能。卷積層作為特征抽取器將數(shù)據集的惡意代碼家族的特征矩陣分割成若干子矩陣,每個卷積層中所有的特征子矩陣與同一個權值矩陣(卷積核)做卷積運算,通過卷積運算對數(shù)據進行訓練和學習來提取出圖像的局部特征,卷積運算可以提取數(shù)據集中人類無法理解的惡意代碼家族局部抽象特征,起到過濾作用。池化層在卷積層之后,池化層對卷積得來的特征進行篩查,減少特征數(shù)量來降低計算量,同時可以起到保留惡意代碼家族特征以及防止過擬合的作用。

    本文使用卷積神經網絡對轉換后的惡意代碼灰度圖數(shù)據集進行訓練,模型使用Sigmoid 函數(shù)作為每一層的卷積層的激活函數(shù),公式(1)為Sigmoid 函數(shù)的形式,公式(2)為公式(1)的導函數(shù)。Sigmoid函數(shù)的形狀為S型,平滑且容易求導,它和正態(tài)分布函數(shù)的積分形式形狀非常類似,在無法得知惡意代碼家族類型的情況下,它是所有概率分布中最可能的表現(xiàn)形式,所以Sigmoid函數(shù)常常被選為激活函數(shù)。

    2.4 雙向長短期記憶網絡(BiLSTM)

    雙向長短期記憶網絡是一種雙向的時間循環(huán)神經網絡,通過對正向的時間序列和反向的時間序列進行訓練,輸出的數(shù)據包含上下文的信息。BiLSTM是為了解決LSTM 網絡缺乏對上下文的聯(lián)系而提出的一種神經網絡。LSTM 是RNN 的一種特例,解決了RNN 在學習中存在梯度消失和梯度爆炸的問題,它使用梯度下降法使誤差梯度隨著事件的時間增加而消失,以達到提高準確度的效果。本質上BiLSTM 和LSTM 都屬于循環(huán)神經網絡。

    循環(huán)神經網絡(RNN)具有記憶性,神經元之間參數(shù)共享,因此在對序列的非線性特征進行學習時具有一定優(yōu)勢,通常用于處理序列數(shù)據的神經網絡,循環(huán)神經網絡的神經元結構如圖2所示。

    傳統(tǒng)的RNN 只能有短期記憶,在神經網絡深度加深(時間上或者空間上)的情況下會導致梯度消失以及梯度爆炸,如果通過門控制將短期的記憶與長期的記憶相結合,可以一定程度上解決了梯度消失的問題,這樣的循環(huán)神經網絡稱為LSTM。LSTM 的神經元結構如圖3所示。

    圖2 RNN神經元結構圖

    圖3 LSTM神經元結構圖

    LSTM網絡只能單向地從左到右進行訓練和傳遞,但在實際運用中預測可能需要考慮前面輸入和后面輸入,這樣結果才會更加準確。這個時候引入雙向LSTM會得到更好的效果,雙向LSTM 在輸入序列上有兩個LSTM互相連接,每一個輸入的惡意代碼特征都會從正向和反向經過循環(huán)神網絡,為神經網絡提供的上下文全局特征,更快而且更充分地學習訓練。BiLSTM的神經元結構如圖4所示。

    圖4 BiLSTM神經元結構圖

    2.5 卷積神經網絡全連接層

    模型的最后一個部分是卷積神經網絡的兩個全連接層,全連接層的每一個節(jié)點都與雙向循環(huán)神經網絡的所有節(jié)點相連,用來把卷積層和雙向循環(huán)神經網絡提取到的特征融合起來。因為本文的惡意代碼家族分類模型屬于多分類模型,且各個惡意代碼家族的特征存在互斥,所以本文最后一層全連接層的輸出值傳遞給softmax分類器進行分類。

    本模型使用softmax 分類器來標準模型的輸出,函數(shù)的形式為公式(3),其中θi和x 是列向量,可能被換成關于x 的函數(shù)fi(x)。通過softmax 函數(shù)可以使得P(i)的范圍在[0,1]之間,在分類和回歸問題中,通常θ是待求參數(shù),通過尋找使得P(i)最大的θi作為最佳參數(shù)。公式(4)表示交叉熵損失函數(shù),ai是預測模型的第i類惡意代碼家族的置信度,qi表示該惡意代碼樣本屬于哪個家族,如果樣本為k,則qk=1 其他值為零。

    3 實驗結果與分析

    3.1 惡意代碼采樣

    惡意代碼家族樣本的有效采集是進行檢測分類的基礎,數(shù)據集搜集的質量和數(shù)量會直接影響訓練模型的準確率和實驗結果。本文實驗搜集到的惡意代碼樣本實驗數(shù)據集取自網絡惡意樣本庫VirusShare,該樣本庫是國內外惡意代碼研究的重要樣本來源,搜集到的數(shù)據集包括ELF、Winexe、CryptoRansom和EK共4個家族4 418 個惡意可執(zhí)行文件。將數(shù)據打好標簽之后,在每一個惡意代碼家族的可執(zhí)行文件中抽取80%作為訓練集,剩下的20%作為測試集。數(shù)據集組成由表2所示。

    表2 惡意代碼家族數(shù)據集組成

    3.2 數(shù)據預處理

    為了確保信息的完整性,本文對實驗數(shù)據集中惡意代碼可執(zhí)行文件轉化成的圖片進行填充而不是截取,同時對可執(zhí)行文件灰度圖的前后進行填充。經過實驗發(fā)現(xiàn),模型選擇的小于65 KB,大于20 KB 的惡意代碼執(zhí)行文件,本文以256 為行寬向量,由于卷積神經網絡輸入的圖片必須統(tǒng)一固定大小,對長度向量小于等于256的灰度圖使用0 字節(jié)對進行填充,使其生成256×256 的正方形灰度圖。圖5 顯示了一些惡意代碼可執(zhí)行文件的鏡像示例,從左上到右下分別來自EK、ELF、CryptoRansom和Winexe 家族??梢钥闯?,同一家族的圖像具有相似性。在本文中,使用B2M 方法可視化惡意代碼家族二進制文件,這種方法能夠更加全面地提取惡意代碼的特征基因,從而獲得更高的準確性。

    3.3 惡意代碼家族識別分類

    在使用惡意代碼可視化技術對惡意代碼可執(zhí)行文件轉化為灰度圖之后,將訓練集的灰度圖放入CNNBiLSTM模型中進行學習訓練,再將測試集灰度圖放入訓練得到的模型進行檢測分類,最后將使用本文訓練模型及方法得到的結果與其他機器學習分類算法的結果進行比較。本文對每一種惡意代碼家族都進行了測試,主要有四個衡量指標。

    圖5 惡意代碼家族灰度圖

    TP:將正確類預測為正確類的個數(shù);

    TN:將錯誤類預測為錯誤類的個數(shù);

    FP:將錯誤類預測為正確類的個數(shù);

    FN:將正確類預測為錯誤類的個數(shù)。

    準確率、正確率(Accuracy):指預測正確的樣本比重。

    精確率(Precision):指被模型預測正確的例子中的正確樣本的比重。

    召回率(Recall):指的是被預測為正確的例子占總正確例子的比重。

    P和R指標可能會出現(xiàn)的矛盾的情況,這樣就需要結合兩者進行考慮,最常見的方法就是F1 值(又稱為F1-Score)。

    為了驗證本文所提模型的有效性,將本文實驗所得的結果與其他幾種模型的實驗結果相比較。如表3所示。

    表3 模型檢測結果對比 %

    將數(shù)據集的惡意代碼可執(zhí)行文件進行轉化成灰度圖后,可以發(fā)現(xiàn)可視化之后的灰度圖文件大小存在差異,并且同一系列中的某些惡意代碼灰度圖可能包含不同的紋理(例如,圖6中的Winexe家族(左)和CryptoRansom家族(右)),為了檢驗這種情況是否會導致實驗結果準確率的差異,本文將這些紋理非常不同的灰度圖所對應的惡意代碼可執(zhí)行文件篩選出來做進一步分析。

    圖6 具有不同圖標和紋理的灰度圖

    將四個惡意代碼家族的灰度圖數(shù)據集中將具有不同紋理的灰度圖所對應的惡意代碼可執(zhí)行文件過濾出來后,對這一部分惡意代碼可執(zhí)行文件可能存在的加殼、變形等惡意代碼混淆技術進行去殼、清洗處理,將得到的惡意代碼可執(zhí)行文件放回原惡意代碼家族數(shù)據集中,經過灰度圖映射技術得到新的惡意代碼灰度圖數(shù)據集。然后按照20%的測試集和80%的訓練集進行劃分,最后使用相同的機器學習模型對其進行分類測試。得到的結果如表4所示。

    表4 新數(shù)據集模型檢測結果對比 %

    由表3 和表4 對比可知,惡意代碼家族數(shù)據集中具有不同紋理的灰度圖對測試的準確率具有一定的影響,在對具有不同紋理的灰度圖對應的惡意代碼可執(zhí)行文件進行去殼和清洗處理之后,實驗的準確率得到了提高。最后,在對表4各種機器學習算法對數(shù)據集測試結果對比可以看出,兩種深度學習算法CNN和RNN對惡意代碼家族檢測分類的準確率、精確率和召回率都比SVM、Random Forest 和J48.trees 三個機器學習算法實現(xiàn)了更好的檢測,其中,CNN算法檢測準確率為87.13%較SVM、Random Forest 和J48.trees 三個機器學習算法分別提高了11.77、3.67和7.11個百分點,原因是CNN算法能夠學習到惡意代碼家族更深層次的特征,從而達到更高的準確率,結合了CNN 和RNN 兩種算法形成的CNN-BiLSTM 算法結合兩種算法的優(yōu)點較兩者達到了更好的效果。從F值上看,CNN-BiLSTM算法結合了兩者在局部和全局關注上的優(yōu)點達到了93.28%,較CNN和RNN算法分別提高了5.54和6.2個百分點,達到上述六種機器學習算法中最好效果。模型本文提出的CNNBiLSTM 網絡在對惡意代碼分類中相比于一些傳統(tǒng)的機器學習算法準確率更高。

    4 結論

    本文針對傳統(tǒng)特征提取方法在提取惡意代碼特征過程中無意義的字符串影響特征提取效率且檢測準確率過于依賴特征選擇,傳統(tǒng)機器學習無法同時從局部和全局對惡意代碼特征進行學習訓練等問題,提出一種將卷積神經網絡和雙向長短時記憶神經網絡相結合對惡意代碼家族進行分類的方法。利用B2M惡意代碼可視化技術將惡意代碼可執(zhí)行文件轉換為相對應的灰階圖像,再應用CNN-BiLSTM 模型從圖像數(shù)據集中自動學習訓練特征,最終實現(xiàn)對收集到的四種惡意代碼家族進行檢測和分類。在特征提取方面,這種方法相對于直接執(zhí)行惡意代碼可執(zhí)行文件和人工提取惡意代碼的特征基因,一定程度上避免了計算機受到惡意代碼的損害,并且節(jié)省了大量的資源和時間。在分類檢測方面,模型結合了卷積神經網絡和雙向長短時記憶神經網絡的優(yōu)點從局部和全局兩個方面提取惡意代碼家族特征,提高了檢測分類的準確性。從實驗的結果可以看出,在對相同惡意代碼數(shù)據集進行分類和檢測的情況下,與傳統(tǒng)的機器學習方法相比,CNN-BiLSTM網絡模型對惡意代碼家族的檢測分類具有更高的準確率,取得了更好的效果。

    猜你喜歡
    灰度家族卷積
    采用改進導重法的拓撲結構灰度單元過濾技術
    基于3D-Winograd的快速卷積算法設計及FPGA實現(xiàn)
    基于灰度拉伸的圖像水位識別方法研究
    高技術通訊(2021年3期)2021-06-09 06:57:48
    HK家族崛起
    從濾波器理解卷積
    電子制作(2019年11期)2019-07-04 00:34:38
    《小偷家族》
    電影(2019年3期)2019-04-04 11:57:18
    皿字家族
    基于傅里葉域卷積表示的目標跟蹤算法
    家族中的十大至尊寶
    基于最大加權投影求解的彩色圖像灰度化對比度保留算法
    自動化學報(2017年5期)2017-05-14 06:20:56
    民勤县| 宜川县| 基隆市| 肃南| 石嘴山市| 新巴尔虎右旗| 新兴县| 伽师县| 遂昌县| 霞浦县| 宝丰县| SHOW| 昂仁县| 永定县| 郴州市| 安化县| 定西市| 平南县| 若尔盖县| 巴塘县| 武穴市| 渝中区| 青州市| 永宁县| 沐川县| 台东县| 大丰市| 都江堰市| 和龙市| 苍山县| 大宁县| 连州市| 霍州市| 迭部县| 长丰县| 保定市| 许昌市| 永修县| 大化| 武山县| 广南县|