基于Peach平臺(tái)的漏洞定位與快速重現(xiàn)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是指漏桐挖掘技術(shù)中的化ZZ測(cè)試領(lǐng)域,為化ach 模糊測(cè)試平臺(tái)增加了漏桐定位與快速重現(xiàn)的方法
【背景技術(shù)】
[0002] 軟件產(chǎn)業(yè)的蓬勃發(fā)展是信息化應(yīng)用能夠如此豐富的主要原因,但同時(shí)也帶來了軟 件漏桐數(shù)量的激增,近年來,由于軟件漏桐被惡意利用而引發(fā)的重大信息安全事件越來越 多,因此,提前發(fā)現(xiàn)設(shè)備或軟件的漏桐,對(duì)減少漏桐的危害、降低信息系統(tǒng)運(yùn)營(yíng)成本將會(huì)起 到良好作用。利用Fuzz測(cè)試技術(shù)進(jìn)行漏桐挖掘是目前工業(yè)界普遍采用的一種策略。
[0003] 目前可用作漏桐挖掘的開源的模糊測(cè)試框架,其代表工具有SPIKE,Auto化fe,GPF 和化adi等。SPIKE是采用C語言來編寫的,它提供了一個(gè)API W用于快速有效的開發(fā)網(wǎng)絡(luò)協(xié) 議模糊器但缺乏對(duì)微軟Windows的支持;AutoDafe可W被描述為SPIKE的換代產(chǎn)品,被用來 對(duì)網(wǎng)絡(luò)協(xié)議和文件格式進(jìn)行模糊測(cè)試,但缺乏對(duì)微軟Windows的支持可能會(huì)限制該框架的 某些應(yīng)用;GPF被設(shè)計(jì)為一個(gè)通用的模糊器,同SPIKE不一樣,它可W生成無限數(shù)量的變異, 但由于其所具有的復(fù)雜性,掌握GPF所需要的學(xué)習(xí)曲線是非常漫長(zhǎng)的;Peach是可證明的最 為靈活的一個(gè)模糊測(cè)試框架,并且最大程度的促進(jìn)了代碼的重用。
[0004] Peach是一個(gè)遵守MIT開源許可證的模糊測(cè)試框架,同其他可用的模糊測(cè)試框架相 比,Peach是最為靈活的一個(gè)框架,并且在最大程度上促進(jìn)了代碼的重用。Peach框架允許研 究者關(guān)注于一個(gè)給定對(duì)象的單獨(dú)的子部分,然后再將他們結(jié)合在一起創(chuàng)建一個(gè)完整的模 糊器。在測(cè)試的整個(gè)過程中,Peach與Monitor交互來維持對(duì)被測(cè)設(shè)備或軟件的控制,并接受 關(guān)于被測(cè)設(shè)備或軟件當(dāng)前狀態(tài)的信息。用戶需要為Monitor指定一個(gè)化ach監(jiān)視器處理(啟 動(dòng)/停止)和監(jiān)視被測(cè)的程序。每次迭代后,Peach請(qǐng)求Monitor檢測(cè)是否有錯(cuò)誤(典型的錯(cuò)誤 是程序崩潰)出現(xiàn)。如果化ach接收到一個(gè)肯定的回答,例如程序崩潰,其將請(qǐng)求Monitor發(fā) 送與錯(cuò)誤相關(guān)的可見信息。為了滿足化ach的要求,Monitor需要實(shí)現(xiàn)特定的獲取運(yùn)些消息 的方法。
[000引本發(fā)明的出發(fā)點(diǎn)是為化adi增加了漏桐定位與快速重現(xiàn)的功能:Peach在測(cè)試的過 程中,由Monitor來監(jiān)測(cè)被測(cè)設(shè)備或軟件的運(yùn)行狀態(tài),當(dāng)監(jiān)測(cè)到有錯(cuò)誤出現(xiàn)時(shí),將調(diào)用定位 模塊來確定導(dǎo)致被測(cè)設(shè)備或軟件出現(xiàn)異常的數(shù)據(jù)報(bào)文,定位成功之后,然后調(diào)用"--range M,N"(其中N含Μ)命令直接使用指定的崎形數(shù)據(jù)包報(bào)文對(duì)設(shè)備或軟件進(jìn)行定向測(cè)試,從而實(shí) 現(xiàn)漏桐快速重現(xiàn)的功能。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明在于提供一種支持化ach平臺(tái)漏桐定位與快速重現(xiàn)的方法,W解 決在測(cè)試過程中發(fā)現(xiàn)設(shè)備或軟件異常,則要么使其設(shè)備恢復(fù)正常狀態(tài)重新測(cè)試,要么是人 工手動(dòng)的一個(gè)測(cè)試用例一個(gè)測(cè)試用例的嘗試?yán)速M(fèi)了大量的時(shí)間和人力的問題。應(yīng)用本發(fā)明 的定位模塊算法,使得化ach能夠快速精確定位崎形數(shù)據(jù)包的位置,大大提高了工作效率。
[0007] 為解決上述問題,本發(fā)明提供一種基于Peach平臺(tái)的漏桐定位與快速重現(xiàn)的方 法,包括:Peach平臺(tái)的運(yùn)行機(jī)制W及Moni tor探測(cè)的原理;增加對(duì)Moni tor模塊的支持,使得 Peach在測(cè)試過程中能夠調(diào)用定位模塊;發(fā)現(xiàn)被測(cè)設(shè)備或軟件出現(xiàn)異常后,直接啟動(dòng)定位模 塊來確定觸發(fā)異常的崎形數(shù)據(jù)包,然后利用崎形數(shù)據(jù)包報(bào)文對(duì)異常情況進(jìn)行快速重現(xiàn)。
[0008] 定位模塊的算法是基于回溯算法的思想,W當(dāng)前迭代器iterator的值N為起始點(diǎn) 進(jìn)行回溯,每10個(gè)測(cè)試用例為一組,逐一進(jìn)行運(yùn)行,直到精確定位到觸發(fā)漏桐的崎形數(shù)據(jù)包 的位置。
[0009]
[0010] 定位模塊返回的iterator的值可W被直接調(diào)用,實(shí)現(xiàn)漏桐的快速重現(xiàn)。具體格式 為"--range iterator, iterator+X"(其中X = 0,l,2...),當(dāng)漏桐只由一個(gè)崎形數(shù)據(jù)包觸發(fā) 時(shí),X = 〇;當(dāng)漏桐有X+1個(gè)連續(xù)崎形數(shù)據(jù)包觸發(fā)時(shí),就要運(yùn)行多個(gè)數(shù)據(jù)包,此時(shí)X為大于0的正 整數(shù)。
[0011] 在論述調(diào)用定位模塊實(shí)現(xiàn)機(jī)制過程中,本專利描述了Peach內(nèi)部定義并調(diào)用 Monitor的機(jī)制。測(cè)試人員可W根據(jù)具體的測(cè)試需求(多少個(gè)測(cè)試用例探測(cè)一次被測(cè)設(shè)備或 軟件的狀態(tài),探測(cè)的過程中等待被測(cè)設(shè)備或軟件的響應(yīng)時(shí)間),靈活地通過自定義的 Monitor實(shí)現(xiàn)更高效的工作狀態(tài),而不必拘泥于原有的Monitor的默認(rèn)值。
[0012] 本發(fā)明的方法在基于Peach平臺(tái)提供漏桐定位與快速重現(xiàn)功能的同時(shí),也更好的 提高了挖掘被測(cè)設(shè)備或軟件漏桐的效率。且方法簡(jiǎn)單有效,便于實(shí)施操作。
【附圖說明】
[0013] 此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā) 明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0014] 圖1 Peach平臺(tái)測(cè)試過程中監(jiān)測(cè)器工作結(jié)構(gòu)圖;
[001引圖2實(shí)施本發(fā)明的示意圖;
[0016] 圖則則試PDU對(duì)應(yīng)的PitFile文件。
【具體實(shí)施方式】
[0017] 為清楚說明本發(fā)明的技術(shù)方案,下面給出具體的實(shí)現(xiàn)方式:Peach調(diào)用與自定義 Monitor的機(jī)制;支持定位模塊按照既定的算法對(duì)被測(cè)設(shè)備或軟件進(jìn)行測(cè)試;支持 range Μ,N"命令對(duì)漏桐進(jìn)行快速重現(xiàn)。
[0018] Peach測(cè)試過程中的監(jiān)測(cè)器的功能是由其源代碼Agent目錄下的Monitor的子類實(shí) 現(xiàn)的,在PitFile文件中,通過在<4邑6111:〉標(biāo)簽下,〈Monitor class =…〉中引入Monitor子 類,則會(huì)調(diào)用對(duì)應(yīng)的Monitor進(jìn)行探測(cè)。在測(cè)試的過程中,Monitor通過發(fā)送正常的報(bào)文來獲 取被測(cè)設(shè)備或軟件的響應(yīng)報(bào)文,從而達(dá)到監(jiān)測(cè)的目的。測(cè)試人員可W在Monitor目錄下根據(jù) 需要擴(kuò)展自定義的Monitor,重新編譯源碼后即可使用,從而方便靈活的基于Peach進(jìn)行測(cè) 試。
[0019] 在定位模塊進(jìn)行工作的過程中,能夠使系統(tǒng)按照指定的測(cè)試用例進(jìn)行測(cè)試,我們 是利用了在化日油\〔〇'日\咖]11:;[111日\?1'0旨招111.。3中定義的一skipto參數(shù)來實(shí)現(xiàn)的。
[0020] 定位模塊獲取觸發(fā)漏桐的崎形數(shù)據(jù)包的位置后,為了能夠快速重現(xiàn)崎形數(shù)據(jù)包導(dǎo) 致的被測(cè)設(shè)備或軟件的異常狀態(tài),我們將獲得代表數(shù)據(jù)包位置的值傳遞給"--range M,N" 命令后運(yùn)行測(cè)試系統(tǒng),從而使漏桐快速重現(xiàn)。根據(jù)測(cè)試的需要,在漏桐重現(xiàn)之后,我們還可 W進(jìn)行幾步簡(jiǎn)單的操作來判斷漏桐的嚴(yán)重程度。如果重啟設(shè)備,設(shè)備能夠正常工作,那么可 將漏桐等級(jí)劃分為一般;如果要關(guān)掉工作站的總電源再打開設(shè)備才能正常工作,那么可將 漏桐等級(jí)劃分為中級(jí);如果設(shè)備無法恢復(fù)只能返廠檢修,那么可W將漏桐等級(jí)劃分為高級(jí)。
[0021] 經(jīng)過上述擴(kuò)展,可W使Peadi平臺(tái)測(cè)試過程中發(fā)現(xiàn)漏桐后能夠自動(dòng)快速的精確定 位,而且能夠快速重現(xiàn)漏桐。
[0022] 本發(fā)明的工作過程為:
[0023] 首先,根據(jù)被測(cè)設(shè)備或軟件支持的協(xié)議的報(bào)文格式,編寫對(duì)應(yīng)的PitFile文件。
[0024] 其次,啟動(dòng)化ach平臺(tái)對(duì)被測(cè)設(shè)備或軟件進(jìn)行模糊測(cè)試。測(cè)試過程中,Monitor會(huì)實(shí) 時(shí)監(jiān)測(cè)被測(cè)設(shè)備或軟件的工作狀態(tài)。
[0025] 再次,如果Monitor監(jiān)測(cè)到被測(cè)設(shè)備或軟件出現(xiàn)了異常的工作狀態(tài),則調(diào)用定位模 塊,對(duì)觸發(fā)設(shè)備或軟件出現(xiàn)異常狀態(tài)的崎形數(shù)據(jù)包進(jìn)行定位。
[0026] 最后,崎形數(shù)據(jù)包的位置確定W后,測(cè)試人員可W調(diào)用"--range M,N"命令快速重 現(xiàn)設(shè)備或軟件的異常狀態(tài)。
[0027]通過W上描述可知,本發(fā)明在Peadi原有功能基礎(chǔ)上增加了對(duì)漏桐定位與快速重 現(xiàn)的自動(dòng)化測(cè)試支持,從而使測(cè)試人員能夠通過簡(jiǎn)單的操作就能夠使系統(tǒng)按照既定的算法 進(jìn)行漏桐定位,并快速重現(xiàn)漏桐,高效靈活的進(jìn)行漏桐挖掘。
【主權(quán)項(xiàng)】
1. 基于Peach平臺(tái)的漏洞定位與快速重現(xiàn),其特征在于,包括:Peach平臺(tái)進(jìn)行漏洞挖掘 的運(yùn)行機(jī)制以及監(jiān)視器探測(cè)的方法;增加對(duì)觸發(fā)漏洞的畸形數(shù)據(jù)包的定位,使其能夠利用 定位模塊自動(dòng)化快速的確定畸形數(shù)據(jù)包的位置;在確定了具體的畸形數(shù)據(jù)包之后,通過調(diào) 用指定的命令使其快速重現(xiàn)漏洞,并通過重啟設(shè)備再次攻擊來簡(jiǎn)要判斷漏洞的性質(zhì)以及所 屬的類別。2. 如權(quán)利要求1所述的方法,其特征在于,本發(fā)明方法定位的畸形數(shù)據(jù)包的位置是在 MutationStrategy為Sequential的情況下。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:如果被測(cè)設(shè)備或軟件不存在漏洞, 測(cè)試能夠通過所有的測(cè)試用例,那么本發(fā)明的擴(kuò)展功能將不會(huì)啟用。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:定位模塊中所使用的具體的方法 和原理,使其盡可能準(zhǔn)確和快速的定位到畸形數(shù)據(jù)包的位置。5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:畸形數(shù)據(jù)包導(dǎo)致設(shè)備或軟件出現(xiàn) 異常情況,并不一定都是漏洞,只要定位畸形數(shù)據(jù)包滿足本發(fā)明即可。
【專利摘要】本發(fā)明公開了基于Peach平臺(tái)的漏洞定位與快速重現(xiàn)的方法。該方法包括:描述Peach平臺(tái)(3.0.202)的運(yùn)行機(jī)制以及Monitor探測(cè)的原理;在原有的功能基礎(chǔ)上增加漏洞定位與快速重現(xiàn)的功能;詳細(xì)描述對(duì)Peach源碼擴(kuò)展的細(xì)節(jié)。在對(duì)目標(biāo)進(jìn)行Fuzz的過程中,會(huì)有Monitor一直探測(cè)目標(biāo)的工作狀態(tài),一旦出現(xiàn)異常,控制臺(tái)會(huì)輸出異常狀態(tài)信息,為了更快更精確的確定導(dǎo)致目標(biāo)出現(xiàn)異常的畸形數(shù)據(jù)包的位置,我們擴(kuò)展了定位算法模塊,從而實(shí)現(xiàn)漏洞定位的功能;然后可以調(diào)用“--range?M,N”(其中N≥M)命令直接使用指定的畸形數(shù)據(jù)報(bào)文對(duì)目標(biāo)進(jìn)行定向測(cè)試,從而實(shí)現(xiàn)漏洞的快速重現(xiàn)。本發(fā)明的方法實(shí)現(xiàn)了漏洞定位與快速重現(xiàn),且方法簡(jiǎn)單有效,便于實(shí)施操作。
【IPC分類】G06F21/57
【公開號(hào)】CN105447389
【申請(qǐng)?zhí)枴緾N201510771773
【發(fā)明人】張華 , 李文敏, 張典波, 高飛, 殷偉, 溫巧燕
【申請(qǐng)人】北京郵電大學(xué)
【公開日】2016年3月30日
【申請(qǐng)日】2015年11月11日