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

定向模糊測(cè)試技術(shù)綜述

2023-12-25 03:25:04張?jiān)品?/span>張?jiān)旅?/span>沈小茜孫宇帆
電腦知識(shí)與技術(shù) 2023年31期

張?jiān)品?張?jiān)旅?沈小茜 孫宇帆

摘要:模糊測(cè)試技術(shù)是一種應(yīng)用模糊過程來驗(yàn)證待測(cè)程序(PUT) 是否違反正確性策略的測(cè)試技術(shù),被廣泛應(yīng)用于自動(dòng)化漏洞挖掘。然而,模糊測(cè)試技術(shù)在生成測(cè)試用例的過程中,由于搜索空間過大,因此存在著較大的隨機(jī)性和盲目性,無法有效率地找到潛在的漏洞。定向模糊測(cè)試技術(shù)通過定位到目標(biāo)位置,提高了模糊測(cè)試的效率,被廣泛應(yīng)用于缺陷復(fù)現(xiàn)、補(bǔ)丁檢驗(yàn)和靜態(tài)分析驗(yàn)證。通過調(diào)研大量文獻(xiàn),分析了定向模糊測(cè)試的特征以及常見的模型,總結(jié)了多篇論文中定向模糊測(cè)試在目標(biāo)識(shí)別、適應(yīng)度、模糊優(yōu)化方面使用的度量指標(biāo),闡述了當(dāng)今定向模糊測(cè)試的幾種應(yīng)用場(chǎng)景,并在最后探究了若干未來可能的發(fā)展方向。

關(guān)鍵詞:定向模糊測(cè)試;種子選擇;調(diào)度方式;缺陷復(fù)現(xiàn)

中圖分類號(hào):TP311.5? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2023)31-0074-05

開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID)

0 引言

1) 應(yīng)用背景

安全測(cè)試是現(xiàn)代軟件最有效的漏洞檢測(cè)技術(shù)之一。在安全測(cè)試技術(shù)中,模糊測(cè)試被認(rèn)為是最有效且可擴(kuò)展的,它為PUT提供各種輸入,并監(jiān)控異常行為,例如堆棧或緩沖區(qū)溢出、無效讀/寫、斷言故障或內(nèi)存泄漏。自提出以來,模糊測(cè)試越來越受行業(yè)和學(xué)術(shù)界歡迎,并演變?yōu)檫m用于不同測(cè)試場(chǎng)景的不同類型的模糊器。

2) 模糊測(cè)試的方法、特點(diǎn)、不足之處

根據(jù)模糊測(cè)試對(duì)PUT內(nèi)部結(jié)構(gòu)的認(rèn)識(shí),模糊器可以分為黑盒、白盒或灰盒。以灰盒為例,灰盒模糊器基于來自PUT執(zhí)行的反饋信息,使用進(jìn)化算法來生成新的輸入和探索路徑。一般來說,模糊器的目標(biāo)是在有限的時(shí)間內(nèi)覆蓋盡可能多的程序狀態(tài)。這是因?yàn)閺闹庇X上來說,代碼覆蓋率與bug覆蓋率密切相關(guān),代碼覆蓋率高的模糊器可以發(fā)現(xiàn)更多的bug。然而,存在幾種測(cè)試場(chǎng)景,其中只涉及部分需要進(jìn)行充分測(cè)試的程序狀態(tài)。例如,如果MJS(嵌入式設(shè)備的JavaScript引擎)在MSP432 ARM平臺(tái)上發(fā)現(xiàn)了漏洞,則在其他平臺(tái)的相應(yīng)代碼中可能會(huì)出現(xiàn)類似的漏洞。在這種情況下,應(yīng)該引導(dǎo)模糊器在這些重要的位置重現(xiàn)錯(cuò)誤。另一種情況是,當(dāng)bug被修復(fù)時(shí),程序員需要檢查補(bǔ)丁是否完全修復(fù)了錯(cuò)誤。這需要模糊器聚焦于那些補(bǔ)丁代碼上。在這兩種情況下,都需要引導(dǎo)模糊器到達(dá)PUT中的某些指定位置。

3) 定向模糊測(cè)試的發(fā)展

目前,定向模糊測(cè)試已經(jīng)成為一個(gè)研究熱點(diǎn),發(fā)展非常迅速。它已經(jīng)超越了依賴手動(dòng)標(biāo)記的目標(biāo)站點(diǎn),基于距離的度量來區(qū)分種子優(yōu)先級(jí)的原始模式。使用了新的適合度指標(biāo),例如蹤跡相似性和漏洞預(yù)測(cè)模型。當(dāng)前的定向模糊測(cè)試工具不僅能自動(dòng)識(shí)別目標(biāo),而且能以定向的方式暴露目標(biāo)程序的行為。在不同的場(chǎng)景下,大量的變體已經(jīng)被應(yīng)用于軟件測(cè)試、例如補(bǔ)丁測(cè)試[1-2]、回歸測(cè)試[3]、錯(cuò)誤重現(xiàn)[4]、知識(shí)整合、結(jié)果驗(yàn)證[5-6]、節(jié)能[7]和特殊錯(cuò)誤檢測(cè)[4,7]。雖然定向模糊測(cè)試發(fā)展迅速且有效,但它也有普遍的局限性和挑戰(zhàn),值得進(jìn)一步研究。在這種背景下,本文開展綜述,總結(jié)定向模糊測(cè)試研究進(jìn)展的經(jīng)驗(yàn)證據(jù)。在分析定向模糊測(cè)試研究的優(yōu)點(diǎn)和局限性的基礎(chǔ)上,嘗試找出當(dāng)前研究中的差別,同時(shí)揭示新的研究機(jī)會(huì),并提出進(jìn)一步研究的領(lǐng)域。

