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

基于多特征融合的BiLSTM 惡意代碼分類

2022-09-28 14:50:02劉紫煊
電子設(shè)計工程 2022年18期
關(guān)鍵詞:分類特征模型

劉紫煊,王 晨

(1.武漢郵電科學(xué)研究院,湖北武漢 430000;2.南京烽火天地通信科技有限公司,江蘇南京 210000)

目前,全球使用互聯(lián)網(wǎng)的人數(shù)已經(jīng)達到47 億人次,互聯(lián)網(wǎng)正成為全人類最廣泛使用的工具。但與此同時,針對互聯(lián)網(wǎng)的網(wǎng)絡(luò)攻擊現(xiàn)象也越來越頻繁,個人終端遇到的網(wǎng)絡(luò)攻擊行為主要包括惡意代碼、惡意病毒、流氓軟件等。企業(yè)終端除上述攻擊外,還包含大量滲透攻擊。由于近年混淆器的更新迭代日新月異,病毒使用混淆器的情況也逐漸增多,這就導(dǎo)致了病毒變得更加難以發(fā)現(xiàn),病毒生成速度更快,產(chǎn)生數(shù)量更多。惡意代碼利用代碼變形、反追蹤、反虛擬機、代碼混淆等技術(shù)避開安防系統(tǒng),攻擊計算機的現(xiàn)象時有發(fā)生。根據(jù)報告,2020 年1-6 月,我國境內(nèi)共攔截計算機惡意軟件約1 815 萬個,平均每日傳播次數(shù)約400 多萬次,其中相關(guān)惡意軟件家族達1 萬余個,被感染惡意程序的計算機約300 萬臺。

1 惡意軟件的研究背景

1.1 惡意軟件的反檢測技術(shù)

為了避免惡意軟件受到殺毒軟件的偵測和查殺,惡意軟件開發(fā)者通常會加入以下反檢測技術(shù)。加殼:加殼技術(shù)主要包括加密和壓縮兩個流程,將惡意代碼先加密后壓縮,從而提高代碼被檢測到的難度;寡態(tài)與多態(tài):寡態(tài)是指在惡意代碼中植入多組加密器和解密器,惡意代碼每一次運行之后,就會隨機自動選擇其中一組加密器重新加殼;多態(tài)技術(shù)則是將惡意代碼進行加密過程之后,又為解密器添加了一個引擎,該引擎的主要作用是對解密器進行變形,以便將代碼混淆。代碼混淆:其基本原理是將原始惡意代碼的結(jié)構(gòu)打亂重排,使其更加難以被逆向分析,而代碼的功能卻沒有變化,進而躲過查殺。

1.2 惡意軟件的分析方式

靜態(tài)分析技術(shù)是指在源代碼未被運行的條件下,運用專業(yè)的輔助工具,通過分析軟件代碼的結(jié)構(gòu)、功能、操作碼、API 序列、函數(shù)調(diào)用等對代碼進行分析,進而驗證其是否為惡意軟件以及其所屬的類別。動態(tài)分析技術(shù)是指將代碼放置在一個條件可控的實際工作環(huán)境或虛擬環(huán)境中,運行程序代碼,通過定位到代碼運行時所執(zhí)行的指令和調(diào)用的函數(shù)類型等,進而分析代碼的行為軌跡與目的,監(jiān)測其是否為惡意代碼。需要注意的是,動態(tài)分析技術(shù)所依賴的實驗環(huán)境是要與外界網(wǎng)絡(luò)徹底隔絕,避免惡意軟件通過網(wǎng)絡(luò)向外傳播,導(dǎo)致其他計算機“中毒”,造成損失。

2 惡意軟件數(shù)據(jù)集的分析與處理

2015 年Microsoft 曾在kaggle 上發(fā)起過一個惡意軟件分類的挑戰(zhàn)賽,引起了全世界網(wǎng)絡(luò)安全行業(yè)相關(guān)學(xué)者的關(guān)注,微軟發(fā)布比賽的同時,又發(fā)布了近1 000 GB 的惡意軟件數(shù)據(jù)集,該數(shù)據(jù)集共分為九大類,包含超過一萬個惡意軟件樣本。具體分類和數(shù)量如表1 所示。

表1 惡意軟件家族分類及數(shù)量

由于原始數(shù)據(jù)量過大,解壓后占用存儲空間近200 GB,并受到機器性能的限制,因此在實驗之前,先對數(shù)據(jù)集進行抽樣處理。從10 868 個樣本中抽取十分之一作為實驗用樣本。

2.1 N-Garm特征提取算法

