欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

黑盒與白盒相結(jié)合的執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試方法與流程

文檔序號(hào):11829443閱讀:402來源:國知局
黑盒與白盒相結(jié)合的執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試方法與流程

本發(fā)明涉及軟件測(cè)試中的并行模糊測(cè)試調(diào)度技術(shù),主要是利用執(zhí)行反饋信息對(duì)并行模糊測(cè)試進(jìn)行動(dòng)態(tài)調(diào)度,其中反饋信息包括執(zhí)行產(chǎn)生的黑盒信息與白盒信息。



背景技術(shù):

模糊測(cè)試是一種重要的軟件測(cè)試技術(shù),主要利用自動(dòng)或半自動(dòng)生成隨機(jī)數(shù)據(jù)輸入到測(cè)試軟件,并監(jiān)測(cè)測(cè)試軟件執(zhí)行結(jié)果是否正常來發(fā)現(xiàn)軟件中的安全漏洞。模糊測(cè)試具有實(shí)現(xiàn)簡(jiǎn)單,容易復(fù)現(xiàn)等優(yōu)點(diǎn)。但是隨機(jī)生成和變異樣本的方式生成的輸入數(shù)據(jù)隨機(jī)性大,對(duì)測(cè)試軟件的代碼覆蓋率、路徑覆蓋率等沒有保證,另外生成的樣本數(shù)量大,樣本有效性低。因此,如何利用模糊測(cè)試在限定的時(shí)間內(nèi)發(fā)現(xiàn)盡可能多的不同漏洞是一個(gè)重要的問題。

目前,針對(duì)模糊測(cè)試的上述問題有兩種解決辦法,一種是利用并行來提高模糊測(cè)試的執(zhí)行效率和發(fā)現(xiàn)漏洞的能力,另外一種是利用執(zhí)行的黑盒反饋信息來調(diào)整模糊測(cè)試的迭代執(zhí)行調(diào)度,以提高測(cè)試的有效性。

并行模糊測(cè)試?yán)么罅康牟⑿杏?jì)算資源并發(fā)進(jìn)行模糊測(cè)試,能夠大大提高測(cè)試的速度和效率。但是由于模糊測(cè)試的黑盒特性,生成測(cè)試樣本的隨機(jī)性大,隨著并行規(guī)模的增大,測(cè)試的異常產(chǎn)生重復(fù)率高。并行模糊測(cè)試中如果沒有合理的反饋調(diào)度機(jī)制就無法充分挖掘不同的代碼段的漏洞,無法利用潛在計(jì)算資源實(shí)現(xiàn)最有效的漏洞挖掘。因此,在并行模糊測(cè)試框架中缺乏資源分配和任務(wù)調(diào)度機(jī)制來提高資源的利用率和軟件測(cè)試效率,無法達(dá)到在限定時(shí)間內(nèi)發(fā)現(xiàn)盡可能多的漏洞的目的。

目前存在的具有調(diào)度能力的模糊測(cè)試方法大多使用單純的黑盒測(cè)試信息進(jìn)行反饋調(diào)度的。主要方法是利用執(zhí)行過程中對(duì)測(cè)試產(chǎn)生的不同異常的分布情況進(jìn)行模糊測(cè)試的輸入種子文件和測(cè)試參數(shù)的動(dòng)態(tài)選取。該方法能夠利用異常產(chǎn)生的概率動(dòng)態(tài)調(diào)整輸入樣本的被選中概率,在一定程度上能夠提高不同異常觸發(fā)的概率。但是該方法僅僅利用異常分布的黑盒統(tǒng)計(jì)信息進(jìn)行反饋,缺乏對(duì)測(cè)試的整體性的衡量。僅使用黑盒的統(tǒng)計(jì)數(shù)據(jù)并不能精確的對(duì)模糊測(cè)試漏洞挖掘效果進(jìn)行衡量,不同的路徑覆蓋上產(chǎn)生的異常不被區(qū)分,例如模糊測(cè)試產(chǎn)生的異常概率相同的情況下,不同路徑覆蓋率的測(cè)試所取得的測(cè)試效果是不同的,我們應(yīng)該針對(duì)模糊測(cè)試過程中的路徑覆蓋率等白盒信息進(jìn)行更精確的調(diào)度優(yōu)化。因此,單純使用黑盒信息不 能夠有效的調(diào)整調(diào)度算法,不能最大可能的提高在指定時(shí)間內(nèi)產(chǎn)生的不同異常的數(shù)目。

因此,綜合上述模糊測(cè)試以及并行模糊測(cè)試的背景,為了提高模糊測(cè)試的效率,充分發(fā)揮并行模糊測(cè)試中計(jì)算資源的計(jì)算潛力,達(dá)到在限定時(shí)間內(nèi)挖掘出盡可能多的不同漏洞的目的,本發(fā)明提出了一種黑盒與白盒信息相結(jié)合的執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試技術(shù)。



技術(shù)實(shí)現(xiàn)要素:

并行模糊測(cè)試系統(tǒng)可以利用大規(guī)模的計(jì)算資源作為測(cè)試節(jié)點(diǎn)并發(fā)的進(jìn)行模糊測(cè)試,每個(gè)測(cè)試節(jié)點(diǎn)都可以執(zhí)行針對(duì)特定軟件的模糊測(cè)試任務(wù),測(cè)試節(jié)點(diǎn)之間是相互獨(dú)立的,因此每個(gè)節(jié)點(diǎn)的測(cè)試效率都與單個(gè)節(jié)點(diǎn)的測(cè)試相同。在并行測(cè)試系統(tǒng)中,大規(guī)模的并行測(cè)試節(jié)點(diǎn)同時(shí)進(jìn)行多個(gè)測(cè)試軟件以及相同測(cè)試軟件之間不同輸入種子文件的測(cè)試,能夠大規(guī)模的提高模糊測(cè)試的效率。根據(jù)本發(fā)明的測(cè)試經(jīng)驗(yàn)顯示,單純的并行模糊測(cè)試雖然具備較高的測(cè)試速度,但是并行節(jié)點(diǎn)之間會(huì)產(chǎn)生大量的重復(fù)的異常和漏洞,不具備動(dòng)態(tài)調(diào)度的并行測(cè)試并不能夠充分的發(fā)揮計(jì)算資源的潛力挖掘出更多的不同漏洞。同時(shí),并行測(cè)試節(jié)點(diǎn)之間的測(cè)試結(jié)果對(duì)模糊測(cè)試的效果是具有衡量意義的,因此,如何利用大量的測(cè)試結(jié)果對(duì)并行測(cè)試進(jìn)行反饋調(diào)度,以提高測(cè)試觸發(fā)漏洞的質(zhì)量和數(shù)量,以實(shí)現(xiàn)在限定時(shí)間內(nèi)挖掘出盡可能多的安全漏洞仍然是一個(gè)值得研究的問題。因此,針對(duì)該問題本發(fā)明提出了黑盒與白盒信息相結(jié)合的執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試技術(shù)。

本發(fā)明設(shè)計(jì)的執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試系統(tǒng)的測(cè)試對(duì)象是一個(gè)或多個(gè)測(cè)試軟件集合以及每個(gè)測(cè)試軟件可以對(duì)應(yīng)一個(gè)或多個(gè)輸入種子文件集合,測(cè)試過程中的動(dòng)態(tài)調(diào)度是針對(duì)測(cè)試軟件以及測(cè)試軟件的輸入種子文件(用于樣本的變異生成)進(jìn)行的。每次調(diào)度是為一個(gè)測(cè)試節(jié)點(diǎn)的依次測(cè)試任務(wù)選取待測(cè)試的軟件同時(shí)為該測(cè)試軟件選取相應(yīng)的輸入種子文件,每次調(diào)度選取后測(cè)試節(jié)點(diǎn)針對(duì)該軟件及對(duì)應(yīng)的輸入進(jìn)行指定數(shù)目的迭代測(cè)試,測(cè)試完成后進(jìn)入下一次的調(diào)度選取過程,直至整體測(cè)試任務(wù)完成。

執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試是根據(jù)測(cè)試節(jié)點(diǎn)執(zhí)行過程中的測(cè)試結(jié)果對(duì)整體測(cè)試任務(wù)中每個(gè)測(cè)試軟件及輸入種子文件對(duì)應(yīng)的測(cè)試效果進(jìn)行量化更新,使用調(diào)度算法對(duì)各個(gè)測(cè)試軟件進(jìn)行模糊測(cè)試的測(cè)試效果進(jìn)行量化評(píng)估,選取最有可能產(chǎn)生新的漏洞的軟件作為下一次的模糊測(cè)試對(duì)象;然后使用相同的方法為測(cè)試軟件選取輸入種子文件進(jìn)行調(diào)度執(zhí)行。圖1是執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試系統(tǒng)框架。

如圖1所示,執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試框架主要分為并行控制模塊以及測(cè)試執(zhí)行模塊兩個(gè)部分,可以分別簡(jiǎn)稱為控制模塊和測(cè)試模塊。虛線框里面是測(cè)試模塊,測(cè)試模塊主要負(fù)責(zé)模糊測(cè)試的執(zhí)行,由大量測(cè)試節(jié)點(diǎn)組成,每個(gè)測(cè)試節(jié)點(diǎn)都對(duì)軟件執(zhí)行模糊測(cè)試并監(jiān)控測(cè) 試結(jié)果,包括測(cè)試過程中程序執(zhí)行是否正常的監(jiān)控以及測(cè)試的白盒信息的統(tǒng)計(jì)(如代碼覆蓋率、路徑覆蓋率等)。虛線框外面是控制模塊,控制模塊主要負(fù)責(zé)并行測(cè)試模塊的調(diào)度和分配執(zhí)行。測(cè)試模塊執(zhí)行結(jié)束后,根據(jù)測(cè)試的反饋信息(包括測(cè)試的軟件,輸入樣本及參數(shù),執(zhí)行正常與否,執(zhí)行白盒信息統(tǒng)計(jì)等)對(duì)測(cè)試軟件當(dāng)前模糊測(cè)試效果量化指標(biāo)進(jìn)行更新??刂颇K的調(diào)度選擇器根據(jù)調(diào)度算法進(jìn)行下一次模糊測(cè)試的測(cè)試目標(biāo)進(jìn)行選取。