1 研究框架

1.1 框架圖

1.2 研究方法

1.2.1 關(guān)鍵詞

根據(jù)綜述研究的主題,選取了如下關(guān)鍵詞進(jìn)行文獻(xiàn)檢索:定向模糊測(cè)試、定向白盒模糊測(cè)試、定向灰盒模糊測(cè)試。對(duì)于白盒模糊器,檢索關(guān)鍵詞細(xì)分為符號(hào)執(zhí)行、程序分析等;對(duì)于灰盒模糊器,檢索關(guān)鍵詞細(xì)分為種子選擇、調(diào)度方式、缺陷復(fù)現(xiàn)等。

1.2.2 搜索過程

確定關(guān)鍵詞后,小組使用以下三種方式搜索相關(guān)期刊論文:1) 在軟件工程和安全領(lǐng)域的頂級(jí)期刊和會(huì)議網(wǎng)站上搜索;2) 通過google scholar 搜索引擎搜索;3) 在ACM Digital Library中搜索。隨后對(duì)收集到的論文進(jìn)行篩選,下列類型的論文將被排除在外:1) 非CCF中A類、B類的會(huì)議與期刊;2) 傳統(tǒng)的基于覆蓋率的模糊測(cè)試,非定向模糊測(cè)試;3) 論文較短(少于6頁(yè)),只講模糊器模型,缺少相關(guān)工作的背景介紹;4) 較過時(shí)的技術(shù)選型,如部分2017年后的白盒模糊器。

1.2.3 分析過程

將篩選后的論文進(jìn)行整理,共收集到27篇相關(guān)論文。其中灰盒部分21篇,白盒部分6篇。2020—2022年12篇,2017—2019年10篇,2009—2016年5篇。根據(jù)從每篇論文中提取出的摘要、關(guān)鍵詞,首先將研究方向進(jìn)行分類。之后對(duì)每篇論文的技術(shù)模型展開分析,總結(jié)其應(yīng)用場(chǎng)景,闡述其發(fā)展趨勢(shì)與挑戰(zhàn)。具體而言,研究問題如下:

RQ1:定向模糊測(cè)試有哪些目標(biāo)識(shí)別方法?

RQ2:定向模糊測(cè)試有哪些適應(yīng)度指標(biāo)?

RQ3:本文研究的定向模糊器對(duì)模糊過程具體做了怎樣的優(yōu)化?

RQ4:定向模糊測(cè)試有哪些應(yīng)用場(chǎng)景?

RQ5:定向模糊測(cè)試的發(fā)展趨勢(shì)與挑戰(zhàn)是怎樣的?

2 目標(biāo)識(shí)別

定向模糊測(cè)試的目標(biāo)識(shí)別可分為針對(duì)目標(biāo)位置和針對(duì)目標(biāo)bug兩類。

2.1 針對(duì)目標(biāo)位置

大多數(shù)定向模糊策略的難點(diǎn)在于需要對(duì)PUT進(jìn)行目標(biāo)預(yù)標(biāo)記[8-11]。手動(dòng)標(biāo)記依賴于關(guān)于目標(biāo)位置的先驗(yàn)知識(shí),例如在源代碼中的行號(hào),或二進(jìn)制級(jí)別的虛擬內(nèi)存地址,來標(biāo)記目標(biāo)并引導(dǎo)執(zhí)行到所需位置。然而獲得這樣的先驗(yàn)知識(shí)是具有挑戰(zhàn)性的,特別是對(duì)于二進(jìn)制代碼。為了合理有效地設(shè)置目標(biāo)位置,研究人員會(huì)使用輔助元數(shù)據(jù),例如git提交日志中的代碼變更[2]、從錯(cuò)誤跟蹤中提取的信息[4]、CVE漏洞描述中的語義[7]或深度學(xué)習(xí)模型[5-6],來識(shí)別代碼中易受攻擊的功能[5-6]、關(guān)鍵位置、語法標(biāo)記、完整性檢查以及補(bǔ)丁相關(guān)分支[1,3],并將這些易受攻擊的代碼部分或位置設(shè)定為目標(biāo)。然而,這種目標(biāo)識(shí)別方案仍然依賴于額外的處理信息并在PUT上標(biāo)記目標(biāo)的工作。當(dāng)?shù)谝淮螌?duì)PUT進(jìn)行模糊測(cè)試或缺乏結(jié)構(gòu)良好的信息時(shí),這種方法是不合適的。

為了提高自動(dòng)化程度,靜態(tài)分析工具[9,12-15]被應(yīng)用于自動(dòng)發(fā)現(xiàn)PUT中的潛在危險(xiǎn)區(qū)域。然而,這些工具通常只適用于特定錯(cuò)誤類型和編程語言。另一種定向利用編譯器sanitiser的遍(pass) 來注釋PUT中的潛在錯(cuò)誤,或者進(jìn)行二進(jìn)制級(jí)比較來識(shí)別補(bǔ)丁相關(guān)的目標(biāo)分支[1]。深度學(xué)習(xí)方法已被用于預(yù)測(cè)二進(jìn)制[6]和抽象語法樹級(jí)別[5]的潛在易受攻擊的代碼。最后,攻擊面識(shí)別組件也被用于自動(dòng)識(shí)別定向灰盒模糊測(cè)試的易受攻擊目標(biāo)。

2.2 針對(duì)目標(biāo)bug