N-Gram 是根據(jù)統(tǒng)計學(xué)的模型原理生成的一種新算法,將每次滑動的窗口長度設(shè)置為N。N-Gram算法原理是提取文本內(nèi)容,根據(jù)設(shè)置的窗口長度,將文本內(nèi)容依此分割成n個片段,得到每個片段的長度為N。每完成一次分割后,便將窗口向后滑動一個單元,經(jīng)過多次的分割移動,最終形成一個字節(jié)長度為N的序列。N-Gram 算法的性能和提取特征的總數(shù)取決于窗口的設(shè)定值。

每個被分割的片段稱為一個Gram 片段,統(tǒng)計被分割的Gram 片段出現(xiàn)的頻次,實驗前設(shè)定一個閾值,并依此過濾出一個Gram 列表,列表中一個Gram片段代表一個特征向量,多個特征向量組合便是該文本對應(yīng)的特征向量空間[1]。該模型提出的前提是第n個片段只受前面n-1 個片段影響,而不受其他片段影響,整個片段出現(xiàn)的概率等于各個片段出現(xiàn)概率的乘積。常見的N-Gram 算法包括N為2 的Bi-Gram 和N為3 的Tri-Gram。N-Gram 生成的窗 口包含了對應(yīng)操作碼序列的全部子序列,該子序列與其相鄰的子序列形成一種聯(lián)系,根據(jù)這種聯(lián)系,可以得出對應(yīng)程序的語義。

以片段{push,mou,add,dec,lea,sub,mov} 為例,設(shè)窗口每次滑動長度L=3,每個窗口代表這段操作碼序列的子序列,每個子序列與其前后序列存在對應(yīng)關(guān)系,如圖1所示,由此可以得到子序列集合{(push,mov,add),(mov,add,dec),(add,dec,lea),(dec,lea,sub),(lea,sub,mov)},子序列集合中所包含的子序列個數(shù)由n決定,如果一個二進制序列操作碼片段長度為L,那么將生成L-n+1個子序列[2],操作碼特征提取流程如圖1所示。

圖1 操作碼特征提取流程

根據(jù)上述流程,每一個編譯文件都可以生成一個集合文件,集合文件中包含多個子序列,生成的子序列可以組成一個子序列集:

A集合中包含了所有操作碼的子序列,例如(add,dec,lea)。如果要將該子序列集合作為機器學(xué)習(xí)模型的輸入特征,則需將子序列集特征轉(zhuǎn)化為可以應(yīng)用到算法模型中的數(shù)字特征。假設(shè)一個.bytes 文件生成的子序列集合為(push,mov,add,dec,lea),那么可以定義一個數(shù)值化操作函數(shù),將其轉(zhuǎn)化為一個維度方向向量:φ(x)=(φa(x))a∈A,其中:

假設(shè),如果全部二進制子序列的總集合A和所需要驗證的集合B分別為{(push,mov,add),(mov,add,dec),(add,dec,lea),(dec,lea,mov),(lea,mov,sub)}和φ(push,mov,add,dec,lea)那么可以得到如下子序列:

則向量(1,1,1,0,0)便是該二進制文件的向量化和數(shù)值化的子序列,由此可得出集合B與集合A的關(guān)系。

2.2 灰度圖特征提取算法

B2M 算法的原理是以二進制比特流的形式讀取惡意代碼源文件,以16 個字節(jié)為一個單元,將其轉(zhuǎn)化為十六進制向量,設(shè)二進制文件固定寬度width 為2n,長度length 由文件大小和寬度相除獲得(length=文件長度/width),生成的向量仿照矩陣格式排列,設(shè)置矩陣中元素大小在0~255 之間。

灰度圖是指用黑白灰三種顏色描述的圖像?;叶葓D像像素值介于0~255 之間,越靠近0 代表黑色越深,越靠近255 代表白色越深。在灰度圖像中,色彩的飽和度通常為零,像素信息由灰度信息與其位置信息共同構(gòu)成[3-7]。根據(jù)算法原理,二進制文件可以灰度可視化成圖片。因為設(shè)置的矩陣值在0~255 之間,所以要將一個二進制文件轉(zhuǎn)換為灰度圖形式,必須把二進制文件按照每8 bits 為一組進行分塊,8 bits代表0~28中任意一個數(shù),每個塊中的二進制序列可以被轉(zhuǎn)換為對應(yīng)的整數(shù),那么這個整數(shù)必然可以表示為一個灰度[3]。

