基于啟發(fā)式搜索和分類樹(shù)的網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法研究_第1頁(yè)
基于啟發(fā)式搜索和分類樹(shù)的網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法研究_第2頁(yè)
基于啟發(fā)式搜索和分類樹(shù)的網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法研究_第3頁(yè)
基于啟發(fā)式搜索和分類樹(shù)的網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法研究_第4頁(yè)
基于啟發(fā)式搜索和分類樹(shù)的網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法研究_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于啟發(fā)式搜索和分類樹(shù)的網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法研究 基于啟發(fā)式搜索和分類樹(shù)的網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法研究 引 言 隨著現(xiàn)代軟件產(chǎn)業(yè)的發(fā)展,軟件規(guī)模不斷擴(kuò)大,其內(nèi)部邏輯也變得更加復(fù)雜1。為了保證軟件的質(zhì)量,軟件測(cè)試環(huán)節(jié)在軟件生命周期中占據(jù)非常重要的地位,但仍然不可能徹底消滅軟件中所有的邏輯缺陷。模糊測(cè)試通過(guò)向目標(biāo)系統(tǒng)提供非預(yù)期的輸入并異常監(jiān)視結(jié)果發(fā)現(xiàn)軟件漏洞,是安全檢測(cè)和漏洞挖掘的有效方法,也是近年來(lái)信息安全領(lǐng)域的研究熱點(diǎn)之一。網(wǎng)絡(luò)協(xié)議模糊測(cè)試發(fā)現(xiàn)的漏洞通常具有非常高的危險(xiǎn)程度,所以被認(rèn)為是多數(shù)安全研究者最感興趣的模糊測(cè)試類型2。在模糊測(cè)試的過(guò)程中,模糊測(cè)試數(shù)據(jù)生成和異常監(jiān)視這兩個(gè)關(guān)鍵

2、環(huán)節(jié)需要研究者給予特別關(guān)注。本文對(duì)網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法3進(jìn)行研究。 1 啟發(fā)式網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法 網(wǎng)絡(luò)協(xié)議分類樹(shù)的構(gòu)建過(guò)程 一棵網(wǎng)絡(luò)協(xié)議分類樹(shù)可以用五元組PT=表示。其中根節(jié)點(diǎn)P代表測(cè)試目標(biāo)網(wǎng)絡(luò)協(xié)議;F代表目標(biāo)網(wǎng)絡(luò)協(xié)議的協(xié)議域,F(xiàn)=field1,field2,field3,fieldn;A代表協(xié)議域互不相交的屬性,A=A1?A2?An=attribute11, attribute12, , attribute1m1, , attributen1,attributen2,attributenmn;V代表協(xié)議域的屬性值,V=V11V12V1m1V21V22Vn1Vn2Vnmn=v

3、aluevalueVij且i=1,2,n,j=1,2,mi;R代表協(xié)議分類樹(shù)中父節(jié)點(diǎn)和子節(jié)點(diǎn)之間的關(guān)系,包括目標(biāo)協(xié)議P與協(xié)議域F之間的關(guān)系、協(xié)議域F與屬性A之間的關(guān)系、屬性A與屬性值V之間的關(guān)系等,R=relation1,relation2,relation3,其中relation1= 1in,relation2=1in,1jmi,relation3=1in,1jmi,kN*。 1.網(wǎng)絡(luò)協(xié)議模糊測(cè)試數(shù)據(jù)生成過(guò)程 基于分類樹(shù)的網(wǎng)絡(luò)協(xié)議模糊測(cè)試數(shù)據(jù)生成過(guò)程可以概括為四個(gè)步驟: 選定測(cè)試目標(biāo)網(wǎng)絡(luò)協(xié)議P,并根據(jù)其規(guī)范劃分得到協(xié)議域集合F=field1,field2,field3,fieldn,該目標(biāo)協(xié)

