• 
    

    
    

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

      基于切片的深度學(xué)習(xí)SDN惡意應(yīng)用程序的檢測方法

      2020-01-14 06:03:46池亞平余宇舟
      計算機(jī)應(yīng)用與軟件 2020年1期
      關(guān)鍵詞:應(yīng)用程序切片準(zhǔn)確率

      池亞平 余宇舟 陳 穎

      (北京電子科技學(xué)院 北京100070)

      0 引 言

      惡意軟件是當(dāng)今計算機(jī)系統(tǒng)的主要威脅之一[1]。同時,現(xiàn)在針對SDN網(wǎng)絡(luò)的各類攻擊手段也越來越多。但是現(xiàn)有和SDN有關(guān)的惡意應(yīng)用程序研究大部分集中在利用軟件定義網(wǎng)絡(luò)控制與轉(zhuǎn)發(fā)分離的特點(diǎn),利用SDN特有的網(wǎng)絡(luò)架構(gòu)來解決傳統(tǒng)的惡意攻擊,而專門針對SDN特殊網(wǎng)絡(luò)網(wǎng)絡(luò)環(huán)境的惡意應(yīng)用程序研究還較少。

      文獻(xiàn)[2]搭建了一個單獨(dú)的沙箱對惡意代碼進(jìn)行檢測,通過建立一個動態(tài)分析環(huán)境,來觸發(fā)惡意代碼,促使其表現(xiàn)惡意行為。該檢測系統(tǒng)也有其明顯的局限性,因為在這個系統(tǒng)中的SDN控制器本身也容易受到針對SDN模型的威脅和攻擊。如果控制器受到危害,則系統(tǒng)將無法正確執(zhí)行惡意軟件分析的功能。而且該方案建立的初衷是為了檢測針對普通計算機(jī)的惡意代碼而非針對SDN控制器的惡意代碼。文獻(xiàn)[3]提出了一個自動分析SDN惡意應(yīng)用程序的框架SHIELD,通過研究SDN應(yīng)用的API調(diào)用情況,總結(jié)現(xiàn)有的良性和惡意應(yīng)用程序并提取其行為特點(diǎn)來進(jìn)行動態(tài)檢測,但是有一個明顯的不足就是對于APT攻擊的檢測效果很差。文獻(xiàn)[4]采用域的方法,使用沙箱將控制器上重要的模塊放在不同的域里面,相互隔離,保證其中一個被感染不至于影響其他模塊。文獻(xiàn)[5]通過虛擬化技術(shù)隔離SDN應(yīng)用來保護(hù)控制平面,并采取嚴(yán)格的分離惡意SDN應(yīng)用程序的措施,允許策略檢查機(jī)制獨(dú)立于SDN控制器運(yùn)行,并給相關(guān)應(yīng)用的每一個行為和操作進(jìn)行定級,通過判斷應(yīng)用的行為是否惡意來達(dá)到檢測惡意應(yīng)用程序和保護(hù)控制器的目的。

      文獻(xiàn)[6]中提到運(yùn)用切片的方法檢測代碼漏洞,但是其只關(guān)注程序的參數(shù)調(diào)用等靜態(tài)特征,并沒有考慮程序的整體結(jié)構(gòu)特征。文獻(xiàn)[7]中提出了運(yùn)用切片的方法同時結(jié)合聚類算法對跨平臺的代碼進(jìn)行相似性檢測。文獻(xiàn)[8]和文獻(xiàn)[9]分別介紹了深度卷積神經(jīng)網(wǎng)絡(luò)在圖像分類、目標(biāo)檢測等多個計算機(jī)視覺任務(wù)中的廣泛應(yīng)用。

      綜上所述,現(xiàn)有的對SDN惡意應(yīng)用程序的檢測方法并未對惡意應(yīng)用程序本身結(jié)構(gòu)進(jìn)行分析,并未深入到惡意應(yīng)用程序內(nèi)部關(guān)注其函數(shù)調(diào)用情況。而且普通端口的調(diào)用情況等動態(tài)特征只有惡意行為觸發(fā)之后才能進(jìn)行樣本分析并提取規(guī)則,因此在準(zhǔn)確率和檢測及時性上有明顯的不足。程序靜態(tài)切片本質(zhì)上是一種數(shù)據(jù)提取分析方法,主要通過特定的逆向工具對整個代碼進(jìn)行遍歷,找到并截取想要分析的各類語句模塊。最后分析所截取的每一組程序語句,提取出想要的各類參數(shù)。

      本文的主要創(chuàng)新點(diǎn)如下:

      (1) 針對SDN控制器本身的安全問題,尤其是現(xiàn)在防護(hù)能力較薄弱的應(yīng)用層安全,首次將深度學(xué)習(xí)的方法與SDN惡意應(yīng)用程序檢測相結(jié)合。

      (2) 將切片技術(shù)提取特征的方法運(yùn)用到惡意應(yīng)用程序檢測上,并首次將SDN惡意應(yīng)用向量特征重組為矩陣形式。

      1 SDN惡意應(yīng)用程序研究

      1.1 攻擊原理分析

      在這個部分,主要介紹OpenDaylight[10]控制器的攻擊場景。之所以選擇OpenDaylight控制器進(jìn)行分析,是因為首先它是開源并遵循Apache開源規(guī)范的,其次它也是時下最流行,應(yīng)用最廣的控制器。

      同時,我們在討論時不關(guān)注惡意應(yīng)用程序如何安裝到控制器上,并假定針對于每種控制器的惡意應(yīng)用程序已經(jīng)安裝到相應(yīng)控制器上。

      針對Opendaylight的攻擊流程分析如圖1所示。

      圖1 OpenDaylight控制器攻擊分析

      (1) 惡意應(yīng)用程序訪問OpenDaylight的核心服務(wù)管理,獲取目標(biāo)應(yīng)用程序使用的服務(wù)信息。

      (2) 惡意應(yīng)用程序?qū)h除目標(biāo)應(yīng)用程序使用的所有服務(wù),以使目標(biāo)應(yīng)用程序無法使用控制器提供的任何服務(wù)。

      (3) 在惡意應(yīng)用程序刪除這些服務(wù)后,主機(jī)A向主機(jī)B發(fā)送報文,但沒有匹配的流規(guī)則,交換機(jī)會向控制器發(fā)送PACKET_IN流表。

      (4) 目標(biāo)應(yīng)用程序無法處理PACKET_IN流表,因此控制器不能理解有關(guān)網(wǎng)絡(luò)的拓?fù)湫畔ⅰ?/p>

      以上介紹了針對OpenDaylight控制器的攻擊方式,可以看到當(dāng)使用控制器控制大規(guī)模OpenFlow交換機(jī)時,惡意應(yīng)用程序會被安裝到控制器上,將對SDN環(huán)境造成巨大的破環(huán)。

      1.2 區(qū)別分析

      SDN應(yīng)用與傳統(tǒng)應(yīng)用的工作原理與觸發(fā)機(jī)制不同,SDN應(yīng)用通常是被數(shù)據(jù)轉(zhuǎn)發(fā)層的流表等事件所激活,但是普通的類似于安卓系統(tǒng)的惡意應(yīng)用則是由用戶、特定時間或者自動激活。這集中體現(xiàn)在應(yīng)用樣本內(nèi)部函數(shù)的模塊和接口的巨大差異,也就為本方法提供了可能。

      這些不同點(diǎn)也決定了我們應(yīng)該采取不同的檢測方法。針對SDN的惡意應(yīng)用與普通惡意應(yīng)用的區(qū)別如表1所示。

      表1 針對SDN的惡意應(yīng)用與普通惡意應(yīng)用的區(qū)別

      續(xù)表1

      2 方案設(shè)計

      文獻(xiàn)[13]中提到程序切片提取特征在分析函數(shù)內(nèi)部調(diào)用關(guān)系、函數(shù)整體結(jié)構(gòu)等靜態(tài)特征方面有一定的優(yōu)勢。本方方法之所以采用模塊化切片的方式處理樣本,原因為以下兩點(diǎn):

      (1) 只有對程序進(jìn)行模塊化切片處理,才能做到對惡意程序的函數(shù)調(diào)用等靜態(tài)特征向量提取的精細(xì)化處理,以便后面的深度學(xué)習(xí)。

      (2) 對比實驗發(fā)現(xiàn),相比于直接將控制流圖CFG(Control Flow Graph)染色后作為深度學(xué)習(xí)的圖片樣本,切片提取特征后生成的矩陣文檔樣本在檢測準(zhǔn)確率上提升4%,同時訓(xùn)練時間大幅降低。

      方案總體框架如圖2所示。本方案的主要思想是將原始SDN惡意應(yīng)用程序轉(zhuǎn)化成可供深度學(xué)習(xí)的特征突出的矩陣樣本。本方案以深度學(xué)習(xí)為基礎(chǔ),將惡意應(yīng)用程序樣本按照模塊化進(jìn)行切片,提取特征向量后將其轉(zhuǎn)化為高維向量并重組成矩陣,最后將矩陣作為輸入,導(dǎo)入深度學(xué)習(xí)框架中。

      圖2 方案總體框架

      2.1 數(shù)據(jù)預(yù)處理模塊

      (1) 將應(yīng)用分為(正常,惡意)兩類。并利用逆向工具IDA,調(diào)用IDC模塊,處理原始樣本,生成GDL(Graph Description Language)文件。

      (2) 調(diào)用IDA自帶的插件找到整個程序的入口函數(shù),獲取函數(shù)名。

      (3) 遍歷整個函數(shù),對樣本按照(′UPX′,′UPX1′,′.text′, ′.idata′,′.rdata′,′.data′)等要素進(jìn)行模塊分組,即切片。

      (4) 遍歷每個模塊中的函數(shù),提取出擁有特定函數(shù)名的函數(shù)。本方法尤其關(guān)注SDN惡意應(yīng)用程序特有的DataChangeListener()、FlowRuleModification()、SwitchFirmwareMisuse()、ReplayingKnownAttack()等模塊。

      (5) 調(diào)用Python自帶的network模塊,根據(jù)GDL文件以模塊為單位生成控制流程圖,如圖3所示。圖3為邏輯關(guān)系圖,用以說明,并非用于深度學(xué)習(xí)的樣本。

      圖3 生成的CFG流程圖示例

      (6) 編寫getFuncCalls、getLogicInsts、getTransferInsts、getLocalVariables、getBasicBlocks、getBasicBlocks、getIncommingCalls、getIntrs等函數(shù)對整體結(jié)構(gòu)和切片進(jìn)行特征提取,如表2所示。

      表2 切片特征提取參數(shù)設(shè)置

      (7) 對每一個樣本的靜態(tài)函數(shù)所示進(jìn)行特征提取后,每一個切片都會生成如圖4所示的8維特征向量,然后將所有8維特征向量組成一個8×N維的矩陣。由于每個樣本的大小不一,因此N的大小并不確定,為了方便后面的深度學(xué)習(xí)實驗,因此需要對樣本進(jìn)行歸一化。本文采取的方法是設(shè)置閾值,即設(shè)置N=250,當(dāng)有樣本大于此值則省去多余部分,不足則添零,因此得到8×250的矩陣。

      圖4 函數(shù)調(diào)用特征提取示例

      (8) 將每一個矩陣(如圖5所示)保存成一個文檔,并對文檔進(jìn)行編號和標(biāo)記,最后將其作為深度學(xué)習(xí)樣本。

      圖5 生成的矩陣樣本

      2.2 深度卷積神經(jīng)網(wǎng)絡(luò)與檢測模塊

      本方案在谷歌的深度學(xué)習(xí)框架Tensorflow和調(diào)用接口Keras的基礎(chǔ)上搭建深度卷積神經(jīng)網(wǎng)絡(luò),根據(jù)以往的經(jīng)驗總結(jié),調(diào)試各項參數(shù)。

      現(xiàn)在關(guān)于卷積神經(jīng)網(wǎng)絡(luò)中的各個參數(shù)的設(shè)置沒有固定的方法,更沒有所謂最優(yōu)的方法,因此以下參數(shù)的選擇是在參考文獻(xiàn)[17-18]中給出的設(shè)置方法后,再加上自己的理解所設(shè)定的。stride為步長;filter為濾波器(也稱卷積核);kernel-Size為卷積核大小;padding為same時表示填充零,此時賦值1,為valid時表示不填充,賦值0;outp代表經(jīng)過池化層后的輸出,outc代表經(jīng)過卷積層的輸出。

      outp=inlength/stride

      (1)

      (2)

      本方法不適宜采用層數(shù)過深和卷積核過多的神經(jīng)網(wǎng)絡(luò)模型。主要有如下兩個原因:(1) 考慮到惡意應(yīng)用程序的檢測要兼顧準(zhǔn)確率和時間效率;(2) 由于現(xiàn)階段的樣本數(shù)量不夠多,復(fù)雜的網(wǎng)絡(luò)對小樣本學(xué)習(xí)很容易造成過擬合現(xiàn)象。

      表3為本文深度學(xué)習(xí)框架結(jié)構(gòu)及各層參數(shù)詳細(xì)說明:關(guān)于步長的選擇,AlexNet多采用較大的卷積核,減小了層數(shù),VGG多采用3×3的卷積核,表明在結(jié)構(gòu)相似的情況下,網(wǎng)絡(luò)越深,性能越好。卷積層的步長如果太長,將會損失大量特征,因此取步長為2。池化層的步長和卷積核的參數(shù)采用的是前人的經(jīng)驗總結(jié)。關(guān)于過濾器的選擇,設(shè)置的依據(jù)主要考慮的是實驗平臺的文本處理能力。關(guān)于卷積核的大小,本方法主要采用文獻(xiàn)[15]介紹的卷積核的大小3×3。同時也考慮了式(2)的計算最終結(jié)果能是整數(shù),所以其中采用了2×2的卷積核。關(guān)于padding的選擇主要為了能夠使整體結(jié)構(gòu)更加合理和優(yōu)化而選擇的補(bǔ)零策略。在解決樣本太少而導(dǎo)致的過擬合問題和收斂性問題時,主要采用不同激活函數(shù)和采用正則化手段Dropout。

      表3 卷積神經(jīng)網(wǎng)絡(luò)各層參數(shù)設(shè)置

      將所有樣本編號放入同一目錄下,將80%的樣本作為訓(xùn)練集放入深度學(xué)習(xí)框架中進(jìn)行學(xué)習(xí),將20%的樣本作為測試集對模型的準(zhǔn)確率進(jìn)行檢測。

      本方案優(yōu)勢如下:

      (1) 以往對于惡意代碼的特征提取主要關(guān)注其行為、標(biāo)簽、程序包名、啟動Activity名稱、權(quán)限信息等易被隱藏或者偽造的特征,而本方案是對惡意應(yīng)用程序的控制流程圖這類難以偽造的樣本進(jìn)行檢測,大大增加了樣本的真實性和可用性。

      (2) 相比于文獻(xiàn)[6],本方案的特征選取不僅關(guān)注了函數(shù)級別的調(diào)用和跳轉(zhuǎn)關(guān)系,同時還關(guān)注了程序的整體結(jié)構(gòu)特征,對于樣本的描述將更加準(zhǔn)確。

      (3) 卷積神經(jīng)網(wǎng)絡(luò)作為一種深度學(xué)習(xí)模型,具有分層學(xué)習(xí)特征的能力。研究表明,通過卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)得到的特征相對于人工設(shè)計特征具有更強(qiáng)的判別能力和泛化能力。

      (4) 切片矩陣由于先將樣本的靜態(tài)特征數(shù)值化,因此相比于直接將惡意應(yīng)用程序的CFG圖片作為深度學(xué)習(xí)的樣本,更能凸顯惡意應(yīng)用程序內(nèi)部的調(diào)用關(guān)系、結(jié)構(gòu)特點(diǎn)等靜態(tài)特征,同時相比于圖片樣本,僅僅包含數(shù)據(jù)的文檔還明顯縮短了深度學(xué)習(xí)的時間,提高了效率。

      3 實 驗

      3.1 實驗環(huán)境

      IDA是目前最好的一款靜態(tài)反編譯軟件,它具有交互式、可編程、可擴(kuò)展、多處理器的特點(diǎn),并且可以交叉Windows或Linux MacOS平臺主機(jī)來分析程序,IDA Pro已經(jīng)成為分析敵意代碼的標(biāo)準(zhǔn)并讓其自身迅速成為攻擊研究領(lǐng)域的重要工具。它支持?jǐn)?shù)十種CPU指令集其中包括Intel x86、x64、MIPS、PowerPC、ARM、Z80、68000、c8051等[19]。

      Keras是一個高層神經(jīng)網(wǎng)絡(luò)API,由純Python(其版本是:Python 2.7-3.6)編寫而成并支持Tensorflow、Theano以及CNTK后端。Keras具有高度模塊化、極簡和可擴(kuò)充等特性,支持CNN和RNN。本次實驗所用環(huán)境配置如表4所示。

      表4 實驗環(huán)境配置

      樣本來源有兩種:一種是從github開源社區(qū)找到的12個樣本,另一種是參考文獻(xiàn)[3]中研究團(tuán)隊分享的20個樣本。

      3.2 實驗結(jié)果分析

      實驗結(jié)果如圖6-圖8所示,其中l(wèi)oss代表損失值,acc代表測試的準(zhǔn)確率,val_acc代表測試集的準(zhǔn)確率。本方法的損失值最后定在0.408 6,能控制在1以內(nèi),表明擬合良好,本方法的準(zhǔn)確率最后定在93.75%。若增大樣本數(shù)量和循環(huán)次數(shù),可使得結(jié)果更理想。同時,隨著現(xiàn)在深度卷積神經(jīng)網(wǎng)絡(luò)的不斷發(fā)展,網(wǎng)絡(luò)層數(shù)越來越多,訓(xùn)練時間更長,消耗資源更多,準(zhǔn)確率會有一定提升,但是過擬合現(xiàn)象更嚴(yán)重,因此本文的卷積神經(jīng)網(wǎng)絡(luò)在VGG和AlexNet的基礎(chǔ)上,針對本方法樣本的特點(diǎn),設(shè)計了一種適合SDN惡意應(yīng)用程序檢測的神經(jīng)網(wǎng)絡(luò),并對每一層的參數(shù)進(jìn)行了調(diào)整,兼顧了準(zhǔn)確率和效率,取得了更好的效果。

      圖6 AlexNet網(wǎng)絡(luò)架構(gòu)實驗結(jié)果

      圖7 VGG網(wǎng)絡(luò)架構(gòu)實驗結(jié)果

      圖8 表3中的神經(jīng)網(wǎng)絡(luò)架構(gòu)實驗結(jié)果

      不同樣本數(shù)量的實驗比較結(jié)果如表5所示。本文采用10樣本、20樣本和32樣本的實驗對比。實驗結(jié)果表明隨著實驗樣本的增多損失值不斷降低,檢測最高準(zhǔn)確率不斷提高,但是隨著循環(huán)次數(shù)增多,準(zhǔn)確率將有5%左右的降低,分析是由于樣本不足,欠擬合導(dǎo)致的,如果樣本足夠多,將使結(jié)果更加理想。實驗結(jié)果符合預(yù)期,證明了本實驗的可行性。

      表5 樣本數(shù)量與實驗結(jié)果的趨勢實驗

      表6 與文獻(xiàn)3中檢測時間比較 s

      在對相同惡意應(yīng)用程序采用不同方法進(jìn)行比較。如表6所示,與文獻(xiàn)[3]中提到的針對于SDN惡意應(yīng)用程序檢測時間進(jìn)行比較,本方法設(shè)定樣本訓(xùn)練循環(huán)100次(epochs=100),測試集循環(huán)1次。對于OpenDaylight的樣本訓(xùn)練一次耗時24 ms,對于Floodlight樣本訓(xùn)練耗時49 ms,因此最終檢測耗時為2.424 s和4.949 s,本實驗所用時間并未考慮讀取樣本所花時間,只計算訓(xùn)練和測試時間。綜上所述,本實驗結(jié)果明顯優(yōu)于文獻(xiàn)[3]。同時文獻(xiàn)[3]并沒有如本文給出對于SDN惡意應(yīng)用程序的檢測準(zhǔn)確率,只給出了平均準(zhǔn)確時間,因此所得的結(jié)果明顯不夠嚴(yán)謹(jǐn)和準(zhǔn)確。由于與SDN惡意應(yīng)用程序檢測相關(guān)的文獻(xiàn)較少,在根據(jù)現(xiàn)有資料進(jìn)行比較分析過后,本實驗?zāi)芨玫赝瓿蓯阂鈶?yīng)用程序檢測功能。

      本課題通過深度學(xué)習(xí)的方法,在SDN的惡意應(yīng)用程序檢測方面達(dá)到了一定的目的,并取得了較理想的效果。然而因為現(xiàn)在關(guān)于SDN惡意應(yīng)用程序的相關(guān)樣本還較少,準(zhǔn)確率最高能達(dá)到93.75%左右。

      4 結(jié) 語

      SDN作為一種新型網(wǎng)絡(luò)架構(gòu),是未來網(wǎng)絡(luò)的發(fā)展趨勢。但是現(xiàn)在針對于其安全性的研究還相對滯后,本文為SDN惡意應(yīng)用程序的檢測提供了一種新的方法,對SDN的安全防護(hù)具有參考意義。

      由于現(xiàn)在針對SDN網(wǎng)絡(luò)的惡意應(yīng)用程序還較少,因此檢測準(zhǔn)確率不夠高。隨著后續(xù)研究的推進(jìn),在收集大量SDN惡意應(yīng)用程序樣本之后,可繼續(xù)優(yōu)化和完善本檢測方法,并對本方法進(jìn)行驗證。對于切片提取的特征,由于樣本大小不同,提取特征多少也不同,本方案現(xiàn)在采用的方法是設(shè)置一個閾值,若樣本維數(shù)大于8×250,則刪掉多余部分,不足則補(bǔ)零,但是這樣的處理方式過于片面、簡單。而且本方案對于向量如何堆疊和排列成矩陣還有待進(jìn)一步研究,并作出數(shù)學(xué)方面嚴(yán)謹(jǐn)?shù)耐茖?dǎo)和證明。

      猜你喜歡
      應(yīng)用程序切片準(zhǔn)確率
      乳腺超聲檢查診斷乳腺腫瘤的特異度及準(zhǔn)確率分析
      健康之家(2021年19期)2021-05-23 11:17:39
      不同序列磁共振成像診斷脊柱損傷的臨床準(zhǔn)確率比較探討
      2015—2017 年寧夏各天氣預(yù)報參考產(chǎn)品質(zhì)量檢驗分析
      刪除Win10中自帶的應(yīng)用程序
      電腦報(2019年12期)2019-09-10 05:08:20
      高速公路車牌識別標(biāo)識站準(zhǔn)確率驗證法
      基于SDN與NFV的網(wǎng)絡(luò)切片架構(gòu)
      腎穿刺組織冷凍切片技術(shù)的改進(jìn)方法
      冰凍切片、快速石蠟切片在中樞神經(jīng)系統(tǒng)腫瘤診斷中的應(yīng)用價值比較
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      墨汁染色在組織切片中的應(yīng)用
      莲花县| 高雄县| 博乐市| 昌宁县| 阳春市| 庄河市| 敦煌市| 华容县| 页游| 昌图县| 县级市| 垣曲县| 武宁县| 兴安县| 类乌齐县| 温州市| 汝城县| 湄潭县| 区。| 南木林县| 潼关县| 华蓥市| 班玛县| 石嘴山市| 镇雄县| 阿瓦提县| 靖州| 开远市| 宜州市| 常德市| 华宁县| 夏邑县| 庆元县| 兴隆县| 舟曲县| 平江县| 郧西县| 富锦市| 陕西省| 亚东县| 都昌县|