999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于啟發式搜索和分類樹的網絡協議模糊測試用例生成方法研究

2016-04-12 00:00:00劉靜靜袁耀東
現代電子技術 2016年21期

摘 要: 模糊測試通過向目標系統注入大量的非預期輸入找出系統漏洞,是安全檢測和漏洞挖掘的有效方法。針對網絡協議模糊測試的關鍵問題之一——測試用例生成方法進行研究,論述了網絡協議模糊測試的意義、方法和關鍵問題,在啟發式搜索算法和分類樹思想的基礎上提出了啟發式網絡協議模糊測試用例生成方法,分別選取模糊器Peach和FTP作為驗證平臺與目標協議,借助IDAPro工具提取啟發算子并將其寫入配置文件,用于指導目標協議測試用例的生成過程,通過測試結果分析驗證了啟發式網絡協議模糊測試用例生成方法的可行性與有效性。

關鍵詞: 網絡協議模糊測試; 測試用例生成; 啟發算子; Peach

中圖分類號: TN915.04?34; TM417 文獻標識碼: A 文章編號: 1004?373X(2016)21?0036?04

Research on network protocol fuzzy test case generation method

based on heuristic search and classification tree

LIU Jingjing1, 2, YUAN Yaodong2

(1. School of Information Engineering, Zhengzhou University, Zhengzhou 450000, China; 2. Zhengzhou Shuqing Medical College, Zhengzhou 450064, China)

Abstract: The fuzzy test is an effective method of security detection and vulnerability mining, which can find out the system vulnerabilities by means of injecting massive unexpected inputs to the target system. The test case generation method as one of the key issues of the network protocol fuzzy test is studied. The significance, method and key issues of network protocol fuzzy test are discussed. The heuristic network protocol fuzzy test case generation method is proposed based on the heuristic search algorithm and classification tree thought. The Peach and FTP are selected as the verification platform and target protocol respectively. The tool IDA Pro is used to extract the heuristic operator, and write it into the configuration file to guide the test case generation process of target protocal. The test result verified the feasibility and effectiveness of fuzzy test case generation method of heuristic network protocol.

Keywords: network protocol fuzzy test; test case generation; heuristic operator; Peach

0 引 言

隨著現代軟件產業的發展,軟件規模不斷擴大,其內部邏輯也變得更加復雜[1]。為了保證軟件的質量,軟件測試環節在軟件生命周期中占據非常重要的地位,但仍然不可能徹底消滅軟件中所有的邏輯缺陷。模糊測試通過向目標系統提供非預期的輸入并異常監視結果發現軟件漏洞,是安全檢測和漏洞挖掘的有效方法,也是近年來信息安全領域的研究熱點之一。網絡協議模糊測試發現的漏洞通常具有非常高的危險程度,所以被認為是多數安全研究者最感興趣的模糊測試類型[2]。在模糊測試的過程中,模糊測試數據生成和異常監視這兩個關鍵環節需要研究者給予特別關注。本文對網絡協議模糊測試用例生成方法[3]進行研究。

1 啟發式網絡協議模糊測試用例生成方法

1.1 網絡協議分類樹的構建過程

一棵網絡協議分類樹可以用五元組[PT=(P,F,A,V,R)]表示。其中根節點[P]代表測試目標網絡協議;[F]代表目標網絡協議的協議域,[F=field1,field2,field3,…,fieldn;][A]代表協議域互不相交的屬性,[A=A1?A2?…?][An=attribute11, attribute12, …, attribute1m1, …, attributen1,][attributen2,…,attributenmn;][V]代表協議域的屬性值,[V=][V11∪V12∪…V1m1∪V21∪V22∪…∪Vn1∪Vn2∪…∪][Vnmn=][valuevalue∈Vij且i=1,2,…,n,j=1,2,…,mi;][R]代表協議分類樹中父節點和子節點之間的關系,包括目標協議[P]與協議域[F]之間的關系、協議域[F]與屬性[A]之間的關系、屬性[A]與屬性值[V]之間的關系等,[R=][relation1,relation2,relation3,]其中[relation1=] [1≤i≤n,][relation2=1≤i≤n,1≤j≤mi,][relation3=1≤i≤n,1≤j≤mi,k∈N*。]