4、議可以用n元序組表示。 針對(duì)步驟中得到的每個(gè)協(xié)議域的屬性進(jìn)行分類,得到描述協(xié)議域fieldi的屬性集合Ai=attributei1,attributei2,attributeimi,其中每個(gè)屬性attributeij分別在離散的屬性值集合Vij中取值。 對(duì)每個(gè)協(xié)議域fieldi不同屬性的屬性值進(jìn)行相互組合,得到面向該協(xié)議域的測(cè)試數(shù)據(jù)集合Si=Vi1Vi2Vimi 。 依次從面向協(xié)議域fieldi的測(cè)試數(shù)據(jù)集合Si中取值,對(duì)描述目標(biāo)協(xié)議的n元序組進(jìn)行展開(kāi),得到面向目標(biāo)網(wǎng)絡(luò)協(xié)議的測(cè)試用例。 1.啟發(fā)算子在網(wǎng)絡(luò)協(xié)議分類樹(shù)中的引入 啟發(fā)式網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法基于分類樹(shù)的網(wǎng)絡(luò)協(xié)議模糊測(cè)試數(shù)據(jù)生成

5、過(guò)程中加入了啟發(fā)算子的定義,利用啟發(fā)算子演變得到啟發(fā)式規(guī)則,用于指導(dǎo)每個(gè)協(xié)議域的測(cè)試數(shù)據(jù)生成過(guò)程4。 結(jié)合文中給出的基于分類樹(shù)的網(wǎng)絡(luò)協(xié)議模糊測(cè)試數(shù)據(jù)生成的具體過(guò)程,需要在步驟中增加獲取啟發(fā)算子的操作,用于對(duì)協(xié)議域?qū)傩灾导蟅ij的精簡(jiǎn)。由于應(yīng)用啟發(fā)算子后并未對(duì)步驟產(chǎn)生影響,而且該步驟的實(shí)現(xiàn)難度比較小,通常只需要對(duì)協(xié)議規(guī)范進(jìn)行解讀便可以獲取用于描述目標(biāo)協(xié)議的n元序組。 啟發(fā)算子的定義可以用映射關(guān)系fh:VijV*ij描述。啟發(fā)算子的定義可以源于協(xié)議分類樹(shù)中父節(jié)點(diǎn)與子節(jié)點(diǎn)之間的關(guān)系集合R,也可以源于對(duì)目標(biāo)網(wǎng)絡(luò)協(xié)議的協(xié)議規(guī)范分析,或者可以借助第三方工具進(jìn)行提取5。 1.啟發(fā)式網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成

6、過(guò)程 啟發(fā)式網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成過(guò)程需要利用啟發(fā)算子h實(shí)現(xiàn)協(xié)議域?qū)傩灾导系木?jiǎn),為了方便具體的實(shí)現(xiàn)過(guò)程,可以把啟發(fā)算子寫(xiě)入相應(yīng)的配置文件6。 在配置文件啟發(fā)算子定義的基礎(chǔ)上可以演變得到形如“if,then”的啟發(fā)規(guī)則,用于剔除屬性值集合Vij中的無(wú)效值,從而得到精簡(jiǎn)的屬性值集合V*ij。 面向協(xié)議域fieldi的測(cè)試數(shù)據(jù)集合Si的生成過(guò)程可以視作協(xié)議域的屬性值集合,進(jìn)行笛卡爾乘積運(yùn)算的過(guò)程,即Si=Vi1Vi2Vimi。屬性值集合在應(yīng)用啟發(fā)算子進(jìn)行精簡(jiǎn)之后元素個(gè)數(shù)減少,即V*ij任取mi元序組S*i,對(duì)n元序組中的協(xié)議域fieldi進(jìn)行替換,得到面向目標(biāo)協(xié)議的一個(gè)測(cè)試用例,直至遍歷完每個(gè)

7、協(xié)議域的測(cè)試數(shù)據(jù)集合。至此,得到面向測(cè)試目標(biāo)網(wǎng)絡(luò)協(xié)議的測(cè)試用例的總數(shù)為PT=1nS*i=S*1+S*2+S*3?+S*n。 模糊測(cè)試用例生成方法的實(shí)現(xiàn) 驗(yàn)證平臺(tái)網(wǎng)絡(luò)協(xié)議模糊器的選取 根據(jù)各網(wǎng)絡(luò)協(xié)議模糊器與驗(yàn)證平臺(tái)選取標(biāo)準(zhǔn)的匹配結(jié)果可知,模糊器Peach和Sulley相對(duì)于SPIKE而言,更加符合本文對(duì)驗(yàn)證平臺(tái)的選取標(biāo)準(zhǔn)??紤]到模糊器Peach相對(duì)于Sulley而言對(duì)測(cè)試執(zhí)行前的準(zhǔn)備工作要求更為簡(jiǎn)單,而其維護(hù)更新情況更加頻繁,最終選取模糊器Peach作為啟發(fā)式網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法的驗(yàn)證平臺(tái)。 2.啟發(fā)式網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成 目標(biāo)協(xié)議與實(shí)施方案的選取 根據(jù)每個(gè)請(qǐng)求與之前的請(qǐng)求是否相關(guān),

