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

        ?

        利用字節(jié)模式二維特征的ROP鏈智能檢測方法*

        2023-09-28 07:21:30黃愷杰張夢杰劉星彤
        國防科技大學(xué)學(xué)報 2023年5期
        關(guān)鍵詞:漏報字節(jié)預(yù)處理

        王 劍,黃愷杰,張夢杰,劉星彤,楊 剛

        (國防科技大學(xué) 電子科學(xué)學(xué)院, 湖南 長沙 410073)

        數(shù)據(jù)執(zhí)行保護(data execution prevention,DEP)、地址空間布局隨機化(address space layout randomization,ASLR)等內(nèi)存防護機制的普遍應(yīng)用,使得傳統(tǒng)的代碼注入攻擊難以奏效。Shacham[1]提出了面向返回編程(return oriented programming,ROP)的概念,打破了傳統(tǒng)注入攻擊需要注入外部可執(zhí)行代碼的局限,通過選取并拼接目標(biāo)系統(tǒng)軟件內(nèi)存空間中的已有代碼片段(稱之為Gadget)來實現(xiàn)惡意功能。Gadget是目標(biāo)程序內(nèi)存空間已存在的以跳轉(zhuǎn)指令為結(jié)尾的代碼片段,可以實現(xiàn)內(nèi)存讀寫、數(shù)據(jù)處理、系統(tǒng)調(diào)用和函數(shù)調(diào)用等功能。Gadget是構(gòu)成ROP鏈的基本單元,ROP鏈通過拼接多個Gadget,完成惡意攻擊過程中的特定操作。由于ROP鏈中沒有顯性表示的惡意代碼,因此可以突破DEP的防護。ROP鏈在實際漏洞攻擊中通常作為攻擊代碼的重要組成部分,如在針對CVE-2014-0322、CVE-2016-10190、2021-22555、CVE-2022-0995等漏洞攻擊的代碼中均包含了ROP鏈[2]。

        ROP鏈的檢測分為動態(tài)檢測與靜態(tài)檢測:

        動態(tài)檢測通過建立蜜罐、沙箱等目標(biāo)環(huán)境,對外部輸入數(shù)據(jù)進(jìn)行動態(tài)執(zhí)行監(jiān)控,獲取其動態(tài)特征,如寄存器或內(nèi)存狀態(tài)、指令執(zhí)行狀態(tài)、控制流完整性等,采用行為規(guī)則匹配、執(zhí)行特性統(tǒng)計分析、內(nèi)存狀態(tài)推演等方法實現(xiàn)對ROP的檢測。DROP 基于動態(tài)二進(jìn)制插樁對代碼指令的執(zhí)行情況進(jìn)行監(jiān)控,通過檢查“ret”指令間隔的指令數(shù),判斷是否存在ROP惡意代碼片段[3]。蔣廉[4]使用基于內(nèi)核的虛擬機(kernel-based virtual machine,KVM),利用動態(tài)插樁,結(jié)合軟硬件分層過濾,嵌套檢測ROP攻擊。SCRAP在DROP的基礎(chǔ)上根據(jù)指令指針的跳轉(zhuǎn)行為定義攻擊行為簽名,利用簽名匹配檢測ROP攻擊[5]。Ropecker基于硬件輔助的最近分支記錄,通過識別間接分支跳轉(zhuǎn)的頻率實現(xiàn)對ROP攻擊的判定[6]。ROPdefender通過識別軟件控制流是否出現(xiàn)異常來檢測ROP攻擊[7]。CFIMon利用硬件輔助的方法監(jiān)控CPU指令執(zhí)行,檢測破壞控制流完整性的異常跳轉(zhuǎn)事件[8]。ROPDetector[9]和MIBChecker[10]利用硬件性能管理單元的事件觸發(fā)機制,針對預(yù)測失敗的分支進(jìn)行實時ROP檢測。ROPStop通過對間接分支跳轉(zhuǎn)事件的統(tǒng)計分析,有效地捕獲控制流異常事件,進(jìn)而識別ROP攻擊[11]。ROPscan推測性地驅(qū)動目標(biāo)進(jìn)程地址空間中已經(jīng)存在的代碼的執(zhí)行,并在運行時檢測ROP代碼的執(zhí)行[12]。動態(tài)檢測方法能夠得到較為可靠的檢測結(jié)果,但其需要構(gòu)建目標(biāo)軟件動態(tài)環(huán)境并監(jiān)控執(zhí)行樣本的動態(tài)特征,存在環(huán)境構(gòu)建困難、算法開銷大、應(yīng)用部署復(fù)雜等缺點。

        靜態(tài)檢測根據(jù)ROP在數(shù)據(jù)層面上的取值范圍和具體數(shù)值的排布順序,基于特征碼匹配、字節(jié)流統(tǒng)計分析、模擬執(zhí)行推演等方法直接分析流量數(shù)據(jù)以實現(xiàn)對ROP攻擊的檢測。EavesROP利用滑動窗口篩選潛在的可疑數(shù)據(jù)段,并使用快速傅里葉變換匹配濾波的方式對網(wǎng)絡(luò)流量中的疑似地址值與已知庫文件中的Gadget地址值進(jìn)行匹配,以發(fā)現(xiàn)ROP攻擊[13]。Strop根據(jù)Gadget地址的統(tǒng)計特征,如靜態(tài)地址數(shù)量、靜態(tài)地址距離、相同地址數(shù)量、地址范圍等,實現(xiàn)對ROP鏈的檢測[14]。DeepReturn采用反匯編的方法分析可疑ROP攻擊鏈,并將其編碼輸入到卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行分類檢測[15]。ROPminer通過在目標(biāo)代碼段和動態(tài)鏈接庫中收集可能的Gadget,學(xué)習(xí)ROP組件的字節(jié)取值特性和組件次序,并運用隱性馬爾可夫模型實現(xiàn)對輸入數(shù)據(jù)流的檢測[16]。Code-Stop通過模擬執(zhí)行數(shù)據(jù)中的可疑Gadget地址,對比其語義是否類似調(diào)用Windows特定函數(shù)時對寄存器的賦值模式,從而判斷是否存在ROP攻擊[17]。靜態(tài)檢測方法較之動態(tài)檢測方法具有開銷小、架構(gòu)簡單、部署方便等優(yōu)點,但是當(dāng)前的靜態(tài)檢測方法一方面依賴程序內(nèi)存地址的上下文信息,包括特殊的函數(shù)調(diào)用地址信息或是受保護進(jìn)程的內(nèi)存地址信息,方法的泛用性較差;另一方面存在檢測效率低、真實ROP攻擊檢測性能差等問題。

        本文提出一種基于字節(jié)模式二維特征的ROP鏈檢測方法。該方法基于ROP鏈的字節(jié)波動特征,通過序列抽取、滑動分組、數(shù)值量化,將輸入的一維流量數(shù)據(jù)轉(zhuǎn)換為二維特征向量,保留了更多的數(shù)據(jù)信息,并采用卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)對ROP鏈的檢測。該方法解決了現(xiàn)有方法地址內(nèi)存信息依賴的問題,無須考慮目標(biāo)系統(tǒng)環(huán)境,包括操作系統(tǒng)版本、目標(biāo)軟件版本,且具有較高的檢測準(zhǔn)確率、較低的時間開銷和系統(tǒng)開銷。

        1 ROP鏈檢測模型

        1.1 模型設(shè)計

        本文提出的模型適用于32位和64位操作系統(tǒng)。為便于理解,下面以4 B地址空間的32位操作系統(tǒng)為例進(jìn)行闡述。檢測模型的總體方案如圖1所示,包含數(shù)據(jù)準(zhǔn)備、數(shù)據(jù)預(yù)處理、模型訓(xùn)練和模型檢測四個部分。數(shù)據(jù)準(zhǔn)備主要是建立ROP流量數(shù)據(jù)集和非ROP流量數(shù)據(jù)集;數(shù)據(jù)預(yù)處理部分將流量數(shù)據(jù)包的有效載荷轉(zhuǎn)換為類灰度圖像的二維數(shù)值矩陣;模型訓(xùn)練部分將經(jīng)過預(yù)處理后的數(shù)值矩陣輸入到神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練;模型檢測部分將測試數(shù)據(jù)預(yù)處理后輸入到測試模型中,從而得到所屬類別。神經(jīng)網(wǎng)絡(luò)模型相較于傳統(tǒng)數(shù)學(xué)模型以及機器學(xué)習(xí)模型具有更強的特征提取能力,能夠自動地、智能地提取類灰度圖像的二維數(shù)值矩陣特征。同時基于神經(jīng)網(wǎng)絡(luò)的檢測模型具有優(yōu)秀的魯棒性和泛化性,對于未出現(xiàn)在訓(xùn)練集的新ROP鏈具有良好的檢測性能。因此,采用神經(jīng)網(wǎng)絡(luò)模型對ROP鏈進(jìn)行檢測。

        圖1 模型設(shè)計總體方案Fig.1 General design program of the model

        1.2 數(shù)據(jù)集構(gòu)建

        當(dāng)前,ROP鏈的檢測還沒有可用的公開數(shù)據(jù)集。ROPgadget[18]、Ropper[19]等工具能自動生成ROP鏈。但是一方面這些工具生成ROP鏈的方法過于標(biāo)準(zhǔn)化,使得生成的不同ROP鏈所包含的Gadget數(shù)量區(qū)別不大;另一方面用于生成ROP鏈的Gadget通常選自同一代碼段,功能較為單一。因此采用這些工具生成的ROP鏈并不能很好地反映真實ROP鏈的特點,不適合神經(jīng)網(wǎng)絡(luò)模型的學(xué)習(xí)訓(xùn)練。

        由于構(gòu)成ROP鏈的Gadget的第一字節(jié)與其他字節(jié)的分布差異大,因此本文基于ROP鏈所在區(qū)域的字節(jié)波動特征實現(xiàn)對ROP攻擊的檢測,并通過對真實ROP鏈進(jìn)行分析,依據(jù)真實ROP鏈的結(jié)構(gòu)特點來構(gòu)建數(shù)據(jù)集。ROP鏈數(shù)據(jù)的生成方式是將真實Gadget的首字節(jié)與三個隨機的字節(jié)組合形成擴展的Gadget,并將若干個擴展Gadget拼接組成ROP鏈。通過從CVE和Expliot Database等收集并分析大量真實攻擊樣本,發(fā)現(xiàn)ROP鏈中Gadget的選擇來源往往小于6個不同的代碼區(qū)域。為提高模型檢測能力,本數(shù)據(jù)集提取了10個不同首字節(jié)的代碼地址段,每個代碼段有64 MB的地址空間。研究表明,在x86架構(gòu)下,攻擊者實現(xiàn)簡單的條件轉(zhuǎn)移邏輯也需要串接11個不同的 Gadget[20],因此本數(shù)據(jù)集設(shè)定ROP鏈包含Gadget的數(shù)量在10~50個不等。ROP鏈數(shù)據(jù)集的構(gòu)建如表1所示,ROP鏈的長度表示其包含的Gadget數(shù)量,地址段數(shù)表示ROP鏈包含的Gadget的地址段數(shù)量,如:地址段數(shù)為1表示Gadget都處于相同的地址段,其對應(yīng)的首字節(jié)相同;地址段數(shù)為2表示ROP鏈中的Gadget有2個不同的首字節(jié)。該數(shù)據(jù)集既考慮了ROP鏈的長度,又考慮了Gadget的地址范圍,總樣本量在12 000以上,能滿足神經(jīng)網(wǎng)絡(luò)訓(xùn)練需求。

        表1 ROP鏈數(shù)據(jù)集Tab.1 ROP chains data set

        正常流量數(shù)據(jù)由USTC-TFC數(shù)據(jù)集構(gòu)建[21]。USTC-TFC數(shù)據(jù)集包含異常流量和正常流量兩部分,本文選用其中的正常流量部分進(jìn)行實驗,包含點對點(peer-to-peer,P2P)流量、多媒體流量、文件傳輸流量、電子郵件流量等。

        1.3 數(shù)據(jù)預(yù)處理

        ROP鏈包含Gadget內(nèi)存地址和填充數(shù)據(jù)兩種數(shù)據(jù),均為4 B,因此ROP鏈在流量中表現(xiàn)為多個4 B數(shù)據(jù)組成的代碼串。ROP鏈的核心單元是Gadget,它的字節(jié)數(shù)值表示所調(diào)用的代碼段在內(nèi)存空間的具體位置。ROP鏈具有明顯的字節(jié)模式特征,即當(dāng)Gadget是從同一個代碼段或相鄰代碼段中選取時,Gadget的第一個字節(jié)數(shù)值大小相同或相近,且Gadget后三個字節(jié)的數(shù)值是隨機的[17]?;赗OP鏈的字節(jié)模式特征,本文采用順序抽取的方法將流量數(shù)據(jù)分成四組,并采用滑動窗口進(jìn)行數(shù)值量化,最后將一維流量數(shù)據(jù)轉(zhuǎn)化為二維矩陣,共4個步驟,如圖2所示。

        圖2 二維特征數(shù)據(jù)預(yù)處理Fig.2 Preprocessing of two-dimensional feature data

        Step1:對待測流量數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化清洗。去除數(shù)據(jù)包協(xié)議頭部,保留有效負(fù)載,輸出流量序列T。假定序列T總長4n,舍棄多余的字節(jié)。

        Step2:將ROP鏈中所有Gadget字節(jié)有序分離并組合。將流量序列T從首字節(jié)開始,以0、1、2、3順序依次標(biāo)號,并將同一標(biāo)號數(shù)據(jù)組合為一組,共輸出4組數(shù)據(jù)T1、T2、T3、T4。經(jīng)過第二步操作,ROP鏈中的Gadget的首字節(jié)一定屬于這4組數(shù)據(jù)中的某一組,這組數(shù)據(jù)的數(shù)值變化較小,波動平穩(wěn)。另外3組數(shù)據(jù)分別包含Gadget的后3 B,其數(shù)值波動較大。

        Step3:在T1、T2、T3、T4上選取窗長為L、步長為1的滑動窗口,對滑動窗口內(nèi)的字節(jié)波動大小進(jìn)行量化,量化方式有類化、熵化、擬熵化等。類化是統(tǒng)計滑動窗口內(nèi)不同字節(jié)數(shù)值的個數(shù),熵化是計算滑動窗口內(nèi)字節(jié)的熵值,擬熵化是對熵化的改進(jìn)。H1(x)、H2(x)、H3(x)分別表示采用類化、熵化、擬熵化的滑動窗口內(nèi)的波動量化值。

        H1(x)=n

        (1)

        (2)

        (3)

        其中,n表示滑動窗口內(nèi)不同字節(jié)數(shù)值的個數(shù),p(xi)表示滑動窗口內(nèi)不同字節(jié)出現(xiàn)的次數(shù)。

        Step4:單步滑動窗口,輸出4組數(shù)據(jù)S1、S2、S3、S4,輸出序列長度為365,長度不足則補零,疊加組合輸出矩陣S。這一步是得到神經(jīng)網(wǎng)絡(luò)所用的標(biāo)準(zhǔn)數(shù)據(jù),對數(shù)據(jù)進(jìn)行疊加組合可以提取數(shù)據(jù)邊緣信息。

        本文所提數(shù)據(jù)預(yù)處理方法,是在分析ROP鏈中Gadget不同字節(jié)波動特征的基礎(chǔ)上,通過序列抽取的方式,并結(jié)合滑動窗口對數(shù)據(jù)進(jìn)行量化,從而實現(xiàn)數(shù)據(jù)特征的有效提取。該方法將一維流量數(shù)據(jù)轉(zhuǎn)為類灰度圖像的二維數(shù)值矩陣,包含了更為豐富的數(shù)據(jù)信息,且不需要預(yù)知目標(biāo)軟件的地址信息。

        1.4 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

        ROP鏈在網(wǎng)絡(luò)流量中的局部特征明顯,且ROP鏈的檢測結(jié)果與其在流量中的位置無關(guān)。卷積神經(jīng)網(wǎng)絡(luò)具有很強的局部上下文特征提取能力,并具有平移不變性的特點。經(jīng)實驗驗證,卷積神經(jīng)網(wǎng)絡(luò)在ROP鏈檢測任務(wù)中的準(zhǔn)確率優(yōu)于深度神經(jīng)網(wǎng)絡(luò)以及循環(huán)神經(jīng)網(wǎng)絡(luò)。因此,將卷積神經(jīng)網(wǎng)絡(luò)作為檢測模型。

        ROP鏈的檢測有實時性要求。本文設(shè)計了簡單且輕量級的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),交替使用卷積層和池化層提取局部特征并減少模型參數(shù),同時應(yīng)用Dropout正則化增強模型對噪聲的魯棒性。檢測模型的結(jié)構(gòu)如圖3所示。輸入8×365的定長二維數(shù)值矩陣,在第1個二維卷積層中先對輸入進(jìn)行卷積,卷積核為3×3,共16個通道,生成16個長為6×363的特征圖。然后通過二維池化核2×2的最大池化層生成16個長為3×181的特征圖。在第2個二維卷積層中,卷積核為3×3,共32個通道,生成32個長為2×181的特征圖,然后通過二維池化核2×2的最大池化層,生成32個長為1×90的特征圖。完成上述操作后,將特征序列展平,通過兩個全連接層將序列依次轉(zhuǎn)換為128和1。模型使用的超參數(shù)如下:使用參數(shù)為0.6的Dropout正則化,輸出層采用Sigmoid函數(shù)作為激活函數(shù),其他層使用ReLU函數(shù)作為激活函數(shù),ReLU函數(shù)沒有復(fù)雜的指數(shù)運算,計算簡單、運算效率高。學(xué)習(xí)率設(shè)為1×10-4,訓(xùn)練輪次為30,訓(xùn)練總參數(shù)為37萬余個,損失函數(shù)采用二分類交叉熵?fù)p失函數(shù)。

        圖3 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Structure of convolutional neural network

        2 實驗分析

        2.1 數(shù)據(jù)預(yù)處理參數(shù)選擇實驗

        滑動窗口長度L以及量化邊界D是影響模型數(shù)據(jù)預(yù)處理效果的兩個關(guān)鍵特征。為探究這兩個變量對算法性能的影響,依據(jù)相鄰代碼段首字節(jié)數(shù)值大小相近的特點,設(shè)置了長度范圍為5~24和量化邊界為0~3的循環(huán)實驗,共80個訓(xùn)練模型進(jìn)行性能對比,對比結(jié)果如圖4~6所示。

        圖4 窗口長度與量化邊界對準(zhǔn)確率的影響Fig.4 Influence of window length and quantization boundary on accuracy rate

        圖5 窗口長度與量化邊界對誤報率的影響Fig.5 Influence of window length and quantization boundary on false alarm rate

        圖6 窗口長度與量化邊界對漏報率的影響Fig.6 Influence of window length and quantization boundary on miss alarm rate

        總體來講,采用不同窗長和量化邊界均能有效區(qū)分ROP鏈,準(zhǔn)確率在94%以上,最高可達(dá)99.4%。通過對不同窗長和量化邊界的模型性能進(jìn)行分析,可以發(fā)現(xiàn):當(dāng)窗長大于15時,模型的準(zhǔn)確率下降較快,且量化邊界越大準(zhǔn)確率越低;當(dāng)窗長大于12時,模型的漏報率上升明顯,且量化邊界越大漏報率越高;模型的誤報率受窗口長度和量化邊界的影響較小;當(dāng)窗長大于18時,模型性能波動劇烈,因為窗長過長容易涵蓋ROP鏈區(qū)域外的正常流量字節(jié),造成模型性能不穩(wěn)定。模擬訓(xùn)練時的損失函數(shù)收斂曲線如圖7所示,隨著訓(xùn)練輪次的增加,檢測準(zhǔn)確率穩(wěn)定上升,誤差損失值平穩(wěn)下降。

        圖7 損失函數(shù)收斂曲線Fig.7 Loss function convergence curve

        2.2 模型性能評價實驗

        實驗使用的神經(jīng)網(wǎng)絡(luò)框架為TensorFlow。實驗硬件GPU為GeForce RTX 3060 Laptop,CPU為11th Gen Intel(R) Core(TM) i7-11800H@2.30 GHz,內(nèi)存為16 GB。

        實驗選取長度在150~1 550范圍內(nèi)的數(shù)據(jù)包,滑動窗口長度設(shè)為12。為驗證不同預(yù)處理方法模型的檢測效率,將數(shù)據(jù)包分別輸入采用不同量化方法的二維特征檢測模型中,測算從數(shù)據(jù)輸入到檢測結(jié)果輸出的時間開銷,實驗結(jié)果如圖8所示,圖中散點表示對于單個數(shù)據(jù)包檢測的時間開銷,而直線是對這些單個數(shù)據(jù)包檢測開銷的擬合結(jié)果。三種量化方式的時間開銷均在0.14 s以內(nèi),類化方式所用時間開銷明顯低于熵化和擬熵化,類化方式大部分?jǐn)?shù)據(jù)包的檢測時間在0.1 s以內(nèi),擬熵化模型次之,熵化模型時間開銷最大。

        圖8 不同量化方法的時間開銷Fig.8 Time costs of different quantization methods

        為驗證數(shù)據(jù)預(yù)處理的有效性,開展了未經(jīng)數(shù)據(jù)預(yù)處理的源數(shù)據(jù)和數(shù)據(jù)預(yù)處理后數(shù)據(jù)的模型性能對比實驗,如圖9所示。實驗結(jié)果表明:經(jīng)過數(shù)據(jù)預(yù)處理后,模型的準(zhǔn)確率提升9.9%,誤報率降低5.7%,漏報率降低14.1%,充分驗證了數(shù)據(jù)預(yù)處理方法和檢測模型的有效性。

        (a) 準(zhǔn)確率對比(a) Accuracy rate comparison

        (c) 漏報率對比(c) Miss alarm rate comparison圖9 二維特征預(yù)處理前后模型性能對比Fig.9 Comparison of model performance before and after two-dimensional feature preprocessing

        為驗證模型對真實ROP鏈的檢測性能,分別選取ROPgadget、Exploit Database、CVE中的ROP鏈進(jìn)行檢測實驗。通過ROPgadget生成的ROP鏈188個,分別模擬10次攻擊。Exploit Database漏洞庫中漏洞利用程序的ROP鏈共計445個,分別模擬10次攻擊。在Github中收集的CVE漏洞利用程序的ROP鏈49個,分別模擬100次攻擊。實驗表明,經(jīng)過數(shù)據(jù)預(yù)處理后的模型具有較強的泛化性能,能夠以極低的漏報率實現(xiàn)對真實ROP鏈的有效檢出,而未經(jīng)數(shù)據(jù)預(yù)處理的模型漏報率非常高,如表2所示。實驗發(fā)現(xiàn)一個有趣的結(jié)果,兩種模型檢測由ROPgadget工具產(chǎn)生的ROP鏈的漏報率均為0,因為ROP鏈自動生成工具的生成邏輯往往會遵循某些固定范式,產(chǎn)生的ROP鏈也非常規(guī)范,容易被檢測。如果采用此類工具產(chǎn)生的ROP鏈來訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,模型的訓(xùn)練性能非常好,但是實際檢測性能往往非常差。

        表2 不同來源真實ROP鏈檢測的漏報率Tab.2 False negative rate of real-world ROP chains

        2.3 模型能力探究實驗

        ROP鏈的長度決定了目標(biāo)區(qū)域的長度,其長度越長,特征也越明顯。以往的研究很少關(guān)注ROP鏈的長度對模型性能的影響。實驗分析二維特征檢測模型對6個分組(每個分組的地址段數(shù)不同,如表1所示)中不同長度(10~30)ROP鏈的檢測能力(用漏報率衡量)。模型類別采用L-D表示,L為窗長,D為量化邊界。選用最高準(zhǔn)確率模型12-0、最短窗長模型5-0和較長窗長模型17-0進(jìn)行實驗。由于量化邊界為0時,模型性能較優(yōu),因此模型的量化邊界統(tǒng)一選擇為0。

        實驗表明窗長和地址段數(shù)對模型的檢出性能影響較大,如圖10所示,隨著ROP鏈長度的增加,漏報率均可降低至1%以下。在窗長相同的情況下,地址段數(shù)越多,則模型漏報率越高、波動越大,因為地址段數(shù)越多,ROP鏈的字節(jié)特征與正常流量字節(jié)特征更接近。窗長越短,模型對于不同地址段數(shù)的漏報率的波動越大,因為短窗口對連續(xù)區(qū)域的波動量化能力有限,無法很好地規(guī)避波動干擾。窗長越長,模型對于不同地址段數(shù)的漏報率變化趨勢越相似,因為長的窗口可以抵消地址段數(shù)增加帶來的負(fù)面影響。

        (a) 5-0模型(a) 5-0 model

        (c) 17-0模型(c) 17-0 model圖10 模型漏報率Fig.10 Miss alarm rate of model

        2.4 對比分析實驗

        ROPminer、SPRT[22]、DeepReturn等模型雖然具有較高的準(zhǔn)確率,但這些方法都依賴程序的內(nèi)存地址信息。本文提出的方法與已有方法最關(guān)鍵的區(qū)別在于不依賴程序的內(nèi)存地址信息,具有更低的復(fù)雜度和更廣泛的應(yīng)用場景,對比數(shù)據(jù)如表3所示。雖然Strop方法也不依賴內(nèi)存地址信息,但該方法對于68個ROP樣本僅檢測到51個,漏報率高達(dá)25%。本文方法、SPRT和ROPminer都是完全靜態(tài)的方法,僅根據(jù)網(wǎng)絡(luò)數(shù)據(jù)流就可實現(xiàn)ROP鏈的檢測。DeepReturn需要對流量字節(jié)進(jìn)行反匯編,雖然其誤報率較低,但該方法需要結(jié)合內(nèi)存地址信息,通用性較差。SPRT和本文方法探索了ROP鏈長度對算法性能的影響。在SPRT中,當(dāng)訓(xùn)練數(shù)據(jù)集ROP鏈長度為10~50時,準(zhǔn)確率僅為93.2%;當(dāng)訓(xùn)練數(shù)據(jù)集ROP鏈長度為20~100時,準(zhǔn)確率才達(dá)到99.0%。本文方法在訓(xùn)練數(shù)據(jù)集ROP鏈長度為10~50時,準(zhǔn)確率可達(dá)99.4%。因此本文方法在檢測較短長度的ROP鏈時具有更高的準(zhǔn)確率。Strop、ROPminer、DeepReturn等方法均采用真實ROP樣本驗證方法的有效性,但本文用于實驗驗證的真實樣本數(shù)量遠(yuǎn)多于其他方法。以上方法中,ROPminer進(jìn)行了時間開銷實驗,單文件的時間開銷為0.9 s,本文方法的時間開銷在0.1 s以內(nèi)。

        表3 與現(xiàn)有方法的對比分析Tab.3 Comparison with existing methods

        3 結(jié)論

        本文提出了一種基于字節(jié)模式二維特征的ROP鏈檢測方法,首先對原始流量數(shù)據(jù)包進(jìn)行數(shù)據(jù)清洗,然后對清洗后的數(shù)據(jù)進(jìn)行序列抽取,經(jīng)滑動窗口采樣后對數(shù)據(jù)進(jìn)行量化處理,將輸入的一維數(shù)據(jù)轉(zhuǎn)換為二維特征向量,并采用卷積神經(jīng)網(wǎng)絡(luò)模型實現(xiàn)對ROP鏈的檢測。該方法能自動從樣本中提取ROP鏈字節(jié)模式二維特征,并具有良好的泛化能力,能檢測訓(xùn)練集中未出現(xiàn)過的新ROP鏈。模型的檢測準(zhǔn)確率達(dá)到99.4%,單數(shù)據(jù)包的時間開銷在0.1 s以內(nèi),且模型對真實ROP樣本的測試漏報率接近于0,相較于Strop、ROPminer、SPRT等傳統(tǒng)方法,在檢測性能上具有明顯優(yōu)勢。同時,該方法可直接對流量數(shù)據(jù)進(jìn)行檢測,不需要預(yù)知代碼段加載內(nèi)存地址,部署方便并具有良好的可解釋性。下一步將深入分析不同類型漏洞樣本的特征,建立更為豐富的漏洞攻擊樣本庫,并研究基于語義分析的檢測模型,進(jìn)一步提高模型的泛化性能,以及模型對不同類型漏洞攻擊的檢測能力。

        猜你喜歡
        漏報字節(jié)預(yù)處理
        No.8 字節(jié)跳動將推出獨立出口電商APP
        No.10 “字節(jié)跳動手機”要來了?
        基于預(yù)處理MUSIC算法的分布式陣列DOA估計
        簡談MC7字節(jié)碼
        各類氣體報警器防誤報漏報管理系統(tǒng)的應(yīng)用
        淺談PLC在預(yù)處理生產(chǎn)線自動化改造中的應(yīng)用
        絡(luò)合萃取法預(yù)處理H酸廢水
        基于自適應(yīng)預(yù)處理的改進(jìn)CPF-GMRES算法
        傳染病漏報原因分析及對策
        日本廠商在美漏報事故千余起被指管理疏漏
        亚洲精品中文字幕乱码无线| 五月天激情小说| 亚洲精品国产一二三无码AV| 国产一区二区在线观看视频免费| 人妻一区二区三区在线看| 亚洲av综合av一区| 国产乱子伦精品免费无码专区 | 日韩极品免费在线观看| 加勒比特在线视频播放| 扒开美女内裤舔出白水| 国产精品视频永久免费播放| 一本一道人人妻人人妻αv| 黑人巨大白妞出浆| 亚洲免费视频网站在线| 熟女不卡精品久久av| 大地资源网在线观看免费官网| 日躁夜躁狠狠躁2001| 国产欧美日韩在线观看一区二区三区| 日韩精品一区二区三区视频| 阴唇两边有点白是怎么回事| 吃奶呻吟打开双腿做受视频| 欧美日韩不卡合集视频| 纯肉无遮挡H肉动漫在线观看国产| 久久综合这里只有精品| 亚洲 小说区 图片区 都市| 亚洲av无码精品色午夜| 99热这里只有精品国产99热门精品| 一区二区特别黄色大片| 中文字幕人妻一区二区二区| 国产一区二区三区小说| 国内精品无码一区二区三区| 日日躁欧美老妇| 青青草小视频在线观看| 少妇高潮喷水久久久影院| 999精品全免费观看视频| 国产一区二三区中文字幕| 五月天中文字幕日韩在线| 成人午夜福利视频后入| 麻豆av传媒蜜桃天美传媒| 日本少妇比比中文字幕| 国产在线av一区二区|