《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于局部序列比對的漏洞挖掘技術(shù)研究
基于局部序列比對的漏洞挖掘技術(shù)研究
2017年微型機(jī)與應(yīng)用第3期
單路超1,,王建章2,許德森2,李東垣2,,趙鵬2,王國相1,,褚騰飛1
1.北京郵電大學(xué), 北京 100876; 2.中華通信系統(tǒng)有限責(zé)任公司,,北京 100070
摘要: 針對網(wǎng)絡(luò)協(xié)議漏洞挖掘系統(tǒng)在網(wǎng)絡(luò)協(xié)議格式分析過程中使用全局序列比對技術(shù)效率不高的問題,結(jié)合網(wǎng)絡(luò)漏洞挖掘背景,,對序列比對技術(shù)進(jìn)行深入分析,,提出了一種更為有效的基于局部序列比對算法的Fuzzing漏洞挖掘新方法。在獲取網(wǎng)絡(luò)協(xié)議格式分析的過程中,,提高漏洞挖掘效率,。仿真結(jié)果表明,該方法較全局序列比對方法在執(zhí)行效率上具有較為明顯的優(yōu)勢,。
Abstract:
Key words :

  路超1,,王建章2,許德森2,,李東垣2,,趙鵬2,王國相1,,褚騰飛1

  (1.北京郵電大學(xué), 北京 100876; 2.中華通信系統(tǒng)有限責(zé)任公司,,北京 100070)

       摘要:針對網(wǎng)絡(luò)協(xié)議漏洞挖掘系統(tǒng)在網(wǎng)絡(luò)協(xié)議格式分析過程中使用全局序列比對技術(shù)效率不高的問題,結(jié)合網(wǎng)絡(luò)漏洞挖掘背景,對序列比對技術(shù)進(jìn)行深入分析,,提出了一種更為有效的基于局部序列比對算法Fuzzing漏洞挖掘新方法,。在獲取網(wǎng)絡(luò)協(xié)議格式分析的過程中,提高漏洞挖掘效率,。仿真結(jié)果表明,,該方法較全局序列比對方法在執(zhí)行效率上具有較為明顯的優(yōu)勢。

  關(guān)鍵詞:漏洞挖掘,;Fuzzing,;局部序列比對;算法

  中圖分類號:TP309.2文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.03.001

  引用格式:單路超,,王建章,,許德森,,等.基于局部序列比對的漏洞挖掘技術(shù)研究[J].微型機(jī)與應(yīng)用,,2017,36(3):1-3,7.

0引言

  隨著網(wǎng)絡(luò)協(xié)議的發(fā)展,,在網(wǎng)絡(luò)應(yīng)用中,,網(wǎng)絡(luò)漏洞會出現(xiàn)在系統(tǒng)的軟件、硬件或協(xié)議中,。這種漏洞的出現(xiàn)會給用戶帶來巨大的損失,,因此漏洞挖掘被廣泛應(yīng)用在網(wǎng)絡(luò)系統(tǒng)中。漏洞挖掘技術(shù)主要包括手動測試,、Fuzzing算法分析[1],、靜態(tài)分析、比較分析和運行時分析技術(shù),。其中,,F(xiàn)uzzing算法由于其優(yōu)良的性能而被廣泛應(yīng)用在分布式網(wǎng)絡(luò)中。在對數(shù)據(jù)進(jìn)行檢查時,,運用的主要技術(shù)便是序列比對技術(shù),。序列比對,即按照實際需求,,對某兩個序列的相似性進(jìn)行考察,,具有非常大的現(xiàn)實意義[2]。根據(jù)比對范圍,,可以將序列比對劃分為全局比對和局部比對?,F(xiàn)在的漏洞挖掘系統(tǒng)中大量運用全局序列比對技術(shù)來進(jìn)行數(shù)據(jù)檢查。

  Smith和Waterman利用動態(tài)規(guī)劃思想,,將Needleman—Wunsch算法進(jìn)行改進(jìn),,提出了Smith—Wateman算法[3],兩條序列中,整體的相似性往往都不是很大,,可能只在某些局部區(qū)域有相似性,,因此局部序列比對要比全局序列比對效率更高。

  本文在Fuzzing網(wǎng)絡(luò)漏洞挖掘技術(shù)的常用框架基礎(chǔ)上,,基于已有技術(shù)和整體框架,,將部分序列比對算法應(yīng)用于漏洞挖掘中的報文協(xié)議格式分析過程,最后針對本文提出的新型網(wǎng)絡(luò)漏洞挖掘系統(tǒng),,完成實驗環(huán)境的搭建和系統(tǒng)的配置,,對改進(jìn)后的網(wǎng)絡(luò)漏洞挖掘系統(tǒng)性能進(jìn)行對比測試。