8、可以把網(wǎng)絡(luò)協(xié)議分為無(wú)狀態(tài)協(xié)議和有狀態(tài)協(xié)議7。無(wú)狀態(tài)協(xié)議是指網(wǎng)絡(luò)協(xié)議的相鄰數(shù)據(jù)包之間沒(méi)有上下文的關(guān)聯(lián)性;有狀態(tài)協(xié)議是指相鄰的數(shù)據(jù)包之間具有上下文的關(guān)聯(lián)性。 在實(shí)際運(yùn)用中,有狀態(tài)協(xié)議比無(wú)狀態(tài)協(xié)議的應(yīng)用更加普遍。本文選取有狀態(tài)協(xié)議的典型代表FTP協(xié)議作為目標(biāo)協(xié)議,對(duì)啟發(fā)式模糊測(cè)試用例生成方法進(jìn)行實(shí)例驗(yàn)證。FTP協(xié)議采用客戶端/服務(wù)器的工作模式,在現(xiàn)實(shí)世界具有極為廣泛的應(yīng)用,選取FTP作為模糊測(cè)試目標(biāo)協(xié)議不僅具有普遍的現(xiàn)實(shí)意義,同時(shí)還能與本文對(duì)啟發(fā)式模糊測(cè)試用例生成方法的描述結(jié)合起來(lái),避免出現(xiàn)針對(duì)相同步驟的多次重復(fù)分析8。 從客戶端連接遠(yuǎn)程FTP服務(wù)程序的過(guò)程可以分為建立連接、傳送數(shù)據(jù)、釋放連接三個(gè)階

9、段,具體的通信過(guò)程可以描述為: 首先建立TCP連接,客戶端向FTP服務(wù)器發(fā)送USER命令表明身份; 然后服務(wù)器要求客戶端輸入密碼,客戶端發(fā)送PASS命令將密碼發(fā)送給服務(wù)器,服務(wù)器對(duì)客戶端進(jìn)行身份認(rèn)證; 身份認(rèn)證通過(guò)后客戶端可以傳輸其他FTP命令進(jìn)行文件操作,需要結(jié)束此次連接時(shí)用QUIT命令退出。 FTP客戶端與FTP服務(wù)器進(jìn)行通信的過(guò)程中,首先生成一個(gè)TCP虛擬連接用于驗(yàn)證控制信息,然后再生成一個(gè)單獨(dú)的TCP連接用于數(shù)據(jù)傳輸。具體如圖1所示。 圖1 FTP通信使用的兩個(gè)TCP連接 目標(biāo)協(xié)議分類樹(shù)的構(gòu)建 FTP命令可以表示為三元序組,協(xié)議域集合FFTP=field1,field2,field3。

10、為了簡(jiǎn)化處理過(guò)程,本文不再針對(duì)FTP命令三個(gè)協(xié)議域的各自特點(diǎn)進(jìn)行研究,在劃分過(guò)程中做相同處理,得到內(nèi)容和長(zhǎng)度兩個(gè)屬性,即三個(gè)協(xié)議域field1,field2,field3均可以用二元組進(jìn)行描述。也就是說(shuō),attribute11=attribute21=attribute31=內(nèi)容,attribute12=attribute22=attribute32=長(zhǎng)度,那么不難得到三個(gè)協(xié)議域的屬性集合A1=A2=A3=屬性,長(zhǎng)度。 啟發(fā)算子的抽取與啟發(fā)規(guī)則的定義 文中選取FTP作為目標(biāo)協(xié)議對(duì)啟發(fā)式網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法進(jìn)行驗(yàn)證,實(shí)現(xiàn)啟發(fā)算子的提取和定義之前,需要首先對(duì)FTP協(xié)議傳輸過(guò)程中的數(shù)據(jù)單位信