定向灰盒模糊測(cè)試也可以用作特定錯(cuò)誤檢測(cè)的手段。例如,UAFuzz[4]和UAFL[16]利用目標(biāo)操作序列而不是目標(biāo)站點(diǎn)來尋找釋放后使用漏洞,其存儲(chǔ)操作(例如,分配、使用和釋放存儲(chǔ))必須以特定順序執(zhí)行。AFL-HR[17]通過協(xié)同進(jìn)化方法觸發(fā)了難以顯現(xiàn)的緩沖區(qū)溢出和整數(shù)溢出的錯(cuò)誤。Greyhound[7]引導(dǎo)Wi-Fi客戶端表現(xiàn)出偏離Wi-Fi協(xié)議的異常行為。對(duì)于針對(duì)特定錯(cuò)誤的定向灰盒模糊測(cè)試,不需要在PUT中標(biāo)記目標(biāo),這意味著模糊器可以以進(jìn)化的方式自動(dòng)識(shí)別和觸發(fā)這樣的錯(cuò)誤。

3 適應(yīng)度指標(biāo)

3.1 基于距離

AFLGo[11]在編譯時(shí)檢測(cè)源代碼,并根據(jù)PUT的調(diào)用和控制流圖中的邊數(shù)計(jì)算到目標(biāo)基本塊的距離。然后在運(yùn)行時(shí),它聚合每個(gè)基本塊的距離值,計(jì)算平均值來評(píng)估種子。它根據(jù)距離對(duì)種子進(jìn)行優(yōu)先排序,并優(yōu)先選擇更接近目標(biāo)的種子。一些后續(xù)的模糊器也更新了此基于距離的方案。例如,TOFU[8]的距離度量被定義為達(dá)到目標(biāo)所需的正確分支決策的數(shù)量。對(duì)于每個(gè)目標(biāo),1dVul[1]采用貪婪突變策略評(píng)估從每個(gè)測(cè)試輸入到目標(biāo)分支的距離,并優(yōu)先考慮更接近目標(biāo)的測(cè)試輸入。SemFuzz[2]將每一個(gè)使用輸入的運(yùn)行稱為模糊實(shí)例,對(duì)于每一個(gè)實(shí)例,通過內(nèi)置觀測(cè)器觀察執(zhí)行以測(cè)量易受攻擊函數(shù)與模糊實(shí)例的執(zhí)行軌跡之間的距離。對(duì)應(yīng)于最短距離的輸入被選擇為新的種子輸入,用于另一輪模糊化,直到達(dá)到任何易受攻擊函數(shù)。UAFuzz[4]則使用調(diào)用鏈的距離度量,導(dǎo)致目標(biāo)函數(shù)更有可能同時(shí)包含分配函數(shù)和釋放函數(shù),以檢測(cè)復(fù)雜的行為釋放后使用漏洞。不同于在傳統(tǒng)的距離計(jì)算中使用等權(quán)重的基本塊,AFLChurn[3]基于基本塊最近被改變的時(shí)間或改變的頻率來分配數(shù)字權(quán)重,WindRanger[18]則在計(jì)算距離時(shí)考慮偏差基本塊(即,執(zhí)行軌跡開始偏離目標(biāo)位置的基本塊)。基于距離的方法的一個(gè)缺點(diǎn)是它只關(guān)注最短的距離,因此當(dāng)有多條路徑到達(dá)同一目標(biāo)時(shí),較長(zhǎng)的選項(xiàng)可能會(huì)被忽略,從而導(dǎo)致差異。另一個(gè)缺點(diǎn)是在基本塊級(jí)計(jì)算距離時(shí)耗費(fèi)大量的時(shí)間,在一些目標(biāo)程序上,用戶報(bào)告說僅僅計(jì)算距離文件就要花費(fèi)數(shù)小時(shí)。

3.2 基于相似度

相似度是由Chen等人在Hawkeye[10]中首次提出的一種度量,它在函數(shù)級(jí)別上度量種子的執(zhí)行軌跡與目標(biāo)的執(zhí)行軌跡之間的相似度。直覺是,在“預(yù)期軌跡”中覆蓋更多功能的種子將有更多機(jī)會(huì)變異并到達(dá)目標(biāo)。Hawkeye將基本塊軌跡距離與覆蓋函數(shù)相似性相結(jié)合,用于種子優(yōu)先級(jí)排序和功率調(diào)度。LOLLY[19]使用用戶指定的程序語句序列作為目標(biāo),并將種子覆蓋目標(biāo)序列的能力(即序列覆蓋率)作為評(píng)估種子的度量。Berry[12]通過考慮目標(biāo)序列的執(zhí)行上下文來升級(jí)LOLLY。這增強(qiáng)了具有“必要節(jié)點(diǎn)”的目標(biāo)序列,并使用目標(biāo)執(zhí)行軌跡和增強(qiáng)的目標(biāo)序列之間的相似性來區(qū)分種子的優(yōu)先級(jí)。然后,相似性被擴(kuò)展到覆蓋其他目標(biāo)形式,例如操作、bug跟蹤和標(biāo)記位置。形式上,相似性是某個(gè)度量的當(dāng)前狀態(tài)和目標(biāo)狀態(tài)之間的重疊程度,其中度量包括錯(cuò)誤跟蹤的長(zhǎng)度,以及覆蓋的位置、覆蓋的操作或覆蓋的功能的數(shù)量。UAFL[16]使用操作序列覆蓋來指導(dǎo)測(cè)試用例生成,以逐步覆蓋可能觸發(fā)釋放后使用漏洞的操作序列。UAFuzz[4]還使用序列感知的目標(biāo)相似性度量來測(cè)量種子的執(zhí)行和目標(biāo)自由后使用錯(cuò)誤跟蹤之間的相似性。相比之下,基于相似性的度量比基于距離的替代方法能夠更好地處理多目標(biāo)擬合。此外,基于相似性的度量可以包括目標(biāo)之間的關(guān)系,例如目標(biāo)的排序[4]。最后,在基本塊級(jí)別測(cè)量基于距離的度量,這將引入相當(dāng)大的開銷,而基于相似度的度量可以以相對(duì)較高的水平提高整體效率。

