999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于1D CNN與XGBoost的惡意代碼紋理檢測

2021-12-13 06:32:04袁啟平孫沂昆王天翔
電視技術 2021年10期
關鍵詞:可視化分類特征

黃 科,袁啟平,董 薇,孫沂昆,亢 勇,王天翔

(北京特種工程設計研究院,北京 100028)

0 引言

隨著信息技術的發展,惡意代碼也呈爆炸式增長,對互聯網安全的方方面面都產生了威脅。在對惡意軟件的防范中,對惡意代碼的檢測顯得十分重要。目前,惡意代碼檢測方式有靜態檢測和動態檢測兩種。靜態檢測一般是依據代碼的結構、邏輯,通過代碼走查、數據流分析、控制流分析和信息流分析等方法分析代碼特征,從而判斷軟件是否為惡意軟件。動態檢測可以通過調試器運行被檢測的軟件的某項功能,動態監測程序調用來判斷程序是否屬于惡意軟件。

加密、代碼混淆技術的使用和惡意代碼檢測對抗等方法的發展,在一定程度上增大了動態分析和靜態分析檢測的困難。因此,無論是在檢測的精確性還是對計算機硬件的損耗上,傳統惡意軟件檢測技術都具有局限性。L.NATARAJ等人[1]提出了將惡意軟件的可執行文件轉化為灰度圖的方法,在灰度圖中可以明顯分類出有特定含義的片段,如.data、.text等,并且惡意代碼家族內部的圖像紋理具有相似性。惡意軟件轉化為圖片的本質是將一段線性代碼按照某種轉化方式投放至二維空間中,將代碼的特征轉化為圖像紋理的特征。但這種方式弱化了惡意代碼的線性特征。惡意軟件文件轉化成的像素點進行排布后,圖像多出了像素點上下間的空間相關性,而這樣的相關性是原文件不具有的。

在CUI等人[2]的論文中,將惡意代碼二進制文件轉換成十進制一維數組后,根據文件的大小設定寬度,將一維數組轉換成多維度的矩陣,從而形成灰度圖片并壓縮到同一大小;通過傾斜圖像等數據增強的方法增加樣本數量,之后輸入到神經網絡中進行識別。但是,這個過程有以下幾個問題。

(1)灰度圖像的紋理來源于惡意代碼的二進制文件的組合,如L.NATARAJ[1]針對圖像不同部分拆分為.text段、.data段一樣,其相鄰像素點之間是有邏輯關聯的。因此,對惡意代碼的灰度圖像紋理的分析,不僅僅要分析圖像,還要考慮紋理間的邏輯關聯。在二維卷積神經網絡(2 Dimention Convolutional Neural Networks,2D CNN)中,卷積核是一個多維矩陣,提取圖像特征時,提取的是方形像素塊,而像素塊內的像素點之間是跨行的,提取的特征未考慮像素點間的邏輯關聯。

(2)在對惡意代碼的圖像進行壓縮時,由于各個惡意軟件的大小不同,導致圖像的長寬比不同,壓縮成同一大小的正方形矩陣后,會導致不同圖像長寬壓縮比例不同,圖像特征損失差距較大。

(3)惡意軟件的各個家族內樣本數量不同,比例差異較大,產生了數據不平衡的情況。數據不平衡會導致深度學習模型的泛化性下降,也會在訓練過程中產生過擬合。

為了解決上述問題,本文提供如下解決方法:

(1)將惡意代碼二進制文件轉化為范圍為0~255的十進制一維數組,每個數充當像素點,形成像素向量,將圖像紋理的分析轉化成為對一段向量明暗變化的研究;

(2)基于這種變換方式,引入一維卷積神經網絡(1 Dimention Convolutional Neural Networks,1D CNN),以提取向量明暗變化的特征;

(3)為了解決惡意代碼家族之間樣本數量的不平衡,引入近年來在分類問題上表現良好的XGBoost模型,將1D CNN提取的特征輸入到該模型中進行分類的預測。

實驗結果表明,本文提出的方法能夠達到97%的精確度,并且大大減輕了數據不平衡帶來的 問題。

1 相關工作

本節介紹檢測惡意軟件的相關研究。一般情況下,針對惡意代碼的檢測主要分為啟發式檢測和基于特征碼的檢測[3]。啟發式的惡意代碼檢測方法主要利用系統上層信息以及內核文件系統來識別惡意代碼的隱藏信息等,比較依賴人員的經驗,且誤報率較高。基于特征碼的檢測方法主要通過比較識別惡意代碼的顯性特征,一般對特征進行偽裝變形便能繞過檢測。下面將重點介紹惡意代碼可視化、基于深度學習的惡意軟件檢測以及分類器的選擇等方面的內容。

1.1 惡意軟件可視化