本發(fā)明在并行模糊測(cè)試框架的基礎(chǔ)上添加了根據(jù)黑盒與白盒等執(zhí)行反饋信息實(shí)現(xiàn)模糊測(cè)試過程中的動(dòng)態(tài)調(diào)度和輸入選取的功能,既能夠保證模糊測(cè)試的并行執(zhí)行效率,同時(shí)能夠根據(jù)測(cè)試過程中的異常分布以及執(zhí)行白盒統(tǒng)計(jì)信息等信息進(jìn)行動(dòng)態(tài)的選取調(diào)度,能夠更有效的發(fā)現(xiàn)不同的安全漏洞。實(shí)現(xiàn)執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試需要解決以下幾個(gè)關(guān)鍵問題:

關(guān)鍵問題1:如何衡量模糊測(cè)試的效果

要利用執(zhí)行反饋信息進(jìn)行動(dòng)態(tài)并行調(diào)度來提高模糊測(cè)試的效果,如何來衡量模糊測(cè)試的效果是需要首先解決的問題。模糊測(cè)試的執(zhí)行是為了挖掘軟件中的安全漏洞,所以本發(fā)明將在限定的時(shí)間內(nèi)發(fā)現(xiàn)最多的軟件漏洞作為并行模糊測(cè)試的最終目標(biāo)。模糊測(cè)試的執(zhí)行過程中會(huì)產(chǎn)生兩種測(cè)試結(jié)果信息,一種是黑盒的信息,例如發(fā)現(xiàn)漏洞的數(shù)目以及漏洞發(fā)現(xiàn)的分布規(guī)律等,另外一種是白盒信息,該類測(cè)試信息需要在測(cè)試的執(zhí)行過程種動(dòng)態(tài)的獲取,例如測(cè)試的代碼覆蓋率和路徑覆蓋率等。因此,如何利用測(cè)試執(zhí)行產(chǎn)生的信息對(duì)模糊測(cè)試的執(zhí)行進(jìn)行反饋調(diào)度以保證在限定時(shí)間內(nèi)發(fā)現(xiàn)盡可能多的不同漏洞是需要解決的問題。

模糊測(cè)試的執(zhí)行效果的衡量需要從兩個(gè)方面進(jìn)行,首先是測(cè)試發(fā)現(xiàn)的漏洞的數(shù)目、漏洞發(fā)現(xiàn)的分布情況等,能夠體現(xiàn)模糊測(cè)試從整體功能上發(fā)現(xiàn)漏洞的能力,例如模糊測(cè)試能夠發(fā)現(xiàn)的漏洞數(shù)目越多,則表示測(cè)試效果越好;其次,模糊測(cè)試執(zhí)行的對(duì)測(cè)試軟件的覆蓋情況,例如測(cè)試的代碼覆蓋率或路徑覆蓋率,覆蓋率越高表示執(zhí)行測(cè)試對(duì)軟件的覆蓋性越好,測(cè)試的覆蓋率越高表示能夠發(fā)現(xiàn)不同代碼段的漏洞的概率越大,也反應(yīng)了測(cè)試的全面性。兩類執(zhí)行信息都從不同的方面體現(xiàn)了模糊測(cè)試的執(zhí)行效果,單純的一個(gè)反饋信息不能夠全面的體現(xiàn)測(cè)試的執(zhí)行效果的好壞。因此,本發(fā)明選取了黑盒與白盒兩類信息相結(jié)合的執(zhí)行反饋信息作為對(duì)當(dāng)前測(cè)試執(zhí)行效果的衡量指標(biāo)。

關(guān)鍵問題2:如何利用執(zhí)行反饋信息進(jìn)行動(dòng)態(tài)并行模糊測(cè)試調(diào)度