3.3 基于概率

研究人員通過使用一些基于深度學(xué)習(xí)的方法,預(yù)測(cè)函數(shù)的易受攻擊概率,量化種子到達(dá)目標(biāo)位置的可能性。易受攻擊函數(shù)中的每個(gè)基本塊被給予靜態(tài)易受攻擊分?jǐn)?shù)以測(cè)量易受攻擊概率,對(duì)于每個(gè)輸入的種子,將執(zhí)行路徑上所有基本塊的靜態(tài)易受攻擊分?jǐn)?shù)的總和用作適應(yīng)度分?jǐn)?shù),優(yōu)先考慮具有較高分?jǐn)?shù)的輸入[6]。FuzzGuard [20]在模糊器生成大量新輸入后利用模型預(yù)測(cè)每個(gè)輸入的可達(dá)性。為了解決訓(xùn)練的模型可能不適用于新生成的輸入的問題,F(xiàn)uzzGuard設(shè)計(jì)了一種具有代表性的數(shù)據(jù)選擇方法,以從每一輪變異中抽取訓(xùn)練數(shù)據(jù),從而最小化采樣數(shù)據(jù)的數(shù)量以提高效率。基于概率的方法可以擴(kuò)展到指定崩潰以外的位置,例如信息的泄露,漏洞利用、特定的漏洞類型和不同的資源使用。

3.4 基于其他

TIFF[21]監(jiān)視基本塊及其執(zhí)行頻率,并根據(jù)執(zhí)行的基本塊計(jì)算輸入的適合度。任何執(zhí)行新基本塊的輸入都會(huì)被考慮進(jìn)一步變異。AFLchurn[3]建議同時(shí)對(duì)所有提交進(jìn)行模糊處理,但更多(最近)提交中的代碼具有更高的優(yōu)先級(jí)。每個(gè)基本塊都成為目標(biāo),都被分配了一個(gè)數(shù)字權(quán)重,以衡量其最近或多久更改一次。CAFL[22]旨在滿足一系列約束條件(即目標(biāo)站點(diǎn)和數(shù)據(jù)條件的組合),而不是到達(dá)一組目標(biāo)站點(diǎn)。它將約束的距離定義為給定種子滿足約束的程度,并按順序排列更好地滿足約束的種子的優(yōu)先級(jí)。AFL-HR[17]首次使用脆弱性特定的適應(yīng)度指標(biāo)來生成和保留接近暴露漏洞的測(cè)試輸入,采用了一種稱為headroom的面向漏洞的適應(yīng)性度量,它指示測(cè)試輸入在給定漏洞位置暴露難以發(fā)現(xiàn)的漏洞(例如,緩沖區(qū)或整數(shù)溢出)的程度。

4 模糊測(cè)試優(yōu)化

定向模糊測(cè)試的幾個(gè)關(guān)鍵步驟包括種子輸入、種子優(yōu)先級(jí)排序、功率調(diào)度、變異器調(diào)度。下文將依次從這些方面總結(jié)模糊優(yōu)化的策略。

4.1 種子輸入優(yōu)化

在定向模糊測(cè)試中,一個(gè)好的種子可以引導(dǎo)模糊器更接近目標(biāo)位置,并且能夠提高后期變異過程的性能。Zong等人的研究表明,平均而言,AFLGo[11]超過91.7%的輸入不能到達(dá)目標(biāo)代碼,即無效輸入。許多模糊器對(duì)此進(jìn)行了優(yōu)化以提升效率,其中動(dòng)態(tài)污點(diǎn)分析技術(shù)[21,23]和語義信息分析技術(shù)[2]可以幫助生成與輸入語法有關(guān)的有效輸入,提高了到達(dá)目標(biāo)代碼,尤其是易受攻擊的目標(biāo)或者安全敏感度高的目標(biāo)的概率。此外深度學(xué)習(xí)技術(shù)[20]也被廣泛應(yīng)用其中,在執(zhí)行之前就過濾掉無法到達(dá)目標(biāo)代碼的輸入,這樣可以顯著節(jié)省實(shí)際運(yùn)行時(shí)間。BEACON[24]使用了輕量級(jí)靜態(tài)分析來編輯修改那些在運(yùn)行時(shí)無法到達(dá)目標(biāo)代碼的路徑,這樣可以在實(shí)際的模糊化運(yùn)行過程中,減少執(zhí)行超過80%的路徑,節(jié)省了運(yùn)行時(shí)間。

4.2 種子優(yōu)先級(jí)排序優(yōu)化

在定向模糊測(cè)試中,為了提高測(cè)試效率,往往更接近目標(biāo)的種子更先接受變異,因此需要給予高優(yōu)先級(jí)。為了實(shí)現(xiàn)這一目標(biāo),定向模糊測(cè)試通過采用不同的適應(yīng)度指標(biāo),基于控制流分析,來實(shí)現(xiàn)種子優(yōu)先級(jí)排序。基于距離的方法[4,8,11]是一種傳統(tǒng)且常見的方法,該方法首先計(jì)算在調(diào)用圖或者控制流圖中基本塊到達(dá)目標(biāo)位置的距離,根據(jù)距離的遠(yuǎn)近來區(qū)分不同的種子,從而分配能量。基于相似性的方法[10,19]是基于距離的方法的改進(jìn),以種子的執(zhí)行軌跡和目標(biāo)的執(zhí)行軌跡間的相似度作為評(píng)判標(biāo)準(zhǔn),從而分配能量。定向混合模糊化[1,12,25]結(jié)合了白盒模糊器的精確性和灰盒模糊器的可擴(kuò)展性。灰盒模糊器可以對(duì)輸入變異進(jìn)行優(yōu)先排序和調(diào)度,以更快速地接近目標(biāo),而白盒模糊器利用符號(hào)執(zhí)行策略,可以解決復(fù)雜的路徑約束,從而獲得更精確的路徑。