利用文本編輯器和二進制編輯器就可以將二進制數據可視化,已經有諸多研究人員對惡意軟件可視化做出了深入的研究。YOO等人[4]利用自組織映射方法實現惡意代碼的檢測識別和可視化呈現。QUIST等人[5]開發了一套可視化框架用來逆向惡意代碼,他們提出利用節點和鏈接的可視化方法實現對惡意代碼的功能、混淆區域的有效識別。TRINIUS等人[6]分別利用樹形拓撲圖和線程圖兩種圖方法來分別表示惡意代碼的操作分布和操作序列,實現對惡意代碼的檢測。CONTI等人[7]實現文本、圖像、視頻等非結構化數據以及C++源代碼等原始二進制數據段,通過可視化技術轉化為圖像,實現對惡意特征的識別。KANCHERLA等人[8]通過將惡意代碼可執行文件轉化為字節圖特征,并利用支持向量機(Support Vector Machine,SVM)分類器進行識別,實現對2.5萬惡意代碼語料庫的分類。GOODALL等人[9]開發了可視化分析環境,該環境不僅可以幫助程序員更好地理解代碼,還可以將程序中的漏洞可視化,以便更好地發現和解決漏洞。HAN等人[10]提出一種基于紋理指紋的惡意代碼特征提取及檢測方法,通過結合圖像分析技術與惡意代碼變種檢測技術,將惡意代碼映射為無壓縮灰階圖片,并采用加權綜合多分段紋理指紋相似性匹配方法檢測惡意代碼變種和未知惡意代碼。

1.2 基于深度學習的惡意代碼檢測

研究人員也利用深度學習去檢測惡意軟件,TOBIYAMA等人[11]提出一種基于進程行為進行惡意進程檢測的方法,利用長短時記憶網絡(Long Short-Term Memory,LSTM)進行特征提取,用卷積神經網絡(Convolutional Neural Networks,CNN)進行特征分類,特征是從轉化為含有本地特征的圖片的進程行為日志文件中提取的,這些本地特征表示進程活動。然而這些分析方式是基于軟件行為進行的檢測,仍受到代碼混淆等的干擾。如上文所述,若將對惡意軟件的研究轉化為對圖像紋理的研究,會繞開程序行為的干擾。鑒于1D CNN在如文本、一維信號等序列數據上的良好效果,采用1D CNN對惡意軟件轉化成的像素序列進行特征提取,而對惡意軟件的分析轉化成對一條像素條帶明暗變化的分析。

1.3 深度學習時數據集不平衡問題的處理

CNN深度學習會遇到一個廣泛存在的問題,即數據集不平衡帶來的過擬合。HUANG等人[12]提出使用CNN模型從不平衡數據集中學習得到每個樣本的embedding向量,然后使用改進的k近鄰分類算法對其分類。TANG等人[13]提出使用SVM分類器去解決數據不平衡的情況。而近年來由CHEN等人[14]開發的XGBoost系統在許多比賽上能出色地完成分類任務,利用CART回歸樹模型,每學習一個新特征,就擬合上一次預測的殘差,從而分裂出一棵新的樹,每個葉子節點就對應一個分數,最后只需要將每棵樹對應的分數加起來就是該樣本的預測值。利用貪婪算法,遍歷所有特征的所有特征劃分點,找到最優解。

2 惡意軟件二進制文件轉化成像素矢量

文章嘗試了一種新的惡意代碼的可視化方式。基于惡意代碼01比特流之間具有邏輯相關性以及家族內惡意軟件可視化圖片的紋理相似性,家族間惡意軟件可視化圖片紋理相差性,以二進制讀入惡意軟件可執行文件,得到一串01比特串,每八個為一組,組合成一個8位二進制的數字,將其轉化為一個范圍為0~255的無符號10進制數,得到一組10進制數組,每一個數組代表一個像素點,輸出一個條紋向量圖。可視化操作的具體轉化過程算法如下:

利用上述算法對惡意代碼家族Agent.FYI、Lolyda.AA3、Yuner.A進行轉化。轉換后,各個代碼家族的條紋特征分別如圖1、圖2及圖3所示。

圖1 家族Agent.FYI的條紋特征

圖2 家族Lolyda.AA3的條紋特征

圖3 家族Yuner.A的條紋特征

家族之內的惡意代碼條紋有著非常高的相似性,而家族之間的惡意軟件條紋差距較大。因此可以通過這些像素條帶的明暗變化特征對惡意軟件進行檢測并判斷其家族歸屬。

3 基于1D CNN的特征提取

卷積神經網絡有稀疏權重、參數共享及等變表示等特點,可以先學習局部的特征,再將局部特征組合起來形成更復雜和抽象的特征,這使得卷積神經網絡在存儲大小和統計效率方面極大地優于傳統的使用矩陣乘法的神經網絡。1D CNN廣泛應用于自然語言處理、傳感器數據的時間序列分析以及具有固定長度周期的信號數據的分析等多種場景。