隨機選取以下樣本,惡意代碼家族1 中的“1u3PmQiD0bX6RcgoCNKe”、“6bu0NZAsYoiUlCjEy H4X”、“8APhEd3UCifDsc4zVemR”,惡意代碼家族2中 的“aXMsY6r5HDflGbOjUcu7”、“czxjYgBb4TeOD 38AhNvi”、“DRXe2HIAxJaiFp0joQr1”以及惡意代碼家族3 中的“1iFYGHfzdnCJRXA5uby9”、“BLGY8Ek5 f4JlhOvIXxz2”、“ehW19YdIEik3jUpGA8sX”,分別將其灰度化后進行比較。結(jié)果發(fā)現(xiàn),同一家族的惡意代碼生成的灰度圖具有相似的紋理結(jié)構(gòu)。

2.3 決策樹與隨機森林

隨機森林模型主要用作對數(shù)據(jù)集進行分類,模型根據(jù)數(shù)據(jù)集的特征進行劃分,每一棵決策樹代表一個特征,根據(jù)特征劃分數(shù)據(jù)集,在數(shù)據(jù)節(jié)點特征中找到最優(yōu)解,進行分裂。隨機森林不依賴一棵決策樹,而是根據(jù)預(yù)測的多數(shù)票從每棵樹中獲取預(yù)測,并預(yù)測最終輸出[4]。RF 算法從訓(xùn)練集中選擇隨機的K個數(shù)據(jù)點,構(gòu)建與所選數(shù)據(jù)點(子集)關(guān)聯(lián)的決策樹,為要構(gòu)建的決策樹選擇編號N,對于新數(shù)據(jù)點,找到每個決策樹的預(yù)測,然后將新數(shù)據(jù)點分配給贏得多數(shù)票的類別[8]。將樣本中的訓(xùn)練集生成k個樹,這些分類樹組成隨機森林,分類樹投票分數(shù)的權(quán)重將決定測試數(shù)據(jù)的分類效果,隨機森林的構(gòu)建流程如下[6]:

隨機森林的學(xué)習(xí)模型原理如圖2 所示。

圖2 隨機森林模型原理圖

設(shè)單個樹誤差為a,每個樹之間互相獨立,則組合樹的誤差為:

2.4 十折交叉驗證

十折交叉驗證的具體流程:數(shù)據(jù)集被平均分成10 份,按順序選中其中每一份作為測試數(shù)據(jù),剩下的9 份作為訓(xùn)練集,進行實驗得到10 個值,取10 個值的平均值,作為待驗證算法的近似準確率,通常一次實驗要進行多次十折交叉驗證。K折交叉驗證雖消耗的計算資源較高,但可以在數(shù)據(jù)集較少時獲得最優(yōu)解,之所以選擇將K定為10,是因為通過大量數(shù)據(jù)集測試結(jié)果表明,十折交叉驗證可以使誤差估計最小。該文所使用的算法模型訓(xùn)練和評估測試方法,均是十折交叉驗證。

2.5 長短時記憶網(wǎng)絡(luò)

LSTM 模型示意圖如圖3 所示。

圖3 LSTM模型示意圖

圖3 中的A表示了LSTM 三個時間步的三個單元,其中第二個單元顯示了LSTM 內(nèi)部單元的工作結(jié)構(gòu)。該單元的第一個長方形A表示遺忘門,中間部分表示輸入門,右邊長方形A表示輸出門,σ表示以sigmoid為激活函數(shù)的神經(jīng)元,tanh 表示以雙正切函數(shù)為激活函數(shù)的神經(jīng)元[2]。多個神經(jīng)元的組合和運算,可以計算當前時刻輸入與輸出數(shù)據(jù)、上一時刻輸出數(shù)據(jù)以及單元狀態(tài),并將信息傳遞到下一個單元結(jié)構(gòu)。每進行到一個時間節(jié)點,LSTM 模型便更新一次隱藏狀態(tài)和單元狀態(tài)。其中,xt-1、xt、xt+1分別表示不同時刻的輸入,ht-1、ht、ht+1分別表示不同時刻的隱藏狀態(tài)[5]。

在一個給定的輸入序列X={x1,x2,…,xt}中,若將LSTM 結(jié)構(gòu)中的輸入門、遺忘門、輸出門、隱藏狀態(tài)和單元狀態(tài)分別設(shè)置為it、ft、ot、ht和ct,wc為細胞狀態(tài)的權(quán)重矩陣,bc代表細胞狀態(tài)的偏置項,附加的權(quán)重標記為wi、wf、wo、bi、bf、bo,用σ表示sigmoid 函數(shù),則上述參數(shù)的公式表示如下:

3 實驗驗證

3.1 基于N-Gram的隨機森林算法