4.3 功率調(diào)度優(yōu)化

在定向模糊測(cè)試中,更接近目標(biāo)的種子不僅需要更高的種子優(yōu)先級(jí),還需要被分配更多的功率,以產(chǎn)生更多的變異體。大多數(shù)定向灰盒模糊器[10-11]使用模擬退火算法來分配功率。傳統(tǒng)的隨機(jī)調(diào)度算法總是接受更好的解決方案,這可能陷入局部最優(yōu)而忽略了全局最優(yōu)解。而模擬退火算法實(shí)現(xiàn)了以一定的概率接受比當(dāng)前更差的解決方案,因此有一定的概率跳出局部最優(yōu)解,找到全局最優(yōu)解。Xiaogang Zhu、Marcel B?hme提出了一種基于蟻群優(yōu)化的字節(jié)級(jí)功率調(diào)度算法[3],這種算法通過回歸的方法,找出最近更改或更頻繁更改的代碼,因?yàn)檫@些代碼中往往有更大的概率存在bug,因此給這些字節(jié)分配更多的功率。Hongliang Liang、Lin Jiang、Lu Ai、Yini Zhang、Yue Yu等利用溫度閾值優(yōu)化了基于模擬退火算法[12,19],分為探索和開發(fā)兩個(gè)階段。在探索階段,隨機(jī)變異提供的種子以產(chǎn)生許多新的輸入,在開發(fā)階段,從具有更高序列覆蓋的種子產(chǎn)生更多新的輸入。

4.4 變異器調(diào)度優(yōu)化

在定向模糊測(cè)試中,可以將變異分為不同的粒度,并根據(jù)實(shí)際的模糊測(cè)試的過程來動(dòng)態(tài)調(diào)整變異的粒度,這樣可以提高種子變異的精度和速度,從而增強(qiáng)輸入的定向性。通常的方法是先將變異分為粗粒度和細(xì)粒度,然后進(jìn)行動(dòng)態(tài)調(diào)整[2,6,10,13]。粗粒度的變異器往往用于批量改變字節(jié),從而將執(zhí)行目標(biāo)指向脆弱的代碼塊。細(xì)粒度的變異器往往僅涉及少量字節(jié)級(jí)的修改、插入或刪除,以便監(jiān)控關(guān)鍵變量。變異器調(diào)度是由經(jīng)驗(yàn)值控制的,隨著種子越來越接近目標(biāo),模糊器給予粗粒度變異的機(jī)會(huì)減少,而給予細(xì)粒度變異的機(jī)會(huì)增加。

5 應(yīng)用場(chǎng)景

5.1 名詞解釋

5.1.1 缺陷復(fù)現(xiàn)

通過在堆棧跟蹤中設(shè)置方法調(diào)用作為目標(biāo)來崩潰復(fù)制。當(dāng)報(bào)告現(xiàn)場(chǎng)崩潰時(shí),只有堆棧跟蹤和一些環(huán)境參數(shù)被發(fā)送到內(nèi)部開發(fā)團(tuán)隊(duì)。為了保護(hù)用戶的隱私,特定的崩潰輸入通常不可用的,定向模糊器使得內(nèi)部團(tuán)隊(duì)可以快速重現(xiàn)這類崩潰。

5.1.2 補(bǔ)丁檢驗(yàn)

通過將已更改過的語句設(shè)置為目標(biāo)來進(jìn)行補(bǔ)丁測(cè)試。當(dāng)一個(gè)關(guān)鍵組件發(fā)生更改時(shí),研究者希望檢查其中是否引入了漏洞。一個(gè)關(guān)注這些變化的模糊器有更高的機(jī)會(huì)暴露回歸。

5.1.3 靜態(tài)分析報(bào)告驗(yàn)證

靜態(tài)分析報(bào)告通過將靜態(tài)分析工具設(shè)置為報(bào)告為潛在危險(xiǎn)的目標(biāo)來驗(yàn)證。在實(shí)驗(yàn)中,一個(gè)工具可能會(huì)將程序的某幾行定位為潛在的緩沖區(qū)溢出,定向模糊器可以生成測(cè)試輸入,顯示漏洞確實(shí)存在[11]。

5.2 具體分析

和傳統(tǒng)的定向白盒模糊技術(shù)和由覆蓋引導(dǎo)的灰盒模糊技術(shù)CGF相比,DGF把大部分的時(shí)間花費(fèi)在接近目標(biāo)站點(diǎn)和對(duì)目標(biāo)站點(diǎn)進(jìn)行測(cè)試,減少了一些無關(guān)程序組件對(duì)測(cè)試資源的浪費(fèi)。這種特性使得DGF在缺陷復(fù)現(xiàn)、補(bǔ)丁測(cè)試和靜態(tài)分析報(bào)告驗(yàn)證這三個(gè)應(yīng)用場(chǎng)景中具有出色的表現(xiàn):

1) 對(duì)于缺陷復(fù)現(xiàn),將崩潰站點(diǎn)設(shè)置為目標(biāo)站點(diǎn),使用DGF技術(shù)可以快速?gòu)?fù)制和獲取概念驗(yàn)證性的導(dǎo)致崩潰的輸入。

2) 對(duì)于補(bǔ)丁測(cè)試,將打補(bǔ)丁的代碼站點(diǎn)設(shè)置為目標(biāo)站點(diǎn),使用DGF技術(shù)可以快速測(cè)試補(bǔ)丁是否完整。