根據1D CNN對一維序列數據的處理產出的良好表現,可以采用一維卷積神經網絡對像素向量進行特征提取。用于像素向量識別的CNN的結構組成如圖4所示。具體過程如下。

圖4 用于像素向量識別的CNN的結構組成

(1)將像素向量壓縮成相同的大小,以便輸入神經網絡。

(2)進入卷積層,卷積層實際上是卷積核與像素向量之間的運算,使用一維卷積對像素向量進行特征提取。一維卷積是取向量的點積,因此點積后會得到一個新的序列。

(3)進入池化層,池化層提供了很強的魯棒性,并且減少了參數的數量。算法采用MaxPooling和Global Average Pooling。MaxPooling提取區域中的最大值,因此若此區域中的其他值略有變化或者存在平移,pooling后的結果仍不變,可以防止過擬合。Global Average Pooling將最后一層特征圖針對整張圖進行均值池化,形成一個特征點并起到全連接的作用,將這些特征點組成最后的特征向量輸入softmax進行處理。

(4)輸入softmax前,需要利用Dropout層丟棄一些信息。在每個訓練批次中隨機地隱藏網絡中一部分隱藏神經元,輸入輸出神經元保持不變。之后將輸入節點通過修改后的網絡前向傳播,得到的損失結果通過修改的網絡反向傳播,從而防止過 擬合。

(5)利用softmax將輸出映射為0-1的數字,產生一個初步分類的結果。分類器根據其特征將惡意軟件圖像識別并分類為不同的系列。

對于測序得到的序列信息,首先根據PE reads之間的Overlap關系,將Hiseq測序得到的雙端序列數據進行拼接以獲得完整的一條序列Tags,同時對Reads的質量和拼接的效果進行質控過濾。之后利用不同軟件進行數據分析,如QIIME軟件進行OTU劃分,基于Silva和UNITE分類學數據庫對OTU進行分類學注釋分析、利用MEGAN軟件分析樣品中所有微生物的進化關系和豐度差異,利用Mothur軟件對樣品進行Alpha多樣性指數評估等。

輸入到CNN中的數據集需要統一大小,因此需要對向量進行壓縮。根據壓縮比例不同,向量特征的保留程度也不同。如圖5所示,三種比例的壓縮都能保持像素向量的基本特征。

圖5 家族Agent.FYI在三種壓縮比例下的條紋特征

4 使用XGBoost解決數據不平衡問題

利用上述CNN模型將圖片導入神經網絡進行訓練,但訓練的結果與訓練數據集的質量關系非常大。當樣本出現數據不平衡的情況時,會出現過擬合、低準確率、低魯棒性的現象。然而由于代碼形成的像素向量之間有邏輯關系,因此不應使用目前常用的旋轉、傾斜、切割、拼接等數據增強方法。本文引用近年來在分類問題上表現良好的XGBoost,通過對樣本特征的權重增強來防止過擬合的情況,以提高分類準確率。

XGBoost算法的思想是不斷地進行特征分裂來生長一棵樹,每次添加一個樹,其實是學習一個新函數,去掉擬合上次預測的殘差。當訓練完成得到k棵樹,要預測一個樣本的分數,其實就是根據這個樣本的特征,在每棵樹中對應到一個葉子節點,每個葉子節點對應一個分數,最后只需將每棵樹對應的分數加起來,就是該樣本的預測值。

5 結果評價方式

對于XGBoost的分類結果評估,實驗使用Accuracy、Precision、Recall、F1(F1-score)四 個不同方向的值進行評估精確度。

式中:是預測值,i樣本yi對應的真實值。

精度是分類器不將陰性樣本標記為陽性的 能力。

式中:TP是真實肯定的數目,FP是錯誤否定的 數目。

召回是分類器查找所有陽性樣本的能力:

式中:TP是真實的陽性數,FN是錯誤的陽性數。

6 實驗過程

表1 CNN結構

各層功能及設定如下。

(1)第一1D CNN層。具有ReLU函數的卷積層,輸入已經預處理的數據,即輸入長度為1000的平面向量。此層使用了100個維度為3的過濾器,輸出結果為卷積后尺寸998×100。

(2)第二1D CNN層。具有ReLU函數的卷積層,以第一層的輸出結果作為輸入。此層定義100個維度為4的過濾器,輸出結果為卷積后的尺寸995×100。

(3)最大池化層。設置參數選擇3,即池化核長度為3,步長為3,池化后數據長度為331,輸出為331×100,降低輸出的復雜性。

(4)第三1D CNN層。具有ReLU函數的卷積層,此層使用100個維度為5的過濾器,輸出尺寸為327×160。

