• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    覆蓋率引導(dǎo)的灰盒模糊測試綜述

    2022-07-06 01:41:18蘇文超費(fèi)洪曉
    信息安全研究 2022年7期
    關(guān)鍵詞:測試用例覆蓋率漏洞

    蘇文超 費(fèi)洪曉

    (中南大學(xué)計(jì)算機(jī)學(xué)院 長沙 410083)

    模糊測試是現(xiàn)在流行的漏洞挖掘技術(shù)之一.由于其易部署性和在漏洞挖掘方面的高效性,許多軟件公司,如Adobe[1],Cisco[2],Google[3-5],Microsoft[6-7]等,都會在軟件開發(fā)生命周期中使用模糊測試來保證產(chǎn)品的安全性.

    模糊測試的本質(zhì)是自動化生成隨機(jī)輸入,利用輸入快速執(zhí)行測試程序,并監(jiān)控異常執(zhí)行結(jié)果來發(fā)現(xiàn)軟件漏洞.這種隨機(jī)性可以生成觸發(fā)程序異常的非預(yù)期輸入,但同時(shí),隨機(jī)性也意味著輸入是從輸入空間無方向、無目標(biāo)地選定.這種盲目性會導(dǎo)致大量冗余、無效的輸入,浪費(fèi)程序執(zhí)行時(shí)間,而只有少部分輸入能真正完成觸發(fā)程序異常的功能.

    為了應(yīng)對隨機(jī)性不可避免的性能瓶頸,研究者試圖通過程序的執(zhí)行反饋信息指導(dǎo)模糊測試,從而幫助提升隨機(jī)性種子生成的方向感,但這種智能化的提升也給模糊器帶來一定的性能開銷.

    以AFL(American fuzzy lop)[8]為首,覆蓋率引導(dǎo)的灰盒模糊測試(coverage-guided grey-box fuzzing,CGF)較好地平衡了實(shí)際應(yīng)用中反饋指導(dǎo)的性能開銷和漏洞挖掘的效果,成為工業(yè)應(yīng)用最廣泛的模糊測試技術(shù)之一,也是目前學(xué)術(shù)界模糊測試研究的主流內(nèi)容.國際安全會議上關(guān)于CGF的研究內(nèi)容越來越多,如AFLFast[9],Steelix[10],Vuzzer[11],Angora[12],CollAFL[13],T-Fuzz[14].這些工作對CGF的各運(yùn)行階段、模糊策略進(jìn)行了不同程度的改進(jìn)優(yōu)化.為了保持CGF的快速發(fā)展步伐,有必要對這些改進(jìn)工作做一個(gè)階段性的整合,幫助梳理其碎片化知識,總結(jié)其優(yōu)化方向,從而全面、連貫地認(rèn)識CGF的最新發(fā)展現(xiàn)狀,更明確清晰地進(jìn)行深入研究.

    1 覆蓋率引導(dǎo)的灰盒模糊測試簡介

    1.1 概 述

    1.1.1 灰盒模糊測試

    模糊測試[15]通過隨機(jī)生成輸入來重復(fù)運(yùn)行測試程序,監(jiān)控程序異常,通過記錄導(dǎo)致異常的輸入定位程序中漏洞的位置.所以模糊測試的核心在于能觸發(fā)程序異常的輸入的生成.根據(jù)輸入的生成方式分類[16],目前主要分為基于生成的模糊測試(generation-based fuzzing)和基于突變的模糊測試(mutation-based fuzzing).基于生成的模糊測試根據(jù)已知的輸入規(guī)范建模,然后根據(jù)模型生成新的輸入,如Ifuzzer[17],radamsa[18];基于突變的模糊測試先得到應(yīng)用程序的1組輸入樣本,根據(jù)這些輸入樣本通過變異的方法生成新的輸入,如AFL,hongfuzz[19],zzuf[20].

    基于突變的模糊測試隨機(jī)生成無規(guī)則的樣本作為測試程序的輸入,以測試程序的崩潰或停止行為作為輸入是否有效的反饋信息.這種完全脫離程序執(zhí)行過程的反饋信息指導(dǎo)的模糊測試被定義為黑盒模糊測試.早期的黑盒模糊測試效率低下,大部分輸入無法到達(dá)程序的深層分支,只能在邏輯較為簡單的淺層分支發(fā)揮有效作用,在代碼復(fù)雜度飛躍的現(xiàn)在已經(jīng)難以發(fā)現(xiàn)程序的安全問題[21].

    因此,通過程序執(zhí)行過程的反饋信息指導(dǎo)輸入變異方向的白盒模糊測試開始得到應(yīng)用.白盒模糊測試可合法訪問測試程序的源代碼,通過重量級的程序分析工具獲取程序執(zhí)行時(shí)的反饋信息.但重量級的程序分析工具往往會大幅增加性能開銷.為了能在可控的性能開銷上提高變異輸入的有效性,人們開始提倡使用灰盒模糊測試.灰盒模糊測試處于白盒和黑盒模糊測試之間,它可以采用輕量級的程序分析工具來獲取粗粒度的程序執(zhí)行信息.輕量級的程序分析工具使得灰盒模糊測試在同樣時(shí)間內(nèi)較白盒執(zhí)行更多(百倍甚至千倍)的輸入,因此,灰盒模糊測試的效果甚至能超過白盒[22-23].

    1.1.2 覆蓋率引導(dǎo)的模糊測試

    模糊測試的目標(biāo)是覆蓋程序盡可能多的運(yùn)行狀態(tài),挖掘程序中潛在的漏洞.然而,由于程序行為的不確定性,程序狀態(tài)并不能被直觀地測量.研究者因此選擇將代碼覆蓋率作為程序狀態(tài)的替代測量指標(biāo),即新的代碼覆蓋率的增加近似于新的程序狀態(tài)的增加.

    覆蓋率引導(dǎo)的模糊測試(coverage-guided fuzzing)率先使用代碼覆蓋率作為程序執(zhí)行反饋信息指導(dǎo)生成有效的輸入.有效的輸入即能執(zhí)行程序還未執(zhí)行過的代碼.基于有效的輸入進(jìn)行變異,生成的新的輸入更容易遍歷到程序盡可能多的代碼,也更有可能挖掘到這些代碼中的潛在漏洞.AFL在工業(yè)上持續(xù)的成功經(jīng)驗(yàn)證實(shí)了這種理念的正確性.利用代碼覆蓋率指導(dǎo)生成覆蓋目標(biāo)代碼和程序目標(biāo)路徑的輸入的模糊測試叫作定向模糊測試(directed fuzzing),如AFLGO[24].

    1.1.3 覆蓋率引導(dǎo)的灰盒模糊測試

    CGF是灰盒模糊測試和覆蓋率引導(dǎo)的模糊測試的組合概念.它通過輕量級的程序分析工具獲取程序執(zhí)行時(shí)的覆蓋信息,并根據(jù)覆蓋信息指導(dǎo)輸入生成.

    跟蹤輸入在測試程序中的執(zhí)行路徑可得到準(zhǔn)確全面的程序反饋信息,但由于路徑覆蓋會帶來高昂的性能消耗,實(shí)際應(yīng)用中的CGF一般選擇將更粗糙的基本塊作為代碼覆蓋的粒度.自AFL將邊覆蓋引入模糊測試后,研究者發(fā)現(xiàn)邊覆蓋可獲得比塊覆蓋更準(zhǔn)確的執(zhí)行信息,邊覆蓋開始成為覆蓋率引導(dǎo)的模糊測試的主流研究方向[13].然而,不管是邊覆蓋還是塊覆蓋,CGF都是通過其覆蓋信息的反饋調(diào)整輸入,以期獲得在應(yīng)用程序上更多的代碼執(zhí)行,挖掘到潛在的漏洞.

    1.2 覆蓋率引導(dǎo)的灰盒模糊測試通用框架

    CGF的主流程為模糊迭代過程,主要分為輸入生成和程序測試2個(gè)階段.在用戶設(shè)置的時(shí)間超時(shí)之前,CGF不斷重復(fù)生成輸入,用輸入執(zhí)行測試程序,再經(jīng)由執(zhí)行的反饋信息指導(dǎo)下一輪輸入生成.圖1展示了典型的CGF流程圖.其中:輸入生成階段包括種子調(diào)度和變異操作;程序測試階段包括程序執(zhí)行和反饋信息收集操作.

    圖1 CGF流程圖

    模糊迭代以種子s和插樁程序作為輸入.種子s即CGF的初始化種子,其可以由用戶提供也可以由模糊器生成.用戶提供的種子往往比模糊器隨機(jī)生成的種子具有更好的輸入格式,更可能通過程序的語法語義檢查而執(zhí)行到深層代碼.此外,基于高質(zhì)量的種子進(jìn)行變異也更容易獲得新的高質(zhì)量的輸入[25].所以,在實(shí)踐中,用戶通常會從網(wǎng)絡(luò)或應(yīng)用程序的測試文檔里提取合法的輸入作為模糊迭代的種子,以提高模糊測試的效果.注意,本文中種子和測試用例皆為插樁程序的輸入.為了區(qū)分其在模糊迭代過程中的作用,將保存在全局隊(duì)列S中,用于變異的高質(zhì)量的輸入叫作種子;將種子經(jīng)過變異操作后,隨機(jī)生成的直接用于執(zhí)行程序的輸入叫作測試用例.

    初始化種子作為變異的候選樣本,保存到全局隊(duì)列S中(步驟①).然后,種子調(diào)度器根據(jù)一定的評價(jià)標(biāo)準(zhǔn)把種子排好優(yōu)先級,從隊(duì)列S中選擇一個(gè)優(yōu)先級最高,也就是質(zhì)量最好的種子(步驟②),再根據(jù)其質(zhì)量權(quán)重分配該種子相應(yīng)的能量值(步驟③),此時(shí),下一輪待變異的種子s′已確定.能量是指導(dǎo)變異器生成測試用例數(shù)量的指標(biāo).能量越高,生成的測試用例數(shù)量越多.因此,基于能量值的設(shè)置,可以將程序測試的時(shí)間資源向高質(zhì)量的輸入傾斜,從而在有限的時(shí)間內(nèi)找到盡可能多的程序漏洞.此外,各模糊器的種子選擇標(biāo)準(zhǔn)不盡相同,例如,AFL傾向于選擇最小測試用例數(shù)量或執(zhí)行速度最快的種子,AFLFAST傾向于選擇能夠執(zhí)行到低執(zhí)行頻率路徑的種子.Shudrak等人[26]基于復(fù)雜代碼更容易出錯的猜想,利用軟件復(fù)雜度對種子排序.

    待變異種子s′傳遞到變異器中(步驟④),同樣地,不同的模糊器可以執(zhí)行不同的突變策略.AFL采用隨機(jī)修改和拼接的突變策略,包括順序翻轉(zhuǎn)不同長度和步長的位、小整數(shù)的順序加減、已知整數(shù)(0,1,INT_MAX)的插入等方法[27].變異器根據(jù)預(yù)設(shè)的突變策略,對種子s′進(jìn)行突變,生成新的1組輸入,即測試用例(步驟⑤).

    用生成的測試用例執(zhí)行插樁程序(步驟⑥和步驟⑦).插樁即在保證程序原有邏輯完整性的基礎(chǔ)上在程序中插入一些探針,從而進(jìn)行信息采集[28].在CGF中,插樁用于獲取程序執(zhí)行時(shí)的覆蓋信息.AFL根據(jù)是否提供源代碼,提供編譯器內(nèi)插樁和外部插樁2種方式.編譯器內(nèi)插樁包括gcc模式和llvm模式,在生成二進(jìn)制代碼時(shí)完成代碼段插樁工作;外部插樁即利用qemu[29]在基本塊轉(zhuǎn)換為TCG塊時(shí)完成代碼段插樁工作[30].

    程序執(zhí)行過程中,模糊器持續(xù)跟蹤程序狀態(tài),收集程序異常和崩潰信息以及覆蓋率的反饋信息(步驟⑧).如果1個(gè)測試用例導(dǎo)致了程序崩潰,或者增加了新的代碼覆蓋,那么該測試用例將保存到隊(duì)列S中,等待下一輪的種子調(diào)度(步驟⑨).

    模糊迭代停止后,將所有測試用例執(zhí)行到的漏洞信息輸出(步驟⑩).

    CGF的偽代碼如算法1所示,遵循與圖1一致的執(zhí)行邏輯.其中:bitmap為程序的全局覆蓋率位圖,保存整個(gè)模糊迭代過程中的代碼覆蓋信息;bitmap′為每輪測試用例t所執(zhí)行到的代碼覆蓋率位圖.當(dāng)測試用例t探測到新的覆蓋信息時(shí),該覆蓋信息將被加入bitmap,同時(shí)將t作為高質(zhì)量種子保存到全局隊(duì)列S.

    算法1.覆蓋率引導(dǎo)的灰盒模糊測試流程.

    ① 輸入:檢測后的測試程序p、種子s;

    ② 輸出:缺陷B.

    ③B=?;

    ④bitmap=?;

    ⑤S=s;

    ⑥ repeat:

    ⑦s′=Schedule(S);

    ⑧t=Mutate(s′);

    ⑨B′,bitmap′=Execute(t);

    ⑩ ifbitmap′∩bitmap≠? then

    S=S∪t;

    2 覆蓋率引導(dǎo)的灰盒模糊測試面臨的挑戰(zhàn)

    2.1 面向模糊階段的挑戰(zhàn)

    2.1.1 輸入生成階段的挑戰(zhàn)

    1) 種子調(diào)度問題.

    種子調(diào)度策略包括種子選擇策略和能量分配策略2個(gè)子部分.目前,在選擇種子時(shí),CGF通常使用單維度評價(jià)標(biāo)準(zhǔn)對種子質(zhì)量進(jìn)行優(yōu)先級排序,如文獻(xiàn)[26].這種單一的評價(jià)體系簡單、易實(shí)現(xiàn),但容易導(dǎo)致種子偏見和饑餓現(xiàn)象,使得部分高質(zhì)量的種子無法得到突變的機(jī)會去發(fā)揮應(yīng)有的價(jià)值.AFL,AFLFAST試圖使用線性權(quán)重法[31]計(jì)算多維度目標(biāo)的加權(quán)和,并以此作為評價(jià)標(biāo)準(zhǔn).但由于線性權(quán)重算法中使用的權(quán)重值很大程度依賴于個(gè)人經(jīng)驗(yàn),而沒有統(tǒng)計(jì)數(shù)據(jù)支撐,也帶來了經(jīng)驗(yàn)主義的問題.

    能量分配策略決定了程序測試時(shí)對種子的時(shí)間資源分配.AFL最初將更多的能量分配給規(guī)模較小的執(zhí)行時(shí)間較短的種子.AFLFAST基于梯度下降算法將能量更多地分配給執(zhí)行低頻路徑的種子.如何合理地評估并量化種子的質(zhì)量,分配相應(yīng)的能量,是研究者持續(xù)探索的問題.

    2) 種子變異問題.

    測試用例的質(zhì)量會直接影響程序測試的效果.因而各模糊器都致力于提高有效的測試用例的生成比例,即盡可能生成既符合程序語法和語義要求,同時(shí)能探查到程序漏洞的測試用例.然而,由于突變空間過大,且缺乏有效的突變方向指導(dǎo),如何對種子進(jìn)行變異一直都是CGF的難點(diǎn),也進(jìn)一步導(dǎo)致當(dāng)前的CGF方法具有“難以發(fā)現(xiàn)特定輸入才能觸發(fā)的漏洞”“難以發(fā)現(xiàn)多個(gè)條件同時(shí)滿足才能觸發(fā)的漏洞”等問題.

    具體來說,突變只有發(fā)生在種子的關(guān)鍵位置才會影響程序執(zhí)行的控制流.同時(shí),突變生成的測試用例的選擇也很重要,首選可以增加新的路徑執(zhí)行測試用例.為了生成更合法有效的測試用例,需要使用程序反饋信息確定種子突變的位置、突變的值,從而確定測試用例突變的方向,縮小突變空間的范圍.但由于CGF只使用輕量級的程序分析工具,因此獲取的覆蓋信息不足以準(zhǔn)確定位突變位置和突變值.如何獲取更多的覆蓋反饋信息去指導(dǎo)變異和如何提高現(xiàn)有反饋信息的利用率去縮小突變空間都有待更有效的辦法去解決.

    隨著移動互聯(lián)網(wǎng)的高速發(fā)展,越來越多的應(yīng)用程序和庫需要處理高度結(jié)構(gòu)化的輸入,如圖像、音頻、視頻、數(shù)據(jù)庫、文檔或電子表格文件.應(yīng)用程序在執(zhí)行之前通常會對輸入進(jìn)行語法和語義分析.其中:語法分析將原始輸入解析為程序內(nèi)部數(shù)據(jù)結(jié)構(gòu);語義分析對該數(shù)據(jù)結(jié)構(gòu)進(jìn)行檢查并執(zhí)行程序的核心邏輯[32].由于CGF缺乏輸入結(jié)構(gòu)感知,變異操作都是在種子文件的位級上進(jìn)行的.而位級變異不太可能改變文件結(jié)構(gòu),使得大多數(shù)生成的測試用例在程序執(zhí)行的早期階段就被語法與語義檢查攔截,無法有效執(zhí)行到程序的深層次代碼.如何在變異階段對文件結(jié)構(gòu)進(jìn)行突變,探索到程序的合法輸入格式,從而生成有效的高度結(jié)構(gòu)化輸入,同樣值得思考.

    遠(yuǎn)程監(jiān)控系統(tǒng)具體指的所有地方的設(shè)備通過一個(gè)電腦終端即可進(jìn)行控制的技術(shù)。在電氣工程當(dāng)中通過此種設(shè)計(jì)方案不但可以使安裝及材料等成本得到節(jié)省,也能夠大大縮減電纜的數(shù)量,形成很高的穩(wěn)定性和組態(tài)靈活性,同時(shí)達(dá)到了生產(chǎn)規(guī)模的高效益??墒且?yàn)殡姎夤こ坍?dāng)中通訊量很大,同時(shí)現(xiàn)場總線在通訊速度上還達(dá)不到要求,在一些信號較差的區(qū)域會造成這種遠(yuǎn)程監(jiān)控方式起不到實(shí)際作用,無法開展,因此遠(yuǎn)程監(jiān)控方式的理念只可用到比較小的電氣工程中,不適合整個(gè)電氣自動化控制系統(tǒng)。

    2.1.2 程序測試階段的挑戰(zhàn)

    1) 代碼覆蓋率增長瓶頸問題.

    CGF將程序的漏洞挖掘問題轉(zhuǎn)換為一個(gè)優(yōu)化問題,即如何在有限的時(shí)間內(nèi),覆蓋盡可能多的程序代碼.利用代碼覆蓋率作為漏洞數(shù)量的替代指標(biāo)[33],程序覆蓋率越高也就意味著發(fā)現(xiàn)漏洞的可能性越大.然而,眾多實(shí)踐表明大多數(shù)測試用例只重復(fù)覆蓋相同的部分路徑,而不會發(fā)散性地覆蓋更多的路徑[9].如何改變這種情況,提高程序的總體覆蓋率是CGF發(fā)展的挑戰(zhàn)與動力[34].

    同時(shí),程序校驗(yàn)也是代碼覆蓋率增長瓶頸的一個(gè)原因.魔術(shù)數(shù)字、魔術(shù)字符串、版本號檢查和校驗(yàn)是程序中常用的校驗(yàn)方式,而大量的測試用例被這些程序校驗(yàn)攔截,難以執(zhí)行到深層代碼.

    2) 覆蓋率信息獲取受限問題.

    程序分析工具跟蹤測試用例在插樁程序中的執(zhí)行狀態(tài),基于收集到的程序反饋信息判斷測試用例的質(zhì)量,決定是否將其加入種子隊(duì)列.因此,反饋信息的全面性和準(zhǔn)確性對于高質(zhì)量種子的選擇非常重要.然而,由于只使用輕量級程序分析工具,CGF無法獲取測試用例執(zhí)行路徑的上下文信息[35].上下文信息對于種子質(zhì)量判斷非常有效.例如,如果測試用例執(zhí)行路徑的鄰近代碼都被其他的輸入覆蓋過,那么由該測試用例變異生成的輸入執(zhí)行到新的路徑的可能性就會很低.那么,該測試用例就不適合作為種子保存.由于種子質(zhì)量直接關(guān)系著程序測試的效果,所以如何獲取更詳細(xì)的覆蓋信息,如上下文信息,來正確地選擇高質(zhì)量的種子成為一個(gè)急需解決的問題.

    3) 程序分析技術(shù)的性能問題.

    目前,CGF通常通過高成本的白盒分析技術(shù)收集反饋信息,如符號執(zhí)行技術(shù).由于每個(gè)測試用例都能在程序中執(zhí)行不同的路徑,所以符號執(zhí)行非常有效.然而,這種有效性是以大量時(shí)間開銷和內(nèi)存開銷為代價(jià)的,高開銷使得模糊測試在可擴(kuò)展性方面受到嚴(yán)重限制.

    保證CGF的簡單性、高速性、可靠性、可擴(kuò)展性是程序分析技術(shù)集成的前提.重量級分析技術(shù)的集成帶來的效果提升不足以抵消性能急劇下降帶來的弊端.例如,檢測工具發(fā)現(xiàn)漏洞的可能性提高了10倍,但運(yùn)行速度卻降低了99%,集成了程序分析技術(shù)的智能模式還是不如盲目的隨機(jī)模式有效.

    2.2 面向應(yīng)用場景的挑戰(zhàn)

    隨著應(yīng)用程序在人們生活中的使用范圍越來越廣泛,其所承受的安全威脅也日趨多元化、復(fù)雜化,并因不同的使用場景而呈現(xiàn)不同的威脅特點(diǎn).例如,高速發(fā)展的物聯(lián)網(wǎng)設(shè)備開始在人們生活中充當(dāng)重要的角色,按照如今的增長幅度,到2030年,物聯(lián)網(wǎng)設(shè)備數(shù)量將比人類數(shù)量還多[36],如此龐大的攻擊范圍使得物聯(lián)網(wǎng)對安全漏洞檢測工具有了前所未有的需求.然而,盡管CGF對于通用平臺上的程序漏洞檢測很有效,但由于物聯(lián)網(wǎng)設(shè)備對實(shí)際硬件配置的強(qiáng)依賴性,所以通常不可能直接在物聯(lián)網(wǎng)設(shè)備上應(yīng)用模糊測試.為了應(yīng)對平臺兼容性問題,Zaddach等人[37]試圖使用硬件和軟件仿真相結(jié)合的解決方案,Chen等人[38]試圖利用完整的系統(tǒng)仿真技術(shù),但其性能也遠(yuǎn)遠(yuǎn)不夠理想[23].

    將CGF應(yīng)用到通信協(xié)議漏洞檢測上時(shí),也面臨著覆蓋率不高、漏洞挖掘效果差的問題.通信協(xié)議通常由服務(wù)器/客戶端上的狀態(tài)機(jī)來實(shí)現(xiàn),狀態(tài)轉(zhuǎn)換由包/消息交換等關(guān)鍵協(xié)議事件驅(qū)動.目前主要使用代理對數(shù)據(jù)包進(jìn)行突變和測試[39],但由于缺乏狀態(tài)感知,CGF無法引導(dǎo)協(xié)議進(jìn)入感興趣的狀態(tài),并重復(fù)使用數(shù)據(jù)包輸入對其進(jìn)行測試.此外,在協(xié)議中,多端之間的多包通信,既包括非依賴包/字段的消息傳遞,也包括依賴包/字段的消息傳遞.目前CGF使用的單包測試無法有效實(shí)現(xiàn)非依賴包之間的代碼覆蓋,而使用多包測試又可能導(dǎo)致不一致的消息傳遞.應(yīng)用于通信協(xié)議的CGF必須面對這些挑戰(zhàn)并提出解決辦法[40].

    3 覆蓋率引導(dǎo)的灰盒模糊測試的發(fā)展

    3.1 集成的關(guān)鍵技術(shù)

    為了應(yīng)對CGF面臨的挑戰(zhàn),研究者試圖通過集成其他技術(shù)的長處來彌補(bǔ)CGF的缺陷,從而更精確地收集程序控制流和數(shù)據(jù)流信息,利用收集到的信息生成更具針對性的輸入,以更好地指導(dǎo)程序執(zhí)行階段的路徑探索.目前,符號執(zhí)行和污點(diǎn)分析是使用較廣泛的技術(shù),隨著機(jī)器學(xué)習(xí)技術(shù)的成熟,機(jī)器學(xué)習(xí)在CGF中的應(yīng)用也越來越多.

    3.1.1 符號執(zhí)行

    靜態(tài)分析是指不執(zhí)行程序的狀態(tài)下,利用詞法分析、語法分析、控制流等技術(shù)對代碼進(jìn)行掃描,并對其程序行為進(jìn)行分析的技術(shù).根據(jù)分析目標(biāo)可分為源代碼分析和二進(jìn)制分析.近年來靜態(tài)分析向模擬執(zhí)行技術(shù)發(fā)展,通過符號執(zhí)行、抽象解釋等技術(shù)可以發(fā)現(xiàn)很多傳統(tǒng)意義上動態(tài)測試才能發(fā)現(xiàn)的缺陷,如未對參數(shù)進(jìn)行邊界檢查而造成的緩沖區(qū)溢出、堆溢出等漏洞[41].

    靜態(tài)分析容易集成到開發(fā)環(huán)境中,自動化程度較高.早期靜態(tài)分析中的符號執(zhí)行技術(shù)被廣泛應(yīng)用于模糊測試中,一些灰盒或白盒模糊器利用符號執(zhí)行提高測試覆蓋率,如EFFIGY[42],Prefix[43],Prefast,ARCHER[44]等.

    符號執(zhí)行的概念由Boyer等人[45]提出,其主要思想是使用符號變量代替具體數(shù)值作為程序輸入,在模擬程序執(zhí)行過程中收集與輸入符號變量相關(guān)的路徑約束條件,計(jì)算符號變量的具體值,生成能夠引導(dǎo)程序執(zhí)行該路徑的測試數(shù)據(jù).

    但由于缺乏程序運(yùn)行時(shí)信息,符號執(zhí)行難以完全模擬程序執(zhí)行,使得分析不夠精確.為解決該問題,研究人員提出了混合符號執(zhí)行的概念,將符號執(zhí)行從靜態(tài)分析技術(shù)轉(zhuǎn)變?yōu)閯討B(tài)分析技術(shù).其核心思想是在程序真實(shí)運(yùn)行過程中,判斷哪些代碼需要符號化執(zhí)行,哪些代碼可直接執(zhí)行,代表性的工具有EXE[46],CUTE[47],DART[48],SymFuzz[49]等.符號執(zhí)行可能帶來狀態(tài)爆炸的問題,由此也發(fā)展出了動態(tài)符號執(zhí)行的概念.動態(tài)符號執(zhí)行是將路徑限制在一個(gè)具體的路徑上,程序只能觸發(fā)該路徑下的bug或者發(fā)現(xiàn)一個(gè)新的路徑,以減少正在研究的狀態(tài)數(shù)量,并用具體數(shù)值替換復(fù)雜表達(dá)式,降低程序復(fù)雜度[50].

    3.1.2 污點(diǎn)分析

    污點(diǎn)分析技術(shù)是信息流分析技術(shù)的一種,它將系統(tǒng)或應(yīng)用程序中的數(shù)據(jù)標(biāo)記為污點(diǎn)或非污點(diǎn),如果污點(diǎn)數(shù)據(jù)在傳播時(shí)影響到非污點(diǎn)數(shù)據(jù),則該非污點(diǎn)數(shù)據(jù)被標(biāo)記修改為污點(diǎn).若污點(diǎn)標(biāo)簽隨數(shù)據(jù)傳播到指定存儲區(qū)域或信息泄露點(diǎn),則認(rèn)為該系統(tǒng)違反了信息流策略.污點(diǎn)分析也可以分為靜態(tài)污點(diǎn)分析和動態(tài)污點(diǎn)分析[51].

    靜態(tài)污點(diǎn)分析是指在不運(yùn)行程序的情況下,通過詞法、語法分析等方法分析變量間數(shù)據(jù)和控制依賴關(guān)系,如賦值、函數(shù)調(diào)用、別名等;動態(tài)污點(diǎn)分析旨在程序運(yùn)行過程中,跟蹤并記錄變量、寄存器等值,通常采用插樁的方法,在不破壞原有程序邏輯的基礎(chǔ)上插入采集信息的代碼,從而獲得程序運(yùn)行的相關(guān)信息.污點(diǎn)分析技術(shù)首先對污染源進(jìn)行定位,然后監(jiān)測污染數(shù)據(jù)在軟件中的傳播,最后根據(jù)污點(diǎn)匯聚點(diǎn)獲取關(guān)鍵信息[52].靜態(tài)分析考慮了程序所有可能的執(zhí)行路徑,但不運(yùn)行無法分析準(zhǔn)確的漏洞點(diǎn);動態(tài)分析則可以獲得程序運(yùn)行中的具體信息,分析精度較高,但頻繁的插樁和影子內(nèi)存會占用大量系統(tǒng)資源[53],并且只能分析執(zhí)行到的路徑,存在一定的誤報(bào).所以有研究者將二者進(jìn)行了結(jié)合,先執(zhí)行靜態(tài)污點(diǎn)分析獲得初步信息,提高路徑覆蓋率,然后執(zhí)行動態(tài)污點(diǎn)分析獲得漏洞的具體信息,提高精度[54].

    由于很多軟件的源代碼無法獲取,所以動態(tài)污點(diǎn)分析經(jīng)常被運(yùn)用.模糊測試的核心思想是生成大量測試用例保證較高的代碼覆蓋率從而對程序進(jìn)行檢測,污點(diǎn)分析的引入使模糊測試可以更好地理解漏洞點(diǎn).此外,動態(tài)污點(diǎn)分析與符號執(zhí)行相結(jié)合,更好地提升了具有校驗(yàn)機(jī)制的程序進(jìn)行模糊測試的效率.

    3.1.3 機(jī)器學(xué)習(xí)

    機(jī)器學(xué)習(xí)旨在模擬人類的學(xué)習(xí)活動,從對數(shù)據(jù)的自動分析中獲得規(guī)律,并利用規(guī)律對未知數(shù)據(jù)進(jìn)行預(yù)測.因?yàn)闄C(jī)器學(xué)習(xí)算法中涉及了大量的統(tǒng)計(jì)學(xué)理論,機(jī)器學(xué)習(xí)與推斷統(tǒng)計(jì)學(xué)聯(lián)系尤為密切,也被稱為統(tǒng)計(jì)學(xué)習(xí)理論.機(jī)器學(xué)習(xí)算法包括分類算法、聚類算法、回歸算法等.

    模糊測試隨機(jī)初始種子集通常很難達(dá)到很好的效果,這是由于:種子生成是隨機(jī)的,沒有較好的指向性;測試失敗時(shí)不能總結(jié)規(guī)律,從而導(dǎo)致大量重復(fù);種子文件較高的代碼重復(fù)率使得無法測試深度漏洞.引進(jìn)機(jī)器學(xué)習(xí)可以很好地解決這類問題.例如,Wang等人[55]利用深度學(xué)習(xí)網(wǎng)絡(luò),將惡意html樣本的文件結(jié)構(gòu)作為訓(xùn)練集,訓(xùn)練深度學(xué)習(xí)模型,生成帶有部分針對瀏覽器漏洞的惡意代碼,產(chǎn)生更有針對性的種子文件.

    3.2 面向模糊階段的改進(jìn)

    3.2.1 輸入生成階段改進(jìn)

    輸入生成階段又可分為種子調(diào)度階段和突變階段.

    在種子調(diào)度階段:Vuzzer[11]利用程序感知的模糊策略,通過在程序測試期間對程序進(jìn)行輕量級靜態(tài)和動態(tài)分析推斷控制流特性,使得Vuzzer[11]可優(yōu)先選擇執(zhí)行深度路徑的種子進(jìn)行突變.CollAFL應(yīng)用3種不同的策略優(yōu)先選擇具有更多未覆蓋的相鄰分支或后代的種子.Cerebro[35]使用了一個(gè)在線多目標(biāo)算法,通過平衡代碼復(fù)雜度、代碼覆蓋率、執(zhí)行時(shí)間等指標(biāo)選擇種子.同時(shí)引入輸入潛力概念分配種子能量,即通過預(yù)測種子對未覆蓋代碼的覆蓋潛力而不是對已覆蓋的執(zhí)行跟蹤來評估輸入.FuzzFactory[56]將提高代碼覆蓋率的輸入放入種子隊(duì)列,同時(shí)將特定域相關(guān)的中間輸入放入種子隊(duì)列,從而提高特定域的模糊測試覆蓋率.

    在突變階段:Hybrid-Fuzz[56]利用符號執(zhí)行收集關(guān)注的程序路徑上的約束條件,使用約束求解生成能實(shí)際覆蓋該路徑的測試輸入,以達(dá)到檢測測試程序特定代碼點(diǎn)的功能;Skyfire[55]應(yīng)用數(shù)據(jù)驅(qū)動種子生成策略,以語料庫和語法作為輸入,學(xué)習(xí)概率上下文敏感語法(PCSG),以指定語法特征和語義規(guī)則,然后利用學(xué)習(xí)過的PCSG生成種子輸入;AFLFast將CGF建模為馬爾可夫鏈,指定從執(zhí)行路徑i的種子突變生成能探索到路徑j(luò)的測試用例的概率pij,并根據(jù)概率指定分配相應(yīng)的程序執(zhí)行時(shí)間;AFLsmart[32]針對需要處理復(fù)雜文件格式的應(yīng)用程序,利用種子文件的高級結(jié)構(gòu)來生成新文件.將變異的粒度由位級變更到文件級,從而在保持文件有效性的同時(shí)探索全新的輸入域;Neuzz[33]應(yīng)用了一種新的程序平滑技術(shù),該技術(shù)使用代理神經(jīng)網(wǎng)絡(luò)模型,可以增量地學(xué)習(xí)一個(gè)復(fù)雜的、真實(shí)世界的程序的分支行為的平滑近似,這種神經(jīng)網(wǎng)絡(luò)模型可以與梯度導(dǎo)向的輸入生成方案一起使用,生成能探索到新路徑的輸入;Zest[57]通過參數(shù)生成器將輸入從簡單的參數(shù)域轉(zhuǎn)換為更結(jié)構(gòu)化的域,如語法有效的XML,從而使參數(shù)級突變能夠映射到測試輸入中的結(jié)構(gòu)突變,生成語義有效的輸入;Superion[58]基于語法感知覆蓋的灰盒模糊方法處理結(jié)構(gòu)化輸入.將每個(gè)測試輸入解析為一個(gè)抽象的語法樹,進(jìn)而引入一種語法感知的調(diào)整策略,在保持輸入結(jié)構(gòu)有效性的同時(shí)調(diào)整測試輸入;Choi等人[59]利用動態(tài)符號執(zhí)行最大限制地將灰盒變白,生成能滿足分支條件的測試用例;SLF[60]利用AFL來識別輸入有效性校驗(yàn)以及對此類檢查有影響的輸入字段,然后根據(jù)這些校驗(yàn)與輸入的關(guān)系對輸入進(jìn)行分類,包括算術(shù)關(guān)系、對象偏移量、數(shù)據(jù)結(jié)構(gòu)長度等,提出多目標(biāo)搜索算法以應(yīng)用特定類別的變異.

    3.2.2 程序測試階段改進(jìn)

    在程序測試階段,CGF會持續(xù)跟蹤輸入在測試程序中的執(zhí)行狀態(tài),提取相關(guān)的反饋信息,指導(dǎo)如何探索新的路徑,并挑選出有價(jià)值的高質(zhì)量種子放入種子隊(duì)列.研究者們針對該階段覆蓋率信息獲取的準(zhǔn)確性、全面性挑戰(zhàn)和覆蓋率增加的挑戰(zhàn)做了大量工作,其中,性能開銷的降低是伴隨著覆蓋率信息獲取或覆蓋率增加的過程而實(shí)現(xiàn)的.

    在覆蓋率信息獲取問題上,CollAFL[13]分析了AFL代碼覆蓋率計(jì)算存在的哈希碰撞問題,并提出了新的哈希算法以提高覆蓋率信息的準(zhǔn)確度.Intel處理器提供Intel PT(Intel processor trace)完成觸發(fā)和過濾功能,實(shí)時(shí)地跟蹤執(zhí)行過程,獲取更準(zhǔn)確的覆蓋信息[61].Intel PT具有執(zhí)行速度快、無源依賴等優(yōu)點(diǎn)[30].Nagy等人[62]基于大多數(shù)測試用例都是無效輸入的觀點(diǎn),提出將覆蓋率信息用于指導(dǎo)跟蹤的方法,只跟蹤增加代碼覆蓋率的測試用例,從而獲得更快的速度.

    為了突破覆蓋率增長瓶頸,很多研究者都試圖在突破程序約束及路徑檢查工作上作改進(jìn).符號執(zhí)行具有天然的優(yōu)勢,可識別執(zhí)行過程中的阻塞點(diǎn),幫助模糊器通過程序控制流程中復(fù)雜的條件判斷.例如:Driller[63]利用動態(tài)符號執(zhí)行生成滿足特定條件要求的值,繞過條件判斷,從而找到更深層次的漏洞,且為了降低性能開銷,只有CGF在一定時(shí)間內(nèi)無法取得任何進(jìn)展時(shí),才會啟動動態(tài)符號執(zhí)行;Wang等人[64]提出了一種“最佳轉(zhuǎn)換”策略,分別通過模糊測試和約束執(zhí)行來量化探索每條路徑的成本,并選擇更經(jīng)濟(jì)的方法探索該路徑;Zhao等人[65]提出“區(qū)分派遣”策略,基于蒙特卡洛的概率路徑優(yōu)先級模型量化每條路徑的難度并排列優(yōu)先級,將動態(tài)符號執(zhí)行傾斜于最困難的路徑計(jì)算,從而緩解路徑爆炸問題,增加模糊測試效果.

    T-Fuzz[14]刪除了代碼探測路徑上的完整性檢查,使用符號執(zhí)行檢測刪除操作所導(dǎo)致的誤報(bào)問題;Pak[66]提出“區(qū)別調(diào)度”策略,通過量化探索每條路徑的成本,對路徑進(jìn)行優(yōu)先級排序,使用協(xié)同執(zhí)行計(jì)算優(yōu)先級最高的路徑,從而避免了路徑爆炸問題,更經(jīng)濟(jì)有效地完成對路徑的探索.REDQUEEN[50]基于部分輸入直接對應(yīng)于運(yùn)行時(shí)的內(nèi)存和寄存器這一觀察,通過跟蹤程序比較指令中的使用值,創(chuàng)建輕量級的近似污染跟蹤,使用快速模糊過程驗(yàn)證是否觸發(fā)了新的和潛在的行為.

    3.3 面向應(yīng)用場景的改進(jìn)

    為了應(yīng)對物聯(lián)網(wǎng)設(shè)備的兼容性及性能問題,F(xiàn)IRM-AFL[67]在系統(tǒng)模擬器中模擬的posix兼容固件上應(yīng)用CGF來解決兼容性問題,并使用一種稱為增強(qiáng)流程仿真(augmented process emulation)的新技術(shù)將系統(tǒng)模式仿真和用戶模式仿真結(jié)合起來,兼具了系統(tǒng)模式仿真的高兼容性和用戶模式仿真的高吞吐量,從而突破系統(tǒng)模式仿真所導(dǎo)致的性能瓶頸.

    Chen等人[68]提出了針對通信協(xié)議的有狀態(tài)協(xié)議模糊策略,探索與不同協(xié)議狀態(tài)相關(guān)的代碼,從而實(shí)現(xiàn)更高的代碼覆蓋率.具體來說,該狀態(tài)模糊器在測試程序執(zhí)行時(shí)創(chuàng)建多個(gè)狀態(tài),并識別用于不同狀態(tài)的包和字段,根據(jù)動態(tài)執(zhí)行的模糊效果,選擇合適的時(shí)間復(fù)制協(xié)議狀態(tài)、前進(jìn)到下一個(gè)協(xié)議狀態(tài)或回滾到前一個(gè)協(xié)議狀態(tài),多次重復(fù)從而確定最高代碼覆蓋率的最佳點(diǎn),實(shí)現(xiàn)最大的代碼覆蓋率和代碼執(zhí)行深度.

    4 覆蓋率引導(dǎo)的灰盒模糊器評估

    模糊測試在挖掘真實(shí)軟件中的安全漏洞方面取得的巨大成功極大促進(jìn)了研究者的研究熱情.近年來,越來越多的模糊測試策略和算法相繼被提出.每當(dāng)一種新的模糊算法被提出時(shí),必須在實(shí)驗(yàn)上證明它優(yōu)于現(xiàn)階段的模糊算法.

    4.1 主流評估方法

    目前,對于模糊器的實(shí)驗(yàn)評估,主流方法是:首先,選擇一個(gè)現(xiàn)階段先進(jìn)且性能令人信服的模糊器作為比較對象,近年來,將AFL作為比較對象是眾多研究的選擇.其次,選擇1組用于測試模糊器效果的測試程序.測試程序主要分為實(shí)際可用的程序,如:谷歌模糊測試組件、readelf、nm、objdump等開源程序;人工構(gòu)造的程序,如CGC,LAVA-M數(shù)據(jù)集,這些數(shù)據(jù)集都被人工注入了漏洞,以測試模糊器挖掘漏洞的能力.在相同的運(yùn)行環(huán)境下比較需要評估的模糊器和作為比較對象的模糊器在尋找漏洞方面的效率和效果.通常情況下,將找到漏洞的速度、找到新的CVE漏洞數(shù)量、程序代碼的覆蓋率作為評估標(biāo)準(zhǔn),以證明模糊器的真實(shí)有效性.

    4.2 重新評估工作

    Klees等人[69]對2012—2018年發(fā)表的32篇模糊測試論文的實(shí)驗(yàn)評估部分進(jìn)行了重新評估,其結(jié)果表明,沒有一個(gè)模糊測試的評估實(shí)驗(yàn)?zāi)苷_執(zhí)行所有符合規(guī)范的評估流程和評估標(biāo)準(zhǔn).而評估流程和評估標(biāo)準(zhǔn)的差異性確實(shí)可以轉(zhuǎn)化為有誤導(dǎo)性或不正確的評估結(jié)果.根據(jù)Klees等人[69]的工作結(jié)果,繼續(xù)對2018—2019年所發(fā)表的模糊器論文的實(shí)驗(yàn)評估作統(tǒng)計(jì)調(diào)查,結(jié)果如表1所示:

    表1 模糊器實(shí)驗(yàn)評估數(shù)據(jù)總結(jié)

    測試對象:R表示實(shí)際程序,C表示CGC數(shù)據(jù)集,L表示LAVA-M基準(zhǔn),G表示谷歌fuzzer測試套件.

    性能方差:不同輪數(shù)的模糊測試的性能差異方差.A表示置信區(qū)間.

    崩潰分類:S表示用堆棧哈希對相關(guān)崩潰進(jìn)行分組,O表示用其他工具/方法分類,B表示用覆蓋率信息對崩潰分類,F(xiàn)表示用現(xiàn)實(shí)依據(jù)進(jìn)行崩潰分類.

    覆蓋率指標(biāo):L表示行/指令/基本塊覆蓋,M表示方法覆蓋,E表示控制流邊或分支覆蓋,Z表示其他覆蓋信息.

    種子:H表示隨機(jī)取樣種子,M表示手工構(gòu)建種子,T表示自動生成種子,N表示未預(yù)設(shè)有效性的非空種子,V表示預(yù)設(shè)有效的種子,但不清楚該種子的獲取途徑,Y表示空種子,/表示在不同的程序用了不同的種子.

    4.3 存在問題

    盡管研究者都盡量設(shè)置了客觀有效的實(shí)驗(yàn)以增加結(jié)果的可信度,但由于缺乏統(tǒng)一的評估流程、評估指標(biāo),還是難以在現(xiàn)實(shí)中用統(tǒng)一維度證明這些模糊器的進(jìn)步性.主要問題分析如下:

    1) 參考對象選擇不統(tǒng)一.盡管大部分研究都選擇將AFL作為比較對象,但仍有一些選擇了其他參考對象,如REDQUEEN[50].且近年來眾多模糊器都是在AFL的基礎(chǔ)上進(jìn)行改進(jìn),一些研究會傾向于選擇與更先進(jìn)的模糊器進(jìn)行比較,以證明取得的進(jìn)步.由于參考對象選擇范圍的廣闊性,充當(dāng)參考對象的模糊器在各評估指標(biāo)上表現(xiàn)的差異性,客觀的參考標(biāo)準(zhǔn)難以確定.

    2) 測試程序選擇不統(tǒng)一.通常情況下,模糊算法的進(jìn)步性在測試程序上得到驗(yàn)證后,希望其性能優(yōu)越性能在現(xiàn)實(shí)生活中的大部分程序中體現(xiàn)出來.即模糊器在測試程序上的良好性能能轉(zhuǎn)化為總體上的良好性能,這就要求測試程序具有一定的代表性.目前沒有代表性的測試基準(zhǔn)能滿足這些要求,因此不同的模糊器往往會自主選擇測試程序.部分研究會傾向于選擇模糊器表現(xiàn)優(yōu)異的程序進(jìn)行測試,這使得客觀評判模糊器在現(xiàn)實(shí)運(yùn)用中的真實(shí)性能更加困難.

    3) 測試時(shí)間設(shè)置不統(tǒng)一.目前模糊器的超時(shí)時(shí)間設(shè)置通常從1 h到幾天或幾周不等,常見的選擇是24 h,5 h,6 h.大多數(shù)研究都沒有給出合理的超時(shí)報(bào)告.然而,算法之間的相對性能會隨著時(shí)間的變化而變化,較短的運(yùn)行時(shí)間可能會造成誤導(dǎo),產(chǎn)生不完整的結(jié)果.

    4) 測試輪數(shù)選擇不統(tǒng)一.由于模糊測試本身的隨機(jī)性,對測試程序的每次模糊測試都可能產(chǎn)生不同的結(jié)果.所以,僅僅進(jìn)行1輪測試就比較它們的性能是不夠的.

    5) 初始種子的選擇不統(tǒng)一.不同的初始種子會造成差異化的測試結(jié)果.然而,大多數(shù)研究對種子的選擇很隨意,顯然認(rèn)為任何種子都同樣有效,且沒有提供細(xì)節(jié).

    6) 評估標(biāo)準(zhǔn)不統(tǒng)一.目前,直接評估模糊器所挖掘的漏洞數(shù)量是主流方法.然而,也有部分研究使用代碼覆蓋率或程序崩潰的去重輸入數(shù)量評估模糊器的性能改進(jìn).

    4.4 建議方法

    如表1所示,沒有研究完全遵循評估準(zhǔn)則,因此對CGF的評估流程提出了如下建議:

    1) 所有測試應(yīng)該持續(xù)至少10輪,且統(tǒng)計(jì)其總體方差,用統(tǒng)計(jì)學(xué)相關(guān)知識正確評估模糊測試算法性能,防止隨機(jī)性.

    2) 每輪測試應(yīng)該維持足夠長的時(shí)間,并繪制發(fā)現(xiàn)bug數(shù)量隨時(shí)間變化曲線,對比不同模糊測試算法性能.

    5 總結(jié)與展望

    CGF作為目前流行且發(fā)展?jié)摿薮蟮穆┒赐诰蚬ぞ咧?,其未來的發(fā)展前景是值得期待的.本節(jié)大膽猜想了未來可能的發(fā)展方向,以供參考.

    5.1 智能化的進(jìn)一步發(fā)展

    通用的CGF技術(shù)已經(jīng)成熟,并且在程序的初期漏洞檢測中取得了較大的成功.然而,隨著CGF所應(yīng)用的領(lǐng)域越來越廣,測試程序的輸入格式越來越復(fù)雜和多樣化,針對具體應(yīng)用場景實(shí)行專業(yè)化的智能指導(dǎo)型CGF有待進(jìn)一步發(fā)展.結(jié)合相關(guān)應(yīng)用場景的理解和特征分析,CGF能對模糊過程實(shí)現(xiàn)更精確的控制,更快更準(zhǔn)確地挖掘程序中的深度漏洞.目前,傳統(tǒng)的靜態(tài)和動態(tài)分析對CGF的性能提升已經(jīng)發(fā)展到了瓶頸期,更輕量級的替代技術(shù)或模糊策略還在持續(xù)提出.同時(shí),隨著機(jī)器學(xué)習(xí)的發(fā)展,機(jī)器學(xué)習(xí)技術(shù)也將在與CGF的結(jié)合中發(fā)揮更重要的作用.

    5.2 統(tǒng)一評估系統(tǒng)的建立

    如第4節(jié)所述,不統(tǒng)一的評估流程、不同的測試程序和評估指標(biāo)都會給評估結(jié)果帶來誤差或錯誤.這些誤差或錯誤不僅給模糊器間的性能比較帶來困難,同時(shí)也可能誤導(dǎo)相關(guān)研究者相信誤差后的性能效果,從而投入更深的研究中,造成研究人力的浪費(fèi).因此,建立一套統(tǒng)一的、可靠的模糊測試評估系統(tǒng)是有強(qiáng)烈現(xiàn)實(shí)需求的.評估系統(tǒng)可通過包含足夠數(shù)量、各種大小的程序來體現(xiàn)現(xiàn)實(shí)程序的多樣性,同時(shí)設(shè)置統(tǒng)一的評估指標(biāo)對不同的模糊器進(jìn)行同維度的比較.

    5.3 模糊測試的可解釋性和量化性

    目前,模糊測試技術(shù)的主要創(chuàng)新研究集中在如何更有效地挖掘漏洞上,對于模糊測試實(shí)際應(yīng)用中的可解釋性和量化性的研究還遠(yuǎn)遠(yuǎn)不夠.例如:經(jīng)過模糊測試后,程序的安全性究竟能得到多大程度的保證;如何有效地評估停止模糊測試后的剩余風(fēng)險(xiǎn),即攻擊者找到模糊測試沒有找到的漏洞的風(fēng)險(xiǎn);如何判斷停止模糊測試的合理時(shí)間.目前,上述判斷都依賴于研究者的個(gè)人經(jīng)驗(yàn),而不能根據(jù)測試過程中觀察到的程序行為進(jìn)行統(tǒng)計(jì)上有根據(jù)的推斷.因此為未發(fā)現(xiàn)的漏洞設(shè)置合理的剩余風(fēng)險(xiǎn)閾值,并用可行的統(tǒng)計(jì)框架對剩余風(fēng)險(xiǎn)進(jìn)行量化是解釋和量化模糊測試的必要工作.B?hme[78]提出了一個(gè)總體框架,可作為解決這一挑戰(zhàn)的一個(gè)起點(diǎn),并討論了未來研究的具體機(jī)遇.

    5.4 分布式技術(shù)與CGF的結(jié)合

    隨著分布式技術(shù)的不斷發(fā)展,當(dāng)前分布式技術(shù)已經(jīng)能夠?qū)Υ罅坑?jì)算單元進(jìn)行整合,完成大規(guī)模的問題求解任務(wù).如何變異出更多有效的測試用例,以及CGF在種子變異過程中產(chǎn)生的海量測試用例,一直都是制約CGF性能的關(guān)鍵因素.將分布式技術(shù)與CGF相結(jié)合,通過大量分布式計(jì)算機(jī)并行執(zhí)行模糊測試任務(wù),可以有效提高CGF在輸入生成階段和程序執(zhí)行階段的性能.

    猜你喜歡
    測試用例覆蓋率漏洞
    民政部等16部門:到2025年村級綜合服務(wù)設(shè)施覆蓋率超80%
    漏洞
    我國全面實(shí)施種業(yè)振興行動 農(nóng)作物良種覆蓋率超過96%
    基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
    基于混合遺傳算法的回歸測試用例集最小化研究
    三明:“兩票制”堵住加價(jià)漏洞
    漏洞在哪兒
    基于噴丸隨機(jī)模型的表面覆蓋率計(jì)算方法
    高鐵急救應(yīng)補(bǔ)齊三漏洞
    基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
    国产一区二区三区av在线 | 亚洲欧美成人精品一区二区| 国产日韩欧美在线精品| av在线老鸭窝| 日本一本二区三区精品| 亚洲人成网站在线播| 蜜桃久久精品国产亚洲av| 精品久久久久久久久久免费视频| 日本熟妇午夜| 男女下面进入的视频免费午夜| 舔av片在线| 久久久国产成人免费| 老女人水多毛片| 久久久久国产网址| 欧美bdsm另类| 综合色丁香网| 女的被弄到高潮叫床怎么办| 色综合色国产| 久久久久久久久大av| 一个人观看的视频www高清免费观看| 免费看av在线观看网站| 亚洲国产精品合色在线| 精华霜和精华液先用哪个| 欧美一区二区亚洲| 午夜精品国产一区二区电影 | 天堂√8在线中文| 最后的刺客免费高清国语| 欧美高清性xxxxhd video| 久久亚洲精品不卡| 九色成人免费人妻av| 99久久精品国产国产毛片| 中文字幕人妻熟人妻熟丝袜美| 国产精品一区二区三区四区免费观看| 久久这里只有精品中国| 久久韩国三级中文字幕| 乱码一卡2卡4卡精品| 三级男女做爰猛烈吃奶摸视频| 男女下面进入的视频免费午夜| 亚洲av熟女| 亚洲一区高清亚洲精品| 日韩国内少妇激情av| 人人妻人人澡欧美一区二区| 最近中文字幕高清免费大全6| 干丝袜人妻中文字幕| 国产精品不卡视频一区二区| 2022亚洲国产成人精品| 一级毛片久久久久久久久女| 蜜桃亚洲精品一区二区三区| 看十八女毛片水多多多| 国产精品,欧美在线| 一级毛片我不卡| 尤物成人国产欧美一区二区三区| 亚洲国产高清在线一区二区三| 国产精品免费一区二区三区在线| 免费在线观看成人毛片| 久久久欧美国产精品| 日韩av不卡免费在线播放| 精品久久国产蜜桃| 一进一出抽搐动态| 国产免费男女视频| 国产精品av视频在线免费观看| 成人午夜高清在线视频| av黄色大香蕉| 国产高潮美女av| 中文精品一卡2卡3卡4更新| 国产亚洲av嫩草精品影院| 老师上课跳d突然被开到最大视频| 少妇熟女aⅴ在线视频| 成人三级黄色视频| 国模一区二区三区四区视频| 日韩大尺度精品在线看网址| 日韩精品青青久久久久久| 久久久久久大精品| 国产v大片淫在线免费观看| 不卡视频在线观看欧美| 菩萨蛮人人尽说江南好唐韦庄 | 麻豆成人午夜福利视频| 欧美日韩国产亚洲二区| 久久亚洲精品不卡| 国产真实乱freesex| 99久久精品一区二区三区| 日韩一本色道免费dvd| 色综合站精品国产| 美女 人体艺术 gogo| 亚洲无线观看免费| 3wmmmm亚洲av在线观看| 最近手机中文字幕大全| 欧美变态另类bdsm刘玥| av在线观看视频网站免费| 午夜亚洲福利在线播放| 免费黄网站久久成人精品| 人人妻人人澡人人爽人人夜夜 | 免费观看在线日韩| 亚洲无线在线观看| 女的被弄到高潮叫床怎么办| 日本-黄色视频高清免费观看| 亚洲国产欧美在线一区| 99热6这里只有精品| 免费av观看视频| 亚洲自拍偷在线| 亚洲七黄色美女视频| 蜜桃久久精品国产亚洲av| 欧美日韩综合久久久久久| 免费电影在线观看免费观看| 午夜激情福利司机影院| 成人高潮视频无遮挡免费网站| 最新中文字幕久久久久| 99在线视频只有这里精品首页| 成人欧美大片| 日本色播在线视频| 国产成人影院久久av| 成人综合一区亚洲| 国内精品美女久久久久久| 色综合亚洲欧美另类图片| 国产一区二区激情短视频| 听说在线观看完整版免费高清| 一本久久中文字幕| 亚洲精华国产精华液的使用体验 | 在线播放国产精品三级| 91午夜精品亚洲一区二区三区| 偷拍熟女少妇极品色| 99久国产av精品| 婷婷精品国产亚洲av| 免费不卡的大黄色大毛片视频在线观看 | 草草在线视频免费看| 97热精品久久久久久| 精品久久久久久久久久免费视频| 久久热精品热| 草草在线视频免费看| 国产精品99久久久久久久久| 亚洲精华国产精华液的使用体验 | 69av精品久久久久久| 亚洲成人久久爱视频| 亚洲av电影不卡..在线观看| 国产伦在线观看视频一区| 一进一出抽搐gif免费好疼| АⅤ资源中文在线天堂| 1024手机看黄色片| 国产色爽女视频免费观看| 国产精品久久久久久久电影| 国产私拍福利视频在线观看| 六月丁香七月| 中文字幕制服av| 日韩欧美在线乱码| 日本成人三级电影网站| 人人妻人人澡欧美一区二区| 黄片wwwwww| 久久久久久久久久黄片| 青春草国产在线视频 | 淫秽高清视频在线观看| 日韩欧美国产在线观看| 久久精品人妻少妇| 久久久久网色| 免费一级毛片在线播放高清视频| 久久精品夜夜夜夜夜久久蜜豆| 国产成人影院久久av| 天堂av国产一区二区熟女人妻| 亚洲欧美精品专区久久| 97热精品久久久久久| 国产欧美日韩精品一区二区| 国产高清激情床上av| 午夜精品在线福利| 少妇高潮的动态图| 淫秽高清视频在线观看| 国产 一区 欧美 日韩| 成人毛片a级毛片在线播放| 舔av片在线| 日本在线视频免费播放| 久久久午夜欧美精品| 91久久精品国产一区二区成人| 国产又黄又爽又无遮挡在线| 亚洲欧美精品专区久久| 性色avwww在线观看| 精品久久久久久久人妻蜜臀av| 国产真实伦视频高清在线观看| 六月丁香七月| 国产成人一区二区在线| АⅤ资源中文在线天堂| 99久国产av精品| 成年女人看的毛片在线观看| 亚洲av熟女| 啦啦啦观看免费观看视频高清| 久久99蜜桃精品久久| 欧美成人一区二区免费高清观看| 亚洲性久久影院| 久久久久久伊人网av| 日日摸夜夜添夜夜添av毛片| 亚洲av免费在线观看| 久久久久性生活片| 99视频精品全部免费 在线| 老司机福利观看| 成人特级黄色片久久久久久久| 噜噜噜噜噜久久久久久91| 日本三级黄在线观看| 久久久久久九九精品二区国产| 嫩草影院新地址| 十八禁国产超污无遮挡网站| 国产精品福利在线免费观看| 男插女下体视频免费在线播放| 免费av观看视频| 精品一区二区免费观看| 国产真实乱freesex| 九草在线视频观看| 成年女人永久免费观看视频| 亚洲不卡免费看| 一本精品99久久精品77| 久久国产乱子免费精品| 亚洲成人久久爱视频| 亚洲色图av天堂| 亚洲av成人av| 中文在线观看免费www的网站| 神马国产精品三级电影在线观看| 美女cb高潮喷水在线观看| 久久久久免费精品人妻一区二区| av又黄又爽大尺度在线免费看 | 久久精品国产亚洲av天美| 22中文网久久字幕| 日韩高清综合在线| 91精品一卡2卡3卡4卡| 久久久久久伊人网av| a级毛色黄片| 亚洲人成网站在线播放欧美日韩| 中文字幕熟女人妻在线| 大又大粗又爽又黄少妇毛片口| av国产免费在线观看| 国产老妇伦熟女老妇高清| www.av在线官网国产| 有码 亚洲区| 久久精品国产亚洲av天美| 久久欧美精品欧美久久欧美| 精品一区二区三区视频在线| 99久久九九国产精品国产免费| 精品久久久久久久久av| 丝袜喷水一区| 日本色播在线视频| 亚洲成a人片在线一区二区| 全区人妻精品视频| 欧美成人a在线观看| 午夜视频国产福利| АⅤ资源中文在线天堂| av在线老鸭窝| 亚洲综合色惰| 欧洲精品卡2卡3卡4卡5卡区| 亚洲精品久久久久久婷婷小说 | 久久久久性生活片| 国产爱豆传媒在线观看| 一边摸一边抽搐一进一小说| 九草在线视频观看| 午夜亚洲福利在线播放| 99久久人妻综合| 高清午夜精品一区二区三区 | 久久久久久久久久成人| 天天躁夜夜躁狠狠久久av| 久久精品综合一区二区三区| 高清毛片免费观看视频网站| 亚洲av成人精品一区久久| 精品熟女少妇av免费看| 日韩欧美三级三区| 亚洲四区av| 高清毛片免费看| 在线观看免费视频日本深夜| www日本黄色视频网| 青青草视频在线视频观看| 一级黄片播放器| 亚洲丝袜综合中文字幕| 亚洲中文字幕日韩| 午夜a级毛片| 69人妻影院| 久久草成人影院| 国产精品国产高清国产av| 亚洲国产欧美在线一区| 国产精品永久免费网站| 少妇被粗大猛烈的视频| 极品教师在线视频| 亚洲av中文av极速乱| 男人和女人高潮做爰伦理| 欧美不卡视频在线免费观看| av在线播放精品| 看黄色毛片网站| 丰满人妻一区二区三区视频av| 91精品国产九色| 男人舔奶头视频| 午夜精品在线福利| 亚洲电影在线观看av| 69av精品久久久久久| 亚洲国产日韩欧美精品在线观看| 欧美一区二区国产精品久久精品| 国产色婷婷99| 亚洲18禁久久av| 在线播放国产精品三级| 菩萨蛮人人尽说江南好唐韦庄 | 国产综合懂色| 草草在线视频免费看| 免费看日本二区| 亚洲av中文av极速乱| 老司机影院成人| av福利片在线观看| 欧美xxxx黑人xx丫x性爽| 免费看光身美女| 我要看日韩黄色一级片| 亚洲精华国产精华液的使用体验 | 天天一区二区日本电影三级| 一个人免费在线观看电影| 成人午夜精彩视频在线观看| 久久久久久国产a免费观看| 日本一本二区三区精品| 黑人高潮一二区| av黄色大香蕉| av免费在线看不卡| 一本精品99久久精品77| 国产精品免费一区二区三区在线| 老女人水多毛片| 久久精品国产亚洲av香蕉五月| 国产v大片淫在线免费观看| 国产av在哪里看| 亚洲人与动物交配视频| 中文字幕av成人在线电影| 日本欧美国产在线视频| 成年女人看的毛片在线观看| 午夜精品在线福利| 1000部很黄的大片| 亚洲av免费高清在线观看| 插逼视频在线观看| 禁无遮挡网站| 日本黄大片高清| 一边摸一边抽搐一进一小说| 插逼视频在线观看| 给我免费播放毛片高清在线观看| 寂寞人妻少妇视频99o| 午夜老司机福利剧场| 国产黄片美女视频| 六月丁香七月| 99视频精品全部免费 在线| 亚洲五月天丁香| 老熟妇乱子伦视频在线观看| 91久久精品国产一区二区成人| 两性午夜刺激爽爽歪歪视频在线观看| 我要搜黄色片| 久久鲁丝午夜福利片| 偷拍熟女少妇极品色| 91精品一卡2卡3卡4卡| 91久久精品国产一区二区三区| 成人欧美大片| 国产精品爽爽va在线观看网站| 美女被艹到高潮喷水动态| 国产精品人妻久久久久久| 精品久久久久久久久av| 波多野结衣巨乳人妻| 国产一区二区激情短视频| 国产欧美日韩精品一区二区| 亚洲无线在线观看| 亚洲无线观看免费| 秋霞在线观看毛片| 国产免费一级a男人的天堂| 国产亚洲精品久久久com| 亚洲国产高清在线一区二区三| 亚洲va在线va天堂va国产| 女同久久另类99精品国产91| 99久久精品国产国产毛片| 夜夜看夜夜爽夜夜摸| 亚洲精品国产av成人精品| 欧美区成人在线视频| 亚洲五月天丁香| .国产精品久久| 亚洲高清免费不卡视频| 在线天堂最新版资源| 午夜老司机福利剧场| 美女脱内裤让男人舔精品视频 | 精品少妇黑人巨大在线播放 | 成人鲁丝片一二三区免费| 91aial.com中文字幕在线观看| 啦啦啦啦在线视频资源| 看非洲黑人一级黄片| 如何舔出高潮| 菩萨蛮人人尽说江南好唐韦庄 | 人人妻人人看人人澡| 色综合站精品国产| 国产午夜精品论理片| 18禁在线播放成人免费| 久久鲁丝午夜福利片| 99国产精品一区二区蜜桃av| 国产精品一区二区在线观看99 | 亚洲av男天堂| 国内精品久久久久精免费| 国产精品一区二区三区四区久久| 国产欧美日韩精品一区二区| 久久久精品欧美日韩精品| av在线亚洲专区| 国产视频首页在线观看| 欧美激情国产日韩精品一区| 99久久无色码亚洲精品果冻| 欧美日韩综合久久久久久| 春色校园在线视频观看| 熟女电影av网| 最近手机中文字幕大全| 欧美一区二区精品小视频在线| 一进一出抽搐动态| 国产精品无大码| 欧美成人精品欧美一级黄| 欧美bdsm另类| 老女人水多毛片| 国产男人的电影天堂91| 午夜免费男女啪啪视频观看| 深爱激情五月婷婷| 看免费成人av毛片| 好男人视频免费观看在线| 99视频精品全部免费 在线| 国内精品宾馆在线| 国产乱人视频| 亚洲精品456在线播放app| 男女下面进入的视频免费午夜| 日本三级黄在线观看| 免费电影在线观看免费观看| 国产欧美日韩精品一区二区| 国产精品女同一区二区软件| av在线亚洲专区| 一区二区三区四区激情视频 | 在现免费观看毛片| 午夜福利高清视频| 婷婷色av中文字幕| 国产精品av视频在线免费观看| 老师上课跳d突然被开到最大视频| 精品午夜福利在线看| 看片在线看免费视频| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 91av网一区二区| 国产精品久久电影中文字幕| 国产精品国产三级国产av玫瑰| 啦啦啦韩国在线观看视频| 久久久精品94久久精品| 久久精品国产亚洲av涩爱 | 91久久精品电影网| 久久久久性生活片| 最新中文字幕久久久久| 精品久久久久久久久久免费视频| a级毛片a级免费在线| 中文字幕av在线有码专区| 免费大片18禁| 一级黄色大片毛片| 人妻少妇偷人精品九色| 国产 一区精品| 女的被弄到高潮叫床怎么办| 美女黄网站色视频| 亚洲av中文字字幕乱码综合| 91在线精品国自产拍蜜月| 变态另类成人亚洲欧美熟女| 免费观看a级毛片全部| 99久久中文字幕三级久久日本| 乱系列少妇在线播放| 少妇高潮的动态图| 欧美一区二区亚洲| 美女高潮的动态| 日本与韩国留学比较| 午夜福利在线观看吧| 两性午夜刺激爽爽歪歪视频在线观看| 国产一区亚洲一区在线观看| 亚洲不卡免费看| 五月伊人婷婷丁香| 国产69精品久久久久777片| 插逼视频在线观看| 99久久无色码亚洲精品果冻| 国产伦在线观看视频一区| 亚洲一级一片aⅴ在线观看| 成人av在线播放网站| 高清午夜精品一区二区三区 | 国产毛片a区久久久久| 亚洲国产精品成人综合色| 小蜜桃在线观看免费完整版高清| 国产精品日韩av在线免费观看| 成人午夜精彩视频在线观看| 亚洲无线在线观看| 中文资源天堂在线| 欧美一区二区亚洲| 日日摸夜夜添夜夜添av毛片| 噜噜噜噜噜久久久久久91| a级一级毛片免费在线观看| 久久久久久大精品| 日日摸夜夜添夜夜添av毛片| 青青草视频在线视频观看| 久久久久国产网址| 久久韩国三级中文字幕| 看免费成人av毛片| 欧美性猛交黑人性爽| kizo精华| 深爱激情五月婷婷| 亚洲国产日韩欧美精品在线观看| 中国国产av一级| 看免费成人av毛片| 精品久久久久久久末码| 精品熟女少妇av免费看| 能在线免费观看的黄片| 寂寞人妻少妇视频99o| 国产精品嫩草影院av在线观看| 在线天堂最新版资源| 日韩亚洲欧美综合| 国产精品一区二区性色av| 亚洲国产精品成人久久小说 | 三级毛片av免费| 亚洲乱码一区二区免费版| 青春草国产在线视频 | 偷拍熟女少妇极品色| 国产探花在线观看一区二区| 97超视频在线观看视频| 国产在视频线在精品| 国产精品一区二区三区四区久久| 成人欧美大片| 九色成人免费人妻av| 国产精品不卡视频一区二区| 亚洲七黄色美女视频| 亚洲成人av在线免费| 国产精华一区二区三区| 亚洲欧美精品自产自拍| 在现免费观看毛片| 国产高潮美女av| 久久精品夜色国产| 自拍偷自拍亚洲精品老妇| 校园春色视频在线观看| 久久久成人免费电影| 国产成人精品一,二区 | 午夜免费男女啪啪视频观看| 国产极品精品免费视频能看的| 亚洲国产精品成人综合色| 人妻制服诱惑在线中文字幕| 国产黄片视频在线免费观看| 大香蕉久久网| 久久久久九九精品影院| 国产爱豆传媒在线观看| 啦啦啦啦在线视频资源| 久久这里只有精品中国| 国产在线精品亚洲第一网站| 久久人人爽人人爽人人片va| 亚洲国产日韩欧美精品在线观看| 欧美激情在线99| 在线天堂最新版资源| 精品欧美国产一区二区三| 国产老妇女一区| 国产成人影院久久av| 看片在线看免费视频| 亚洲七黄色美女视频| 国产白丝娇喘喷水9色精品| 最后的刺客免费高清国语| 国产精品综合久久久久久久免费| 国产黄色视频一区二区在线观看 | 一区二区三区高清视频在线| 国产视频内射| 成人国产麻豆网| 国产综合懂色| 成年女人永久免费观看视频| 小蜜桃在线观看免费完整版高清| av在线天堂中文字幕| 伦精品一区二区三区| 国产精品精品国产色婷婷| 97超碰精品成人国产| 激情 狠狠 欧美| av在线亚洲专区| av在线播放精品| 夫妻性生交免费视频一级片| 日韩高清综合在线| av在线蜜桃| 日韩 亚洲 欧美在线| 自拍偷自拍亚洲精品老妇| 如何舔出高潮| 亚洲av.av天堂| 国产成人精品一,二区 | 人人妻人人看人人澡| 超碰av人人做人人爽久久| 少妇高潮的动态图| 日本一二三区视频观看| 男的添女的下面高潮视频| 日本撒尿小便嘘嘘汇集6| 哪个播放器可以免费观看大片| 亚洲国产精品久久男人天堂| 在线免费观看的www视频| 国产探花在线观看一区二区| 我要看日韩黄色一级片| 岛国毛片在线播放| 亚洲va在线va天堂va国产| 国产爱豆传媒在线观看| 国产69精品久久久久777片| 一区福利在线观看| 国产日韩欧美在线精品| 精品久久国产蜜桃| 国产精品99久久久久久久久| 精品一区二区三区视频在线| 久久精品国产亚洲av香蕉五月| 国产亚洲精品av在线| 亚洲四区av| 国内揄拍国产精品人妻在线| 亚洲人成网站在线观看播放| 在线观看午夜福利视频| 精品人妻视频免费看| 中文字幕久久专区| 18禁在线无遮挡免费观看视频| 亚洲欧美精品专区久久| 免费人成在线观看视频色| 嫩草影院入口| 黄片无遮挡物在线观看| 一级毛片aaaaaa免费看小| 97热精品久久久久久| 少妇人妻一区二区三区视频| 日韩一区二区视频免费看| 能在线免费看毛片的网站| 91av网一区二区| 小蜜桃在线观看免费完整版高清| 亚洲欧美清纯卡通| 黄片wwwwww| 久久久久久久久中文| 日本欧美国产在线视频| 国产高清激情床上av| 麻豆成人av视频| 在线免费十八禁| 91麻豆精品激情在线观看国产| 成人高潮视频无遮挡免费网站| 非洲黑人性xxxx精品又粗又长| av又黄又爽大尺度在线免费看 |