并行模糊測(cè)試系統(tǒng)框架中具備大規(guī)模的計(jì)算資源作為測(cè)試節(jié)點(diǎn)進(jìn)行軟件測(cè)試,不同測(cè)試節(jié)點(diǎn)可以并發(fā)的進(jìn)行模糊測(cè)試,能夠大大提高測(cè)試的效率。本發(fā)明使用的并行模糊測(cè)試系統(tǒng)框架支持一個(gè)或多個(gè)測(cè)試軟件及相同測(cè)試軟件的一個(gè)或多個(gè)不同輸入種子樣本文件的并行執(zhí)行,因此,如何在測(cè)試執(zhí)行過程中利用執(zhí)行過程中的黑盒和白盒等反饋信息進(jìn)行并行模糊測(cè)試的動(dòng)態(tài)調(diào)度,實(shí)現(xiàn)對(duì)并行測(cè)試過程中一種或多種測(cè)試軟件同時(shí)運(yùn)行情況下,整個(gè)并行測(cè)試 系統(tǒng)能夠測(cè)試發(fā)現(xiàn)最多的不同漏洞,同時(shí)針對(duì)每個(gè)測(cè)試軟件也能夠挖掘出盡可能多的不同漏洞,是一個(gè)需要解決的關(guān)鍵問題。本發(fā)明將對(duì)問題1中選取的執(zhí)行反饋信息分別建立量化模型,同時(shí)根據(jù)量化后的指標(biāo)建立調(diào)度模型,利用調(diào)度模型對(duì)每次測(cè)試任務(wù)進(jìn)行動(dòng)態(tài)的調(diào)度執(zhí)行,以取得最有效的模糊測(cè)試效果。

本發(fā)明提出的執(zhí)行反饋信息驅(qū)動(dòng)的并行模糊測(cè)試動(dòng)態(tài)調(diào)度技術(shù)具有以下優(yōu)點(diǎn)和有益效果:

(1)針對(duì)所有的并行模糊測(cè)試框架都可以擴(kuò)展該調(diào)度方法,利用程序的執(zhí)行反饋信息優(yōu)化模糊測(cè)試執(zhí)行過程,因此,該方法具有普遍適用性;

(2)該方法利用執(zhí)行的黑盒反饋信息與測(cè)試過程中的白盒信息相結(jié)合進(jìn)行動(dòng)態(tài)調(diào)度,能夠在保證低開銷的情況下盡可能的挖掘更多的漏洞,提高模糊測(cè)試的測(cè)試效果;

(3)該方法利用黑盒與白盒信息相結(jié)合來進(jìn)行并行模糊測(cè)試的調(diào)度,實(shí)現(xiàn)過程能夠自定義黑盒與白盒信息的影響比例,同時(shí)能夠包含只利用黑盒或者白盒信息進(jìn)行調(diào)度的情況,因此,該方法具備良好的兼容性;

(4)該方法利用執(zhí)行反饋信息進(jìn)行動(dòng)態(tài)并行模糊測(cè)試調(diào)度,其中的反饋信息可以使用多種方式,例如代碼覆蓋率、路徑覆蓋率等,具體實(shí)施過程可以根據(jù)執(zhí)行軟件及測(cè)試需求的不同進(jìn)行自主選取和調(diào)整,具有靈活擴(kuò)展性。

附圖說明

圖1是執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試框架圖。

圖2是單節(jié)點(diǎn)模糊測(cè)試執(zhí)行流程示例圖。

圖3是并行模糊測(cè)試調(diào)度流程圖。

具體實(shí)施方式

為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面通過具體實(shí)施例和附圖,對(duì)本發(fā)明做進(jìn)一步說明。

本發(fā)明執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試動(dòng)態(tài)調(diào)度技術(shù),具體的實(shí)施分為以下幾個(gè)步驟:

步驟1.執(zhí)行反饋信息的選擇

要實(shí)現(xiàn)執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試的動(dòng)態(tài)調(diào)度,首先需要選取合適的反饋信息對(duì)調(diào)度進(jìn)行動(dòng)態(tài)的調(diào)整。執(zhí)行的反饋信息需要體現(xiàn)模糊測(cè)試的執(zhí)行效率和測(cè)試產(chǎn)生漏洞的有效性,根據(jù)測(cè)試的經(jīng)驗(yàn)顯示,模糊測(cè)試產(chǎn)生的異常的分布情況,即模糊測(cè)試的測(cè)試軟件所測(cè)試產(chǎn)生的安全漏洞的數(shù)目和分布等黑盒信息以及測(cè)試的覆蓋率信息等白盒信息能夠體現(xiàn)模糊測(cè)試的 具體執(zhí)行效率。因此,本發(fā)明采用黑盒與白盒信息相結(jié)合的方式進(jìn)行動(dòng)態(tài)調(diào)度算法的設(shè)計(jì)。