1.2 網絡協議模糊測試數據生成過程

基于分類樹的網絡協議模糊測試數據生成過程可以概括為四個步驟:

(1) 選定測試目標網絡協議[P,]并根據其規范劃分得到協議域集合[F=field1,field2,field3,…,fieldn,]該目標協議可以用[n]元序組[]表示。

(2) 針對步驟(1)中得到的每個協議域的屬性進行分類,得到描述協議域[fieldi]的屬性集合[Ai=attributei1,][attributei2,…,attributeimi,]其中每個屬性[attributeij]分別在離散的屬性值集合[Vij]中取值[(1≤i≤n,1≤j≤mi)。]

(3) 對每個協議域[fieldi]不同屬性的屬性值進行相互組合,得到面向該協議域的測試數據集合[Si=Vi1×][Vi2×…×Vimi(1≤i≤n) 。]

(4) 依次從面向協議域[fieldi]的測試數據集合[Si]中取值,對描述目標協議的[n]元序組進行展開,得到面向目標網絡協議的測試用例。

1.3 啟發算子在網絡協議分類樹中的引入

啟發式網絡協議模糊測試用例生成方法基于分類樹的網絡協議模糊測試數據生成過程中加入了啟發算子的定義,利用啟發算子演變得到啟發式規則,用于指導每個協議域的測試數據生成過程[4]。

結合文中給出的基于分類樹的網絡協議模糊測試數據生成的具體過程,需要在步驟(2)中增加獲取啟發算子的操作,用于對協議域屬性值集合[Vij]的精簡。由于應用啟發算子后并未對步驟(1)產生影響,而且該步驟的實現難度比較小,通常只需要對協議規范進行解讀便可以獲取用于描述目標協議的[n]元序組

啟發算子(Heuristic Operator)的定義可以用映射關系[fh:Vij→V*ij]描述。啟發算子的定義可以源于協議分類樹中父節點與子節點之間的關系集合[R,]也可以源于對目標網絡協議的協議規范分析,或者可以借助第三方工具進行提取[5]。

1.4 啟發式網絡協議模糊測試用例生成過程

啟發式網絡協議模糊測試用例生成過程需要利用啟發算子[h]實現協議域屬性值集合的精簡,為了方便具體的實現過程,可以把啟發算子寫入相應的配置文件[6]。

在配置文件啟發算子定義的基礎上可以演變得到形如“if…,then…”的啟發規則,用于剔除屬性值集合[Vij]中的無效值,從而得到精簡的屬性值集合[V*ij。]

面向協議域[fieldi]的測試數據集合[Si]的生成過程可以視作協議域的屬性值集合,進行笛卡爾乘積運算的過程,即[Si=Vi1×Vi2×…×Vimi(1≤i≤n)]。屬性值集合在應用啟發算子進行精簡之后元素個數減少,即[V*ij<][Vij][(1≤i≤n,1≤j≤mi)]。那么不難得出,精簡后面向協議域[fieldi]的測試數據集合滿足[S*i

任取[mi]元序組∈S*i,]對[n]元序組中的協議域[fieldi]進行替換,得到面向目標協議的一個測試用例,直至遍歷完每個協議域的測試數據集合。至此,得到面向測試目標網絡協議的測試用例的總數為[PT=1nS*i=S*1+S*2+S*3???+S*n]。

2 模糊測試用例生成方法的實現

2.1 驗證平臺網絡協議模糊器的選取

根據各網絡協議模糊器與驗證平臺選取標準的匹配結果可知,模糊器Peach和Sulley相對于SPIKE而言,更加符合本文對驗證平臺的選取標準。考慮到模糊器Peach相對于Sulley而言對測試執行前的準備工作要求更為簡單,而其維護更新情況更加頻繁,最終選取模糊器Peach作為啟發式網絡協議模糊測試用例生成方法的驗證平臺。

2.2 啟發式網絡協議模糊測試用例生成

2.2.1 目標協議與實施方案的選取

根據每個請求與之前的請求是否相關,可以把網絡協議分為無狀態協議(Stateless Protocol)和有狀態協議(Stateful Protocol)[7]。無狀態協議是指網絡協議的相鄰數據包之間沒有上下文的關聯性;有狀態協議是指相鄰的數據包之間具有上下文的關聯性。