11、息有所了解9。在計(jì)算機(jī)網(wǎng)絡(luò)中,對(duì)等層之間傳遞的數(shù)據(jù)單位稱為協(xié)議數(shù)據(jù)單元,OSI七層參考模型中的各層協(xié)議數(shù)據(jù)單元具體如表1所示。 目標(biāo)協(xié)議FTP屬于OSI七層參考模型中的應(yīng)用層協(xié)議,其協(xié)議數(shù)據(jù)單元是數(shù)據(jù),針對(duì)FTP協(xié)議的測(cè)試需要依托利用FTP協(xié)議進(jìn)行通信的程序完成。本文借助IDA Pro工具實(shí)現(xiàn)針對(duì)測(cè)試目標(biāo)程序的啟發(fā)算子的提取。利用IDA Pro工具提取啟發(fā)算子的具體操作步驟示意圖如圖2所示。 利用啟發(fā)算子指導(dǎo)測(cè)試數(shù)據(jù)的生成 啟發(fā)式網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法中,啟發(fā)算子的引入是為了減小測(cè)試用例生成過(guò)程的搜索空間,實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成過(guò)程的優(yōu)化10。啟發(fā)算子配置文件和與具體的啟發(fā)規(guī)則之間

12、的關(guān)系如圖3所示。 圖啟發(fā)算子及其配置文件與啟發(fā)規(guī)則的關(guān)系示意圖 在驗(yàn)證平臺(tái)模糊器Peach完成對(duì)啟發(fā)算子配置文件的處理之后,就可以開(kāi)始利用具體的啟發(fā)規(guī)則指導(dǎo)協(xié)議域測(cè)試數(shù)據(jù)的具體生成過(guò)程。啟發(fā)式的協(xié)議域測(cè)試數(shù)據(jù)由格式化字符串、普通字符串、整型值、不同編碼方式的字符串四個(gè)部分組成。 網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法的驗(yàn)證 模糊測(cè)試方案與環(huán)境要求 啟發(fā)式網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法的實(shí)例驗(yàn)證過(guò)程在Windows操作系統(tǒng)環(huán)境下進(jìn)行。利用模糊器源碼在Windows平臺(tái)下執(zhí)行模糊測(cè)試所依賴的工具或者庫(kù),主要包括網(wǎng)絡(luò)封包抓取工具Winpcap、調(diào)試工具Windbg、Python擴(kuò)展等,要求在測(cè)試開(kāi)始之前完成相

13、應(yīng)的安裝準(zhǔn)備工作。 測(cè)試實(shí)施方案示意圖如圖4所示。從圖4中可知,模糊器Peach扮演客戶端的角色對(duì)FTP服務(wù)端程序的安全性進(jìn)行測(cè)試,而模糊器所集成的監(jiān)控模塊在測(cè)試過(guò)程中用于收集測(cè)試目標(biāo)的行為并分析判斷測(cè)試目標(biāo)是否出現(xiàn)異常。 鑒于Open?存在已知的安全漏洞,更適合作為模糊測(cè)試效果實(shí)例驗(yàn)證的測(cè)試目標(biāo)程序。采用該FTP服務(wù)端程序作為測(cè)試目標(biāo)程序,在模糊器Peach的平臺(tái)上對(duì)啟發(fā)式網(wǎng)絡(luò)協(xié)議模糊測(cè)試用例生成方法的有效性進(jìn)行驗(yàn)證??紤]到模糊測(cè)試的執(zhí)行時(shí)間,實(shí)例驗(yàn)證過(guò)程只選擇FTP命令中最常用的USER命令進(jìn)行測(cè)試,以簡(jiǎn)化測(cè)試環(huán)節(jié)的處理。 利用模糊器Peach開(kāi)始測(cè)試前,首先需要針對(duì)FTP服務(wù)端程序Ope