(5)第四1D CNN層。具有ReLU函數的卷積層,此層使用了100個維度為4的過濾器,輸出尺寸為324×160。

(6)平均池化層。為避免再次過度擬合,每個特征檢測器在這一層的神經網絡中僅剩一個權重,輸出160個數值。

(7)dropout層。在此層將比例設定為0.5,因此有一半的神經元的權重為零,輸出160個數值。

(8)全連接層。具有softmax激活函數的全連接,輸出為25個數值,代表25個家族中每個家族的概率。

如圖6所示,實驗設定了60輪(Epoch)的學習,學習結果為損失值達到0.16,精確度達到0.95。實驗中,觀察每個家族下的混淆矩陣,發現第6個家族、第13個家族準確率極低,這是數據不平衡帶來的過擬合現象,因為機器將少量的數據判斷到錯誤的家族,整體準確率不會受到非常大的影響。

圖6 模型精度與損失

實驗使用了3種方式對特征進行分類,首先利用softmax函數對特征進行映射分類,其次將CNN提取的特征輸入SVM分類器進行分類,最后將CNN提取的特征輸入XGBoost分類器中分類。其中,XGBoost模型的參數設置為:

分類結果的混淆矩陣以及F1-score結果如圖7所示。

圖7 分類結果的混淆矩陣以及F1-score結果

通過數據比對可見,XGBoost表現明顯優于另外兩種分類方式,準確率提升到了97%的同時,數據集不平衡帶來的過擬合現象有較大的緩解,較少的幾個家族的預測率有所提高。

7 結語

惡意代碼可視化使得對惡意軟件特征的分析轉換為對圖像紋理特征的分析,而線性惡意代碼可視化既保留了惡意軟件的圖像的特征,又兼顧了條紋間的邏輯關聯,在使用CNN+XGBoost模型聯合分類檢測下能達到97%的準確率,為以后網絡安全相關工作人員對惡意代碼的檢測提供了更廣闊的可能性。

猜你喜歡
可視化分類特征
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
分類算一算
基于CGAL和OpenGL的海底地形三維可視化
如何表達“特征”
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
主站蜘蛛池模板: 丁香婷婷综合激情| 九九热精品在线视频| 国产精品流白浆在线观看| 亚洲 欧美 日韩综合一区| 无码高潮喷水在线观看| 88av在线| 国产呦精品一区二区三区网站| 超清无码熟妇人妻AV在线绿巨人| 国产精品成人一区二区不卡| 国产激情影院| 久久亚洲综合伊人| 欧美色视频网站| 亚洲国产精品日韩av专区| 久草视频一区| 久久国产成人精品国产成人亚洲 | 久久99国产乱子伦精品免| 亚洲综合专区| 无遮挡一级毛片呦女视频| 女人av社区男人的天堂| 伊人91视频| 国产精品护士| 超清无码一区二区三区| 91精品啪在线观看国产| 久久久久久午夜精品| 92精品国产自产在线观看| 亚洲国产AV无码综合原创| 素人激情视频福利| 国内丰满少妇猛烈精品播| 特级aaaaaaaaa毛片免费视频| 精品久久久无码专区中文字幕| 国产成人综合在线视频| 亚洲欧洲日产国码无码av喷潮| 老色鬼欧美精品| 久久综合伊人77777| 国产亚洲精品无码专| 国产在线日本| 亚洲综合第一区| 高清色本在线www| 国产精品第| 成人福利免费在线观看| 国产网站一区二区三区| 福利国产微拍广场一区视频在线| 欧美性猛交一区二区三区| 熟妇无码人妻| 国产成人精彩在线视频50| 一区二区三区国产| 丝袜国产一区| 欧美在线国产| 亚洲午夜福利在线| 91在线激情在线观看| 中文字幕精品一区二区三区视频| 波多野结衣第一页| 91久久偷偷做嫩草影院免费看 | 亚洲美女一区二区三区| 国产尤物在线播放| 亚洲青涩在线| 国产精品成人观看视频国产| 亚洲国产高清精品线久久| 精品無碼一區在線觀看 | 九九这里只有精品视频| 午夜免费视频网站| 99久久免费精品特色大片| 91探花国产综合在线精品| 精品国产免费观看| 福利姬国产精品一区在线| 国产剧情一区二区| 2024av在线无码中文最新| 欧日韩在线不卡视频| 日韩二区三区无| 91精品国产自产91精品资源| 亚洲黄网在线| 欧美日韩精品一区二区在线线 | 日韩欧美国产区| 国产网站一区二区三区| 亚洲午夜天堂| 天天色综合4| 国产亚洲欧美在线中文bt天堂| 免费人成在线观看视频色| 精品一区二区无码av| 国产麻豆精品手机在线观看| 欲色天天综合网| 欧洲熟妇精品视频|