在實際運用中,有狀態協議比無狀態協議的應用更加普遍。本文選取有狀態協議的典型代表FTP協議作為目標協議,對啟發式模糊測試用例生成方法進行實例驗證。FTP協議采用客戶端/服務器的工作模式,在現實世界具有極為廣泛的應用,選取FTP作為模糊測試目標協議不僅具有普遍的現實意義,同時還能與本文對啟發式模糊測試用例生成方法的描述結合起來,避免出現針對相同步驟的多次重復分析[8]。

從客戶端連接遠程FTP服務程序的過程可以分為建立連接、傳送數據、釋放連接三個階段,具體的通信過程可以描述為:

(1) 首先建立TCP連接,客戶端向FTP服務器發送USER命令表明身份;

(2) 然后服務器要求客戶端輸入密碼,客戶端發送PASS命令將密碼發送給服務器,服務器對客戶端進行身份認證;

(3) 身份認證通過后客戶端可以傳輸其他FTP命令進行文件操作,需要結束此次連接時用QUIT命令退出。

FTP客戶端與FTP服務器進行通信的過程中,首先生成一個TCP虛擬連接用于驗證控制信息,然后再生成一個單獨的TCP連接用于數據傳輸。具體如圖1所示。

圖1 FTP通信使用的兩個TCP連接

2.2.2 目標協議分類樹的構建

FTP命令可以表示為三元序組,協議域集合[FFTP=]{field1,field2,field3}。為了簡化處理過程,本文不再針對FTP命令三個協議域的各自特點進行研究,在劃分過程中做相同處理,得到內容和長度兩個屬性,即三個協議域field1,field2,field3均可以用二元組(內容,長度)進行描述。也就是說,attribute11=attribute21=attribute31=內容,attribute12=attribute22=attribute32=長度,那么不難得到三個協議域的屬性集合[A1=A2=A3=]{屬性,長度}。

2.2.3 啟發算子的抽取與啟發規則的定義

文中選取FTP作為目標協議對啟發式網絡協議模糊測試用例生成方法進行驗證,實現啟發算子的提取和定義之前,需要首先對FTP協議傳輸過程中的數據單位信息有所了解[9]。在計算機網絡中,對等層之間傳遞的數據單位稱為協議數據單元(Protocol Data Unit, PDU),OSI七層參考模型中的各層協議數據單元具體如表1所示。

目標協議FTP屬于OSI七層參考模型中的應用層協議,其協議數據單元是數據(Data),針對FTP協議的測試需要依托利用FTP協議進行通信的程序完成。本文借助IDA Pro工具實現針對測試目標程序的啟發算子的提取。利用IDA Pro工具提取啟發算子的具體操作步驟示意圖如圖2所示。

2.2.4 利用啟發算子指導測試數據的生成

啟發式網絡協議模糊測試用例生成方法中,啟發算子的引入是為了減小測試用例生成過程的搜索空間,實現網絡協議模糊測試用例生成過程的優化[10]。啟發算子配置文件constantList.conf和funcList.conf與具體的啟發規則之間的關系如圖3所示。

圖3 啟發算子及其配置文件與啟發規則的關系示意圖

在驗證平臺模糊器Peach完成對啟發算子配置文件的處理之后,就可以開始利用具體的啟發規則指導協議域測試數據的具體生成過程。啟發式的協議域測試數據由格式化字符串、普通字符串、整型值、不同編碼方式的字符串四個部分組成。

3 網絡協議模糊測試用例生成方法的驗證

3.1 模糊測試方案與環境要求

啟發式網絡協議模糊測試用例生成方法的實例驗證過程在Windows操作系統環境下進行。利用模糊器Peach2.3.8源碼在Windows平臺下執行模糊測試所依賴的工具或者庫,主要包括網絡封包抓取工具Winpcap、調試工具Windbg、Python擴展等,要求在測試開始之前完成相應的安裝準備工作。

測試實施方案示意圖如圖4所示。從圖4中可知,模糊器Peach扮演客戶端的角色對FTP服務端程序的安全性進行測試,而模糊器所集成的監控模塊在測試過程中用于收集測試目標的行為并分析判斷測試目標是否出現異常。