3) 對(duì)于靜態(tài)分析報(bào)告驗(yàn)證,將靜態(tài)分析報(bào)告的可疑位置設(shè)置為目標(biāo)站點(diǎn),使用DGF技術(shù)可以檢查報(bào)告的位置是否確實(shí)存在漏洞。

而后續(xù)研究中提出的技術(shù)又在DGF的基礎(chǔ)之上提高了模糊器在處理上述相關(guān)場(chǎng)景下的性能,下面將對(duì)不同技術(shù)在不同應(yīng)用場(chǎng)景中的表現(xiàn)進(jìn)行比較,用于討論的技術(shù)包括基于符號(hào)執(zhí)行引擎Klee 的定向白盒模糊器Katch、BugRedux,定向灰盒模糊技術(shù)AFLGo、WindRanger,由覆蓋引導(dǎo)的灰盒模糊技術(shù)CGF(AFL和FairFuzz) ,根據(jù)靜態(tài)信息和執(zhí)行跟蹤對(duì)執(zhí)行的種子進(jìn)行評(píng)估的Hawkeye,利用序列定向策略和并行執(zhí)行技術(shù)來提高模糊的有效性的序列定向混合模糊技術(shù)(SDHF) ,結(jié)合了基于距離的定向模糊機(jī)制和基于主導(dǎo)的定向符號(hào)執(zhí)行機(jī)制的補(bǔ)丁檢驗(yàn)問題的解決方案1dVul,序列覆蓋定向模糊技術(shù)(SCDF) 。

5.3 不同技術(shù)在缺陷復(fù)現(xiàn)中的比較

5.3.1 定向灰盒與非定向灰盒

通過將漏洞位置設(shè)置為目標(biāo)站點(diǎn),DGF(AFLGo和WindRanger) 在暴露相對(duì)崩潰方面可以獲得比CGFs(AFL和FairFuzz) 更好的性能。在實(shí)驗(yàn)程序的11個(gè)漏洞中,WindRanger在第9個(gè)漏洞上獲得了更好的TTE。總的來說,WindRanger在TTE上對(duì)AFL和FairFuzz中分別提高了47%和59%[18]。

5.3.2 定向灰盒與定向白盒

AFLGo在基準(zhǔn)測(cè)試上比BugRedux有效得多,AFLGo無法復(fù)制的唯一崩潰是由于一個(gè)工程問題:AFLGo無法生成多個(gè)文件[11]。

5.3.3 定向灰盒技術(shù)之間

與AFLGo相比,30%的加速表明WindRanger具有更好的定向能力。對(duì)于難以暴露的CVEs(TTE>1小時(shí)),WindRanger明顯比其他工具快1.22×到2.2×。對(duì)于CVE-2016-4491和CVE-2016-6131,WindRanger獲得了最多的打擊回合對(duì)于CVE-2016-4489和CVE-2016-4490,WindRanger的性能并不如AFLGo。然而,這些cve只需要幾分鐘就可以很容易暴露[18]。

5.3.4 定向灰盒技術(shù)和Hawkeye

在大多數(shù)情況下,Hawkeye在到達(dá)目標(biāo)地點(diǎn)的時(shí)間和暴露崩潰的時(shí)間方面都優(yōu)于最先進(jìn)的灰盒模糊器。特別是Hawkeye曝光某些崩潰的速度比最先進(jìn)的AFLGo快7倍,將曝光時(shí)間從3.5小時(shí)減少到0.5小時(shí)[10]。

5.3.5 序列定向混合模糊技術(shù)與定向模糊技術(shù)(白盒BugRedux,灰盒AFLGo)

對(duì)于BugRedux的基準(zhǔn)測(cè)試,Berry和AFLGo都可以重現(xiàn)崩潰,進(jìn)一步比較這兩種工具觸發(fā)崩潰的時(shí)間成本,因?yàn)橛懈p量的靜態(tài)分析,Berry的儀器時(shí)間比AFLGo減少很多,同時(shí)Berry的運(yùn)行時(shí)間比AFLGo略短,這顯示了Berry的并行執(zhí)行的優(yōu)勢(shì)[10]。

5.3.6 序列覆蓋定向模糊LOLLY與AFLGo

LOLLY和AFLGo在運(yùn)行時(shí)階段的性能在統(tǒng)計(jì)學(xué)上具有可比性。然而,在包含檢測(cè)階段和運(yùn)行時(shí)階段的整個(gè)運(yùn)行中,LOLLY在整體性能方面是優(yōu)越的[19]。

5.4 不同技術(shù)在補(bǔ)丁檢驗(yàn)中的比較

5.4.1 定向灰盒與定向白盒

和Katch比較,AFLGo對(duì)于之前未被發(fā)現(xiàn)的改變的基本區(qū)塊的覆蓋比Katch多13%。AFLGo可以覆蓋Katch無法覆蓋的84個(gè)目標(biāo),而Katch則覆蓋了AFLGo無法覆蓋的59個(gè)目標(biāo)。小交集的產(chǎn)生可以歸因于每種技術(shù)的個(gè)別優(yōu)勢(shì),符號(hào)執(zhí)行可以解決進(jìn)入“隔間”(compartments) 的困難約束,否則將很難訪問。另一方面,灰盒模糊器可以快速探索許多指向目標(biāo)的路徑,而不會(huì)被困在一個(gè)特定的路徑“鄰域”中[11]。

5.4.2 1dVul與定向灰盒AFLGo

1dVul已經(jīng)成功地從應(yīng)用程序中確定的209個(gè)補(bǔ)丁目標(biāo)中生成了130個(gè)目標(biāo)的輸入,而AFLGo只能在相同的有限時(shí)間預(yù)算內(nèi)分別達(dá)到99個(gè)目標(biāo)。此外,1dVul的運(yùn)行速度分別比AFLGo快2.2倍,并確認(rèn)了未打補(bǔ)丁程序的96個(gè)漏洞[1]。