001.jpg

1網(wǎng)絡(luò)漏洞與Fuzzing技術(shù)

  本文主要研究的漏洞挖掘中的模糊測試技術(shù)(Fuzzing)屬于灰盒測試技術(shù),,通過向測試目標(biāo)程序發(fā)送大量的半有效數(shù)據(jù)并觀測輸出結(jié)果,,來發(fā)現(xiàn)目標(biāo)系統(tǒng)中存在的漏洞[4]。

  在利用Fuzzing技術(shù)進(jìn)行漏洞挖掘[5]時,,首先確定測試對象,,產(chǎn)生非預(yù)期數(shù)據(jù)構(gòu)造測試用例,啟動模糊測試,。然后對程序中出現(xiàn)的異常和錯誤進(jìn)行檢測和分析,。最后對于檢測出來的錯誤或異常,確定漏洞利用的可能性,。Fuzzing的工作流程如圖1所示,。

2網(wǎng)絡(luò)協(xié)議部分分式漏洞挖掘技術(shù)的原理

  通過構(gòu)造網(wǎng)絡(luò)協(xié)議漏洞挖掘測試器,經(jīng)過搭建系統(tǒng),、配置環(huán)境,、構(gòu)造測試用例、生成請求等過程,,完成會話控制腳本,。首先對網(wǎng)絡(luò)進(jìn)行協(xié)議分析,構(gòu)造測試用例保存在requests中,,編寫會話控制腳本,,最后開始Fuzzing測試。

  在實際網(wǎng)絡(luò)協(xié)議漏洞挖掘[6]過程中,,對網(wǎng)絡(luò)協(xié)議格式進(jìn)行解析是非常重要的一個環(huán)節(jié),。基于這種思想,,本文對傳統(tǒng)的模糊測試漏洞挖掘器進(jìn)行改進(jìn),,改進(jìn)后的模糊測試漏洞挖掘器結(jié)構(gòu)如圖2所示。

  