采用OpCode N-Gram 的方式作為特征預(yù)測,數(shù)據(jù)集中不同惡意代碼文件大小不一,從全部的惡意代碼數(shù)據(jù)集中提取所有操作指令的N-Gram 數(shù)量過大,文中對此進一步作特征選擇。分別選取不同元組N值為{2,3,4,5,6}進行隨機森林分類準確率對比實驗,結(jié)果如圖4 所示。經(jīng)過測試發(fā)現(xiàn),與隨機森林算法結(jié)合后,N取值為3 得到的特征準確率和穩(wěn)定性要略優(yōu)于N取其他值時的準確率[9]。

圖4 N-Gram算法不同N值得到的準確率

因此,該文采用基于3-Gram 算法的隨機森林算法,將特征值輸入到算法選擇器中,采用十折交叉進行驗證,最終得到10 次測試結(jié)果如下:[0.950 617 28,0.925 925 93,0.937 5,0.887 5,0.887 5,0.962 5,0.975,0.925,0.937 5,0.987 5],預(yù)測準確率平均值等于0.937 65。

3.2 基于asm圖像紋理特征的隨機森林算法

該文分別選取像素點數(shù)目pix值為{1 000,1 500,2 000,2 500}進行對比驗證,得到的準確率結(jié)果如表2 所示[10]。

表2 不同像素點數(shù)目的分類準確率

根據(jù)實驗結(jié)果顯示,像素值pix 的個數(shù)在1 500~2 000 之間,分類準確率取得最大值,由此該文選取1 500 個像素進行驗證,并將特征值輸入到隨機森林分類選擇器中,采用十折交叉驗證,最終得到10 次測試結(jié)果如下:[0.975 308 64,0.938 271 6,0.937 5,0.937 5,0.925,0.925,0.967 5,0.975,0.887 5,0.937 5],預(yù)測準確率平均值等于0.942 608。

3.3 基于N-Gram與asm聯(lián)合的隨機森林

根據(jù)前文實驗,N取值為3,像素取值1 500,得到的預(yù)測準確率值最大[11]?;诖?,將N-Gram 特征和紋理特征兩者結(jié)合作為聯(lián)合輸入特征,應(yīng)用到隨機森林算法選擇器中,并采用十折交叉驗證,最終得到10 次測試結(jié)果如下:[0.987 654 32,0.950 617 28,0.9625,0.962 5,0.95,0.987 5,0.987 5,0.987 5,0.975,1.0],預(yù)測準確率的平均值為0.975 077,三種算法的結(jié)果如圖5 所示。

圖5 三種不同特征的預(yù)測結(jié)果準確率

由結(jié)果可知,只采用N-Gram 特征或圖像紋理特征作為輸入特征,得到的預(yù)測準確率結(jié)果互有勝負,采用二者聯(lián)合特征作為輸入特征,得到的準確率均好于單一特征得到的準確率[12]。

3.4 基于N-Gram 與asm 聯(lián)合的BiLSTM 雙向長短時記憶網(wǎng)絡(luò)

在LSTM 模型中,模型所包含的遞歸自然學(xué)習(xí)能力,能夠自動提取N-Gram 和紋理兩種特征結(jié)合后形成的深層次的特征,然后將融合該特征通過輸入門輸入到LSTM 模型后,依次經(jīng)過隱含層中的遺忘門、輸入門、輸出門,計算出融合特征的特征圖,LSTM中每個隱藏神經(jīng)元都是循環(huán)連接,輸出層輸出的向量大小要與分類的惡意軟件的類別數(shù)目相等[13]。該實驗采用單層長短時記憶網(wǎng)絡(luò),模型每層結(jié)構(gòu)采用兩個方向相反的LSTM模型,LSTM的隱含神經(jīng)元個數(shù)初始值定為20,BiLSTM 雙向長短時記憶網(wǎng)絡(luò)模型圖如圖6所示。

圖6 BiLSTM雙向長短時記憶網(wǎng)絡(luò)模型圖

針對BiLSTM 模型,通過實驗不斷調(diào)整和優(yōu)化LSTM 網(wǎng)絡(luò)結(jié)構(gòu)中的有關(guān)參數(shù),調(diào)整的參數(shù)包括隱藏神經(jīng)元n_hidden 的個數(shù)、學(xué)習(xí)率lr、批次大小banth_size、網(wǎng)絡(luò)層數(shù)、數(shù)據(jù)集劃分比例、迭代次數(shù)epoch 等,使用控制變量法,先將某個參數(shù)值固定,通過調(diào)整其他參數(shù),使泛化能力達到最優(yōu),得到一個最優(yōu)解[14]。依此類推,直到得到所有的最優(yōu)化參數(shù),便得到了LSTM 結(jié)構(gòu)的一組最優(yōu)模型。在后續(xù)的融合特征數(shù)據(jù)作為輸入時均采用該最佳的參數(shù)組合情況,其最佳參數(shù)組合情況如表3 所示[15]。