例如,本發(fā)明可以采用異常產(chǎn)生的分布情況作為該測(cè)試軟件或測(cè)試輸入種子文件等的執(zhí)行產(chǎn)生漏洞的能力和軟件漏洞的產(chǎn)生概率的衡量指標(biāo);另外,可以使用路徑覆蓋率信息作為測(cè)試到目前為止對(duì)整個(gè)測(cè)試軟件的測(cè)試覆蓋率信息和對(duì)應(yīng)輸入種子文件的測(cè)試覆蓋率信息,該信息能夠體現(xiàn)目前模糊測(cè)試對(duì)整體測(cè)試的覆蓋率。因此,采用模糊測(cè)試對(duì)測(cè)試軟件的測(cè)試覆蓋率及不同異常產(chǎn)生的分布作為模糊測(cè)試效率及發(fā)現(xiàn)安全漏洞能力的衡量指標(biāo)。本發(fā)明可以使用(#program,#bug,#program_coverage)三元組表示測(cè)試軟件,測(cè)試軟件的不同異常信息,測(cè)試軟件的路徑覆蓋率;或者使用(#program,#seed,#seed_bug,#seed_coverage)四元組表示測(cè)試軟件,測(cè)試軟件的輸入種子文件,當(dāng)前輸入種子文件的模糊測(cè)試的不同異常分布信息,輸入種子文件的測(cè)試覆蓋率信息。

實(shí)際實(shí)現(xiàn)過程中可以使用上述示例的方式進(jìn)行執(zhí)行反饋信息選取和量化。

步驟2.執(zhí)行過程中的反饋信息的獲取

經(jīng)過步驟1中對(duì)反饋信息的選取,我們需要實(shí)現(xiàn)執(zhí)行過程中動(dòng)態(tài)的獲取執(zhí)行信息,并進(jìn)行動(dòng)態(tài)的統(tǒng)計(jì)分析。由步驟1可知,我們需要在測(cè)試過程種對(duì)測(cè)試軟件的黑盒信息進(jìn)行統(tǒng)計(jì),同時(shí)需要?jiǎng)討B(tài)的獲取測(cè)試過程中的白盒信息。同時(shí),針對(duì)每款測(cè)試軟件的輸入種子文件集合中的種子文件的黑盒以及白盒信息進(jìn)行動(dòng)態(tài)統(tǒng)計(jì)。

對(duì)于測(cè)試過程中的黑盒信息,可以直接根據(jù)測(cè)試程序的執(zhí)行結(jié)果進(jìn)行統(tǒng)計(jì)分析。對(duì)于測(cè)試過程中的白盒信息的統(tǒng)計(jì),我們需要在模糊測(cè)試執(zhí)行過程中使用插樁工具進(jìn)行動(dòng)態(tài)插樁,在程序執(zhí)行過程中動(dòng)態(tài)獲取模糊測(cè)試樣本執(zhí)行過程中的白盒信息(如執(zhí)行過程經(jīng)過的程序內(nèi)部路徑等),然后與程序的靜態(tài)統(tǒng)計(jì)信息相比較,獲取需要的覆蓋率等白盒信息。具體來說,例如,我們要獲取程序測(cè)試中的路徑覆蓋率信息,可以通過編寫插樁程序?qū)崿F(xiàn)對(duì)程序執(zhí)行過程中經(jīng)過的路徑進(jìn)行插樁統(tǒng)計(jì),最后將測(cè)試過程中經(jīng)過的路徑與程序的靜態(tài)整體路徑信息相比較,可以獲取程序的測(cè)試過程中的路徑的覆蓋情況。

以測(cè)試發(fā)現(xiàn)異常分布作為黑盒信息,測(cè)試的覆蓋率作為白盒信息為例,測(cè)試模塊執(zhí)行模糊測(cè)試并動(dòng)態(tài)獲取執(zhí)行反饋信息的執(zhí)行流程如圖2所示。

測(cè)試主要流程描述如下:

(1)模糊測(cè)試節(jié)點(diǎn)根據(jù)輸入的種子樣本文件和參數(shù)生成大量的測(cè)試樣本;

(2)模糊測(cè)試工具使用測(cè)試軟件對(duì)選取的測(cè)試樣本進(jìn)行測(cè)試執(zhí)行,同時(shí)加載對(duì)測(cè)試執(zhí)行正常與否的監(jiān)控程序以及動(dòng)態(tài)插樁工具對(duì)程序的執(zhí)行狀態(tài)及測(cè)試情況進(jìn)行監(jiān)控;

(3)該測(cè)試樣本文件執(zhí)行結(jié)束后獲取該測(cè)試的執(zhí)行狀態(tài)以及執(zhí)行白盒統(tǒng)計(jì)信息;

(4)首先將統(tǒng)計(jì)信息與程序的靜態(tài)白盒信息相比較,獲取當(dāng)前測(cè)試輸入種子樣本的覆蓋 率信息,并更新整個(gè)測(cè)試軟件的覆蓋率信息,得到測(cè)試軟件以及對(duì)應(yīng)測(cè)試輸入樣本文件的覆蓋率信息,流程圖中用#program_coverage和#seed_coverage表示;

(5)判斷程序的執(zhí)行結(jié)束狀態(tài),如果是正常結(jié)束,則選取下一個(gè)測(cè)試樣本進(jìn)行測(cè)試;否則,更新測(cè)試軟件以及對(duì)應(yīng)輸入種子文件的異常統(tǒng)計(jì)信息;

(6)判斷是否有未測(cè)試樣本,如果有則繼續(xù)選取測(cè)試樣本,執(zhí)行(2);否則退出該測(cè)試流程。

步驟3.反饋信息的衡量標(biāo)準(zhǔn)及動(dòng)態(tài)調(diào)度模型設(shè)計(jì)