14、n?FTPD定義相應(yīng)的Pit文件,從而構(gòu)造出完整的模糊器。Pit文件中DataModel元素用于對(duì)數(shù)據(jù)模型進(jìn)行定義,包括數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)關(guān)系等,一個(gè)Pit文件中可以定義多個(gè)數(shù)據(jù)模型。 Pit文件中的Test元素用于定義測(cè)試配置信息,用于指定測(cè)試中所用的狀態(tài)模型StateModel,Publisher等信息。其中狀態(tài)模型用于描述如何與目標(biāo)程序進(jìn)行通信,而Publisher用于定義模糊器Peach的I/O連接,構(gòu)造網(wǎng)絡(luò)協(xié)議數(shù)據(jù)流或者文件流等。 Pit文件中的Agent元素用于定義代理和監(jiān)視器信息,指定模糊器Peach在測(cè)試執(zhí)行過(guò)程中用于監(jiān)視測(cè)試目標(biāo)程序異常的調(diào)試器。每個(gè)Pit文件中可以定義多個(gè)Age

15、nt元素,每個(gè)Agent元素中可以定義多個(gè)Monitor。 3.實(shí)驗(yàn)驗(yàn)證與結(jié)果分析 模糊測(cè)試效率分析 利用模糊器Peach的語(yǔ)法命令“peach?cpeach_xml_filerun_name”分別對(duì)應(yīng)用啟發(fā)式模糊測(cè)試用例生成方法前后所生成的測(cè)試用例數(shù)量進(jìn)行計(jì)算。根據(jù)運(yùn)行結(jié)果可知,改進(jìn)前的測(cè)試用例為1966個(gè),而改進(jìn)后的數(shù)量減少到232個(gè),僅為原有測(cè)試用例總數(shù)的%,證明啟發(fā)式模糊測(cè)試用例生成方法有效地減少了用例生成的總數(shù)量。 模糊測(cè)試通過(guò)向目標(biāo)程序注入大量的畸形數(shù)據(jù)試圖發(fā)現(xiàn)測(cè)試目標(biāo)中存在的漏洞,測(cè)試用例的數(shù)量直接關(guān)系到模糊測(cè)試的執(zhí)行時(shí)間,亦即模糊測(cè)試的效率。根據(jù)實(shí)驗(yàn)結(jié)果可知,改進(jìn)前的測(cè)試執(zhí)行時(shí)

16、間為10小時(shí)16分鐘28秒,而改進(jìn)后的執(zhí)行時(shí)間降低到22分鐘16秒,僅為改進(jìn)前的測(cè)試執(zhí)行時(shí)間的約%,顯著提升了模糊測(cè)試的效率。 發(fā)現(xiàn)漏洞能力分析 針對(duì)執(zhí)行模糊測(cè)試在應(yīng)用啟發(fā)式模糊測(cè)試用例生成方法前后,均捕獲到的漏洞包括Tainted Data Controls Branch Selection和Tainted Data Passed To Function兩種類型,證明改進(jìn)后的測(cè)試用例的有效性并沒(méi)有因?yàn)榭倲?shù)量的減少而削弱。 在能夠觸發(fā)測(cè)試目標(biāo)程序異常的模糊測(cè)試用例數(shù)量方面,應(yīng)用啟發(fā)式模糊測(cè)試用例生成方法前模糊器Peach觸發(fā)Tainted Data Controls Branch Selection異常的用例數(shù)量為2個(gè),觸發(fā)Tainted Data Passed To Function異常的用例數(shù)量為18個(gè)。 應(yīng)用啟發(fā)式模糊測(cè)試用例生成方法前模糊器Peach觸發(fā)Tainted Data Controls Branch Selection異常的用例數(shù)量為12個(gè),觸發(fā)Tainted Data Passed To Function異常的用例數(shù)量為22個(gè)。 改進(jìn)前觸發(fā)測(cè)試目標(biāo)程序異常的測(cè)試用例總數(shù)為20個(gè),占測(cè)試用例總數(shù)量的比例為201966%;改進(jìn)后觸發(fā)測(cè)試目標(biāo)程序異常的測(cè)試用例總數(shù)為34個(gè),占測(cè)試用例總數(shù)量的比例為34232%,有效測(cè)試用例的比例約為改進(jìn)前的9倍,證明了啟發(fā)式模糊測(cè)試

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論