鑒于Open?FTPD1.2存在已知的安全漏洞,更適合作為模糊測試效果實例驗證的測試目標程序。采用該FTP服務端程序作為測試目標程序,在模糊器Peach的平臺上對啟發式網絡協議模糊測試用例生成方法的有效性進行驗證。考慮到模糊測試的執行時間,實例驗證過程只選擇FTP命令中最常用的USER命令進行測試,以簡化測試環節的處理。

利用模糊器Peach開始測試前,首先需要針對FTP服務端程序Open?FTPD定義相應的Pit文件openftp.xml,從而構造出完整的模糊器。Pit文件中DataModel元素用于對數據模型進行定義,包括數據結構和數據關系等,一個Pit文件中可以定義多個數據模型。

Pit文件中的Test元素用于定義測試配置信息,用于指定測試中所用的狀態模型StateModel,Publisher等信息。其中狀態模型用于描述如何與目標程序進行通信,而Publisher用于定義模糊器Peach的I/O連接,構造網絡協議數據流或者文件流等。

Pit文件中的Agent元素用于定義代理和監視器信息,指定模糊器Peach在測試執行過程中用于監視測試目標程序異常的調試器。每個Pit文件中可以定義多個Agent元素,每個Agent元素中可以定義多個Monitor。

3.2 實驗驗證與結果分析

3.2.1 模糊測試效率分析

利用模糊器Peach的語法命令“peach?cpeach_xml_file[run_name]”分別對應用啟發式模糊測試用例生成方法前后所生成的測試用例數量進行計算。根據運行結果可知,改進前的測試用例為12 966個,而改進后的數量減少到2 532個,僅為原有測試用例總數的19.5%,證明啟發式模糊測試用例生成方法有效地減少了用例生成的總數量。

模糊測試通過向目標程序注入大量的畸形數據試圖發現測試目標中存在的漏洞,測試用例的數量直接關系到模糊測試的執行時間,亦即模糊測試的效率。根據實驗結果可知,改進前的測試執行時間為10小時16分鐘28秒,而改進后的執行時間降低到22分鐘16秒,僅為改進前的測試執行時間的約3.6%,顯著提升了模糊測試的效率。

3.2.2 發現漏洞能力分析

針對OpenFTPD1.2執行模糊測試在應用啟發式模糊測試用例生成方法前后,均捕獲到的漏洞包括Tainted Data Controls Branch Selection和Tainted Data Passed To Function兩種類型,證明改進后的測試用例的有效性并沒有因為總數量的減少而削弱。

在能夠觸發測試目標程序異常的模糊測試用例數量方面,應用啟發式模糊測試用例生成方法前模糊器Peach觸發Tainted Data Controls Branch Selection異常的用例數量為2個,觸發Tainted Data Passed To Function異常的用例數量為18個。

應用啟發式模糊測試用例生成方法前模糊器Peach觸發Tainted Data Controls Branch Selection異常的用例數量為12個,觸發Tainted Data Passed To Function異常的用例數量為22個。

改進前觸發測試目標程序異常的測試用例總數為20個,占測試用例總數量的比例為[2012 966≈]0.15%;改進后觸發測試目標程序異常的測試用例總數為34個,占測試用例總數量的比例為[342 532≈]1.34%,有效測試用例的比例約為改進前的9倍,證明了啟發式模糊測試用例生成方法的有效性。

3.2.3 測試用例詳細分析

針對應用啟發式模糊測試用例生成方法前后的有效測試用例做詳細比較,可以把改動前后有效測試用例的存在情況分為三種情況,具體如表2所示。

4 結 論

本文在啟發式搜索算法和分類樹思想的基礎上提出了啟發式網絡協議模糊測試用例生成方法,并對該方法的可行性和有效性進行了實例驗證。文中對啟發式網絡協議模糊測試用例生成方法的研究仍然存在很多不足之處,目前尚未對OSI參考模型中其他層的網絡協議進行具體實現與驗證,需要在后續的研究過程中進行更加深入的探討,在具體實現和實例驗證的基礎上總結提取啟發式算子的常用方法。

參考文獻