6 發(fā)展趨勢(shì)與挑戰(zhàn)

1) 現(xiàn)今大部分定向模糊器評(píng)估性能的指標(biāo)只有暴露時(shí)間,即暴露給定錯(cuò)誤的第一個(gè)測(cè)試用例之前的模糊過程的時(shí)間,而往往忽略了額外性能開銷的測(cè)量。因此如果能夠?qū)⒎?hào)執(zhí)行、靜態(tài)分析、動(dòng)態(tài)污點(diǎn)分析、機(jī)器學(xué)習(xí)等分析技術(shù)帶來的性能開銷考慮在內(nèi),可以更全面公平地度量定向模糊器的性能。

2) 現(xiàn)今大部分定向模糊器在種子優(yōu)先級(jí)排序時(shí)依舊基于等權(quán)重度量,即控制流圖中每個(gè)分支的跳轉(zhuǎn)都是等概率的。目前常見的優(yōu)化方案如下:計(jì)算每條路徑能夠轉(zhuǎn)換為目標(biāo)路徑的概率,據(jù)此進(jìn)行種子的優(yōu)先級(jí)排序。具體分為兩步:首先收集路徑中所有分支的概率計(jì)算路徑概率,然后基于蒙特卡羅統(tǒng)計(jì)方法估計(jì)分支跳轉(zhuǎn)概率。這樣做更易到達(dá)定向目標(biāo)位置,使得定向模糊器的性能更高。

3) 現(xiàn)今大部分定向模糊器都是在源碼層面上的測(cè)試,例如根據(jù)控制流圖計(jì)算距離等都非常依賴源代碼。二進(jìn)制級(jí)定向模糊器研究較少,因?yàn)榇嬖谥^大的困難。一是運(yùn)行開銷大,基于仿真器的工具如QEMU等通常效率較低。二是目標(biāo)識(shí)別困難,只能從錯(cuò)誤跟蹤中提取目標(biāo)信息,而且二進(jìn)制代碼非常難以閱讀。目前的解決方案如下:一是使用硬件輔助如英特爾PT處理器跟蹤,減少運(yùn)行開銷;二是基于機(jī)器學(xué)習(xí)的方法,自動(dòng)識(shí)別目標(biāo)二進(jìn)制代碼。這推動(dòng)了二進(jìn)制級(jí)定向模糊器的發(fā)展。

4) 現(xiàn)今大部分定向模糊器在多目標(biāo)任務(wù)的測(cè)試中,并沒有特別關(guān)注目標(biāo)之間的關(guān)系。而如果能利用目標(biāo)之間的關(guān)系進(jìn)行優(yōu)化,則能夠提高測(cè)試效率。目前的解決方案如下,基于空間關(guān)系:考慮它們是否共享同一個(gè)分支,以及它們的相對(duì)優(yōu)先級(jí)關(guān)系。基于狀態(tài)空間的位置:考慮兩個(gè)目標(biāo)是否共享同一個(gè)狀態(tài),以及狀態(tài)轉(zhuǎn)換圖上兩個(gè)狀態(tài)是否可以相互轉(zhuǎn)換。基于多線程的情況:考慮是否存在不同的線程,它們之間相互影響,導(dǎo)致雖然種子到達(dá)了目標(biāo)位置,但并沒有觸發(fā)bug。

參考文獻(xiàn):

[1] PENG J Q,LI F,LIU B C,et al.1dVul:discovering 1-day vulnerabilities through binary patches[C]//2019 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).IEEE,2019:605-616.

[2] YOU W,ZONG P Y,CHEN K,et al.SemFuzz:semantics-based automatic generation of proof-of-concept exploits[C]//Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security.New York:ACM,2017:2139-2154.

[3] ZHU X G,B?HME M.Regression greybox fuzzing[C]//Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security.New York:ACM,2021:2169-2182.

[4] NGUYEN M D,BARDIN S,BONICHON R,et al.Binary-level directed fuzzing for Use-After-Free vulnerabilities[C]//23rd International Symposium on Research in Attacks,Intrusions and Defenses (RAID2020).USENIX Association,2020:47-62.

[5] ZHU X,LIU S,LI X,et al.DeFuzz:deep learning guided directed fuzzing[EB/OL].[2022-10-20].https://arxiv.org/abs/2010. 12149.pdf.

[6] LI Y,JI S,LV C,et al.V-fuzz:vulnerability-oriented evolutionary fuzzing[EB/OL].[2022-10-20].https://arxiv.org/abs/1901.01142.pdf.

[7] GARBELINI M E,WANG C D,CHATTOPADHYAY S.Greyhound:directed greybox Wi-Fi fuzzing[J].IEEE Transactions on Dependable and Secure Computing,2022,19(2):817-834.

[8] WANG Z,LIBLIT B,REPS T.TOFU:target-oriented FUzzer[EB/OL].[2022-10-20].https://arxiv.org/abs/2004.14375.pdf.

[9] WüSTHOLZ V,CHRISTAKIS M.Targeted greybox fuzzing with static lookahead analysis[C]//Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering.New York:ACM,2020:789-800.

[10] CHEN H X,XUE Y X,LI Y K,et al.Hawkeye:towards a desired directed grey-box fuzzer[C]//Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security.New York:ACM,2018:2095-2108.

[11] B?HME M,PHAM V T,NGUYEN M D,et al.Directed greybox fuzzing[C]//Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security.Dallas Texas USA.New York,NY,USA:ACM,2017:2329-2344.

[12] LIANG H L,JIANG L,AI L,et al.Sequence directed hybrid fuzzing[C]//2020 IEEE 27th International Conference on Software Analysis,Evolution and Reengineering (SANER).IEEE,2020:127-137.