002.jpg

  目前應(yīng)用的網(wǎng)絡(luò)協(xié)議格式分析方法主要有兩種:基于軌跡的分析方法和基于數(shù)據(jù)流的分析方法,?;谲壽E的分析方法主要是通過動態(tài)污點分析技術(shù)對報文的解析過程進(jìn)行跟蹤,。

  本文主要對基于數(shù)據(jù)流的分析方法進(jìn)行研究和改進(jìn)?;跀?shù)據(jù)流的網(wǎng)絡(luò)協(xié)議分析方法主要通過對測試對象發(fā)送和接收數(shù)據(jù)包的屬性進(jìn)行測試,,得到網(wǎng)絡(luò)協(xié)議信息并構(gòu)造測試用例。本文中的網(wǎng)絡(luò)協(xié)議格式分析過程包括4個子過程:采集數(shù)據(jù)流,、初步處理,、數(shù)據(jù)報文分類、協(xié)議格式分析,。

  在進(jìn)行網(wǎng)絡(luò)協(xié)議格式解析之前,,先獲取大量數(shù)據(jù)流,對數(shù)據(jù)流進(jìn)行初步處理,,獲得初始報文序列,。然后利用匹配規(guī)則將得到的序列按照相似性進(jìn)行分組,用于格式分析,。最后,,通過改進(jìn)后的局部序列比對技術(shù),對報文格式進(jìn)行分析,。其中對網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行初步處理是網(wǎng)絡(luò)協(xié)議分析的重要前提,。數(shù)據(jù)報文分類過程是整個網(wǎng)絡(luò)協(xié)議分析過程的第二個關(guān)鍵步驟,它分為3個子過程:報文分析,、報文聚類、分類報文小組,。網(wǎng)絡(luò)協(xié)議格式分析的最后一個環(huán)節(jié)是網(wǎng)絡(luò)協(xié)議格式獲取,,前面的幾個步驟已經(jīng)將輸入的網(wǎng)絡(luò)數(shù)據(jù)流分成不同的報文小組,通過對接收到的報文進(jìn)行準(zhǔn)確分類以及對比分析,,最終可以得到報文的協(xié)議格式,。在網(wǎng)絡(luò)協(xié)議獲取過程中,利用序列比對算法將數(shù)據(jù)報文對齊,,對報文中含有的關(guān)鍵信息進(jìn)行識別和分析,,傳遞給Sulley框架,從而構(gòu)造出測試用例,,完成報文協(xié)議格式解析,。

  在網(wǎng)絡(luò)協(xié)議漏洞挖掘系統(tǒng)中,局部序列比對算法可以十分精確地找到序列間的最大匹配子序列,,這是全局比對算法無法做到的,。因此,本文在已有的網(wǎng)絡(luò)協(xié)議分析基礎(chǔ)上,,提出一種使用局部序列比對算法的網(wǎng)絡(luò)協(xié)議格式獲取過程,,提高序列比對效率,,從而加快網(wǎng)絡(luò)協(xié)議格式的獲取速度。

  全局序列比對著眼于兩個序列全長的最優(yōu)比對,,而局部序列比對則對序列之間的某個局部片段進(jìn)行檢測和比對,。本文提出的改進(jìn)型網(wǎng)絡(luò)協(xié)議漏洞挖掘技術(shù)將SmithWaterman動態(tài)規(guī)劃算法[7] 引入到網(wǎng)絡(luò)協(xié)議格式分析過程中,并對改進(jìn)后的漏洞挖掘系統(tǒng)性能進(jìn)行研究和分析,。

  SmithWaterman算法的主要思想為:對于給定的兩個序列M=m1 m2 m3…mn和 N=n1 n2 n3 …nm,,設(shè)序列M和序列N的相似度用之前設(shè)計好的計分函數(shù)σ(m, n)來表示,對插入,、刪除等操作賦予不同的分值[8],。對打分矩陣進(jìn)行初始化,使矩陣首行和首列元素為0,,即:

  G(i,0)=G(0,j)=0

  對于任意一個輸入序列,,都可以表示成k×1矩陣的形式。在進(jìn)行插入或刪除空格時,,不能出現(xiàn)全為空格的一列,。如果將對比之后的序列中的空格刪去,則能恢復(fù)成原序列,。

  對于兩個序列中的字母x,、y,設(shè)字母取值于集合Z,,在漏洞挖掘系統(tǒng)中,,Z可以設(shè)置為A~Z字母集合。設(shè)計一個計分函數(shù)σ(x, y),,用來表示兩個序列對比過程的得分,。

  BCEOH))A{N6[LQF8_GT~TBJ.png

  根據(jù)設(shè)計好的計分函數(shù),通過遞歸方法得到每次對比的分?jǐn)?shù),,存于得分矩陣G的相應(yīng)位置上,,初始化和計算得分矩陣的過程可以用如下等式表示:

  FV(]IQ2X[SY}Q~}}~_Q`PUC.png

  在上述計算得分矩陣G的等式中,(1)表示初始化過程,;(2)表示元素替換所帶入的計分函數(shù)數(shù)值,,此時指針移動方向為指向右下方;(3)表示插入空格所對應(yīng)的計分結(jié)果,,此時指針移動方向為向下,;(4)表示刪除空格所對應(yīng)的計分結(jié)果,此時指針方向為向右,。在進(jìn)行序列比對時,,將要比對的序列M和N寫在矩陣的兩側(cè),根據(jù)設(shè)計好的計分函數(shù),,將序列M和N中的元素依次相互比較,,將得分結(jié)果寫在打分矩陣G對應(yīng)的位置上,,某個位置的得分取元素替換、插入,、刪除3種操作中的分值最大者,,即按照左、上,、左上3個來源方向結(jié)合計分函數(shù)σ(x, y)對同一個位置進(jìn)行打分,分?jǐn)?shù)最大值即為這個位置的得分,。假設(shè)長度為i的序列,其插入損失為Wi,,對變量1≤x≤|M|,、1≤y≤|N|,打分矩陣的計分過程可以用如下公式表示:

  Gi,j=max{Gi-1,j-1+σ(mi,nj),,max{Gi-x,j-Wx},,max{Gi,j-y-Wy },0}

  因為局部序列比對只是對兩個完整序列的局部區(qū)域進(jìn)行比較,,因此在打分過程中,,將負(fù)數(shù)記為0不會影響最后比對結(jié)果。

  打分過程完成后,,開始進(jìn)行回溯過程,,尋找相似子序列。同樣因為局部序列沒有對兩個序列中的全部內(nèi)容進(jìn)行對比,,因此回溯過程不需要從打分矩陣的最右下角處開始,,只需要從得分最高的單元格開始即可。

  回溯過程規(guī)則如下:

 ?。?)從打分矩陣中的最高分單元格開始回溯,,此處即為兩個比對序列中的相似片段末端。

 ?。?)回溯方向有3個:上、左上,、左,。回溯到這3個方向?qū)?yīng)的下一個單元格中最大分?jǐn)?shù)的位置,。如果出現(xiàn)分?jǐn)?shù)一樣的情況,,左上的優(yōu)先級最高。

 ?。?)重復(fù)執(zhí)行(2),,直至無法找到下一個不為0的向上路徑。此時,,按照回溯路徑寫出的序列即為M,、N的最大相似子序列,。圖3SmithWaterman算法流程圖。

003.jpg

  SmithWaterman算法在填充打分矩陣時,,先將第一行和第一列元素置為0,,并且用0代替負(fù)分。在進(jìn)行回溯時,,從右下角最大正分值處開始,,尋找打分矩陣中每個正分值處的返回指針,直至無法找到下一個不為0的向上路徑為止,,如圖4所示,。回溯完成后,,根據(jù)回溯路徑即可得到最優(yōu)解,。比如輸入的兩個序列為:ABCDEDC、EBDAEDB時,,按照上述算法得到的比對結(jié)果為:BCD_ED;B_DAED,。

004.jpg

3算法的仿真和分析

  為了驗證在網(wǎng)絡(luò)協(xié)議漏洞挖掘系統(tǒng)中采用局部序列對比技術(shù)比全局序列對比技術(shù)性能更好,本文在兩臺PC上搭建實驗環(huán)境,,一臺提供服務(wù)器端和客戶端,,另一臺與之進(jìn)行通信交互。兩臺實驗PC連接如圖5所示,。PC1又分為主機(jī)和虛擬機(jī)兩部分,,分別負(fù)責(zé)構(gòu)造測試用例和系統(tǒng)服務(wù)器部分功能。PC2主要負(fù)責(zé)產(chǎn)生網(wǎng)絡(luò)協(xié)議解析模塊需要的網(wǎng)絡(luò)數(shù)據(jù)流,。實驗環(huán)境搭建好后,,將PC1與PC2進(jìn)行正常交互,捕捉網(wǎng)絡(luò)數(shù)據(jù)包,,然后進(jìn)行網(wǎng)絡(luò)協(xié)議格式解析,,構(gòu)造測試用例并完成會話腳本。接著啟動PC1中的虛擬機(jī)部分,,進(jìn)行相應(yīng)的配置,,開始模糊測試。本文設(shè)計的整個實驗系統(tǒng)應(yīng)用在網(wǎng)絡(luò)協(xié)議FTP測試中,,選用WarFTP服務(wù)器為測試對象,,通過測量協(xié)議格式分析中進(jìn)行序列對比的測試樣本長度及系統(tǒng)運行時間,可以得到改進(jìn)后的網(wǎng)絡(luò)協(xié)議漏洞挖掘系統(tǒng)與傳統(tǒng)漏洞挖掘系統(tǒng)性能對比結(jié)果,。

 

005.jpg

  本文以輸入序列程序運行時間作為判斷網(wǎng)絡(luò)協(xié)議漏洞挖掘系統(tǒng)性能的標(biāo)準(zhǔn),,對于輸入的固定長度報文序列,分別使用本文對比方法和傳統(tǒng)對比方法分析報文信息并構(gòu)造測試用例,,完成模糊測試,。對于固定長度的相同報文序列,,經(jīng)過不同序列比對方式會導(dǎo)致整個漏洞挖掘系統(tǒng)的程序運行時間不同,對比結(jié)果如圖6所示,。

006.jpg

  由圖6可以看出,,本文提出的改進(jìn)型網(wǎng)絡(luò)協(xié)議漏洞挖掘系統(tǒng)運行效率比傳統(tǒng)漏洞挖掘系統(tǒng)快,有效性和實用性更高,。

4結(jié)束語

  本文介紹了現(xiàn)有網(wǎng)絡(luò)協(xié)議漏洞挖掘技術(shù)的工作流程

  及模塊結(jié)構(gòu),,并對模糊測試的工作模式進(jìn)行闡述。在此基礎(chǔ)上,,對網(wǎng)絡(luò)協(xié)議漏洞挖掘過程中的網(wǎng)絡(luò)協(xié)議格式解析進(jìn)行優(yōu)化,,結(jié)合局部序列對比技術(shù),提高了整個網(wǎng)絡(luò)協(xié)議漏洞挖掘系統(tǒng)的工作效率,,最后對改進(jìn)的漏洞挖掘系統(tǒng)設(shè)計測試實驗,,驗證了本文所提新型漏洞挖掘方法在執(zhí)行效率上與傳統(tǒng)漏洞挖掘方法相比有一定的提高。

參考文獻(xiàn)

 ?。?] 史記, 曾昭龍, 楊從保,等. Fuzzing測試技術(shù)綜述[J].信息網(wǎng)絡(luò)安全, 2014(3):87-91.

 ?。?] 王櫻,李錫輝.多序列比對算法綜述[J].中國新通信, 2014(5):92-93.

  [3] LEE S T, LIN C Y, CHE L H. GPUbased cloud service for SmithWaterman algorithm using frequency distance filtration scheme[J]. BioMed Research International, 2013, 2013(1):721738.

 ?。?] 劉大光.基于模糊測試的網(wǎng)絡(luò)協(xié)議自動化漏洞挖掘工具設(shè)計與實現(xiàn)[D]. 北京:北京大學(xué), 2014.

 ?。?] 裘志慶, 宦飛. 基于網(wǎng)絡(luò)爬蟲和Fuzzing的漏洞挖掘檢測工具[J]. 微型電腦應(yīng)用, 2016, 32(3):73-76.

  [6] 潘道欣, 王軼駿, 薛質(zhì).基于網(wǎng)絡(luò)協(xié)議逆向分析的遠(yuǎn)程控制木馬漏洞挖掘[J]. 計算機(jī)工程, 2016, 42(2):146150.

 ?。?] LIU Y, HUANG W, JOHNSON J, et al. GPU accelerated SmithWaterman[J]. Lecture Notes in Computer Science, 2006, 3994:188-195.

 ?。?] GAO Y, HENDERSON M . Speeding up pairwise sequence alignments: a scoring scheme reweighting based approach[C]. Proceedings of the 7th IEEE International Conference on Bioinformatics and Bioengineering. Washington DC: IEEE Computer Society, 2007:11941198.

  [9] IBRAHIM A, ELSIMARY H, ALJUMAH A. Novel reconfigurable hardware accelerator for protein sequence alignment using SmithWaterman algorithm[J]. Ieice Transactions on Fundamentals of Electronics Communications & Computer Sciences, 2016, 99(3):683-690.

 ?。?0] Zhang Saidan, Zhang Luyong. Vulnerability mining for network protocols based on fuzzing[C]. Systems and Informatics (ICSAI), 2014 2nd IEEE International Conference,2014:644-648.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。