[1] 李偉明,張愛芳,劉建財,等.網絡協議的自動化模糊測試漏洞挖掘方法[J].計算機學報,2011,34(2):242?255.

[2] 李卓君.一種新的協議安全漏洞檢測方法[J].計算機安全,2012(7):79?82.

[3] 張寶峰,張翀斌,許源.基于模糊測試的網絡協議漏洞挖掘[J].清華大學學報(自然科學版),2009,49(z2):2113?2118.

[4] 李玉,錢雪忠.啟發式遺傳算法求解兩兩組合測試用例集[J].計算機工程與設計,2011,32(5):1722?1724.

[5] 潘曉英,陳皓.基于組織進化粒子群優化的測試用例自動生成[J].計算機應用研究,2012,29(6):2065?2067.

[6] 田江,高熾揚,李亞偉.基于智能算法的測試數據自動生成模型研究[J].信息安全與技術,2010(11):27?29.

[7] 崔應霞,李龍澍,姚晟.組合測試用例集的動態生成算法[J].電子科技大學學報,2011,40(7):612?619.

[8] 黃玉涵,曾凡平,潘能剛,等.基于搜索算法的測試用例優化問題研究[J].小型微型計算機系統,2011,32(5):840?844.

[9] 游亮,盧炎生.測試用例集啟發式約簡算法分析與評價[J].計算機科學,2011,38(12):147?150.

[10] 劉龍霞,吳軍華.基于分類樹和貪心算法的測試數據自動生成方法[J].計算機工程與設計,2011,32(8):2734?2736.

主站蜘蛛池模板: 天天综合网色中文字幕| 国产一二视频| 婷婷久久综合九色综合88| 91麻豆精品国产91久久久久| 色综合综合网| 久久久久免费看成人影片| 亚洲高清资源| 在线精品视频成人网| 国产男人的天堂| AV不卡国产在线观看| 欧美日韩高清在线| 国产亚洲精品无码专| 日韩欧美网址| 夜夜拍夜夜爽| 国产成人精品一区二区免费看京| 四虎影视无码永久免费观看| 青青青国产在线播放| 欧美日韩免费| 亚洲免费三区| 久久久精品无码一区二区三区| 国产专区综合另类日韩一区 | 国产色网站| 污视频日本| 国产丝袜91| 精品小视频在线观看| 国产激情无码一区二区APP | 亚洲娇小与黑人巨大交| 朝桐光一区二区| 欧美综合成人| 青青热久免费精品视频6| 亚洲男女天堂| 色综合久久88色综合天天提莫 | 日韩无码视频专区| 国产成人综合久久精品下载| 自偷自拍三级全三级视频| 99久久精品免费看国产电影| 成人国产免费| 久久人人爽人人爽人人片aV东京热 | 国产99在线| 五月天综合婷婷| 亚洲色图另类| 超清无码熟妇人妻AV在线绿巨人| 色婷婷亚洲综合五月| 伊人色在线视频| 国产精品yjizz视频网一二区| 国产成人综合亚洲欧美在| 国产精品免费p区| 91香蕉国产亚洲一二三区| 亚洲人免费视频| 天天摸天天操免费播放小视频| 久久久久亚洲av成人网人人软件| 亚洲人成人无码www| 精品国产成人国产在线| 欧美日韩一区二区三区在线视频| 国产麻豆精品手机在线观看| 全色黄大色大片免费久久老太| 欧美一区二区人人喊爽| 免费中文字幕一级毛片| 91伊人国产| 国产精品毛片在线直播完整版| 丝袜无码一区二区三区| 亚洲浓毛av| 国产亚卅精品无码| 国产乱人视频免费观看| 国产欧美日韩资源在线观看| 久久国产高潮流白浆免费观看| 精品91视频| 天天躁狠狠躁| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 亚洲αv毛片| 欧美爱爱网| 国产麻豆va精品视频| 5388国产亚洲欧美在线观看| 女人18毛片一级毛片在线 | 久久综合伊人77777| 青青青视频蜜桃一区二区| 精品国产成人高清在线| 中文字幕无码电影| 久久国产精品嫖妓| 国产在线日本| 老熟妇喷水一区二区三区| 国产成人艳妇AA视频在线|