模糊測(cè)試白皮書(shū)2024_第1頁(yè)
模糊測(cè)試白皮書(shū)2024_第2頁(yè)
模糊測(cè)試白皮書(shū)2024_第3頁(yè)
模糊測(cè)試白皮書(shū)2024_第4頁(yè)
模糊測(cè)試白皮書(shū)2024_第5頁(yè)
已閱讀5頁(yè),還剩147頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

引言在信息技術(shù)迅猛發(fā)展的數(shù)字時(shí)代,軟件已成為一切的基石。海量代碼正在快速改變各行業(yè)的生產(chǎn)范式,加速全球信息技術(shù)的進(jìn)步。然而,隨著開(kāi)源組件和第三方代碼的廣泛應(yīng)用,前所未有的安全風(fēng)險(xiǎn)也隨之而來(lái),使得軟件安全問(wèn)題成為企業(yè)乃至國(guó)家的關(guān)注焦點(diǎn)?!缎滤伎萍紤?yīng)用安全測(cè)試服務(wù)分析》報(bào)告[36]數(shù)據(jù)顯示,97%的被測(cè)目標(biāo)被發(fā)現(xiàn)存在某種形式的漏洞,其中36%為嚴(yán)重及高風(fēng)險(xiǎn)漏洞,導(dǎo)致軟件安全“灰犀牛事件”1頻發(fā)。面對(duì)日益復(fù)雜的網(wǎng)絡(luò)環(huán)境和多樣化的攻擊手段,傳統(tǒng)基于規(guī)則的安全檢測(cè)方法逐漸暴露出其局限性,難以及時(shí)識(shí)別新出現(xiàn)的安全漏洞。這種局限性突顯了采用更先進(jìn)、更靈活的安全技術(shù)的重要性,例如運(yùn)用人工智能和機(jī)器學(xué)習(xí)技術(shù)提升安全檢測(cè)能力,以更有效地識(shí)別和應(yīng)對(duì)未知的安全威脅,從而確保軟件和系統(tǒng)的安全。在此背景下,模糊測(cè)試[](FzzTestng或Fzzng)作為驗(yàn)證軟件健壯性和安全性的關(guān)鍵技術(shù),受到了廣泛關(guān)注與應(yīng)用。模糊測(cè)試通過(guò)模擬攻擊者的行為,生成大量意外或隨機(jī)的輸入,挑戰(zhàn)系統(tǒng)的穩(wěn)定性和安全性,旨在發(fā)現(xiàn)潛在的安全漏洞和弱點(diǎn)。相比傳統(tǒng)的基于規(guī)則的測(cè)試方法,模糊測(cè)試不依賴(lài)于已知的漏洞模式,而是通過(guò)隨機(jī)變異的輸入數(shù)據(jù),全面覆蓋系統(tǒng)的各類(lèi)輸入情況,從而大幅提高漏洞檢測(cè)的廣度和深度。因此,模糊測(cè)試在發(fā)現(xiàn)未知漏洞、提升測(cè)試覆蓋率以及減少誤報(bào)率方面具有無(wú)可比擬的優(yōu)勢(shì)。1“灰犀牛事件”(GreyRhinoEvent)是一個(gè)比喻性的術(shù)語(yǔ),用來(lái)描述那些雖然明顯可見(jiàn)但通常被忽視,直到它們成為嚴(yán)重問(wèn)題的大型風(fēng)險(xiǎn)。近年來(lái),隨著大語(yǔ)言模型和安全智能體技術(shù)的引入,模糊測(cè)試在應(yīng)對(duì)復(fù)雜軟件系統(tǒng)和未知威脅方面展現(xiàn)出更大的潛力。大語(yǔ)言模型通過(guò)對(duì)程序代碼的深度理解和分析,能夠生成更具針對(duì)性的測(cè)試用例,極大提升模糊測(cè)試的覆蓋率和有效性。而且,安全智能體技術(shù)能夠自動(dòng)化地進(jìn)行漏洞檢測(cè)、分析和修復(fù),大幅提高整體測(cè)試效率和安全防護(hù)水平。本白皮書(shū)共分為八個(gè)部分:模糊測(cè)試概述:介紹模糊測(cè)試的基本概念和歷史發(fā)展。模糊測(cè)試技術(shù)解析:深入探討模糊測(cè)試的基本原理、關(guān)鍵技術(shù)和不同分類(lèi)。應(yīng)用領(lǐng)域分析:詳細(xì)介紹模糊測(cè)試在不同應(yīng)用領(lǐng)域中的實(shí)際應(yīng)用和效果。需求與創(chuàng)新案例:展示行業(yè)內(nèi)模糊測(cè)試的最佳創(chuàng)新案例,涵蓋多個(gè)行業(yè)的具體需求和成功案例。技術(shù)實(shí)施指南:詳細(xì)講解模糊測(cè)試的技術(shù)實(shí)施,包括工具選擇、流程方法以及自動(dòng)化和智能化的最新進(jìn)展。挑戰(zhàn)與未來(lái)趨勢(shì):分析當(dāng)前模糊測(cè)試面臨的挑戰(zhàn)和未來(lái)發(fā)展趨勢(shì)。政策和標(biāo)準(zhǔn)介紹:介紹國(guó)內(nèi)外模糊測(cè)試相關(guān)的政策和標(biāo)準(zhǔn)。結(jié)論與展望:總結(jié)模糊測(cè)試的整體價(jià)值,并對(duì)未來(lái)的發(fā)展方向進(jìn)行展望。目錄一、模糊測(cè)試概述 1什么是模糊測(cè)試技術(shù) 1模糊測(cè)試的歷史與發(fā)展沿革 3起源時(shí)代:隨機(jī)模糊測(cè)試 4進(jìn)化時(shí)代:反饋式模糊測(cè)試 5智能時(shí)代:模糊測(cè)試智能體 7模糊測(cè)試與傳統(tǒng)測(cè)試技術(shù)的差異與優(yōu)勢(shì) 8模糊測(cè)試與傳統(tǒng)測(cè)試技術(shù)的差異 9模糊測(cè)試技術(shù)的核心優(yōu)勢(shì) 12二、模糊測(cè)試技術(shù)解析 15模糊測(cè)試的技術(shù)原理 15模糊測(cè)試的分類(lèi) 20模糊測(cè)試的關(guān)鍵技術(shù) 22預(yù)處理技術(shù) 22測(cè)試用例生成技術(shù) 26調(diào)度優(yōu)化策略 29缺陷檢測(cè)技術(shù) 31測(cè)試去重和優(yōu)先級(jí)策略 36模糊測(cè)試產(chǎn)品的前沿研究熱點(diǎn) 37基于大模型的測(cè)試驅(qū)動(dòng)智能生成技術(shù) 38基于大模型的種子變異和優(yōu)化技術(shù) 40基于大模型的修復(fù)代碼生成技術(shù) 42三、模糊測(cè)試的檢測(cè)對(duì)象 45應(yīng)用程序模糊測(cè)試 46源代碼模糊測(cè)試 46二進(jìn)制模糊測(cè)試 48BPI模糊測(cè)試 0數(shù)據(jù)庫(kù)模糊測(cè)試 53協(xié)議模糊測(cè)試 55操作系統(tǒng)模糊測(cè)試 57固件模糊測(cè)試 59四、模糊測(cè)試的需求與應(yīng)用案例 62金融領(lǐng)域 62金融領(lǐng)域的模糊測(cè)試需求 62金融領(lǐng)域的應(yīng)用案例 64智能網(wǎng)聯(lián)汽車(chē)領(lǐng)域 67智能網(wǎng)聯(lián)汽車(chē)領(lǐng)域的模糊測(cè)試需求 67智能網(wǎng)聯(lián)汽車(chē)領(lǐng)域的應(yīng)用案例 70工業(yè)互聯(lián)網(wǎng)領(lǐng)域 73工業(yè)互聯(lián)網(wǎng)領(lǐng)域的模糊測(cè)試需求 73工業(yè)互聯(lián)網(wǎng)領(lǐng)域的應(yīng)用案例 76軍隊(duì)軍工領(lǐng)域 78軍隊(duì)軍工領(lǐng)域的模糊測(cè)試需求 78軍隊(duì)軍工領(lǐng)域的應(yīng)用案例 80信創(chuàng)領(lǐng)域 82信創(chuàng)領(lǐng)域的模糊測(cè)試需求 82信創(chuàng)領(lǐng)域的應(yīng)用案例 85檢驗(yàn)檢測(cè)領(lǐng)域 87檢驗(yàn)檢測(cè)領(lǐng)域的模糊測(cè)試需求 87檢驗(yàn)檢測(cè)領(lǐng)域的應(yīng)用案例 89信息和通信技術(shù)領(lǐng)域 91信息和通信技術(shù)領(lǐng)域的模糊測(cè)試需求 91信息和通信技術(shù)領(lǐng)域的應(yīng)用案例 92人工智能領(lǐng)域 94人工智能領(lǐng)域的模糊測(cè)試需求 94人工智能領(lǐng)域的應(yīng)用案例 96區(qū)塊鏈領(lǐng)域 98區(qū)塊鏈智能合約的模糊測(cè)試需求 98區(qū)塊鏈領(lǐng)域的應(yīng)用案例 100五、模糊測(cè)試的技術(shù)實(shí)施 103模糊測(cè)試工具的選擇與使用 103開(kāi)源模糊測(cè)試工具 103商業(yè)模糊測(cè)試產(chǎn)品 107產(chǎn)品差異性分析 110模糊測(cè)試場(chǎng)景應(yīng)用 115模糊測(cè)試在漏洞挖掘場(chǎng)景中的應(yīng)用 115模糊測(cè)試在DevSecOps場(chǎng)景中的應(yīng)用 118模糊測(cè)試在入網(wǎng)檢測(cè)場(chǎng)景中的應(yīng)用 121六、模糊測(cè)試的未來(lái)與發(fā)展趨勢(shì) 125智能化模糊測(cè)試能力 125全棧漏洞檢測(cè)能力 126持續(xù)集成模糊測(cè)試能力 127并行分布式模糊測(cè)試能力 129模糊測(cè)試即服務(wù)能力 130七、模糊測(cè)試的政策與標(biāo)準(zhǔn) 132國(guó)外政策與標(biāo)準(zhǔn) 132國(guó)內(nèi)政策與標(biāo)準(zhǔn) 134八、結(jié)論與展望 136九、參考資料 138圖目錄圖1模糊測(cè)試迷宮探索示意圖 2圖2模糊測(cè)試技術(shù)發(fā)展過(guò)程中的三個(gè)階段 4圖3不同階段軟件安全測(cè)試工具的生命周期 8圖4不同技術(shù)漏洞檢測(cè)能力 11圖5模糊測(cè)試技術(shù)架構(gòu)五大核心模塊 15圖6模糊測(cè)試工作流程 17圖7模糊測(cè)試的分類(lèi) 20圖8模糊測(cè)試不同階段關(guān)鍵技術(shù) 22圖9傳統(tǒng)模糊測(cè)試典型工作流程與能力瓶頸 38圖10云起無(wú)垠測(cè)試驅(qū)動(dòng)智能生成策略 39圖11基于大模型的種子變異和優(yōu)化技術(shù) 41圖12自動(dòng)化漏洞修復(fù)、驗(yàn)證框架 43圖13模糊測(cè)試分類(lèi) 45圖14源代碼模糊測(cè)試流程圖 47圖15二進(jìn)制程序的模糊測(cè)試流程圖 49圖6bPI模糊測(cè)試流程圖 1圖17數(shù)據(jù)庫(kù)模糊測(cè)試流程圖 53圖18協(xié)議模糊測(cè)試流程圖 55圖19操作系統(tǒng)模糊測(cè)試流程圖 59圖20固件模糊測(cè)試流程圖 60圖21某銀行模糊測(cè)試方案部署圖 65圖22智能網(wǎng)聯(lián)汽車(chē)通信場(chǎng)景示意 69圖23模糊測(cè)試在汽車(chē)軟件不同測(cè)試階段的應(yīng)用 71圖24汽車(chē)行業(yè)協(xié)議模糊測(cè)試案例 72圖25工業(yè)控制系統(tǒng)模糊測(cè)試框架 77圖26信創(chuàng)產(chǎn)業(yè)鏈 82圖27數(shù)據(jù)庫(kù)模糊測(cè)試方案圖 86圖28檢驗(yàn)檢測(cè)機(jī)構(gòu)模糊測(cè)試架構(gòu)圖 90圖29華為模糊測(cè)試應(yīng)用實(shí)踐圖 93圖30模糊測(cè)試在漏洞挖掘場(chǎng)景中的應(yīng)用 116圖31模糊測(cè)試在DevSecOps場(chǎng)景中的應(yīng)用 119圖32模糊測(cè)試在入網(wǎng)檢測(cè)場(chǎng)景中的應(yīng)用 122表目錄表1工業(yè)互聯(lián)網(wǎng)攻擊典型事件 74表2模糊測(cè)試產(chǎn)品差異性分析 111一、模糊測(cè)試概述模糊測(cè)試[11]是一種前沿的自動(dòng)化測(cè)試技術(shù),專(zhuān)注于挖掘軟件系統(tǒng)中的漏洞和缺陷。它的核心理念是通過(guò)向程序輸入大量隨機(jī)、異?;蛞馔獾臄?shù)據(jù)(即“模糊”數(shù)據(jù)),從而觸發(fā)系統(tǒng)異常行為或崩潰。模糊測(cè)試不依賴(lài)已知的漏洞模式或規(guī)則,而是利用半隨機(jī)或基于人工智能的策略生成輸入,深入探索系統(tǒng)潛在的漏洞。模糊測(cè)試能夠發(fā)現(xiàn)內(nèi)存泄漏、緩沖區(qū)溢出、代碼注入等安全漏洞,以及程序中的其他錯(cuò)誤或異常情況。這種測(cè)試方法目前已廣泛應(yīng)用于軟件開(kāi)發(fā)的各個(gè)階段,包括產(chǎn)品測(cè)試、安全評(píng)估和漏洞挖掘等領(lǐng)域。本章將通過(guò)比喻生動(dòng)地介紹模糊測(cè)試的基本思路,回顧其歷史與發(fā)展,分析其與傳統(tǒng)軟件安全測(cè)試方法的區(qū)別,并展示其在現(xiàn)代軟件開(kāi)發(fā)和安全評(píng)估中的優(yōu)越性、重要性和廣闊前景。什么是模糊測(cè)試技術(shù)模糊測(cè)試就像一位探險(xiǎn)家在未知迷宮中的探索。在這個(gè)比喻中,復(fù)雜的應(yīng)用系統(tǒng)好比是一個(gè)充滿(mǎn)未知和挑戰(zhàn)的迷宮,而模糊測(cè)試器則是那位勇敢的探險(xiǎn)家,努力探索迷宮中隱藏的秘密通道和出口。探險(xiǎn)家依靠智慧和勇氣揭開(kāi)迷宮的秘密;同樣,模糊測(cè)試器通過(guò)生成大量非預(yù)期或隨機(jī)的輸入,挑戰(zhàn)應(yīng)用系統(tǒng)的極限,揭露隱藏于代碼深處的漏洞和未知威脅。其具體工作步驟和過(guò)程如下:圖1模糊測(cè)試迷宮探索示意圖進(jìn)入迷宮(開(kāi)始測(cè)試):模糊測(cè)試工具就像勇敢的探險(xiǎn)家,踏進(jìn)了一個(gè)充滿(mǎn)未知路徑和轉(zhuǎn)折的迷宮。這個(gè)迷宮象征著一個(gè)復(fù)雜的軟件系統(tǒng),它包含了眾多待探索和解密的執(zhí)行路徑和狀態(tài)。在這一步,探險(xiǎn)家(模糊測(cè)試工具)準(zhǔn)備好一切必要的裝備和信息,開(kāi)始對(duì)迷宮(軟件系統(tǒng))進(jìn)行探索。迷宮探索(生成測(cè)試數(shù)據(jù)并測(cè)試):在這場(chǎng)探險(xiǎn)里,探險(xiǎn)家不按照預(yù)定路徑尋找出口,而是隨機(jī)或啟發(fā)式引導(dǎo)地選擇不同路徑前行。相似地,模糊測(cè)試通過(guò)生成各種隨機(jī)或異常數(shù)據(jù),并將這些數(shù)據(jù)輸入軟件系統(tǒng)中進(jìn)行測(cè)試,以觀察其反應(yīng)。探險(xiǎn)家的每一步選擇都可能帶來(lái)新的發(fā)現(xiàn),而模糊測(cè)試的每一組數(shù)據(jù)輸入同樣可能揭示出系統(tǒng)的未知行為。尋找隱藏的通道和出口(發(fā)現(xiàn)新路徑和軟件問(wèn)題):探險(xiǎn)家可能在迷宮的每個(gè)轉(zhuǎn)角發(fā)現(xiàn)一個(gè)隱藏的通道或未知的出口。在模糊測(cè)試中,生成的異常數(shù)據(jù)可能觸發(fā)軟件系統(tǒng)中隱藏的漏洞,或?qū)е鲁绦蛐袨楫惓?,從而揭露潛在的安全?wèn)題。這一步驟至關(guān)重要,能夠幫助測(cè)試者有效識(shí)別出系統(tǒng)中的薄弱環(huán)節(jié)和潛在風(fēng)險(xiǎn)。記錄和分析(分析測(cè)試結(jié)果):探險(xiǎn)家在發(fā)現(xiàn)新路徑或遭遇陷阱時(shí),會(huì)仔細(xì)記錄并分析。模糊測(cè)試過(guò)程同樣需要記錄軟件對(duì)于異常輸入的反應(yīng),并進(jìn)行深入的分析,確定安全漏洞或程序錯(cuò)誤的存在是真實(shí)的。詳細(xì)的記錄和分析有助于理解系統(tǒng)的行為模式,從而為后續(xù)的改進(jìn)和修復(fù)提供依據(jù)。不斷迭代(持續(xù)測(cè)試):探險(xiǎn)家會(huì)通過(guò)不斷的探索,嘗試新的路徑,直到徹底探索迷宮的每一個(gè)角落。模糊測(cè)試亦然,通過(guò)持續(xù)生成新的測(cè)試數(shù)據(jù),測(cè)試者能夠全面檢測(cè)并增強(qiáng)軟件系統(tǒng)的安全性,確保更多安全漏洞被發(fā)現(xiàn)并修復(fù)。持續(xù)的迭代測(cè)試有助于提高系統(tǒng)的穩(wěn)定性和安全性,使其在面對(duì)各種異常輸入時(shí)仍能保持正常運(yùn)行。通過(guò)這個(gè)比喻,模糊測(cè)試的復(fù)雜性和重要性得到了生動(dòng)的詮釋。探險(xiǎn)家的勇敢和智慧,正如模糊測(cè)試工具在揭示軟件系統(tǒng)中潛在問(wèn)題時(shí)所展現(xiàn)的精確和效率。模糊測(cè)試的歷史與發(fā)展沿革模糊測(cè)試技術(shù)自從問(wèn)世以來(lái),經(jīng)歷了三個(gè)顯著的技術(shù)發(fā)展階段,反映了該領(lǐng)域技術(shù)進(jìn)步的軌跡。從最初的隨機(jī)模糊測(cè)試,到現(xiàn)在應(yīng)用最廣泛的反饋式模糊測(cè)試,模糊測(cè)試技術(shù)始終是科研界與產(chǎn)業(yè)界關(guān)注的焦點(diǎn)。時(shí)至今日,隨著GPT大模型帶來(lái)的技術(shù)變革,模糊測(cè)試技術(shù)已經(jīng)邁入智能化時(shí)代。圖2模糊測(cè)試技術(shù)發(fā)展過(guò)程中的三個(gè)階段起源時(shí)代:隨機(jī)模糊測(cè)試在“模糊測(cè)試”這一詞語(yǔ)被提出之前,最初采用的概念被稱(chēng)為“猴子測(cè)試”[12]。1983年,SteveCapps開(kāi)發(fā)了一款名為“Monkey”的應(yīng)用程序,它通過(guò)生成隨機(jī)的鼠標(biāo)點(diǎn)擊和鍵盤(pán)輸入來(lái)測(cè)試cWrite和cPint應(yīng)用程序。測(cè)試人員認(rèn)為這就像一只看不見(jiàn)的猴子在無(wú)規(guī)律地操作計(jì)算機(jī),因此得名“猴子測(cè)試”。這種基于隨機(jī)輸入和操作的自動(dòng)化測(cè)試方法成為了模糊測(cè)試技術(shù)的早期形式?!澳:郎y(cè)試”這一術(shù)語(yǔ)由Brtoniler教授在188年提出[]。一次課程實(shí)驗(yàn)中,iler教授嘗試通過(guò)撥號(hào)連接遠(yuǎn)程登錄到一個(gè)nix系統(tǒng)時(shí),遭遇了大量干擾噪聲,導(dǎo)致依賴(lài)外部數(shù)據(jù)輸入的應(yīng)用程序崩潰。這一經(jīng)歷促使iler教授在威斯康星大學(xué)指導(dǎo)學(xué)生開(kāi)展了一個(gè)名為“操作系統(tǒng)實(shí)用程序的可靠性”的項(xiàng)目。該項(xiàng)目組成員開(kāi)發(fā)一個(gè)命令行工具,通過(guò)向nix程序發(fā)送隨機(jī)數(shù)據(jù)來(lái)測(cè)試其可靠性,并監(jiān)控程序是否會(huì)出現(xiàn)異常或崩潰。這一簡(jiǎn)單的測(cè)試方法揭示了當(dāng)時(shí)nix系統(tǒng)中超過(guò)2%的程序存在崩潰問(wèn)題,展示了模糊測(cè)試在發(fā)現(xiàn)軟件缺陷方面的強(qiáng)大能力。此后,模糊測(cè)試作為一個(gè)概念被廣泛認(rèn)知。早期模糊測(cè)試主要采用黑盒測(cè)試[7]的方法,測(cè)試人員不需要了解目標(biāo)程序的內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn)機(jī)制。他們通過(guò)觀察程序?qū)斎牒洼敵龅奶幚韥?lái)評(píng)估其性能和穩(wěn)定性。這個(gè)階段的模糊測(cè)試相對(duì)簡(jiǎn)單,缺乏自動(dòng)化工具和框架的支持,主要依賴(lài)生成半隨機(jī)數(shù)據(jù)來(lái)檢測(cè)目標(biāo)程序如何處理異常輸入。測(cè)試人員使用模板式模糊測(cè)試或生成式模糊測(cè)試方法,創(chuàng)建各種隨機(jī)字節(jié)序列、字符串或數(shù)字作為輸入,以此發(fā)現(xiàn)程序的異常行為和安全漏洞。進(jìn)化時(shí)代:反饋式模糊測(cè)試黑盒模糊測(cè)試方法因不深入應(yīng)用程序的內(nèi)部邏輯和代碼結(jié)構(gòu),測(cè)試覆蓋度和效率較低。213年,AFL(AerinFzyLop)[]框架的問(wèn)世有效解決了這一問(wèn)題,標(biāo)志著反饋式模糊測(cè)試時(shí)代的到來(lái)。AFL指導(dǎo)測(cè)試。在運(yùn)行時(shí),它會(huì)收集覆蓋信息,并基于這些數(shù)據(jù)和遺傳變異算法生成新測(cè)試用例,以提高測(cè)試效率和準(zhǔn)確性。這種策略確保測(cè)試能夠更全面地探索未覆蓋的代碼區(qū)域,從而增強(qiáng)發(fā)現(xiàn)軟件隱藏錯(cuò)誤和未知漏洞的能力。反饋式模糊測(cè)試2的引入為安全專(zhuān)家提供了許多全新研究方向。從此,在大型安全產(chǎn)業(yè)界會(huì)議(如BlackHat[10]、Defcon[9]等)和網(wǎng)絡(luò)安全頂尖學(xué)術(shù)會(huì)議(如USENIXSecurity[32]、CCS[49]、S&P[49]、NDSS[48]等)中,關(guān)于覆蓋引導(dǎo)式模糊測(cè)試與符號(hào)執(zhí)行、污點(diǎn)分析相結(jié)合的討論日益增多。隨著模糊測(cè)試效率和覆蓋度的顯著提升,許多商業(yè)化的模糊測(cè)試產(chǎn)品也相繼推出,模糊測(cè)試已逐漸成為軟件檢測(cè)體系中不可或缺的一環(huán)。隨著機(jī)器學(xué)習(xí)和深度學(xué)習(xí)技術(shù)的發(fā)展,反饋式模糊測(cè)試的能力得到了進(jìn)一步增強(qiáng)?;跈C(jī)器學(xué)習(xí)的模糊測(cè)試方法能夠利用歷史測(cè)試數(shù)據(jù)訓(xùn)練模型,以預(yù)測(cè)哪些輸入更可能觸發(fā)新的代碼路徑或漏洞。這種智能化的測(cè)試生成策略,不僅提高了測(cè)試的覆蓋度和效率,還能夠更有效地發(fā)現(xiàn)復(fù)雜的安全漏洞。深度學(xué)習(xí)技術(shù)的應(yīng)用則進(jìn)一步推動(dòng)模糊測(cè)試向智能化和自動(dòng)化發(fā)展。通過(guò)使用神經(jīng)網(wǎng)絡(luò)模型,測(cè)試系統(tǒng)可以自動(dòng)學(xué)習(xí)和識(shí)別復(fù)雜的輸入模式,高效生成測(cè)試用例。同時(shí),深度學(xué)習(xí)模型還可以幫助分析和分類(lèi)測(cè)試結(jié)果,快速定位和修復(fù)漏洞。2反饋式模糊測(cè)試(Febc-asdFzTstng)是一種模糊測(cè)試技術(shù),通過(guò)在測(cè)試過(guò)程中動(dòng)態(tài)地收集和分析目標(biāo)系統(tǒng)的反饋信息,來(lái)指導(dǎo)和優(yōu)化后續(xù)的測(cè)試輸入。智能時(shí)代:模糊測(cè)試智能體隨著生成式人工智能技術(shù)的飛速發(fā)展,大語(yǔ)言模型與模糊測(cè)試的融合為漏洞檢測(cè)與修復(fù)領(lǐng)域帶來(lái)了革命性進(jìn)展。2023年底,云起無(wú)垠首次提出模糊測(cè)試智能體[37]架構(gòu),標(biāo)志著模糊測(cè)試正式步入“智能體”時(shí)代。在反饋式模糊測(cè)試時(shí)代,許多開(kāi)源模糊測(cè)試項(xiàng)目和商業(yè)化工具已經(jīng)展示了強(qiáng)大的漏洞挖掘能力。然而,模糊測(cè)試工具難以實(shí)現(xiàn)自動(dòng)化漏洞檢測(cè),自動(dòng)化漏洞修復(fù)難度大,使其難以大規(guī)模普及。在智能體時(shí)代,這些瓶頸得以突破。模糊測(cè)試智能體方案由代碼大模型、模糊測(cè)試引擎、靜態(tài)分析引擎和知識(shí)引擎組成,通過(guò)智能化手段實(shí)現(xiàn)自動(dòng)化漏洞檢測(cè)和修復(fù),全面提升檢測(cè)效率和覆蓋率。其中,代碼大模型具備強(qiáng)大的語(yǔ)義理解能力,能夠深入分析程序代碼的結(jié)構(gòu)和邏輯,并生成測(cè)試驅(qū)動(dòng)代碼和修復(fù)代碼。模糊測(cè)試引擎結(jié)合多種漏洞檢測(cè)方法,實(shí)時(shí)檢測(cè)代碼中的異常行為,并結(jié)合大模型生成的測(cè)試用例進(jìn)行深入測(cè)試。靜態(tài)分析引擎主要負(fù)責(zé)語(yǔ)法分析,提供精確的代碼分析結(jié)果,輔助生成高質(zhì)量測(cè)試驅(qū)動(dòng)代碼和修復(fù)補(bǔ)丁。知識(shí)引擎包含種子庫(kù)、漏洞庫(kù)和修復(fù)策略庫(kù),不僅能夠提供高質(zhì)量的初始測(cè)試樣例,還可對(duì)漏洞的成因分析和歸類(lèi)提供數(shù)據(jù)支撐。總體而言,云起無(wú)垠提出的模糊測(cè)試智能體方案,支持多種編程語(yǔ)言和應(yīng)用場(chǎng)景,適用于不同開(kāi)發(fā)環(huán)境,具備高效漏洞檢測(cè)、自動(dòng)化漏洞修復(fù)和大規(guī)模測(cè)試覆蓋的能力,可以顯著降低人力成本。該方案不僅解決了模糊測(cè)試技術(shù)使用門(mén)檻高、漏洞修復(fù)困難的痛點(diǎn),還進(jìn)一步提升了模糊測(cè)試的檢測(cè)效率與覆蓋度,實(shí)現(xiàn)了真正意義上的規(guī)?;┒醋詣?dòng)化挖掘與修復(fù)。模糊測(cè)試與傳統(tǒng)測(cè)試技術(shù)的差異與優(yōu)勢(shì)軟件安全測(cè)試是確保軟件系統(tǒng)安全性的關(guān)鍵過(guò)程,涉及對(duì)系統(tǒng)中潛在安全漏洞和弱點(diǎn)的持續(xù)檢測(cè)與評(píng)估。企業(yè)需定期利用專(zhuān)業(yè)的安全測(cè)試工具,如靜態(tài)分析、動(dòng)態(tài)分析、模糊測(cè)試、滲透測(cè)試和安全漏洞掃描等,來(lái)識(shí)別并修復(fù)安全漏洞,從而有效預(yù)防潛在的安全風(fēng)險(xiǎn)。正如圖3所示,模糊測(cè)試在軟件測(cè)試的各個(gè)階段以及發(fā)布與運(yùn)營(yíng)階段中都起著重要作用,不僅能發(fā)現(xiàn)已知漏洞,還能挖掘未知漏洞。圖3不同階段軟件安全測(cè)試工具的生命周期具體而言,在軟件安全測(cè)試領(lǐng)域,模糊測(cè)試與傳統(tǒng)的基于規(guī)則的測(cè)試技術(shù)有著顯著的差異,并展現(xiàn)出獨(dú)特的優(yōu)勢(shì)。以下將詳細(xì)闡述兩者之間的差異以及模糊測(cè)試的優(yōu)勢(shì)。模糊測(cè)試與傳統(tǒng)測(cè)試技術(shù)的差異本白皮書(shū)從測(cè)試方法、測(cè)試依賴(lài)性、測(cè)試覆蓋范圍、檢測(cè)能力和測(cè)試成本與資源五個(gè)方面,對(duì)比模糊測(cè)試與傳統(tǒng)測(cè)試技術(shù)的差異。測(cè)試方法傳統(tǒng)測(cè)試技術(shù):主要包括靜態(tài)分析與動(dòng)態(tài)分析,其中靜態(tài)分析不需要運(yùn)行程序,通過(guò)檢查代碼的靜態(tài)結(jié)構(gòu)(如語(yǔ)法和邏輯)來(lái)尋找潛在漏洞,這種方法存在嚴(yán)重的誤報(bào)干擾,依賴(lài)專(zhuān)家經(jīng)驗(yàn)進(jìn)行人工降噪,耗時(shí)費(fèi)力。動(dòng)態(tài)測(cè)試方法主要以黑盒測(cè)試為主,旨在在不查看內(nèi)部代碼的情況下測(cè)試軟件的外部功能。然而,這類(lèi)方法依賴(lài)已知的攻擊模式和漏洞庫(kù),主要集中識(shí)別已知的安全問(wèn)題,存在較多的漏報(bào)與局限性。模糊測(cè)試技術(shù):通過(guò)生成大量隨機(jī)或意外的輸入數(shù)據(jù),動(dòng)態(tài)地測(cè)試軟件系統(tǒng)。模糊測(cè)試的核心在于模擬攻擊者的行為,生成不可預(yù)測(cè)的輸入數(shù)據(jù),挑戰(zhàn)系統(tǒng)的穩(wěn)定性和安全性,以發(fā)現(xiàn)潛在的安全漏洞和弱點(diǎn)。與靜態(tài)分析不同,模糊測(cè)試在軟件運(yùn)行時(shí)進(jìn)行,能夠檢測(cè)到實(shí)際運(yùn)行時(shí)的缺陷和異常行為。測(cè)試依賴(lài)性傳統(tǒng)測(cè)試技術(shù):依賴(lài)已知的漏洞模式和預(yù)定義的規(guī)則,測(cè)試重點(diǎn)主要集中在已知的安全問(wèn)題和預(yù)定義的攻擊路徑。它們往往基于歷史數(shù)據(jù)和已知的攻擊模式進(jìn)行檢測(cè)。這種方法的有效性高度依賴(lài)于漏洞庫(kù)的完備性和規(guī)則的更新速度。模糊測(cè)試技術(shù):不依賴(lài)已知的漏洞模式,通過(guò)半隨機(jī)變異的輸入數(shù)據(jù)來(lái)全面覆蓋系統(tǒng)的各類(lèi)輸入情況。模糊測(cè)試能夠生成各種非預(yù)期輸入,測(cè)試系統(tǒng)在異常情況下的表現(xiàn),從而發(fā)現(xiàn)更多的已知、未知漏洞。其優(yōu)點(diǎn)在于能夠探索未被預(yù)見(jiàn)的輸入情況,識(shí)別出潛在的安全風(fēng)險(xiǎn)。測(cè)試覆蓋范圍傳統(tǒng)測(cè)試技術(shù):測(cè)試范圍有限,主要集中在已知的漏洞和預(yù)定義的測(cè)試場(chǎng)景。由于依賴(lài)于規(guī)則和模式,這些方法容易忽略未知的威脅和意外的輸入情況。測(cè)試的深度和廣度受限于規(guī)則和模式的設(shè)計(jì)質(zhì)量。模糊測(cè)試技術(shù):測(cè)試范圍廣泛,通過(guò)半隨機(jī)生成的輸入數(shù)據(jù),可以覆蓋更多的測(cè)試場(chǎng)景和潛在漏洞。模糊測(cè)試的輸入數(shù)據(jù)不受預(yù)定義規(guī)則的限制,可以探索系統(tǒng)的各種邊界情況和異常行為。這使得模糊測(cè)試能夠在更廣泛的輸入空間內(nèi)發(fā)現(xiàn)更多的潛在漏洞。檢測(cè)能力圖4不同技術(shù)漏洞檢測(cè)能力傳統(tǒng)測(cè)試技術(shù):傳統(tǒng)安全檢測(cè)技術(shù),如SAST和SCA在已知漏洞的檢測(cè)方面表現(xiàn)良好,但對(duì)未知漏洞的檢測(cè)能力較弱。由于依賴(lài)于預(yù)定義規(guī)則和模式,傳統(tǒng)測(cè)試方法難以識(shí)別未被記錄的新型攻擊手法和漏洞。對(duì)于復(fù)雜的、未被預(yù)見(jiàn)的輸入模式,傳統(tǒng)方法的有效性大打折扣。模糊測(cè)試技術(shù):在未知漏洞的發(fā)現(xiàn)方面具有顯著優(yōu)勢(shì),能夠發(fā)現(xiàn)傳統(tǒng)測(cè)試技術(shù)難以檢測(cè)到的潛在安全問(wèn)題。模糊測(cè)試通過(guò)隨機(jī)和變異輸入,能夠觸發(fā)系統(tǒng)中隱藏的漏洞和錯(cuò)誤。其動(dòng)態(tài)性使得它能夠在實(shí)際運(yùn)行環(huán)境中揭示出潛在的安全缺陷。測(cè)試成本與資源傳統(tǒng)測(cè)試技術(shù):需要投入大量的人力和時(shí)間進(jìn)行規(guī)則定義、漏洞庫(kù)維護(hù)以及測(cè)試執(zhí)行。這些方法的效果很大程度上依賴(lài)于測(cè)試人員的專(zhuān)業(yè)知識(shí)和經(jīng)驗(yàn),導(dǎo)致測(cè)試成本較高,效率較低。模糊測(cè)試技術(shù):能夠自動(dòng)生成測(cè)試用例并自動(dòng)執(zhí)行測(cè)試,大大降低了人力成本和時(shí)間投入。特別是在引入大語(yǔ)言模型和安全智能體技術(shù)后,模糊測(cè)試的自動(dòng)化水平和智能化程度顯著提升,進(jìn)一步降低了測(cè)試成本,提高了測(cè)試效率。模糊測(cè)試技術(shù)的核心優(yōu)勢(shì)相較于傳統(tǒng)的軟件檢測(cè)技術(shù)而言,模糊測(cè)試憑借其獨(dú)特的優(yōu)勢(shì),在不斷變化的安全挑戰(zhàn)中得以廣泛應(yīng)用,已成為現(xiàn)代軟件安全測(cè)試中不可或缺的一部分。其核心優(yōu)勢(shì)包括:高覆蓋率和測(cè)試效率現(xiàn)代模糊測(cè)試工具(如AFL)采用覆蓋率引導(dǎo)模糊測(cè)試方案,通過(guò)計(jì)算和跟蹤程序覆蓋率來(lái)指導(dǎo)測(cè)試過(guò)程,能全面探索未測(cè)試的代碼區(qū)域,顯著提升測(cè)試覆蓋率和效率。此外,模糊測(cè)試能夠覆蓋更多的測(cè)試場(chǎng)景和邊界條件,可以在更廣泛的輸入空間內(nèi)發(fā)現(xiàn)更多潛在漏洞,從而提供更全面的安全保障。動(dòng)態(tài)行為檢測(cè)能力模糊測(cè)試在運(yùn)行時(shí)生成并輸入隨機(jī)數(shù)據(jù),實(shí)時(shí)觀察軟件的動(dòng)態(tài)行為。這使得模糊測(cè)試能發(fā)現(xiàn)傳統(tǒng)靜態(tài)應(yīng)用測(cè)試工具(SAST)無(wú)法檢測(cè)到的深層問(wèn)題,并驗(yàn)證缺陷的可利用性。在實(shí)際運(yùn)行環(huán)境中測(cè)試,模糊測(cè)試能夠更準(zhǔn)確地評(píng)估軟件的安全性和穩(wěn)定性,確保軟件在各種使用場(chǎng)景下的可靠性。低誤報(bào)率模糊測(cè)試通過(guò)生成隨機(jī)或特制的輸入數(shù)據(jù)并執(zhí)行目標(biāo)程序,觀察程序的異常行為(如崩潰、內(nèi)存泄漏等),有效減少誤報(bào)。與依賴(lài)規(guī)則和模式的傳統(tǒng)測(cè)試方法不同,模糊測(cè)試基于程序的實(shí)際運(yùn)行行為發(fā)現(xiàn)問(wèn)題,因此檢測(cè)結(jié)果更真實(shí)可信。低誤報(bào)率不僅提高了檢測(cè)的準(zhǔn)確性,還減少了開(kāi)發(fā)團(tuán)隊(duì)在篩查和驗(yàn)證漏洞上的負(fù)擔(dān),節(jié)省大量時(shí)間和資源。發(fā)現(xiàn)未知漏洞模糊測(cè)試不依賴(lài)已知漏洞模式和特征,能發(fā)現(xiàn)傳統(tǒng)測(cè)試方法無(wú)法檢測(cè)到的未知漏洞,特別是0day漏洞。通過(guò)不斷變換輸入數(shù)據(jù),模糊測(cè)試揭示程序在各種非預(yù)期輸入下的表現(xiàn),挖掘出潛在的安全漏洞。這說(shuō)明模糊測(cè)試在面對(duì)新型和未知威脅時(shí)表現(xiàn)出色,可以顯著增強(qiáng)軟件安全性。適應(yīng)復(fù)雜系統(tǒng)模糊測(cè)試在應(yīng)對(duì)復(fù)雜軟件系統(tǒng)和多樣化輸入方面表現(xiàn)優(yōu)異,能夠適應(yīng)各種不同的應(yīng)用場(chǎng)景和測(cè)試需求,包括但不限于傳統(tǒng)軟件、嵌入式系統(tǒng)及現(xiàn)代分布式應(yīng)用。這種靈活性和適應(yīng)性使模糊測(cè)試成為應(yīng)對(duì)復(fù)雜系統(tǒng)安全挑戰(zhàn)的理想工具。自動(dòng)化與智能化隨著生成式人工智能技術(shù)的飛速發(fā)展,模糊測(cè)試與大語(yǔ)言模型的結(jié)合進(jìn)一步提升了測(cè)試的智能化水平。模糊測(cè)試智能體方案通過(guò)結(jié)合語(yǔ)義理解和語(yǔ)法分析能力,能夠深度感知被測(cè)程序結(jié)構(gòu),實(shí)現(xiàn)自動(dòng)化測(cè)試驅(qū)動(dòng)生成和自主調(diào)度,全面覆蓋潛在漏洞。此外,智能體還能進(jìn)行成因分析和自動(dòng)化漏洞修復(fù),顯著提升了漏洞修復(fù)的效率。自動(dòng)化與智能化的結(jié)合不僅提高了測(cè)試的精確性和效率,還使得模糊測(cè)試能夠持續(xù)進(jìn)化,適應(yīng)不斷變化的安全威脅。二、模糊測(cè)試技術(shù)解析模糊測(cè)試技術(shù)作為提升軟件安全性和穩(wěn)定性的關(guān)鍵手段,已成為現(xiàn)代軟件開(kāi)發(fā)和測(cè)試流程中不可或缺的一部分。本章將深入探討模糊測(cè)試的基本原理、分類(lèi)方法、核心技術(shù)及其前沿研究熱點(diǎn)。首先,介紹模糊測(cè)試的技術(shù)原理,闡述其工作機(jī)制和基礎(chǔ)理論。其次,分析模糊測(cè)試的不同分類(lèi),明確各自特點(diǎn)和適用場(chǎng)景。此外,本章節(jié)也將重點(diǎn)講解模糊測(cè)試的關(guān)鍵技術(shù),包括預(yù)處理、測(cè)試用例生成、調(diào)度優(yōu)化、測(cè)試去重和優(yōu)先級(jí)策略以及缺陷檢測(cè)技術(shù),這些技術(shù)對(duì)于提高模糊測(cè)試效率和覆蓋率至關(guān)重要。最后,探討模糊測(cè)試的前沿研究,包括大模型驅(qū)動(dòng)的智能測(cè)試生成、種子變異、優(yōu)化技術(shù)以及代碼修復(fù)生成技術(shù),以全面了解當(dāng)前技術(shù)現(xiàn)狀和未來(lái)研究方向。模糊測(cè)試的技術(shù)原理模糊測(cè)試技術(shù)的原理是向軟件系統(tǒng)輸入大量隨機(jī)或半隨機(jī)生成的數(shù)據(jù),以觸發(fā)潛在的錯(cuò)誤、漏洞或異常行為。主要架構(gòu)由五個(gè)核心模塊組成(如圖5所示),每個(gè)模塊承擔(dān)著不同的功能和責(zé)任,共同確保模糊測(cè)試的有效性和高效性:圖5模糊測(cè)試技術(shù)架構(gòu)五大核心模塊預(yù)處理模塊負(fù)責(zé)對(duì)待測(cè)試的軟件系統(tǒng)進(jìn)行初步分析和準(zhǔn)備工作,以確保系統(tǒng)能夠接受和處理后續(xù)的測(cè)試輸入。該模塊通常會(huì)對(duì)目標(biāo)程序進(jìn)行靜態(tài)分析,識(shí)別程序的入口點(diǎn)、關(guān)鍵函數(shù)和潛在的攻擊面,為后續(xù)的模糊測(cè)試奠定基礎(chǔ)。預(yù)處理模塊還可能執(zhí)行一些初步的輸入驗(yàn)證和格式轉(zhuǎn)換工作,以確保輸入數(shù)據(jù)的格式符合目標(biāo)程序的預(yù)期。測(cè)試用例生成模塊這是模糊測(cè)試的核心組件之一,主要職責(zé)是根據(jù)程序監(jiān)控模塊反饋的信息生成大量的測(cè)試用例。通過(guò)分析程序執(zhí)行過(guò)程中的路徑信息、崩潰數(shù)據(jù)等,該模塊能夠智能化地調(diào)整和優(yōu)化測(cè)試用例的生成,以發(fā)現(xiàn)更多潛在的漏洞和問(wèn)題。例如,現(xiàn)代模糊測(cè)試工具如AFL利用覆蓋引導(dǎo)模糊測(cè)試方案,通過(guò)實(shí)時(shí)計(jì)算和跟蹤程序覆蓋率來(lái)指導(dǎo)測(cè)試用例生成,確保測(cè)試全面覆蓋未被測(cè)試的代碼區(qū)域。測(cè)試調(diào)度模塊在測(cè)試用例生成完畢后,負(fù)責(zé)調(diào)用目標(biāo)程序并將測(cè)試用例輸入執(zhí)行。該模塊是模糊測(cè)試的執(zhí)行者,確保每個(gè)測(cè)試用例都能準(zhǔn)確送達(dá)并執(zhí)行。測(cè)試調(diào)度模塊還需處理測(cè)試執(zhí)行過(guò)程中的各種異常情況,如程序崩潰、超時(shí)等,確保測(cè)試過(guò)程的連續(xù)性和完整性。此外,該模塊還可能記錄測(cè)試用例的執(zhí)行時(shí)間、資源消耗等信息,為后續(xù)分析提供數(shù)據(jù)支持。檢測(cè)與評(píng)估模塊在測(cè)試用例執(zhí)行的同時(shí),負(fù)責(zé)實(shí)時(shí)監(jiān)控目標(biāo)程序的動(dòng)態(tài)行為,包括種子的執(zhí)行路徑信息、程序狀態(tài)變化等。該模塊將收集到的信息反饋給測(cè)試用例生成模塊,以指導(dǎo)后續(xù)測(cè)試用例生成,確保測(cè)試過(guò)程具有動(dòng)態(tài)適應(yīng)性。如果在執(zhí)行過(guò)程中發(fā)生程序崩潰,該模塊會(huì)記錄崩潰現(xiàn)場(chǎng)的詳細(xì)信息,包括中斷信息、輸入信息、內(nèi)存狀態(tài)以及寄存器和堆棧信息,并將這些信息傳遞給崩潰分析模塊。通過(guò)這種實(shí)時(shí)監(jiān)控和反饋機(jī)制,檢測(cè)與評(píng)估模塊能夠有效評(píng)估程序的運(yùn)行狀態(tài)和安全性。缺陷分析與優(yōu)化模塊負(fù)責(zé)接收程序監(jiān)控模塊傳遞的程序崩潰信息,并基于崩潰現(xiàn)場(chǎng)的內(nèi)存地址、寄存器、堆棧信息等進(jìn)行深入分析。該模塊通過(guò)分析崩潰原因,判斷崩潰的可利用性,以確定是否存在潛在的安全風(fēng)險(xiǎn)。例如,如果崩潰是由于緩沖區(qū)溢出或內(nèi)存泄漏等典型的安全漏洞引起的,崩潰分析模塊將評(píng)估其對(duì)系統(tǒng)安全的影響,并提供修復(fù)建議。崩潰分析模塊還能生成詳細(xì)的漏洞報(bào)告,幫助開(kāi)發(fā)團(tuán)隊(duì)理解問(wèn)題根源,制定有效的修復(fù)方案。在實(shí)際的模糊測(cè)試工作中,整個(gè)流程可以被細(xì)分為圖6中的關(guān)鍵步驟,以確保測(cè)試的全面性和效率:圖6模糊測(cè)試工作流程步驟一:識(shí)別目標(biāo)系統(tǒng)。首先,明確被測(cè)對(duì)象并詳細(xì)了解其類(lèi)型。這包括確認(rèn)目標(biāo)是客戶(hù)端還是服務(wù)端程序,識(shí)別其為二進(jìn)制可執(zhí)行文件還是源代碼,以及查閱是否存在已知的漏洞記錄。獲取這些信息對(duì)于制定精確的測(cè)試計(jì)劃至關(guān)重要,因?yàn)樗鼈儧Q定了測(cè)試的方向和深度。步驟二:識(shí)別輸入。大多數(shù)安全漏洞都是由于應(yīng)用程序未能有效校驗(yàn)或處理用戶(hù)輸入而產(chǎn)生的。成功進(jìn)行模糊測(cè)試的關(guān)鍵在于識(shí)別所有可能的輸入向量。這些向量可能包括應(yīng)用程序接受的頭部信息、文件名、環(huán)境變量、注冊(cè)表鍵等。全面的輸入識(shí)別有助于發(fā)現(xiàn)潛在的安全隱患,確保測(cè)試的覆蓋充分。步驟三:生成模糊數(shù)據(jù)。在識(shí)別輸入向量之后,應(yīng)根據(jù)測(cè)試對(duì)象的具體特性,制定出模糊測(cè)試數(shù)據(jù)的生成策略。這些測(cè)試數(shù)據(jù)可以是基于現(xiàn)有數(shù)據(jù)的變種,也可以是程序運(yùn)行時(shí)生成的臨時(shí)數(shù)據(jù)。生成多樣化的測(cè)試用例有助于揭示應(yīng)用程序在不同輸入條件下的行為,從而發(fā)現(xiàn)隱藏的漏洞。步驟四:使用模糊數(shù)據(jù)執(zhí)行測(cè)試。執(zhí)行測(cè)試時(shí),操作可能包括向應(yīng)用程序發(fā)送數(shù)據(jù)包、打開(kāi)文件或啟動(dòng)進(jìn)程等。在模糊測(cè)試中,自動(dòng)化這一過(guò)程至關(guān)重要。通過(guò)自動(dòng)化工具,可以大規(guī)模地生成和執(zhí)行測(cè)試用例,從而提高測(cè)試效率和覆蓋率。如果缺少自動(dòng)化,測(cè)試過(guò)程將無(wú)法有效進(jìn)行,容易遺漏潛在的安全問(wèn)題。步驟五:監(jiān)控系統(tǒng)行為。在模糊測(cè)試過(guò)程中,實(shí)時(shí)監(jiān)控系統(tǒng)行為是必不可少的。這有助于及時(shí)發(fā)現(xiàn)任何故障或異常。若缺少有效的異常監(jiān)控,程序的異常崩潰可能會(huì)被測(cè)試人員忽略,導(dǎo)致無(wú)法確定引發(fā)異常的具體測(cè)試用例。通常,監(jiān)控過(guò)程是自動(dòng)化的,以應(yīng)對(duì)大量測(cè)試用例所帶來(lái)的高負(fù)荷。常見(jiàn)的異常監(jiān)控方法包括基于調(diào)試和插樁技術(shù):基于調(diào)試的異常監(jiān)控機(jī)制:這種方法通過(guò)在調(diào)試模式下運(yùn)行目標(biāo)軟件,并使用操作系統(tǒng)提供的調(diào)試API開(kāi)發(fā)專(zhuān)用的異常監(jiān)測(cè)模塊。盡管實(shí)現(xiàn)較為復(fù)雜,但其能夠高效地檢測(cè)到異常情況?;诓鍢兜漠惓1O(jiān)控機(jī)制:插樁技術(shù)[18]通過(guò)向程序內(nèi)添加額外代碼(探針)來(lái)收集運(yùn)行時(shí)信息,例如方法調(diào)用、參數(shù)值和返回值。這些信息有助于捕獲程序執(zhí)行的動(dòng)態(tài)上下文。插樁可以是靜態(tài)的(在源代碼、中間碼或二進(jìn)制代碼中插入)或動(dòng)態(tài)的(在二進(jìn)制執(zhí)行文件中插入)。步驟六:記錄缺陷,確定可利用性。在模糊測(cè)試中發(fā)現(xiàn)潛在故障后,接下來(lái)的步驟是驗(yàn)證這些故障是否能夠穩(wěn)定復(fù)現(xiàn)。通常通過(guò)重放檢測(cè)實(shí)現(xiàn),即利用數(shù)據(jù)包重放工具來(lái)重現(xiàn)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包。如果能夠成功復(fù)現(xiàn)故障,則需要進(jìn)一步評(píng)估該缺陷的可利用性,即判斷其是否能夠被惡意利用。通過(guò)上述一系列步驟,模糊測(cè)試不僅能夠揭示潛在的安全問(wèn)題,還能評(píng)估這些問(wèn)題對(duì)系統(tǒng)安全的具體影響。這樣發(fā)現(xiàn)的漏洞可以轉(zhuǎn)化為明確且可實(shí)施的安全增強(qiáng)措施,從而提高系統(tǒng)的整體安全性。模糊測(cè)試的分類(lèi)7所示,根據(jù)測(cè)試者對(duì)被測(cè)軟件內(nèi)部結(jié)構(gòu)的了解程度和訪問(wèn)權(quán)限的差異,模糊測(cè)試可分為黑盒、白盒和灰盒模糊測(cè)試。黑盒模糊測(cè)試