表3 網(wǎng)絡(luò)結(jié)構(gòu)最佳參數(shù)

通過實驗驗證,在相同輸入特征的條件下,該文提出的BiLSTM 雙向長短時記憶網(wǎng)絡(luò)對惡意軟件數(shù)據(jù)集分類的準確率達到了0.985,結(jié)果高于隨機森林分類器準確率0.976,也高于KNN、SVM 等傳統(tǒng)分類器的準確率[16],不同分類器得到的分類準確率如圖7所示,實驗結(jié)果符合預(yù)期。

圖7 不同分類器得到的分類準確率

4 結(jié)論

該文根據(jù)惡意代碼源文件反匯編生成的.bytes文件和.asm 文件,基于.bytes 文件提取了N-Gram 操作碼子序列特征,基于.asm 文件提取了灰度圖像紋理特征,并基于隨機森林分類算法以及十折交叉算法,分別驗證了兩種輸入特征,得到每一種特征對應(yīng)的分類準確率。最后將兩種特征結(jié)合在一起,作為輸入特征重復(fù)計算,發(fā)現(xiàn)預(yù)測準確率均高于單一特征的預(yù)測準確率。在此基礎(chǔ)上,該文基于LSTM 模型,提出一種新的BiLSTM 雙向長短時記憶網(wǎng)絡(luò)結(jié)構(gòu),在相同的輸入特征條件下,該模型的準確率要高于隨機森林等傳統(tǒng)分類模型準確率。

猜你喜歡
分類特征模型
一半模型
分類算一算
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
分類討論求坐標
數(shù)據(jù)分析中的分類討論
教你一招:數(shù)的分類
抓住特征巧觀察
主站蜘蛛池模板: 亚洲男人的天堂久久香蕉网| 99免费视频观看| 国产91成人| 91免费国产在线观看尤物| 亚洲Av综合日韩精品久久久| 伊人精品成人久久综合| 国产爽爽视频| 国内精品久久九九国产精品| 夜精品a一区二区三区| 这里只有精品在线播放| 亚洲伦理一区二区| 色噜噜综合网| 久久大香香蕉国产免费网站| 国产精品制服| 一本大道香蕉高清久久| 欧美精品啪啪一区二区三区| 午夜毛片免费观看视频 | 综合色区亚洲熟妇在线| 热久久这里是精品6免费观看| 91蝌蚪视频在线观看| 无码日韩精品91超碰| 91蝌蚪视频在线观看| 玖玖精品在线| 九九热视频精品在线| 亚洲精品天堂自在久久77| 国产欧美精品专区一区二区| 色综合成人| 免费啪啪网址| 国产精品无码久久久久久| 第九色区aⅴ天堂久久香| 欧美精品1区| 激情国产精品一区| 999国内精品久久免费视频| 国产99精品久久| a级高清毛片| 免费一看一级毛片| 97综合久久| 亚洲啪啪网| 日本成人不卡视频| 国产欧美性爱网| 久久77777| 中文字幕 日韩 欧美| 青草免费在线观看| 亚洲欧美另类日本| 亚洲性视频网站| 极品av一区二区| 欧美日韩国产高清一区二区三区| 成人在线第一页| 丰满人妻一区二区三区视频| 亚洲综合色婷婷| 大陆国产精品视频| 欧美α片免费观看| 久久综合国产乱子免费| 亚洲人成网站色7799在线播放| 精品亚洲国产成人AV| 人与鲁专区| 国模视频一区二区| 人妖无码第一页| 996免费视频国产在线播放| 中文字幕波多野不卡一区| 91精品情国产情侣高潮对白蜜| 久久久久亚洲AV成人网站软件| 亚洲精品大秀视频| 国产福利影院在线观看| 久久久久88色偷偷| 欧美午夜在线视频| 青青操视频免费观看| 欧美色图久久| 亚洲人成网站观看在线观看| 亚洲 日韩 激情 无码 中出| 免费xxxxx在线观看网站| 国产精品第| 免费高清a毛片| 亚洲高清无码久久久| av一区二区三区在线观看| 国产网站一区二区三区| 欧美成人综合视频| 亚洲欧美不卡| 国产三级毛片| 免费观看成人久久网免费观看| 国产青榴视频| 久久精品这里只有精99品|