根據(jù)步驟1和2的描述,我們使用黑盒與白盒兩類反饋信息作為模糊測(cè)試執(zhí)行效果的衡量標(biāo)準(zhǔn)進(jìn)行并行調(diào)度的設(shè)計(jì)。黑盒信息用于衡量模糊測(cè)試對(duì)漏洞的整體發(fā)現(xiàn)能力,白盒信息用于衡量模糊測(cè)試的整體覆蓋情況,即對(duì)測(cè)試軟件的測(cè)試的全面性。下面將兩個(gè)指標(biāo)的衡量方法以及調(diào)度模型進(jìn)行具體的設(shè)計(jì)和描述:

(1)模糊測(cè)試發(fā)現(xiàn)漏洞能力的衡量

對(duì)模糊測(cè)試發(fā)現(xiàn)漏洞能力的衡量,可以使用發(fā)現(xiàn)漏洞的速率(rate)來描述,例如可以使用平均單位時(shí)間發(fā)現(xiàn)漏洞的個(gè)數(shù)、平均每單位測(cè)試樣本數(shù)發(fā)現(xiàn)漏洞的數(shù)目、單位時(shí)間新增漏洞的數(shù)目等來衡量模糊測(cè)試發(fā)現(xiàn)漏洞的能力。例如,采用單位測(cè)試樣本數(shù)目發(fā)現(xiàn)漏洞數(shù)目來衡量模糊測(cè)試發(fā)現(xiàn)漏洞能力的情況,我們利用公式來計(jì)算單位測(cè)試樣本觸發(fā)不同異常的能力,其中#unique_crash表示測(cè)試所產(chǎn)生的不同異常的數(shù)目,#test_case_num表示已測(cè)試樣本的數(shù)目。對(duì)于測(cè)試軟件和輸入種子文件的產(chǎn)生異常能力都使用該方式進(jìn)行衡量。使用速率來衡量模糊測(cè)試發(fā)現(xiàn)漏洞能力,rate越大表示模糊測(cè)試發(fā)現(xiàn)漏洞能力越強(qiáng),即在限定測(cè)試數(shù)目或時(shí)間的情況下發(fā)現(xiàn)不同漏洞的概率越大。

(2)模糊測(cè)試的測(cè)試覆蓋率衡量

現(xiàn)在通用的模糊測(cè)試方法中存在覆蓋率低的問題,覆蓋率低會(huì)導(dǎo)致在某些測(cè)試中難以到達(dá)的軟件漏洞難以被發(fā)現(xiàn)。因此,我們?cè)跍y(cè)試過程中使用白盒的覆蓋率作為反饋信息對(duì)整個(gè)測(cè)試的調(diào)度進(jìn)行優(yōu)化,目的是達(dá)到盡可能的覆蓋代碼中更多的區(qū)域。實(shí)際使用過程中可以使用測(cè)試的代碼覆蓋率、路徑覆蓋率等覆蓋信息進(jìn)行衡量,在調(diào)度算法的設(shè)計(jì)中也可以考慮使用新增代碼覆蓋率、新增路徑覆蓋率等信息來衡量最新測(cè)試的覆蓋和進(jìn)展情況,指標(biāo)的選取可以根據(jù)測(cè)試的目的和需求進(jìn)行設(shè)定和調(diào)整。下面我們以總體路徑覆蓋率為例進(jìn)行衡量指標(biāo)設(shè)計(jì)的介紹,包括測(cè)試軟件以及測(cè)試軟件的輸入種子文件的覆蓋率計(jì)算方法的介紹。

首先,為了計(jì)算測(cè)試軟件的測(cè)試覆蓋率,我們首先要計(jì)算當(dāng)前測(cè)試軟件的所有輸入種子文件的測(cè)試覆蓋率情況。我們針對(duì)輸入種子文件的路徑覆蓋率(coverageseed)計(jì)算方法如下:

<mrow> <mi>coverag</mi> <msub> <mi>e</mi> <mi>seed</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mo>#</mo> <mi>tested</mi> <mo>_</mo> <mi>path</mi> </mrow> <mrow> <mo>#</mo> <mi>program</mi> <mo>_</mo> <mi>static</mi> <mo>_</mo> <mi>path</mi> </mrow> </mfrac> <mo>,</mo> </mrow>

其中,#tested_path表示測(cè)試軟件的輸入種子文件的已經(jīng)測(cè)試到的路徑信息,#program_static_path表示測(cè)試軟件的靜態(tài)的所有路徑信息,所以coverageseed表示當(dāng)前輸入種子文件已經(jīng)測(cè)試的樣本對(duì)測(cè)試軟件的路徑覆蓋率。

然后,根據(jù)測(cè)試軟件的所有輸入種子文件的路徑覆蓋率信息,計(jì)算測(cè)試軟件已測(cè)的路徑覆蓋率。我們使用coverageprogram表示測(cè)試軟件的路徑覆蓋率,計(jì)算方法如下:

<mrow> <msub> <mi>coverage</mi> <mi>program</mi> </msub> <mo>=</mo> <mfrac> <mrow> <munder> <mo>&cup;</mo> <mi>seedSet</mi> </munder> <mo>#</mo> <mi>tested</mi> <mo>_</mo> <mi>path</mi> </mrow> <mrow> <mo>#</mo> <mi>program</mi> <mo>_</mo> <mi>static</mi> <mo>_</mo> <mi>path</mi> </mrow> </mfrac> <mo>,</mo> </mrow>

其中,seedSet表示輸入種子文件的集合,表示該軟件的所有輸入種子文件的路徑覆蓋的并集,#program_static_path表示測(cè)試軟件的靜態(tài)路徑集合,coverageprogram表示測(cè)試軟件已測(cè)得的路徑覆蓋率。

(3)模糊測(cè)試動(dòng)態(tài)調(diào)度建模

模糊測(cè)試的動(dòng)態(tài)調(diào)度模型需要綜合考慮測(cè)試執(zhí)行過程中的黑盒與白盒信息進(jìn)行綜合的調(diào)度,根據(jù)選取的測(cè)試執(zhí)行反饋信息的量化數(shù)據(jù)進(jìn)行建模。

因?yàn)槲覀兊恼{(diào)度模型的選取會(huì)考慮多個(gè)方面的因素建立,而不同的影響因素量化數(shù)據(jù)之間可能存在數(shù)量級(jí)的差距等,因此,首先要將不同的反饋量化指標(biāo)數(shù)據(jù)進(jìn)行歸一化處理,將所有的反饋數(shù)據(jù)映射為0到1之間的數(shù)據(jù),方便進(jìn)行不同反饋信息之間影響因子的確立。反饋信息歸一化處理后,要對(duì)每個(gè)反饋信息確定其對(duì)模糊測(cè)試執(zhí)行效果的影響,包括影響因素與執(zhí)行效果的關(guān)系的確立以及其對(duì)整體調(diào)度的影響因子的確定。然后將建立起模糊測(cè)試調(diào)度與所有反饋信息之間的關(guān)系模型。下面以選取黑盒的漏洞發(fā)現(xiàn)效率rate與白盒信息覆蓋率coverage為例子進(jìn)行調(diào)度模型的建立。

首先,我們將兩個(gè)衡量指標(biāo)進(jìn)行歸一化處理,將所有的rate和coverage都映射為0到1之間的數(shù)據(jù)。然后,設(shè)定衡量指標(biāo)與模糊測(cè)試效果之間的關(guān)系,我們選取的發(fā)現(xiàn)漏洞的速率越覆蓋率都與模糊測(cè)試的效果成正比例關(guān)系,發(fā)現(xiàn)漏洞發(fā)現(xiàn)速率越大模糊測(cè)試效果越好,測(cè)試覆蓋率越高,測(cè)試效果越好,因此被調(diào)度算法選中的概率應(yīng)該越大。在此,我們分別將兩個(gè)影響因子設(shè)置為α和β,一個(gè)分值來表示當(dāng)前測(cè)試軟件或輸入種子文件被選中的概率大小,例如我們使用score=α*rate+β*coverage表示其分值,其中score越大被選中的概率越大。可以根據(jù)測(cè)試的需求調(diào)整α和β的值,其中可以設(shè)置某個(gè)值為0,則相當(dāng)于不考慮某個(gè) 因素對(duì)測(cè)試的影響,例如當(dāng)α為0時(shí),則只考慮白盒信息進(jìn)行并行模糊測(cè)試的調(diào)度,當(dāng)β為0時(shí),則只使用黑盒信息對(duì)并行模糊測(cè)試進(jìn)行調(diào)度。

步驟4.根據(jù)反饋信息進(jìn)行并行調(diào)度

經(jīng)過前面的步驟設(shè)計(jì)我們完成了整個(gè)并行模糊測(cè)試流程中的執(zhí)行反饋信息的選取,測(cè)試中執(zhí)行信息的動(dòng)態(tài)獲取,以及反饋信息對(duì)動(dòng)態(tài)調(diào)度模型的設(shè)計(jì)。最后,我們描述執(zhí)行反饋信息驅(qū)動(dòng)的并行模糊測(cè)試的動(dòng)態(tài)調(diào)度的實(shí)現(xiàn)流程。并行模糊測(cè)試框架中的控制模塊負(fù)責(zé)對(duì)整個(gè)并行測(cè)試的執(zhí)行進(jìn)行整體的調(diào)度,以保證計(jì)算資源的計(jì)算潛力得到充分發(fā)揮,同時(shí)能夠達(dá)到最好的漏洞挖掘效果,即能夠在限定時(shí)間內(nèi)挖掘出盡可能多的不同漏洞。

針對(duì)本發(fā)明設(shè)計(jì)的執(zhí)行反饋驅(qū)動(dòng)的并行模糊測(cè)試調(diào)度框架,在每次并行模糊測(cè)試調(diào)度之前利用調(diào)度選擇算法進(jìn)行調(diào)度選取最有可能挖掘出有效漏洞的測(cè)試軟件及輸入種子樣本文件進(jìn)行測(cè)試。圖3是控制模塊負(fù)責(zé)調(diào)度選取的測(cè)試軟件和輸入種子文件的流程圖。如該圖所示,并行模糊測(cè)試的調(diào)度主要分以下幾個(gè)步驟:

(1)從輸入集合中選取待測(cè)試軟件,選取使用步驟3中描述的標(biāo)準(zhǔn)進(jìn)行,測(cè)試執(zhí)行時(shí)所有測(cè)試軟件的分?jǐn)?shù)都為1,被選中的概率相同。

