亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        劉紫煊,王 晨

        (1.武漢郵電科學研究院,湖北武漢 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è)終端除上述攻擊外,還包含大量滲透攻擊。由于近年混淆器的更新迭代日新月異,病毒使用混淆器的情況也逐漸增多,這就導致了病毒變得更加難以發(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ò)向外傳播,導致其他計算機“中毒”,造成損失。

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

        2015 年Microsoft 曾在kaggle 上發(fā)起過一個惡意軟件分類的挑戰(zhàn)賽,引起了全世界網(wǎng)絡(luò)安全行業(yè)相關(guān)學者的關(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)計學的模型原理生成的一種新算法,將每次滑動的窗口長度設(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)。如果要將該子序列集合作為機器學習模型的輸入特征,則需將子序列集特征轉(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 之間。

        灰度圖是指用黑白灰三種顏色描述的圖像。灰度圖像像素值介于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 算法從訓練集中選擇隨機的K個數(shù)據(jù)點,構(gòu)建與所選數(shù)據(jù)點(子集)關(guān)聯(lián)的決策樹,為要構(gòu)建的決策樹選擇編號N,對于新數(shù)據(jù)點,找到每個決策樹的預(yù)測,然后將新數(shù)據(jù)點分配給贏得多數(shù)票的類別[8]。將樣本中的訓練集生成k個樹,這些分類樹組成隨機森林,分類樹投票分數(shù)的權(quán)重將決定測試數(shù)據(jù)的分類效果,隨機森林的構(gòu)建流程如下[6]:

        隨機森林的學習模型原理如圖2 所示。

        圖2 隨機森林模型原理圖

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

        2.4 十折交叉驗證

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

        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 模型中,模型所包含的遞歸自然學習能力,能夠自動提取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ù)、學習率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ā)現(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ù)的分類
        抓住特征巧觀察
        精品久久欧美熟妇www| 日韩精品极视频在线观看免费 | 午夜天堂一区人妻| 欧美亚洲色综久久精品国产| 国产精品无码精品久久久| 国产精品自在在线午夜出白浆| 91一区二区三区在线观看视频| 国产精品538一区二区在线| 亚洲经典三级| 亚洲VR永久无码一区| av毛片亚洲高清一区二区| 护士的小嫩嫩好紧好爽| 国产69精品久久久久9999| 色婷婷狠狠97成为人免费| 国产亚洲中文字幕久久网 | 午夜福利试看120秒体验区| 国产主播福利一区二区| 亚洲国产成人精品久久成人| 免费人成视频网站网址| 国产激情久久久久影院老熟女免费| 国产精品主播视频| 一区二区三区视频偷拍| 蜜芽亚洲av无码精品色午夜| 另类内射国产在线| 亚洲激情人体艺术视频| 国产一区二区熟女精品免费| 免费观看交性大片| 天堂网www在线资源| 视频网站在线观看不卡| 一区在线视频免费播放| 人妻少妇精品无码专区二区| 女人体免费一区二区| 香蕉蜜桃av一区二区三区| 亚洲欧洲成人a∨在线观看| 国产成人精品成人a在线观看 | 久久精品日韩av无码| 亚洲国产精品第一区二区三区 | 国产成人亚洲精品青草天美| 人妻AV无码一区二区三区奥田咲| 亚洲伊人伊成久久人综合| 色噜噜亚洲男人的天堂 |