圖7模糊測(cè)試的分類(lèi)黑盒模糊測(cè)試是最基礎(chǔ)和傳統(tǒng)的模糊測(cè)試形式。其核心特點(diǎn)是測(cè)試者對(duì)軟件的內(nèi)部工作原理幾乎一無(wú)所知。測(cè)試完全基于對(duì)軟件外在行為的觀察,無(wú)需訪問(wèn)源代碼或了解其內(nèi)部結(jié)構(gòu)。測(cè)試者通過(guò)向軟件輸入異?;螂S機(jī)數(shù)據(jù),觀察其反應(yīng),從而識(shí)別潛在的漏洞和缺陷。黑盒測(cè)試的優(yōu)勢(shì)在于其簡(jiǎn)單性和直接性,能夠迅速對(duì)軟件進(jìn)行廣泛的測(cè)試覆蓋。然而,由于對(duì)內(nèi)部邏輯的了解有限,這種方法可能無(wú)法探測(cè)到更深層次的復(fù)雜安全問(wèn)題。因此,黑盒測(cè)試適用于初步安全評(píng)估和快速檢測(cè)明顯的漏洞。白盒模糊測(cè)試白盒模糊測(cè)試與黑盒測(cè)試相反,測(cè)試者可以完全訪問(wèn)軟件的內(nèi)部邏輯和源代碼。這種測(cè)試方法依賴(lài)于詳細(xì)的應(yīng)用程序分析技術(shù),如靜態(tài)代碼分析和動(dòng)態(tài)執(zhí)行跟蹤,能夠深入探測(cè)軟件的內(nèi)部行為。白盒測(cè)試能夠系統(tǒng)地識(shí)別由特定代碼路徑觸發(fā)的漏洞,提供更高的測(cè)試覆蓋率和深入的安全評(píng)估。然而,這種方法對(duì)測(cè)試者的專(zhuān)業(yè)知識(shí)要求較高,同時(shí)也需要較大的資源投入。白盒模糊測(cè)試特別適合于需要深入了解和評(píng)估軟件安全性的場(chǎng)景,如關(guān)鍵基礎(chǔ)設(shè)施的軟件評(píng)估和高安全性要求的應(yīng)用程序測(cè)試?;液心:郎y(cè)試灰盒模糊測(cè)試結(jié)合了黑盒和白盒測(cè)試的優(yōu)勢(shì),提供了一種平衡的方法。測(cè)試者對(duì)軟件的內(nèi)部信息有一定了解,但無(wú)需完全訪問(wèn)源代碼?;液袦y(cè)試通常依賴(lài)于對(duì)部分代碼結(jié)構(gòu)的知識(shí),如通過(guò)程序插樁收集運(yùn)行時(shí)的反饋信息,以指導(dǎo)測(cè)試用例的生成和調(diào)整。這種方法既保持了黑盒測(cè)試的靈活性和快速性,又通過(guò)有限的內(nèi)部視角提升了測(cè)試的效率和有效性。灰盒模糊測(cè)試適用于需要在有限資源和時(shí)間內(nèi)進(jìn)行有效安全評(píng)估的場(chǎng)景,是在實(shí)際應(yīng)用中常用的一種方法。模糊測(cè)試作為一種重要的安全測(cè)試方法,通過(guò)不同的方式(黑盒、白盒、灰盒)為軟件安全性提供了不同層次的保護(hù)。每種測(cè)試方法都有其獨(dú)特的優(yōu)勢(shì)和適用場(chǎng)景。在實(shí)際應(yīng)用中,選擇適當(dāng)?shù)哪:郎y(cè)試方法,結(jié)合具體的需求和資源,能夠最大化測(cè)試效率和安全評(píng)估的覆蓋范圍。通過(guò)綜合運(yùn)用這些方法,能夠更好地識(shí)別和修復(fù)軟件中的潛在安全漏洞,提升軟件的整體安全性和可靠性。模糊測(cè)試的關(guān)鍵技術(shù)模糊測(cè)試是一種有效的自動(dòng)化測(cè)試技術(shù),其通過(guò)生成大量隨機(jī)或意外的輸入數(shù)據(jù),來(lái)發(fā)現(xiàn)軟件系統(tǒng)中的潛在漏洞和弱點(diǎn)。為了實(shí)現(xiàn)這一目標(biāo),模糊測(cè)試依賴(lài)于多種關(guān)鍵技術(shù),這些技術(shù)不僅提高了測(cè)試的效率和覆蓋率,還增強(qiáng)了對(duì)復(fù)雜系統(tǒng)和未知漏洞的檢測(cè)能力。以下是模糊測(cè)試的主要關(guān)鍵技術(shù):圖8模糊測(cè)試不同階段關(guān)鍵技術(shù)預(yù)處理技術(shù)在開(kāi)始模糊測(cè)試流程之前,許多模糊測(cè)試工具需要執(zhí)行一系列預(yù)處理步驟。這些步驟主要涉及對(duì)目標(biāo)程序的插樁,目的是去除潛在的冗余配置,優(yōu)化種子集,并創(chuàng)建能有效觸發(fā)應(yīng)用程序的測(cè)試案例。此外,預(yù)處理階段還包括為接下來(lái)的輸入生成(即輸入生成階段)做好準(zhǔn)備,建立必要的模型。本文將詳細(xì)探討以下四種核心的預(yù)處理技術(shù):程序插樁技術(shù)程序插樁技術(shù)可以分為靜態(tài)插樁和動(dòng)態(tài)插樁兩種類(lèi)型。靜態(tài)插樁在程序運(yùn)行前的預(yù)處理階段進(jìn)行,通常作用于源代碼或中間代碼,并在編譯時(shí)完成。這種方式的優(yōu)勢(shì)在于,處理是在運(yùn)行前完成的,因此運(yùn)行時(shí)的開(kāi)銷(xiāo)相對(duì)較低。如果程序依賴(lài)庫(kù)文件,這些庫(kù)也需要進(jìn)行插樁,通常是通過(guò)使用相同技術(shù)重新編譯實(shí)現(xiàn)的。除了源代碼,也有針對(duì)二進(jìn)制代碼的靜態(tài)插樁工具。相比之下,動(dòng)態(tài)插樁雖然在運(yùn)行時(shí)開(kāi)銷(xiāo)更大,但它可以在程序運(yùn)行時(shí)方便地對(duì)動(dòng)態(tài)鏈接庫(kù)進(jìn)行插樁。當(dāng)前,有多種著名的動(dòng)態(tài)插樁工具,如Dynns[]、DynoO[]、Pi[]、Vlgin[]和E[]。模糊測(cè)試工具可能支持一種或多種插樁技術(shù)。例如,AFL既可以在源代碼級(jí)別通過(guò)修改編譯器實(shí)現(xiàn)靜態(tài)插樁,也可以利用QEMU在二進(jìn)制級(jí)別進(jìn)行動(dòng)態(tài)插樁。在采用動(dòng)態(tài)插樁時(shí),AFL可執(zhí)行代碼進(jìn)行插樁;二是通過(guò)啟用AFL_NT_LBS選項(xiàng),對(duì)目標(biāo)程序及其所有外部庫(kù)代碼進(jìn)行插樁。后者雖然能增加代碼的覆蓋范圍,但也可能擴(kuò)大AFL的測(cè)試范圍。通過(guò)這些方式,可以收集包括程序的抽象語(yǔ)法樹(shù)(AST)[]、程序調(diào)用圖(CG)[15]和控制流圖(CFG)[16]在內(nèi)的各種執(zhí)行信息。插樁技術(shù)能夠詳細(xì)跟蹤程序的執(zhí)行路徑和覆蓋范圍,從而極大地提升測(cè)試的效果和效率。種子選擇技術(shù)種子選擇技術(shù)在提升模糊測(cè)試效率中扮演著至關(guān)重要的角色。在每輪測(cè)試開(kāi)始時(shí),從種子池中選擇合適的種子進(jìn)行變異是一個(gè)關(guān)鍵步驟。通過(guò)有效的種子選擇策略,可以挑選出高質(zhì)量的種子作為初始測(cè)試用例,從而全面探索程序的各個(gè)部分。高效的種子選擇策略不僅能顯著提高代碼覆蓋率,還能增加發(fā)現(xiàn)潛在漏洞的機(jī)會(huì)。為了解決這一問(wèn)題,研究人員開(kāi)發(fā)了多種方法和工具。一個(gè)常用的策略是尋找能最大化特定覆蓋度量如節(jié)點(diǎn)覆蓋率)的最小化種子集合,這個(gè)過(guò)程被稱(chēng)為計(jì)算inse。例如,如果一個(gè)種子集合Cs1s2,它們覆蓋了不同的程序地址。如果s3s1s2用s3理論得到了米勒研究的支持,該研究表明,代碼覆蓋率每提高1%,漏洞發(fā)現(xiàn)率就會(huì)增加09。此外,這種策略還可以作為測(cè)試過(guò)程中的一個(gè)反饋更新機(jī)制,特別適合那些可以持續(xù)添加新種子的模糊測(cè)試工具。在實(shí)際應(yīng)用中,模糊測(cè)試工具采用了多種覆蓋度量標(biāo)準(zhǔn)。例如,AFLminset,并使用對(duì)數(shù)計(jì)數(shù)器來(lái)區(qū)分不同的分支。而Honggfuzz[17]則通過(guò)執(zhí)行指令數(shù)、分支數(shù)和獨(dú)立基本塊數(shù)來(lái)衡量覆蓋率,這使得測(cè)試器可以將執(zhí)行時(shí)間較長(zhǎng)的路徑考慮進(jìn)minset,有助于發(fā)現(xiàn)服務(wù)拒絕或性能相關(guān)的問(wèn)題。種子修剪技術(shù)在模糊測(cè)試過(guò)程中,種子修剪技術(shù)被廣泛應(yīng)用,以?xún)?yōu)化內(nèi)存使用效率并提高測(cè)試吞吐量。種子修剪指的是在保持種子覆蓋率不變的前提下,通過(guò)減少種子大小來(lái)提升測(cè)試效率。這個(gè)過(guò)程通常在主模糊測(cè)試循環(huán)之前或作為更新過(guò)程的一部分進(jìn)行。AFL是一個(gè)著名的模糊測(cè)試工具,它應(yīng)用種子修剪技術(shù),通過(guò)迭代使用與代碼覆蓋率相關(guān)的工具來(lái)修剪種子,確保修剪后的種子保持相同的覆蓋范圍。研究者Rebert等人的研究進(jìn)一步證實(shí)了種子修剪的有效性。他們發(fā)現(xiàn),使用最小尺寸算法選出的小種子,比隨機(jī)選取的種子更有效地降低了唯一錯(cuò)誤的發(fā)生率。特別是在針對(duì)Lix系統(tǒng)調(diào)用處理程序的模糊測(cè)試中,oonhine工具對(duì)syzlle[]進(jìn)行了擴(kuò)展,在保持靜態(tài)分析識(shí)別出的調(diào)用依賴(lài)性的同時(shí),減少種子文件的大小。通過(guò)這種優(yōu)化,模糊測(cè)試工具可以更高效地利用內(nèi)存并提高測(cè)試吞吐量,從而更快地發(fā)現(xiàn)潛在漏洞。驅(qū)動(dòng)程序技術(shù)當(dāng)直接對(duì)目標(biāo)應(yīng)用進(jìn)行模糊測(cè)試遇到障礙時(shí),開(kāi)發(fā)專(zhuān)用的驅(qū)動(dòng)程序(harness[54])成為一種行之有效的策略。這種方法通常在模糊測(cè)試的初期階段手動(dòng)執(zhí)行,并且只需進(jìn)行一次。例如,在對(duì)庫(kù)文件進(jìn)行模糊測(cè)試時(shí),需要設(shè)計(jì)專(zhuān)用的驅(qū)動(dòng)程序來(lái)調(diào)用庫(kù)中的函數(shù)。類(lèi)似地,為了測(cè)試內(nèi)核,內(nèi)核模糊測(cè)試工具可能會(huì)通過(guò)模糊測(cè)試特定的用戶(hù)級(jí)應(yīng)用程序,間接實(shí)現(xiàn)對(duì)內(nèi)核的測(cè)試。通過(guò)這些專(zhuān)用驅(qū)動(dòng)程序,可以更精準(zhǔn)地控制測(cè)試范圍和細(xì)節(jié),確保測(cè)試的覆蓋率和深度。通過(guò)采用上述預(yù)處理技術(shù),可以大幅提升模糊測(cè)試的覆蓋范圍和效率,從而更有效地發(fā)現(xiàn)程序中的潛在漏洞。測(cè)試用例生成技術(shù)生成測(cè)試用例是模糊測(cè)試過(guò)程中一個(gè)關(guān)鍵環(huán)節(jié),它直接決定了測(cè)試的有效性以及是否能夠成功發(fā)現(xiàn)缺陷?;谀0娴纳刹呗酝ㄟ^(guò)根據(jù)程序輸入的預(yù)期格式生成各種合法和非法的輸入數(shù)據(jù)來(lái)發(fā)現(xiàn)程序中的漏洞和錯(cuò)誤。在這種測(cè)試中,測(cè)試數(shù)據(jù)是通過(guò)分析目標(biāo)軟件的輸入格式并創(chuàng)建符合該格式的輸入數(shù)據(jù)生成的。這些數(shù)據(jù)通常通過(guò)一些規(guī)則、模式或生成器生成,以確保覆蓋各種邊界情況和輸入組合?;谏傻哪:郎y(cè)試的核心思想是生成具有高度多樣性的輸入,以盡可能地探索程序可能存在的漏洞?;谧儺惖纳刹呗酝ㄟ^(guò)修改現(xiàn)有的有效輸入數(shù)據(jù)來(lái)生成大量的測(cè)試用例,以發(fā)現(xiàn)程序中的漏洞和錯(cuò)誤。在這種測(cè)試中,測(cè)試數(shù)據(jù)通常來(lái)自于真實(shí)的應(yīng)用場(chǎng)景或以前的測(cè)試用例,然后通過(guò)隨機(jī)或有目的地修改它們來(lái)創(chuàng)建新的輸入。這些修改可以包括添加、刪除、替換或重新排序數(shù)據(jù)的部分,以及對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的變換或擾動(dòng)?;谧儺惖哪:郎y(cè)試的關(guān)鍵思想是通過(guò)對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行變異來(lái)盡可能地覆蓋程序的不同執(zhí)行路徑,以發(fā)現(xiàn)潛在的漏洞和異常行為?;诎缀械纳刹呗曰诎缀械哪:郎y(cè)試是一種依賴(lài)對(duì)程序內(nèi)部結(jié)構(gòu)深入了解的軟件測(cè)試策略,旨在生成針對(duì)性更強(qiáng)、覆蓋更廣的測(cè)試用例。在白盒模糊測(cè)試領(lǐng)域,有三種先進(jìn)技術(shù)特別值得關(guān)注:動(dòng)態(tài)符號(hào)執(zhí)行[](ConolicTestng):動(dòng)態(tài)符號(hào)執(zhí)行結(jié)合了傳統(tǒng)符號(hào)執(zhí)行與具體執(zhí)行的優(yōu)勢(shì)。該技術(shù)通過(guò)符號(hào)值運(yùn)行程序,并為每個(gè)條件分支建立路徑公式,然后利用ST(StisfbiityodloTheoresSover)求解器檢查路徑公式的滿(mǎn)足情況,從而生成具體的輸入值。動(dòng)態(tài)符號(hào)執(zhí)行的優(yōu)點(diǎn)在于降低了符號(hào)約束的復(fù)雜度并提高了路徑覆蓋率。然而,由于需要對(duì)程序指令進(jìn)行細(xì)致分析,其執(zhí)行速度較慢。為提高效率,常用策略包括縮小分析范圍和結(jié)合灰盒模糊測(cè)試技術(shù)。引導(dǎo)模糊測(cè)試[](GiddFzzng):引導(dǎo)模糊測(cè)試結(jié)合了程序分析技術(shù)(無(wú)論是靜態(tài)還是動(dòng)態(tài))與模糊測(cè)試,以增強(qiáng)測(cè)試用例的生成效能。該方法首先對(duì)程序進(jìn)行分析,捕獲關(guān)鍵信息,然后基于這些信息生成更有針對(duì)性的測(cè)試用例,從而提高測(cè)試的效率和效果。待測(cè)程序變異與校驗(yàn)繞過(guò)技術(shù):待測(cè)程序變異與校驗(yàn)繞過(guò)模糊測(cè)試的主要挑戰(zhàn)是如何繞過(guò)程序內(nèi)置的校驗(yàn)和驗(yàn)證機(jī)制,這些機(jī)制通常在輸入數(shù)據(jù)處理前執(zhí)行,導(dǎo)致一些測(cè)試用例因不滿(mǎn)足特定條件而被提前排除,限制了模糊測(cè)試的漏洞探索范圍。以下三種技術(shù)通過(guò)智能變異有效繞過(guò)內(nèi)置檢查機(jī)制,提升測(cè)試用例生成效率和漏洞發(fā)現(xiàn)能力。Tintco[]的“校驗(yàn)和感知模糊測(cè)試”利用污點(diǎn)分析技術(shù),識(shí)別并修改校驗(yàn)和計(jì)算指令,以繞過(guò)驗(yàn)證,使修改后的測(cè)試用例被程序接受。若程序崩潰,Tintcoe生成匹配正確校驗(yàn)和的測(cè)試用例,為未修改程序生成有效數(shù)據(jù)。Cblero等提出的“拼接動(dòng)態(tài)符號(hào)執(zhí)行”技術(shù),生成能繞過(guò)校驗(yàn)和驗(yàn)證的測(cè)試用例,提升模糊測(cè)試的有效性和覆蓋范圍。TFuzz在灰盒模糊測(cè)試中標(biāo)識(shí)非關(guān)鍵檢查(NCC)分支,即那些可以修改而不影響程序主邏輯的條件分支。當(dāng)發(fā)現(xiàn)新路徑停滯時(shí),TFuzz修改一個(gè)NCC并重新進(jìn)行模糊測(cè)試。如修改后的程序版本發(fā)現(xiàn)崩潰,TFuzz以驗(yàn)證其有效性。調(diào)度優(yōu)化策略在模糊測(cè)試中,調(diào)度優(yōu)化策略負(fù)責(zé)選擇下一輪迭代的配置。其目標(biāo)是基于現(xiàn)有信息,如發(fā)現(xiàn)更多獨(dú)特漏洞或更全面地覆蓋輸入集合。調(diào)度算法需要在探索(收集更多信息以指導(dǎo)未來(lái)決策)和利用(使用當(dāng)前最有效的配置進(jìn)行測(cè)試)之間取得平衡,這一過(guò)程也被稱(chēng)為模糊配置調(diào)度問(wèn)題[](FzzConfirtionSheling,FC。黑盒模糊測(cè)試的調(diào)度優(yōu)化策略黑盒模糊測(cè)試的調(diào)度優(yōu)化策略[22]通過(guò)分析測(cè)試結(jié)果(如發(fā)現(xiàn)的崩潰和錯(cuò)誤數(shù)量及測(cè)試耗時(shí))來(lái)提高測(cè)試效率和效果。首先,記錄和分析每次測(cè)試中發(fā)現(xiàn)的崩潰和錯(cuò)誤數(shù)量,以?xún)?yōu)化輸入生成策略。其次,通過(guò)分析測(cè)試耗時(shí),識(shí)別出耗時(shí)較短但漏洞發(fā)現(xiàn)效果顯著的輸入配置,優(yōu)先選擇這些配置進(jìn)行測(cè)試。為了增加發(fā)現(xiàn)漏洞的可能性,調(diào)度算法需要確保輸入多樣性。通過(guò)變異和交叉操作,生成更多不同類(lèi)型的輸入,覆蓋更廣泛的輸入空間。反饋機(jī)制可以根據(jù)每輪測(cè)試結(jié)果動(dòng)態(tài)調(diào)整輸入生成策略,例如增加表現(xiàn)突出的輸入類(lèi)型的生成頻率。通過(guò)這些優(yōu)化策略,黑盒模糊測(cè)試可以更高效地發(fā)現(xiàn)程序中的崩潰和漏洞,提高軟件質(zhì)量和安全性?;液心:郎y(cè)試的調(diào)度優(yōu)化策略灰盒模糊測(cè)試的調(diào)度優(yōu)化策略[24]通過(guò)利用代碼覆蓋率等信息來(lái)優(yōu)化測(cè)試。AFL通過(guò)遺傳進(jìn)化算法(EA)領(lǐng)先于該領(lǐng)域。EA維護(hù)配置種群及其適應(yīng)度值,通過(guò)變異和重組產(chǎn)生更優(yōu)配置。其核心包括確定配置適應(yīng)度、配置選擇方法和應(yīng)用方式。AFL優(yōu)先使用涉及控制流邊緣且快速小巧的“fvorie”配置。B?he等研究者改進(jìn)了AFL,創(chuàng)造了AFLst。AFLst[]引入兩個(gè)新標(biāo)準(zhǔn):偏好選擇遍歷次數(shù)少的控制流邊緣和執(zhí)行次數(shù)少的路徑,并通過(guò)優(yōu)先級(jí)改進(jìn)配置選擇機(jī)制。AFLFast提升了模糊測(cè)試效率??傊?,灰盒模糊測(cè)試通過(guò)結(jié)合代碼覆蓋率和進(jìn)化算法,顯著提升了測(cè)試效果和效率。智能選擇高潛力配置和改進(jìn)的調(diào)度策略,使其更高效地發(fā)現(xiàn)軟件漏洞和錯(cuò)誤,提高軟件質(zhì)量和安全性。白盒模糊測(cè)試的調(diào)度優(yōu)化策略白盒模糊測(cè)試的調(diào)度優(yōu)化策略[25]利用程序的內(nèi)部信息,如源代碼、數(shù)據(jù)流和控制流信息,來(lái)指導(dǎo)模糊測(cè)試過(guò)程。其優(yōu)化包括基于符號(hào)執(zhí)行技術(shù)生成路徑約束條件,以探索更多未覆蓋路徑;根據(jù)路徑重要性和復(fù)雜度進(jìn)行優(yōu)先級(jí)排序,優(yōu)先測(cè)試復(fù)雜路徑以提高漏洞發(fā)現(xiàn)率;結(jié)合靜態(tài)和動(dòng)態(tài)分析信息,優(yōu)化種子調(diào)度和輸入生成;以及采用分布式調(diào)度策略,將測(cè)試任務(wù)分配到多個(gè)節(jié)點(diǎn)并行執(zhí)行,顯著提升測(cè)試效率和覆蓋率。通過(guò)這些方法,白盒模糊測(cè)試能更高效地發(fā)現(xiàn)軟件漏洞和錯(cuò)誤,提高軟件質(zhì)量和安全性。缺陷檢測(cè)技術(shù)在模糊測(cè)試過(guò)程中,缺陷檢測(cè)技術(shù)是確保軟件安全性的重要手段。以下是幾種常見(jiàn)的缺陷檢測(cè)技術(shù)及其應(yīng)用。內(nèi)存錯(cuò)誤檢測(cè)工具內(nèi)存錯(cuò)誤檢測(cè)工具主要針對(duì)兩類(lèi)安全問(wèn)題:空間錯(cuò)誤和時(shí)間錯(cuò)誤??臻g錯(cuò)誤包括緩沖區(qū)溢出或下溢,發(fā)生在指針解引用越出其目標(biāo)對(duì)象邊界時(shí)。時(shí)間錯(cuò)誤則發(fā)生在對(duì)象銷(xiāo)毀后,指針仍嘗試訪問(wèn)該內(nèi)存位置,如使用已釋放的內(nèi)存。典型的內(nèi)存錯(cuò)誤檢測(cè)工具包括:地址檢查器[](ASn):ASn是一個(gè)在編譯時(shí)插入檢測(cè)代碼的工具,能夠快速檢測(cè)空間和時(shí)間錯(cuò)誤。雖然使用ASan會(huì)導(dǎo)致運(yùn)行時(shí)間增加約73%,但它通過(guò)陰影內(nèi)存技術(shù)在內(nèi)存被解引用前檢查其有效性,從而有效識(shí)別不安全的內(nèi)存訪問(wèn)。此外,ASan的增強(qiáng)版MEDS通過(guò)創(chuàng)建“紅區(qū)”(不可訪問(wèn)的內(nèi)存區(qū)域)進(jìn)一步提升了檢測(cè)效果,使程序更容易因內(nèi)存錯(cuò)誤而崩潰,從而更快發(fā)現(xiàn)問(wèn)題。SofBond/CT[]:該工具在編譯時(shí)追蹤指針的邊界和生命周期信息,理論上能夠檢測(cè)所有空間和時(shí)間錯(cuò)誤。雖然它比ASan更全面,但也帶來(lái)了約116%的運(yùn)行時(shí)間開(kāi)銷(xiāo)。CVe[]、TyeS[]與HeTye[]:這些工具專(zhuān)注于檢測(cè)C++中的不當(dāng)類(lèi)型轉(zhuǎn)換。例如,它們可以識(shí)別將基類(lèi)對(duì)象錯(cuò)誤地轉(zhuǎn)換為派生類(lèi)對(duì)象的情況。這樣的類(lèi)型轉(zhuǎn)C++編程中相當(dāng)常見(jiàn)且危險(xiǎn),這些工具的使用能夠提高程序的安全性。未定義行為檢測(cè)工具C語(yǔ)言等編程語(yǔ)言中,未定義行為的具體表現(xiàn)可能因編譯器而異,導(dǎo)致程序在不同編譯器上表現(xiàn)不一致,進(jìn)而引發(fā)漏洞。為了發(fā)現(xiàn)和解決這些問(wèn)題,以下是幾種常見(jiàn)的未定義行為檢測(cè)工具及其特點(diǎn):內(nèi)存檢查器[](Sn):Sn專(zhuān)門(mén)用于檢測(cè)C和C++程序中因使用未初始化內(nèi)存而導(dǎo)致的未定義行為。它通過(guò)陰影內(nèi)存技術(shù)追蹤每個(gè)位的初始化狀態(tài),確保在使用前每個(gè)位都已初始化。然而,這種方法會(huì)導(dǎo)致大約150%的性能開(kāi)銷(xiāo)。未定義行為檢查器[](BSn)BSn通過(guò)在編譯時(shí)修改程序代碼,檢測(cè)各種未定義行為。這些行為包括使用不對(duì)齊指針、零除法、解引用空指針和整數(shù)溢出等。通過(guò)這種方式,UBSan可以有效地發(fā)現(xiàn)潛在的漏洞并防止它們?cè)谶\(yùn)行時(shí)引發(fā)問(wèn)題。線(xiàn)程檢查器[](TSn):TSn用于檢測(cè)數(shù)據(jù)競(jìng)爭(zhēng)問(wèn)題。數(shù)據(jù)競(jìng)爭(zhēng)通常發(fā)生在兩個(gè)線(xiàn)程并發(fā)訪問(wèn)同一內(nèi)存位置且至少一個(gè)線(xiàn)程執(zhí)行寫(xiě)操作時(shí),可能導(dǎo)致數(shù)據(jù)損壞并且難以復(fù)現(xiàn)。TSan效地檢測(cè)和防止數(shù)據(jù)競(jìng)爭(zhēng)。Web漏洞檢測(cè)工具Web漏洞檢測(cè)工具用于識(shí)別和修復(fù)Web應(yīng)用中的安全漏洞,以下是幾種常見(jiàn)的工具及其特點(diǎn):SSFz[]:這是一個(gè)專(zhuān)門(mén)用于檢測(cè)服務(wù)端請(qǐng)求偽造(SS漏洞的工具。SSRFuzz通過(guò)檢測(cè)PHP程序中的服務(wù)端請(qǐng)求行為,如網(wǎng)絡(luò)請(qǐng)求或者文件訪問(wèn),以系統(tǒng)化識(shí)別SSF漏洞相關(guān)的Sink函數(shù)。通過(guò)將動(dòng)態(tài)污點(diǎn)分析與模糊測(cè)試結(jié)合,SSF能夠快速搜索Web應(yīng)用程序中觸發(fā)SFsink的潛在參數(shù)列表,并生成多樣化的輸入,以提升檢測(cè)SSRF漏洞的效果。eleonFz[]:這是一個(gè)專(zhuān)門(mén)用于檢測(cè)跨站腳本(SS)攻擊的工具。eleonFzz通過(guò)解析真實(shí)Web瀏覽器中的測(cè)試用例,提取DM樹(shù),并將其與已知的XSS攻擊模式進(jìn)行比較,以識(shí)別成功的XSS攻擊。通過(guò)與模糊測(cè)試結(jié)合,eleonFzz能夠生成多樣化的輸入,模擬攻擊者可能?chē)L試的各種惡意輸入,進(jìn)一步提升檢測(cè)XSS漏洞的效果。4SL[]:這個(gè)工具采用類(lèi)似技術(shù)來(lái)檢測(cè)SL注入攻擊。由于從Web應(yīng)用響應(yīng)中難以可靠地檢測(cè)SL注入,4Li通過(guò)數(shù)據(jù)庫(kù)代理攔截Web應(yīng)用與數(shù)據(jù)庫(kù)之間的通信,檢查輸入是否觸發(fā)了有害行為,從而有效識(shí)別SQL注入攻擊。結(jié)合模糊測(cè)試,μ4Li能夠自動(dòng)生成并測(cè)試大量不同的輸入,發(fā)現(xiàn)那些可能觸發(fā)SL注入漏洞的特定輸入模式,提高檢測(cè)的全面性和精度。AS[](nterciveAplitionSecriyTestng):AST是一種交互式應(yīng)用安全測(cè)試工具,能夠?qū)崟r(shí)監(jiān)測(cè)和檢測(cè)Web應(yīng)用中的安全漏洞。它通過(guò)在應(yīng)用運(yùn)行時(shí)注入檢測(cè)代碼,實(shí)時(shí)分析應(yīng)用行為并識(shí)別潛在漏洞,如XSS、SQL注入和其他常見(jiàn)Web攻擊。AST工具結(jié)合了靜態(tài)和動(dòng)態(tài)分析的優(yōu)點(diǎn),提供更全面的漏洞檢測(cè)能力。通過(guò)與模糊測(cè)試結(jié)合,AST工具可以在檢測(cè)過(guò)程中不斷生成和測(cè)試新的輸入數(shù)據(jù),發(fā)現(xiàn)更多潛在的安全漏洞,增強(qiáng)檢測(cè)的深度和廣度。語(yǔ)義差異檢測(cè)工具語(yǔ)義差異檢測(cè)工具在模糊測(cè)試中扮演著發(fā)現(xiàn)語(yǔ)義錯(cuò)誤的關(guān)鍵角色,通過(guò)比較行為相似但不完全相同的程序,這些工具能夠揭露潛在的錯(cuò)誤。差分測(cè)試通過(guò)比較多個(gè)程序或同一程序在不同輸入下的行為,來(lái)識(shí)別潛在的語(yǔ)義錯(cuò)誤,尤其適用于發(fā)現(xiàn)復(fù)雜的、僅在特定條件下出現(xiàn)的錯(cuò)誤。多種模糊測(cè)試工具采用差分測(cè)試來(lái)識(shí)別程序間的行為差異,這些差異通常標(biāo)示著錯(cuò)誤。黑盒差分模糊測(cè)試不依賴(lài)于程序的源代碼,而是通過(guò)觀察輸入輸出關(guān)系來(lái)識(shí)別錯(cuò)誤,具有較強(qiáng)的適應(yīng)性和廣泛的應(yīng)用前景。結(jié)合模糊測(cè)試,語(yǔ)義差異檢測(cè)工具能夠自動(dòng)生成和測(cè)試大量輸入,模擬多種運(yùn)行場(chǎng)景,揭示程序在不同條件下的行為差異。模糊測(cè)試通過(guò)生成隨機(jī)或特定模式的輸入,幫助檢測(cè)工具發(fā)現(xiàn)平常難以捕捉的語(yǔ)義錯(cuò)誤,尤其是在應(yīng)對(duì)復(fù)雜應(yīng)用程序時(shí),這種隨機(jī)性和多樣性為漏洞檢測(cè)提供了強(qiáng)有力的支持。這種結(jié)合不僅提高了測(cè)試覆蓋率,還使檢測(cè)結(jié)果更加可靠,有助于開(kāi)發(fā)人員及時(shí)發(fā)現(xiàn)并修復(fù)潛在的語(yǔ)義錯(cuò)誤,從而提高程序的健壯性和安全性。通過(guò)不斷優(yōu)化和改進(jìn),語(yǔ)義差異檢測(cè)工具在保障軟件質(zhì)量和安全性方面發(fā)揮著越來(lái)越重要的作用。HDif[]:HDiff是一個(gè)高效的差分計(jì)算和應(yīng)用框架,結(jié)合了自然語(yǔ)言分析和差異測(cè)試技術(shù),旨在自動(dòng)化發(fā)現(xiàn)HTTP軟件實(shí)現(xiàn)中的語(yǔ)義差異問(wèn)題。它通過(guò)從RFC文檔中自動(dòng)提取規(guī)范約束,并對(duì)不同HTTP軟件實(shí)現(xiàn)進(jìn)行差異測(cè)試。WAMnis[]:該工具可以自動(dòng)化檢測(cè)Web應(yīng)用防火墻(WAF)中的協(xié)議層通用繞過(guò)漏洞。WAFWeb系統(tǒng)最主流的安全防護(hù)方案。傳統(tǒng)WAF繞過(guò)工具如SLp利用WAF規(guī)則集的遺漏,特定Pyld繞過(guò)WAF,不具備通用性。WAFns利用WAF與后端Web應(yīng)用框架的協(xié)議層面漏洞歧義繞過(guò)WAF,有效協(xié)議層WAF通用繞過(guò)漏洞。結(jié)合混合模糊測(cè)試,WAFns能夠利用開(kāi)源Web框架的代碼覆蓋率,自動(dòng)生成并測(cè)試大量不同的輸入,并對(duì)WAF系統(tǒng)進(jìn)行黑盒測(cè)試,以快速發(fā)現(xiàn)那些可能造成WAF歧義漏洞的樣例。缺陷檢測(cè)技術(shù)在軟件開(kāi)發(fā)過(guò)程中起著至關(guān)重要的作用。通過(guò)有效利用內(nèi)存錯(cuò)誤檢測(cè)工具、未定義行為檢測(cè)工具、Web漏洞檢測(cè)工具和語(yǔ)義差異檢測(cè)工具,開(kāi)發(fā)人員可以及時(shí)發(fā)現(xiàn)并修復(fù)潛在的安全漏洞和錯(cuò)誤,從而提高軟件的安全性和可靠性。隨著技術(shù)的不斷進(jìn)步,這些工具將繼續(xù)發(fā)展,為軟件質(zhì)量保障提供更強(qiáng)有力的支持。測(cè)試去重和優(yōu)先級(jí)策略在模糊測(cè)試過(guò)程中,測(cè)試去重和優(yōu)先級(jí)設(shè)置是提高測(cè)試效率和有效性的重要策略。測(cè)試去重能夠減少冗余測(cè)試用例、節(jié)約資源,而優(yōu)先級(jí)設(shè)置則有助于集中精力解決最嚴(yán)重的漏洞問(wèn)題。測(cè)試用例去重算法在模糊測(cè)試中,去重是剔除重復(fù)測(cè)試用例的重要步驟,旨在形成一個(gè)能揭示獨(dú)特錯(cuò)誤的測(cè)試用例集合。這不僅節(jié)約磁盤(pán)空間和資源,還能幫助用戶(hù)更輕松地識(shí)別和分析不同的錯(cuò)誤類(lèi)型。當(dāng)前,常用的去重技術(shù)包括基于?;厮莨Hブ?、基于覆蓋率去重和基于語(yǔ)義感知去重。基于?;厮莨Hブ赝ㄟ^(guò)捕獲崩潰時(shí)的調(diào)用?;厮莺头峙錀9?shí)現(xiàn)去重,有些實(shí)現(xiàn)會(huì)生成一個(gè)主要哈希和一個(gè)次級(jí)哈希以提高效率。基于覆蓋率去重的工具如AFL,通過(guò)源代碼插樁記錄測(cè)試用例發(fā)現(xiàn)的新路徑,將這些路徑視為獨(dú)特。基于語(yǔ)義感知去重的RETracer[59]利用逆向數(shù)據(jù)流分析技術(shù),從崩潰事件中提取語(yǔ)義信息進(jìn)行分群,識(shí)別觸發(fā)錯(cuò)誤的指令和最高級(jí)別函數(shù)。測(cè)試用例最小化算法測(cè)試用例最小化是模糊測(cè)試中的關(guān)鍵步驟,旨在簡(jiǎn)化測(cè)試用例,生成能觸發(fā)相同錯(cuò)誤的更小、更精簡(jiǎn)的版本。不同的模糊測(cè)試工具實(shí)施了各自的最小化算法。例如,BFF[26]使用專(zhuān)為模糊測(cè)試設(shè)計(jì)的算法,盡量減少與原始種子文件的差異。AFL通過(guò)將字節(jié)置零和縮減長(zhǎng)度實(shí)現(xiàn)簡(jiǎn)化。Lithium是一種通用測(cè)試用例最小化工具,通過(guò)指數(shù)級(jí)減小尺寸,移除測(cè)試用例中的連續(xù)行或字節(jié)塊。此外,還有適用于多種格式的delta調(diào)試工具和針對(duì)特定格式的CReduce,用于C/C++文件。盡管專(zhuān)用技術(shù)在處理文件類(lèi)型上有限制,但由于能理解目標(biāo)語(yǔ)法,通常比通用技術(shù)更高效。優(yōu)先級(jí)設(shè)置與漏洞可利用性分析模糊測(cè)試中的優(yōu)先級(jí)排序主要基于漏洞的嚴(yán)重性及其獨(dú)特性,特別是在內(nèi)存漏洞的情況下。漏洞的可利用性決定了攻擊者能否制定出有效的利用代碼,防御方通常優(yōu)先修補(bǔ)可被利用的漏洞。微軟的!exploitable系統(tǒng)結(jié)合啟發(fā)式算法與污點(diǎn)分析評(píng)估崩潰可利用性,引領(lǐng)了這一趨勢(shì)。隨后,GDB[27]的可利用性插件和蘋(píng)果的CrashWrangler[28]等基于規(guī)則的啟發(fā)式系統(tǒng)也相繼出現(xiàn),盡管這些系統(tǒng)的準(zhǔn)確性尚未經(jīng)過(guò)系統(tǒng)性驗(yàn)證。模糊測(cè)試產(chǎn)品的前沿研究熱點(diǎn)盡管模糊測(cè)試技術(shù)在軟件安全領(lǐng)域發(fā)揮著關(guān)鍵作用,但其應(yīng)用仍面臨使用門(mén)檻高、隨機(jī)性影響檢測(cè)效率與覆蓋度、以及漏洞修復(fù)自動(dòng)化等挑戰(zhàn)。為提升檢測(cè)能力,當(dāng)前的研究熱點(diǎn)包括智能變異策略?xún)?yōu)化、測(cè)試工具的易用性改進(jìn)、測(cè)試覆蓋度評(píng)估和自動(dòng)化漏洞修復(fù)等。國(guó)內(nèi)以云起無(wú)垠為代表的公司通過(guò)引入大模型技術(shù),打造出更加易用、高效的模糊測(cè)試智能體產(chǎn)品,顯著降低了使用門(mén)檻,提高了測(cè)試效率和覆蓋度。通過(guò)這些努力,模糊測(cè)試技術(shù)將不斷發(fā)展,為軟件安全保障提供更強(qiáng)有力的支持。圖9傳統(tǒng)模糊測(cè)試典型工作流程與能力瓶頸基于大模型的測(cè)試驅(qū)動(dòng)智能生成技術(shù)高質(zhì)量的測(cè)試驅(qū)動(dòng)對(duì)于保障模糊測(cè)試的高效、穩(wěn)定運(yùn)行至關(guān)重要。傳統(tǒng)模糊測(cè)試方案針對(duì)測(cè)試驅(qū)動(dòng)的生成方法主要有兩類(lèi):測(cè)試人員手動(dòng)編寫(xiě):這不僅需要測(cè)試人員了解被測(cè)目標(biāo)代碼的結(jié)構(gòu)信息,例如函數(shù)調(diào)用關(guān)系、參數(shù)類(lèi)型及參數(shù)間的邏輯關(guān)系,還需要熟悉測(cè)試驅(qū)動(dòng)的編寫(xiě)規(guī)范。整個(gè)過(guò)程對(duì)測(cè)試人員的技術(shù)素養(yǎng)要求高,并需要投入大量時(shí)間。例如,為100個(gè)函數(shù)入口編寫(xiě)測(cè)試驅(qū)動(dòng)代碼可能需要8小時(shí)的投入。通過(guò)靜態(tài)分析代碼結(jié)構(gòu)自動(dòng)生成測(cè)試驅(qū)動(dòng)代碼:盡管通過(guò)靜態(tài)分析可以生成測(cè)試驅(qū)動(dòng)代碼,但由于靜態(tài)分析只能分析代碼結(jié)構(gòu)與語(yǔ)法信息,缺乏對(duì)代碼語(yǔ)義的理解,導(dǎo)致自動(dòng)生成的函數(shù)入口參數(shù)類(lèi)型有限制或驅(qū)動(dòng)代碼質(zhì)量不高,甚至可能引起缺陷檢出的誤報(bào),增加人工復(fù)核的成本。有別于傳統(tǒng)方案,云起無(wú)垠采用“靜態(tài)分析+大語(yǔ)言模型”的方式,從“輸入—生成—反饋”三個(gè)階段,構(gòu)建了一套完整的測(cè)試驅(qū)動(dòng)智能生成框架。圖10云起無(wú)垠測(cè)試驅(qū)動(dòng)智能生成策略輸入階段:秉承“輸入質(zhì)量越高輸出質(zhì)量越高”的原則,通過(guò)靜態(tài)分析提取測(cè)試函數(shù)的詳細(xì)簽名信息,并結(jié)合提示詞工程構(gòu)造完整的上下文。詳細(xì)的簽名信息和上下文確保了輸入數(shù)據(jù)的高質(zhì)量,為后續(xù)生成階段提供了堅(jiān)實(shí)基礎(chǔ)。驅(qū)動(dòng)生成階段:云起無(wú)垠基于自研的安全大語(yǔ)言模型SecP[],提升了模型驅(qū)動(dòng)生成的能力。SecGPT利用其強(qiáng)大的語(yǔ)義理解和生成能力,能夠自動(dòng)生成高質(zhì)量的測(cè)試驅(qū)動(dòng)代碼,克服了傳統(tǒng)靜態(tài)分析方法的局限性。SecGPT不僅能夠識(shí)別復(fù)雜的函數(shù)調(diào)用關(guān)系和參數(shù)類(lèi)型,還能夠理解代碼的語(yǔ)義,生成更準(zhǔn)確、更有效的測(cè)試驅(qū)動(dòng)。反饋階段:在反饋階段,模型會(huì)進(jìn)行驅(qū)動(dòng)的正確性驗(yàn)證,并結(jié)合驗(yàn)證日志進(jìn)行持續(xù)優(yōu)化。通過(guò)反復(fù)的迭代測(cè)試和優(yōu)化,確保生成的測(cè)試驅(qū)動(dòng)代碼不僅正確,還能高效地覆蓋目標(biāo)代碼的各種行為路徑。最終,通過(guò)這種“靜態(tài)分析+大語(yǔ)言模型”的創(chuàng)新方式,云起無(wú)垠實(shí)現(xiàn)了高質(zhì)量測(cè)試驅(qū)動(dòng)的自動(dòng)生成,極大降低了測(cè)試人員的使用成本,提高了測(cè)試效率。這一智能生成框架,不僅簡(jiǎn)化了測(cè)試驅(qū)動(dòng)的生成過(guò)程,還顯著提升了模糊測(cè)試的覆蓋率和檢測(cè)效率,為軟件安全保障提供了更強(qiáng)有力的支持。云起無(wú)垠的這一創(chuàng)新框架是模糊測(cè)試技術(shù)的重大突破,展示了其在軟件安全測(cè)試領(lǐng)域的領(lǐng)先地位和技術(shù)實(shí)力。通過(guò)持續(xù)優(yōu)化和改進(jìn),該框架將進(jìn)一步推動(dòng)模糊測(cè)試技術(shù)的發(fā)展,為更廣泛的應(yīng)用場(chǎng)景提供支持?;诖竽P偷姆N子變異和優(yōu)化技術(shù)模糊測(cè)試?yán)米儺惒呗?,隨機(jī)生成大量非預(yù)期輸入種子文件,并將這些種子作為目標(biāo)程序的輸入,以觀察程序是否出現(xiàn)異?;虮罎?,從而檢測(cè)漏洞。這相當(dāng)于解決一個(gè)復(fù)雜的搜索問(wèn)題,從預(yù)先構(gòu)造的種子輸入開(kāi)始。測(cè)試種子的質(zhì)量直接影響模糊測(cè)試對(duì)目標(biāo)空間探索的效率。然而,現(xiàn)有模糊測(cè)試工具在測(cè)試效率和代碼覆蓋率方面仍存在巨大改進(jìn)空間。為了解決模糊測(cè)試效率低、代碼覆蓋率不高的問(wèn)題,云起無(wú)垠提出了一個(gè)基于大語(yǔ)言模型的創(chuàng)新框架,旨在提升模糊測(cè)試的有效性和效率。該框架通過(guò)提升種子輸入質(zhì)量和改進(jìn)種子變異機(jī)制,顯著提高了對(duì)目標(biāo)程序中潛在錯(cuò)誤和崩潰的檢測(cè)效率,并探索了更多代碼和行為路徑。圖11基于大模型的種子變異和優(yōu)化技術(shù)智能種子評(píng)估與權(quán)重分配:該框架首先評(píng)估模糊測(cè)試引擎生成種子的質(zhì)量,并將其與目標(biāo)執(zhí)行狀態(tài)的相關(guān)性進(jìn)行智能分析?;谶@種分析,模糊測(cè)試種子池被劃分為不同權(quán)重的隊(duì)列,從而確保高質(zhì)量的種子能夠優(yōu)先被使用和變異。這種智能評(píng)估和權(quán)重分配極大地優(yōu)化了種子的利用率。參數(shù)化變異與智能調(diào)度:框架結(jié)合當(dāng)前測(cè)試路徑的參數(shù)信息,智能調(diào)度種子遺傳變異算法。這種調(diào)度機(jī)制使得種子變異更加有針對(duì)性和高效,能夠快速探索程序中的復(fù)雜行為路徑,顯著提高了代碼覆蓋率和漏洞檢測(cè)的深度。大語(yǔ)言模型驅(qū)動(dòng)優(yōu)化:云起無(wú)垠基于自研的安全大語(yǔ)言模型SecGPT,全面提升了模型驅(qū)動(dòng)生成的能力。SecGPT不僅能夠生成高質(zhì)量的種子輸入,還能夠在變異過(guò)程中不斷優(yōu)化種子,提高檢測(cè)效率。通過(guò)持續(xù)的反饋和迭代,SecGPT使模糊測(cè)試變得更加智能和高效。持續(xù)反饋與優(yōu)化:在反饋階段,模型會(huì)對(duì)生成的測(cè)試驅(qū)動(dòng)進(jìn)行正確性驗(yàn)證,并結(jié)合驗(yàn)證日志進(jìn)行持續(xù)優(yōu)化。經(jīng)過(guò)反復(fù)迭代測(cè)試,該框架能夠在同等時(shí)間內(nèi)覆蓋更多程序行為,觸發(fā)更多潛在漏洞,從而實(shí)現(xiàn)更高效、更全面的安全測(cè)試。通過(guò)與大模型技術(shù)的創(chuàng)新融合,云起無(wú)垠提出的這一技術(shù)框架不僅優(yōu)化了測(cè)試種子的質(zhì)量和變異策略,還顯著提高了模糊測(cè)試的效率和代碼覆蓋率,從而實(shí)現(xiàn)了更深層的智能化。基于大模型的修復(fù)代碼生成技術(shù)在軟件開(kāi)發(fā)和維護(hù)過(guò)程中,針對(duì)模糊測(cè)試檢出的安全缺陷,測(cè)試人員往往需要進(jìn)行詳細(xì)的驗(yàn)證與修復(fù)。通常,這一過(guò)程不僅需要依賴(lài)模糊測(cè)試工具提供的詳細(xì)缺陷信息,例如缺陷類(lèi)型、觸發(fā)缺陷的測(cè)試用例、函數(shù)調(diào)用棧與源代碼等,還需要測(cè)試人員自行進(jìn)行缺陷分析,手動(dòng)編寫(xiě)修復(fù)補(bǔ)丁,并進(jìn)行修復(fù)后的功能完整性和安全性測(cè)試。這個(gè)過(guò)程對(duì)測(cè)試人員的技術(shù)要求極高,并且需要投入大量時(shí)間和精力,增加了項(xiàng)目的復(fù)雜性和成本。云起無(wú)垠針對(duì)這些挑戰(zhàn),提出了一套基于大語(yǔ)言模型SecGPT的革命性解決方案,構(gòu)建了一個(gè)集“缺陷分析—修復(fù)—驗(yàn)證”于一體的自動(dòng)化框架(如圖12所示)。這個(gè)框架充分利用了模糊測(cè)試對(duì)缺陷現(xiàn)場(chǎng)信息的全面捕捉能力,以及SecGPT對(duì)代碼語(yǔ)義的深刻理解,極大地優(yōu)化了缺陷修復(fù)的整個(gè)流程。圖12自動(dòng)化漏洞修復(fù)、驗(yàn)證框架全面的缺陷分析該框架利用模糊測(cè)試工具捕捉的詳細(xì)缺陷現(xiàn)場(chǎng)信息,結(jié)合SecGPT對(duì)代碼語(yǔ)義的強(qiáng)大理解能力,進(jìn)行深入的成因分析。SecGPT不僅能夠識(shí)別缺陷的類(lèi)型,還能提供詳盡的代碼解釋?zhuān)瑤椭鷾y(cè)試人員快速定位問(wèn)題根源,顯著降低了缺陷分析的復(fù)雜性和成本。智能修復(fù)建議基于對(duì)缺陷調(diào)用棧數(shù)據(jù)的智能分析,SecGPT能夠?qū)γ恳粋€(gè)函數(shù)進(jìn)行詳細(xì)解釋?zhuān)⑻峁┚珳?zhǔn)的代碼級(jí)修復(fù)建議。這些修復(fù)建議不僅考慮了函數(shù)的當(dāng)前狀態(tài),還考慮了代碼整體的邏輯和安全性要求,確保修復(fù)方案的有效性和高質(zhì)量。自動(dòng)化驗(yàn)證對(duì)于修復(fù)后的代碼,框架提供了一套完整的自動(dòng)化驗(yàn)證流程。測(cè)試人員可以利用系統(tǒng)提供的正確用例和觸發(fā)缺陷的用例,自動(dòng)完成功能完整性校驗(yàn)和安全性校驗(yàn)。通過(guò)這一自動(dòng)化過(guò)程,修復(fù)后的代碼在投入使用前得到了充分驗(yàn)證,確保其穩(wěn)定性和安全性。云起無(wú)垠提出的這一創(chuàng)新框架,利用大語(yǔ)言模型的語(yǔ)義理解能力,為用戶(hù)提供詳細(xì)的代碼解釋和修復(fù)建議,提高了補(bǔ)丁的準(zhǔn)確性和有效性。該框架不僅降低了對(duì)高技術(shù)測(cè)試人員的依賴(lài),減少了人工復(fù)核和修復(fù)的成本,還進(jìn)一步提升了團(tuán)隊(duì)的整體效率,實(shí)現(xiàn)了智能化的漏洞驗(yàn)證與修復(fù)。三、模糊測(cè)試的檢測(cè)對(duì)象如下圖所示,我們根據(jù)測(cè)試目標(biāo)的工作層將模糊測(cè)試按測(cè)試對(duì)象分類(lèi)為應(yīng)用程序、WebAPI、數(shù)據(jù)庫(kù)、協(xié)議、操作系統(tǒng)和固件模糊測(cè)試。在提供模糊測(cè)試解決方案的廠商中,國(guó)外公司如Codenteligece和ForAlecre,以及國(guó)內(nèi)廠商如云起無(wú)垠[]、安般科技[44]和水木羽林[45],都為這些測(cè)試對(duì)象提供了不同程度的支持。值得注意的是,云起無(wú)垠的產(chǎn)品全面覆蓋了上述所有測(cè)試對(duì)象,展示了其在模糊測(cè)試領(lǐng)域的強(qiáng)大實(shí)力和全面能力。本章節(jié)將專(zhuān)注于探討不同測(cè)試對(duì)象的模糊測(cè)試技術(shù)細(xì)節(jié)。圖13模糊測(cè)試分類(lèi)應(yīng)用程序模糊測(cè)試在數(shù)字化時(shí)代,應(yīng)用程序的快速發(fā)展和互聯(lián)網(wǎng)的廣泛普及使其成為黑客攻擊的主要目標(biāo),造成巨大的財(cái)產(chǎn)損失。因此,設(shè)計(jì)一套具有低誤報(bào)率、低漏報(bào)率、高準(zhǔn)確性和高自動(dòng)化的應(yīng)用程序漏洞挖掘機(jī)制尤為重要,這不僅對(duì)緩解應(yīng)用系統(tǒng)面臨的網(wǎng)絡(luò)攻擊風(fēng)險(xiǎn)具有重要的理論意義,也具備顯著的實(shí)用價(jià)值。應(yīng)用程序具體是指為用戶(hù)執(zhí)行特定任務(wù)而設(shè)計(jì)的軟件,能夠在桌面計(jì)算機(jī)、移動(dòng)設(shè)備和網(wǎng)絡(luò)環(huán)境中運(yùn)行,涵蓋了文檔處理、數(shù)據(jù)管理、通訊和娛樂(lè)等多種功能。在技術(shù)上,應(yīng)用程序可以分為桌面應(yīng)用程序、移動(dòng)應(yīng)用程序、Web應(yīng)用程序和企業(yè)應(yīng)用程序等多種類(lèi)型。應(yīng)用程序模糊測(cè)試[2]作為一種通用的自動(dòng)化測(cè)試技術(shù),通過(guò)向應(yīng)用程序輸入大量隨機(jī)或異常數(shù)據(jù)來(lái)發(fā)現(xiàn)潛在的安全漏洞和缺陷,在安全測(cè)試中發(fā)揮著至關(guān)重要的作用。根據(jù)測(cè)試者對(duì)源碼的獲取程度,應(yīng)用程序模糊測(cè)試可分為源代碼模糊測(cè)試和二進(jìn)制模糊測(cè)試兩大類(lèi):源代碼模糊測(cè)試源代碼模糊測(cè)試是一種旨在深度探索應(yīng)用程序潛在漏洞的測(cè)試方法,適用于測(cè)試人員能夠直接訪問(wèn)程序源代碼的測(cè)試場(chǎng)景。通過(guò)此方法,測(cè)試人員不僅能評(píng)估應(yīng)用對(duì)異常輸入的響應(yīng),還可以利用對(duì)代碼邏輯的深層理解來(lái)識(shí)別和定位那些僅通過(guò)表面測(cè)試難以發(fā)現(xiàn)的復(fù)雜安全漏洞。特別是在對(duì)安全要求極高的應(yīng)用程序開(kāi)發(fā)中,源代碼模糊測(cè)試能在軟件發(fā)布前有效提升對(duì)未知威脅的防護(hù)能力。執(zhí)行全面的源代碼分析與測(cè)試能夠顯著提高應(yīng)用程序的安全性,減少漏洞的數(shù)量和嚴(yán)重程度。圖14源代碼模糊測(cè)試流程圖在執(zhí)行源代碼模糊測(cè)試時(shí),測(cè)試人員首先需要將被測(cè)源代碼上傳到模糊測(cè)試系統(tǒng)進(jìn)行自動(dòng)編譯,轉(zhuǎn)換為可執(zhí)行文件或可分析格式。編譯完成后,系統(tǒng)自動(dòng)生成測(cè)試任務(wù),并將其下發(fā)到模糊測(cè)試引擎以便進(jìn)一步測(cè)試。在模糊測(cè)試階段,系統(tǒng)會(huì)識(shí)別需要測(cè)試的入口點(diǎn),確定測(cè)試范圍和目標(biāo)。根據(jù)這些入口點(diǎn),系統(tǒng)生成測(cè)試驅(qū)動(dòng)程序并自動(dòng)生成各種測(cè)試輸入,確保盡可能多的代碼路徑被覆蓋。在測(cè)試執(zhí)行過(guò)程中,系統(tǒng)會(huì)實(shí)時(shí)監(jiān)控測(cè)試覆蓋率和程序狀態(tài),動(dòng)態(tài)調(diào)整樣例的生成策略。針對(duì)檢出的異常情況,系統(tǒng)會(huì)對(duì)缺陷的可達(dá)性進(jìn)行分析,并生成PoC對(duì)其可利用性進(jìn)行研判。同時(shí),為更好地幫助用戶(hù)理解和修復(fù)漏洞,系統(tǒng)還將為用戶(hù)提供漏洞詳情、復(fù)現(xiàn)腳本以及修復(fù)代碼。最后,系統(tǒng)會(huì)生成完整的測(cè)試報(bào)告,包含測(cè)試結(jié)果、漏洞詳情和覆蓋率數(shù)據(jù)等信息。值得一提的是,對(duì)于業(yè)內(nèi)較為領(lǐng)先的模糊測(cè)試方案而言,大語(yǔ)言模型的融入是必不可少的。通過(guò)大模型的理解、規(guī)劃與生成能力,可有效提升源代碼模糊測(cè)試的檢測(cè)效率與自動(dòng)化程度,實(shí)現(xiàn)更加智能化的漏洞挖掘與修復(fù)。二進(jìn)制模糊測(cè)試二進(jìn)制程序的模糊測(cè)試[1]是一種專(zhuān)門(mén)針對(duì)編譯后的二進(jìn)制代碼進(jìn)行的測(cè)試方法。由于這種測(cè)試方案不依賴(lài)于源代碼,因此應(yīng)用范圍更加廣泛,即使是無(wú)法獲得源代碼的閉源軟件也適用于此種測(cè)試方法。在現(xiàn)實(shí)中,二進(jìn)制模糊測(cè)試被廣泛應(yīng)用于軟件安全測(cè)試領(lǐng)域,尤其是在需要確保軟件穩(wěn)定性和安全性的關(guān)鍵系統(tǒng)中,如嵌入式設(shè)備、工業(yè)控制系統(tǒng)和網(wǎng)絡(luò)設(shè)備等。二進(jìn)制程序的模糊測(cè)試是一種專(zhuān)門(mén)針對(duì)編譯后的二進(jìn)制代碼進(jìn)行的測(cè)試方法,旨在發(fā)現(xiàn)程序中潛在的安全漏洞和穩(wěn)定性問(wèn)題。與傳統(tǒng)的基于源代碼的模糊測(cè)試不同,二進(jìn)制模糊測(cè)試不依賴(lài)于源代碼,因此應(yīng)用范圍更加廣泛,尤其適用于那些無(wú)法獲得源代碼的閉源軟件。隨著現(xiàn)代軟件系統(tǒng)的復(fù)雜性不斷增加,二進(jìn)制模糊測(cè)試變得愈加重要。許多現(xiàn)代軟件都是由多個(gè)模塊和庫(kù)組成,這些模塊和庫(kù)可能來(lái)自不同的開(kāi)發(fā)團(tuán)隊(duì),甚至是第三方供應(yīng)商。由于無(wú)法獲得所有模塊和庫(kù)的源代碼,二進(jìn)制模糊測(cè)試成為唯一可行的全面測(cè)試方法,這種特性使得二進(jìn)制模糊測(cè)試在當(dāng)今軟件安全測(cè)試領(lǐng)域中占據(jù)了重要地位。在實(shí)際應(yīng)用中,二進(jìn)制模糊測(cè)試被廣泛用于需要確保軟件穩(wěn)定性和安全性的關(guān)鍵系統(tǒng)中。例如,嵌入式設(shè)備、工業(yè)控制系統(tǒng)和網(wǎng)絡(luò)設(shè)備等,這些系統(tǒng)的穩(wěn)定性和安全性直接關(guān)系到人們的日常生活和工業(yè)生產(chǎn)的正常運(yùn)行。通過(guò)對(duì)二進(jìn)制進(jìn)行模糊測(cè)試,可以有效地檢測(cè)出應(yīng)用中的漏洞,從而預(yù)防潛在的安全威脅。圖15二進(jìn)制程序的模糊測(cè)試流程圖在執(zhí)行二進(jìn)制模糊測(cè)試時(shí),測(cè)試人員只需將待測(cè)二進(jìn)制文件上傳到系統(tǒng)前端,創(chuàng)建測(cè)試任務(wù)。隨后,系統(tǒng)會(huì)加載二進(jìn)制程序,并對(duì)其進(jìn)行自動(dòng)插樁,以便在執(zhí)行過(guò)程中收集覆蓋率和狀態(tài)信息。在此環(huán)節(jié),較為先進(jìn)的二進(jìn)制模糊測(cè)試方案,還會(huì)采用基于大模型的二進(jìn)制逆向分析,用以獲取更多的程序信息。在測(cè)試任務(wù)開(kāi)始后,系統(tǒng)自動(dòng)生成各種測(cè)試輸入,確保盡可能多的代碼路徑被覆蓋。同時(shí),系統(tǒng)實(shí)時(shí)監(jiān)控測(cè)試的覆蓋率和程序狀態(tài),檢測(cè)異常情況,如崩潰或內(nèi)存泄漏。針對(duì)檢出的缺陷,系統(tǒng)會(huì)自動(dòng)驗(yàn)證其可達(dá)性與可利用性,最終生成完整的測(cè)試報(bào)告與修復(fù)方案,幫助用戶(hù)快速排查安全威脅。總的來(lái)說(shuō),二進(jìn)制模糊測(cè)試作為一種不依賴(lài)源代碼的測(cè)試方法,為應(yīng)用安全測(cè)試提供了一種強(qiáng)有力的測(cè)試方法。它能夠廣泛應(yīng)用于各種閉源軟件和關(guān)鍵系統(tǒng)中,有效提高軟件的安全性和穩(wěn)定性,預(yù)防潛在的安全威脅。在日益復(fù)雜的現(xiàn)代軟件環(huán)境中,二進(jìn)制模糊測(cè)試的重要性不容忽視。bPI模糊測(cè)試在云計(jì)算和微服務(wù)架構(gòu)的迅猛發(fā)展的時(shí)代背景下,ESTAP()因其簡(jiǎn)潔性和易用性,顯著提高了軟件應(yīng)用的可擴(kuò)展性,成為簡(jiǎn)化軟件開(kāi)發(fā)的主流Web應(yīng)用和云服務(wù)訪問(wèn)方式。許多Web服務(wù)供應(yīng)商,包括Goge、Twiter和Azon,通過(guò)ESTAI提供其服務(wù)的訪問(wèn)。然而,API相關(guān)的安全問(wèn)題日益增多。例如,220年,美國(guó)的開(kāi)放銀行應(yīng)用Dave發(fā)生了700萬(wàn)用戶(hù)信息泄露事件,泄露的信息隨后在黑市出售。2021年,F(xiàn)acebook的一個(gè)API被誤用,導(dǎo)致約5億用戶(hù)信息被泄露。這凸顯了確保API安全和可靠性的重要性。傳統(tǒng)的手工測(cè)試效率低下,且難以實(shí)現(xiàn)回歸測(cè)試。API模糊測(cè)試[]是一種測(cè)試應(yīng)用程序API安全性和穩(wěn)定性的技術(shù),它通過(guò)向API發(fā)送大量隨機(jī)或不正確的輸入來(lái)發(fā)現(xiàn)潛在漏洞,例如輸入驗(yàn)證問(wèn)題、緩沖區(qū)溢出、注入攻擊等。API模糊測(cè)試的核心原理是自動(dòng)或半自動(dòng)地將隨機(jī)或錯(cuò)誤的數(shù)據(jù)注入函數(shù)參數(shù)中,監(jiān)控軟件表現(xiàn),以發(fā)現(xiàn)潛在問(wèn)題。API模糊測(cè)試的目的是識(shí)別可能被攻擊者利用的漏洞或弱點(diǎn)。通過(guò)注入意外或格式錯(cuò)誤的數(shù)據(jù),模糊測(cè)試可以引發(fā)意外行為或暴露API處理輸入的不足,從而發(fā)現(xiàn)潛在的安全漏洞。圖6bPI模糊測(cè)試流程圖在進(jìn)行WebAPI模糊測(cè)試時(shí),測(cè)試人員需要準(zhǔn)備可運(yùn)行的待測(cè)Web應(yīng)用環(huán)境以及API接口信息。然后上傳接口信息,讓被測(cè)程序與模糊測(cè)試系統(tǒng)連接,創(chuàng)建測(cè)試任務(wù)。Web應(yīng)用服務(wù)進(jìn)行自動(dòng)化動(dòng)態(tài)插樁,以便在執(zhí)行過(guò)程中收集覆蓋率和狀態(tài)信息。同時(shí),系統(tǒng)會(huì)解析用戶(hù)上傳的API接口和流量,以了解應(yīng)用的運(yùn)行邏輯和數(shù)據(jù)流。在這一環(huán)節(jié),傳統(tǒng)的分析方式大多基于語(yǔ)法規(guī)則,而先進(jìn)的二進(jìn)制模糊測(cè)試方案會(huì)引入大模型能力,以補(bǔ)足其對(duì)語(yǔ)義分析的能力,從而實(shí)現(xiàn)更深層次的API解析。隨后,系統(tǒng)根據(jù)解析結(jié)果自動(dòng)生成各種測(cè)試輸入,確保盡可能多的API路徑和數(shù)據(jù)流被覆蓋。在測(cè)試執(zhí)行過(guò)程中,系統(tǒng)實(shí)時(shí)監(jiān)控測(cè)試的覆蓋率,確保所有API路徑和數(shù)據(jù)流都被充分測(cè)試。模糊測(cè)試完成后,系統(tǒng)記錄測(cè)試過(guò)程中發(fā)現(xiàn)的所有缺陷現(xiàn)象,并生成詳細(xì)的缺陷日志以及全面的測(cè)試報(bào)告和修復(fù)方案??傮w而言,WebAPI模糊測(cè)試在現(xiàn)代軟件開(kāi)發(fā)和云服務(wù)中的安全保障中起著至關(guān)重要的作用。通過(guò)自動(dòng)化WebAPI模糊測(cè)試,不僅提高了檢測(cè)效率,還有效提高了整體的API測(cè)試深度,避免了人工測(cè)試不足帶來(lái)的風(fēng)險(xiǎn)。未來(lái),隨著大模型能力的深入融合,WebAPI模糊測(cè)試方法將進(jìn)一步優(yōu)化,為軟件系統(tǒng)的安全性和穩(wěn)定

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論