(2)在選定測(cè)試軟件的基礎(chǔ)上,選取該測(cè)試軟件的輸入種子樣本文件,用于測(cè)試樣例的生成。測(cè)試輸入種子文件的選取利用步驟3中的衡量標(biāo)準(zhǔn)采用同(1)相同的方式進(jìn)行選取。

(3)將選定的測(cè)試軟件及輸入種子文件作為測(cè)試輸入進(jìn)行測(cè)試,并監(jiān)控測(cè)試的執(zhí)行過程和執(zhí)行結(jié)果,測(cè)試執(zhí)行完成后更新測(cè)試軟件和種子文件的異常分布及測(cè)試覆蓋率信息。

(4)判斷是否達(dá)到設(shè)定測(cè)試時(shí)間或數(shù)目限制,如果是則退出測(cè)試,執(zhí)行結(jié)束;否則繼續(xù)執(zhí)行(1)進(jìn)行選取和測(cè)試。

其它實(shí)施方式:

本發(fā)明主要對(duì)并行模糊測(cè)試的調(diào)度進(jìn)行設(shè)計(jì),調(diào)度過程中的反饋信息選取和調(diào)度模型的建立都不局限于本發(fā)明實(shí)施例中的具體描述。本發(fā)明描述的實(shí)施例主要是使用異常產(chǎn)生的速率和測(cè)試路徑覆蓋率兩個(gè)方面的指標(biāo)進(jìn)行調(diào)度的描述的,在具體的實(shí)施過程中可以對(duì)調(diào)度模型中的反饋信息進(jìn)行調(diào)整和自定義。同時(shí),調(diào)度模型的建立也不局限于實(shí)施例中的描述,可以建立更加豐富或簡(jiǎn)潔的調(diào)度模型指導(dǎo)調(diào)度執(zhí)行。

(1)模糊測(cè)試發(fā)現(xiàn)漏洞能力的衡量

模糊測(cè)試的執(zhí)行效率的衡量方式不局限于本發(fā)明實(shí)施例中具體描述和使用的技術(shù)方案,可以采用其他的方式進(jìn)行定量或定性的衡量。例如,可以對(duì)發(fā)現(xiàn)漏洞能力進(jìn)行定性方式衡量, 根據(jù)測(cè)試漏洞發(fā)現(xiàn)的數(shù)目等設(shè)定發(fā)現(xiàn)漏洞能力的等級(jí)等方法來衡量。

(2)模糊測(cè)試的覆蓋率衡量

測(cè)試覆蓋率可以根據(jù)測(cè)試需求進(jìn)行設(shè)計(jì)和獲取,例如測(cè)試的覆蓋率信息還可以使用循環(huán)覆蓋、參數(shù)值覆蓋、函式覆蓋等其他的方式進(jìn)行描述,在使用過程中技術(shù)人員可以根據(jù)測(cè)試的需求進(jìn)行自定義的方式來獲取反饋信息和建立衡量標(biāo)準(zhǔn)。

(3)模糊測(cè)試動(dòng)態(tài)調(diào)度建模

調(diào)度算法的具體定義和實(shí)現(xiàn)方式也不局限于本發(fā)明實(shí)施例中的描述,本實(shí)施例中采用異常產(chǎn)生速率和路徑覆蓋率兩個(gè)因素對(duì)調(diào)度進(jìn)行指導(dǎo),在實(shí)施中還可以使用多種不同的覆蓋率指標(biāo)混合的方式進(jìn)行綜合衡量,例如可以綜合考慮路徑覆蓋率和參數(shù)值覆蓋等因素建立更加細(xì)致的調(diào)度模型。

以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求書所述為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
邮箱| 固阳县| 大新县| 册亨县| 琼海市| 缙云县| 阳江市| 繁昌县| 福贡县| 绥德县| 谢通门县| 济南市| 柘荣县| 丹东市| 承德市| 油尖旺区| 巴马| 泽州县| 安义县| 刚察县| 奉节县| 丹阳市| 内江市| 称多县| 富平县| 宿州市| 房产| 鄂伦春自治旗| 筠连县| 来凤县| 灵宝市| 四会市| 高青县| 宣恩县| 托克托县| 海门市| 水富县| 盱眙县| 屏南县| 三明市| 稻城县|