[13] SITU L Y,WANG L Z,LI X D,et al.Energy distribution matters in greybox fuzzing[C]//2019 IEEE/ACM 41st International Conference on Software Engineering:Companion Proceedings (ICSE-Companion).IEEE,2019:270-271.

[14] CHRISTAKIS M,MüLLER P,WüSTHOLZ V.Guiding dynamic symbolic execution toward unverified program executions[C]//Proceedings of the 38th International Conference on Software Engineering.New York:ACM,2016:144-155.

[15] PAK B.Hybrid fuzz testing: Discovering software bugs via fuzzing and symbolic execution[D].Pittsburgh: School of Computer Science Carnegie Mellon University,2012.

[16] WANG H J,XIE X F,LI Y,et al.Typestate-guided fuzzer for discovering use-after-free vulnerabilities[C]//Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering.New York:ACM,2020:999-1010.

[17] MEDICHERLA R K,KOMONDOOR R,ROYCHOUDHURY A.Fitness guided vulnerability detection with greybox fuzzing[C]//Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops.New York:ACM,2020:513-520.

[18] DU Z J,LI Y K,LIU Y,et al.Windranger:a directed greybox fuzzer driven by deviation basic blocks[C]//2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE).IEEE,2022:2440-2451.

[19] LIANG H L,ZHANG Y N,YU Y,et al.Sequence coverage directed greybox fuzzing[C]//2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC).IEEE,2019:249-259.

[20] ZONG P Y,LV T,WANG D W,et al.FuzzGuard: Filtering out unreachable inputs in directed grey-box fuzzing through deep learning[C]//29th USENIX Security Symposium (USENIX Security 20).USENIX Association,2020:2255-2269.

[21] JAIN V,RAWAT S,GIUFFRIDA C,et al.TIFF:using input type inference to improve fuzzing[C]//Proceedings of the 34th Annual Computer Security Applications Conference.New York,NY,USA:ACM,2018:505-517.

[22] LEE G,SHIM W,LEE B.Constraint-guided directed greybox fuzzing[C]//30th USENIX Security Symposium (USENIX Security 21).USENIX Association, August 2021:3559-3576.

[23] GANESH V,LEEK T,RINARD M.Taint-based directed whitebox fuzzing[C]//2009 IEEE 31st International Conference on Software Engineering.IEEE,2009:474-484.

[24] HUANG H Q,GUO Y Y,SHI Q K,et al.BEACON:directed grey-box fuzzing with provable path pruning[C]//2022 IEEE Symposium on Security and Privacy (SP).IEEE,2022:36-50.

[25] OGNAWALA S,HUTZELMANN T,PSALLIDA E,et al.Improving function coverage with munch:a hybrid fuzzing and directed symbolic execution approach[C]//Proceedings of the 33rd Annual ACM Symposium on Applied Computing.Pau France.New York,NY,USA:ACM,2018:1475-1482.

【通聯(lián)編輯:謝媛媛】

主站蜘蛛池模板: 亚洲品质国产精品无码| 久久夜色精品国产嚕嚕亚洲av| 97无码免费人妻超级碰碰碰| 狂欢视频在线观看不卡| 亚洲无码视频喷水| 国产一级特黄aa级特黄裸毛片| 露脸真实国语乱在线观看| 国产亚卅精品无码| 99热精品久久| 亚洲av日韩av制服丝袜| 日韩无码视频专区| 欧美曰批视频免费播放免费| 欧美日韩精品在线播放| 99热这里只有精品免费| 无码内射在线| 亚洲天堂久久| 色综合激情网| 欧美日韩中文国产| 麻豆精品久久久久久久99蜜桃| 99视频在线免费看| 国产99在线| 国产日韩久久久久无码精品| 日韩大片免费观看视频播放| 最近最新中文字幕免费的一页| 国产在线一区视频| 中日韩欧亚无码视频| 谁有在线观看日韩亚洲最新视频| 国产欧美一区二区三区视频在线观看| 国产无码制服丝袜| 女同国产精品一区二区| 成人久久18免费网站| 久久久久亚洲av成人网人人软件 | 伊在人亚洲香蕉精品播放 | 亚洲成人www| 好紧好深好大乳无码中文字幕| 欧美午夜在线观看| 久精品色妇丰满人妻| 免费三A级毛片视频| 在线观看无码av免费不卡网站| 亚洲视频欧美不卡| 午夜视频www| 日韩高清在线观看不卡一区二区| 中文字幕在线观看日本| 欧美亚洲国产精品久久蜜芽| 亚洲欧美不卡视频| 热热久久狠狠偷偷色男同| 久久99精品久久久久纯品| 日韩国产高清无码| 中文纯内无码H| 国产女人在线视频| 国产一二三区在线| 一级爆乳无码av| 久久久久久久97| 国产女人18水真多毛片18精品 | 99re66精品视频在线观看| 91精品啪在线观看国产60岁| 男人的天堂久久精品激情| 色婷婷成人网| 成人夜夜嗨| 国产亚洲精久久久久久久91| 国产成人精品优优av| 99九九成人免费视频精品 | 国产精品美女免费视频大全 | 久草网视频在线| 欧洲日本亚洲中文字幕| 亚洲男人的天堂久久精品| 国产日韩欧美一区二区三区在线| 高潮毛片免费观看| 国产在线精品美女观看| 91久久国产成人免费观看| 亚洲精品国产综合99久久夜夜嗨| 亚洲 成人国产| 亚洲色图另类| 日韩精品毛片| 国产精品片在线观看手机版| 成人午夜亚洲影视在线观看| 亚洲中久无码永久在线观看软件| 成人午夜视频网站| 热思思久久免费视频| 国产欧美精品一区二区| 极品国产一区二区三区| 91小视频在线|