本發(fā)明涉及物聯(lián)網(wǎng)設(shè)備安全檢測(cè),特別涉及一種基于敏感目標(biāo)導(dǎo)向的物聯(lián)網(wǎng)設(shè)備脆弱性檢測(cè)方法及系統(tǒng)。
背景技術(shù):
1、物聯(lián)網(wǎng)設(shè)備在人們的日常生活中應(yīng)用場(chǎng)景越來(lái)越廣泛,包括智能手表、電子汽車(chē)、智能家居等。然而,由于設(shè)備資源受限、固件更新困難等原因,物聯(lián)網(wǎng)設(shè)備成為網(wǎng)絡(luò)攻擊的主要目標(biāo)。在所有物聯(lián)網(wǎng)設(shè)備中,無(wú)線路由器和網(wǎng)絡(luò)攝像頭比其他嵌入式設(shè)備遭受的攻擊更多,主要因?yàn)樗鼈兲峁┑膚eb服務(wù)暴露了可利用的漏洞。
2、現(xiàn)有的漏洞挖掘技術(shù)主要包括靜態(tài)分析和模糊測(cè)試,而模糊測(cè)試可以分為黑盒模糊測(cè)試和灰盒模糊測(cè)試。靜態(tài)分析是一種通過(guò)分析目標(biāo)系統(tǒng)的源代碼或二進(jìn)制代碼,檢測(cè)潛在漏洞的技術(shù)。它不需要運(yùn)行目標(biāo)程序,而是通過(guò)符號(hào)執(zhí)行、數(shù)據(jù)流分析、控制流分析等手段,識(shí)別代碼中的安全漏洞。靜態(tài)分析可以檢測(cè)到諸如緩沖區(qū)溢出、命令注入、格式化字符串漏洞等問(wèn)題。靜態(tài)分析常用于分析嵌入式設(shè)備的固件代碼,尤其是針對(duì)web服務(wù)程序的后端代碼。通過(guò)分析固件中的危險(xiǎn)函數(shù)調(diào)用(如strcpy、sscanf等),靜態(tài)分析可以識(shí)別出潛在的漏洞點(diǎn)。它可以分析整個(gè)代碼庫(kù),覆蓋所有可能的執(zhí)行路徑,適用于資源受限的嵌入式設(shè)備。黑盒模糊測(cè)試是一種不依賴于目標(biāo)系統(tǒng)內(nèi)部結(jié)構(gòu)的測(cè)試方法。它通過(guò)生成大量隨機(jī)或半隨機(jī)的輸入數(shù)據(jù),發(fā)送給目標(biāo)系統(tǒng),觀察系統(tǒng)的響應(yīng)行為,從而發(fā)現(xiàn)潛在的漏洞。黑盒模糊測(cè)試不需要訪問(wèn)目標(biāo)系統(tǒng)的源代碼或二進(jìn)制代碼,適用于對(duì)未知系統(tǒng)的測(cè)試。黑盒模糊測(cè)試常用于測(cè)試物聯(lián)網(wǎng)設(shè)備的web服務(wù)接口(如http請(qǐng)求處理)。由于嵌入式設(shè)備的固件通常難以獲取或分析,黑盒測(cè)試成為了一種常用的漏洞挖掘手段。它無(wú)需訪問(wèn)目標(biāo)系統(tǒng)的內(nèi)部結(jié)構(gòu),適用于對(duì)未知系統(tǒng)的測(cè)試,實(shí)現(xiàn)簡(jiǎn)單,易于部署?;液心:郎y(cè)試結(jié)合了黑盒測(cè)試和靜態(tài)分析的優(yōu)點(diǎn),通過(guò)部分了解目標(biāo)系統(tǒng)的內(nèi)部結(jié)構(gòu)(如控制流圖、覆蓋率信息等),生成更有針對(duì)性的測(cè)試輸入?;液袦y(cè)試通常依賴于插樁技術(shù),收集目標(biāo)程序的執(zhí)行路徑信息,并根據(jù)覆蓋率反饋調(diào)整測(cè)試策略?;液心:郎y(cè)試在嵌入式設(shè)備中的應(yīng)用通常依賴于固件重托管技術(shù),即將固件運(yùn)行在仿真環(huán)境中,以便插樁和收集覆蓋率信息。常見(jiàn)的灰盒測(cè)試工具包括afl(american?fuzzy?lop)及其變種(如firm-afl)。它通過(guò)覆蓋率反饋,能夠更有效地探索目標(biāo)系統(tǒng)的執(zhí)行路徑。
3、現(xiàn)有的漏洞檢測(cè)技術(shù)在嵌入式設(shè)備上各有優(yōu)缺點(diǎn)。黑盒測(cè)試簡(jiǎn)單易用,但效率低下;靜態(tài)分析全面但誤報(bào)率高;灰盒測(cè)試效率較高,但依賴固件重托管,適應(yīng)性有限。黑盒模糊測(cè)試不依賴于程序仿真,但缺乏詳細(xì)的程序執(zhí)行指導(dǎo)信息,盲目性高。黑盒模糊測(cè)試可以直接針對(duì)真實(shí)設(shè)備開(kāi)展,可以對(duì)無(wú)法重托管的固件進(jìn)行測(cè)試,基于設(shè)備響應(yīng)推測(cè)設(shè)備狀態(tài),這種方法缺乏詳細(xì)的程序執(zhí)行指導(dǎo)信息,如覆蓋率,具有盲目性,因此現(xiàn)有的工作主要集中在如何獲取更多反饋信息,如通過(guò)響應(yīng)推斷程序執(zhí)行覆蓋率,但這種推斷是粗略的,對(duì)于響應(yīng)信息少的設(shè)備就不適用了?;液心:郎y(cè)試依賴于固件仿真,無(wú)法對(duì)不能仿真的設(shè)備進(jìn)行測(cè)試。針對(duì)固件程序的灰盒模糊測(cè)試則高度依賴于固件仿真,而由于固件對(duì)硬件的高度依賴等原因,對(duì)固件的仿真也是一項(xiàng)具有挑戰(zhàn)性的工作。因此現(xiàn)有的工作主要集中在如何使固件高保真度仿真,增加可擴(kuò)展性,從而提升模糊測(cè)試效率。對(duì)于無(wú)法仿真的固件或真實(shí)設(shè)備無(wú)法收集程序如程序覆蓋率這樣的執(zhí)行信息,因此無(wú)法用這種灰盒的方法進(jìn)行測(cè)試。且灰盒模糊測(cè)試主要基于afl,無(wú)法對(duì)有結(jié)構(gòu)的服務(wù)程序數(shù)據(jù)包進(jìn)行有效變異?,F(xiàn)有灰盒模糊測(cè)試主要基于afl進(jìn)行的,而afl原本是針對(duì)標(biāo)準(zhǔn)輸入輸出程序進(jìn)行測(cè)試,且它的變異策略具有隨機(jī)性。而網(wǎng)絡(luò)服務(wù)程序通常需要發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包并且具有結(jié)構(gòu)性,采用afl直接進(jìn)行模糊測(cè)試通常會(huì)破壞數(shù)據(jù)包結(jié)構(gòu),無(wú)法觸發(fā)程序更深層的路徑。在靜態(tài)分析方面,現(xiàn)有大部分研究主要污點(diǎn)分析技術(shù),其現(xiàn)有挑戰(zhàn)在于識(shí)別外部輸入入口點(diǎn)和設(shè)計(jì)針對(duì)固件程序的污點(diǎn)傳播引擎,存在分析效率低且誤報(bào)率高等問(wèn)題。如karonte和satc使用污點(diǎn)分析技術(shù),但其污染源識(shí)別不準(zhǔn)確導(dǎo)致產(chǎn)生大量待分析的數(shù)據(jù)流,其次它們使用基于angr的符號(hào)執(zhí)行,由于這項(xiàng)技術(shù)本身的局限性導(dǎo)致它們污點(diǎn)分析效率低且假陽(yáng)性高。為此,亟需一種高效、精準(zhǔn)、適應(yīng)性強(qiáng)的物聯(lián)網(wǎng)設(shè)備漏洞檢測(cè)分析方案,以解決現(xiàn)有技術(shù)在物聯(lián)網(wǎng)嵌入式設(shè)備漏洞檢測(cè)中的不足。
技術(shù)實(shí)現(xiàn)思路
1、為此,本發(fā)明提供一種基于敏感目標(biāo)導(dǎo)向的物聯(lián)網(wǎng)設(shè)備脆弱性檢測(cè)方法及系統(tǒng),解決現(xiàn)有漏洞檢測(cè)效率低、誤報(bào)率高、適用性受限的問(wèn)題。
2、按照本發(fā)明所提供的設(shè)計(jì)方案,一方面,提供一種基于敏感目標(biāo)導(dǎo)向的物聯(lián)網(wǎng)設(shè)備脆弱性檢測(cè)方法,包含:
3、對(duì)待檢測(cè)設(shè)備固件進(jìn)行靜態(tài)分析,提取固件中關(guān)鍵信息,所述關(guān)鍵信息包括:外部輸入源參數(shù)解析函數(shù)、請(qǐng)求處理信息、參數(shù)信息、控制信息、敏感函數(shù)及控制流圖;
4、依據(jù)關(guān)鍵信息并通過(guò)反編譯代碼執(zhí)行中的可達(dá)數(shù)據(jù)流獲取待檢測(cè)設(shè)備固件中潛在的敏感目標(biāo)和路徑,并獲取敏感目標(biāo)和路徑對(duì)應(yīng)的基本塊位置;
5、依據(jù)敏感目標(biāo)和路徑對(duì)應(yīng)的基本塊位置對(duì)關(guān)鍵信息中的控制流圖進(jìn)行剪枝操作,并獲取與敏感目標(biāo)和路徑相關(guān)的測(cè)試空間;
6、對(duì)測(cè)試空間中的請(qǐng)求處理信息、參數(shù)信息和控制信息進(jìn)行變異,引導(dǎo)測(cè)試用例執(zhí)行到敏感目標(biāo);并對(duì)測(cè)試空間中的敏感函數(shù)參數(shù)進(jìn)行崩潰性變異,觸發(fā)測(cè)試用例執(zhí)行過(guò)程中待檢測(cè)設(shè)備固件脆弱性并生成測(cè)試結(jié)果。
7、作為本發(fā)明基于敏感目標(biāo)導(dǎo)向的物聯(lián)網(wǎng)設(shè)備脆弱性檢測(cè)方法,進(jìn)一步地,對(duì)待檢測(cè)設(shè)備固件進(jìn)行靜態(tài)分析,包含:
8、基于多特征匹配識(shí)別固件中的參數(shù)解析函數(shù),所述參數(shù)解析函數(shù)為在請(qǐng)求處理函數(shù)中被高頻調(diào)用的函數(shù),所述多特征匹配包括:前后端共享的參數(shù)字符串特征及存儲(chǔ)請(qǐng)求數(shù)據(jù)的結(jié)構(gòu)體變量特征,所述高頻調(diào)用為函數(shù)調(diào)用次數(shù)大于預(yù)設(shè)值的函數(shù)調(diào)用;
9、從請(qǐng)求處理函數(shù)的起始基本塊開(kāi)始,獲取固件二進(jìn)制程序中基本塊及其后繼基本塊信息,基于基本塊的節(jié)點(diǎn)和邊信息構(gòu)建控制流圖,并基于基本塊內(nèi)的函數(shù)調(diào)用提取鍵值及影響控制流的約束信息,所述鍵值為外部輸入源參數(shù)解析函數(shù)的參數(shù);
10、獲取固件中敏感函數(shù),并利用反編譯工具生成固件的反編譯代碼并獲取反編譯代碼中函數(shù)調(diào)用位置映射關(guān)系。
11、作為本發(fā)明基于敏感目標(biāo)導(dǎo)向的物聯(lián)網(wǎng)設(shè)備脆弱性檢測(cè)方法,進(jìn)一步地,基于多特征匹配識(shí)別固件中的參數(shù)解析函數(shù),包含:
12、提取前后端共享的參數(shù)字符串;
13、依據(jù)共享參數(shù)字符串定位請(qǐng)求處理函數(shù)影響范圍內(nèi)以共享參數(shù)字符串為參數(shù)的函數(shù)調(diào)用位置,并判斷函數(shù)內(nèi)是否存在另一個(gè)為變量類型的參數(shù);
14、若存在另一個(gè)為變量類型的參數(shù),統(tǒng)計(jì)請(qǐng)求處理函數(shù)影響范圍內(nèi)存在循環(huán)和類strcmp字符串特征的函數(shù)及函數(shù)調(diào)用次數(shù)并進(jìn)行記錄;
15、依據(jù)函數(shù)調(diào)用次數(shù)對(duì)記錄的函數(shù)進(jìn)行排序,并將函數(shù)調(diào)用頻率最高的函數(shù)作為參數(shù)解析函數(shù)。
16、作為本發(fā)明基于敏感目標(biāo)導(dǎo)向的物聯(lián)網(wǎng)設(shè)備脆弱性檢測(cè)方法,進(jìn)一步地,通過(guò)反編譯代碼執(zhí)行中的可達(dá)數(shù)據(jù)流獲取待檢測(cè)設(shè)備固件中潛在的敏感目標(biāo)和路徑,包含:
17、將參數(shù)解析函數(shù)中的參數(shù)值作為外部參數(shù)輸入源,將敏感函數(shù)的參數(shù)作為敏感函數(shù)調(diào)用sink點(diǎn),并利用靜態(tài)數(shù)據(jù)流分析工具獲取敏感函數(shù)調(diào)用位置及sink點(diǎn)與外部參數(shù)輸入源之間的敏感數(shù)據(jù)流路徑和依賴關(guān)系;
18、對(duì)敏感數(shù)據(jù)流路徑和依賴關(guān)系進(jìn)行分類,依據(jù)分類結(jié)果對(duì)每類敏感數(shù)據(jù)流路徑信息進(jìn)行聚合,將外部參數(shù)輸入源與sink點(diǎn)之間的路徑轉(zhuǎn)化為操作處理函數(shù)起點(diǎn)至sink點(diǎn)之間的路徑,以依據(jù)操作處理函數(shù)起點(diǎn)到sink點(diǎn)之間的路徑獲取敏感目標(biāo)和路徑對(duì)應(yīng)的基本塊位置。
19、作為本發(fā)明基于敏感目標(biāo)導(dǎo)向的物聯(lián)網(wǎng)設(shè)備脆弱性檢測(cè)方法,進(jìn)一步地,將外部參數(shù)輸入源與sink點(diǎn)之間的路徑轉(zhuǎn)化為操作處理函數(shù)起點(diǎn)至sink點(diǎn)之間的路徑,包含:
20、依據(jù)外部參數(shù)輸入源和sink點(diǎn)是否屬于同一個(gè)函數(shù)及兩者與操作處理函數(shù)的關(guān)系,將敏感數(shù)據(jù)流路徑分類為四種分析類型,所述四種分析類型包括:外部參數(shù)輸入源和sink點(diǎn)屬于同一個(gè)函數(shù)且都位于操作處理函數(shù)內(nèi);外部參數(shù)輸入源和sink點(diǎn)不屬于同一個(gè)函數(shù),但外部參數(shù)輸入源位于操作處理函數(shù)內(nèi);外部參數(shù)輸入源和sink點(diǎn)屬于同一個(gè)函數(shù),但兩者都不位于操作處理函數(shù)內(nèi);外部參數(shù)輸入源和sink點(diǎn)不屬于同一個(gè)函數(shù),且外部參數(shù)輸入源不位于操作處理函數(shù)內(nèi);
21、當(dāng)外部參數(shù)輸入源位于起點(diǎn)函數(shù)內(nèi)時(shí),按數(shù)據(jù)流分析路徑進(jìn)行過(guò)程內(nèi)和過(guò)程間路徑探索,當(dāng)外部參數(shù)輸入源不位于起點(diǎn)函數(shù)內(nèi)時(shí),采用交叉引用及廣度優(yōu)先策略遞歸向上尋找操作處理函數(shù),直到遇到起點(diǎn)函數(shù),通過(guò)路徑遞歸探索獲取從起點(diǎn)函數(shù)到sink點(diǎn)之間的完整路徑,以實(shí)現(xiàn)從外部參數(shù)輸入源與sink點(diǎn)路徑到操作處理函數(shù)起點(diǎn)與sink點(diǎn)路徑之間的轉(zhuǎn)化,并在探索中保留路徑中函數(shù)內(nèi)的入口點(diǎn)和出口點(diǎn),以將入口點(diǎn)和出口點(diǎn)位置轉(zhuǎn)化為固件二進(jìn)制程序所在基本塊位置,所述入口點(diǎn)為路徑中對(duì)應(yīng)函數(shù)起始位置,所述出口點(diǎn)為路徑中到達(dá)下一函數(shù)的函數(shù)調(diào)用位置或最終敏感函數(shù)調(diào)用位置。
22、作為本發(fā)明基于敏感目標(biāo)導(dǎo)向的物聯(lián)網(wǎng)設(shè)備脆弱性檢測(cè)方法,進(jìn)一步地,依據(jù)敏感目標(biāo)和路徑對(duì)應(yīng)的基本塊位置對(duì)關(guān)鍵信息中的控制流圖進(jìn)行剪枝操作,包含:
23、依據(jù)敏感目標(biāo)和路徑對(duì)應(yīng)的基本塊位置獲取函數(shù)調(diào)用路徑及每個(gè)函數(shù)中的局部起點(diǎn)和局部目標(biāo)點(diǎn),所述局部起點(diǎn)為函數(shù)起始基本塊,所述局部目標(biāo)點(diǎn)為當(dāng)前函數(shù)進(jìn)入下一個(gè)函數(shù)時(shí)函數(shù)調(diào)用所在的基本塊;
24、基于函數(shù)調(diào)用路徑并通過(guò)遍歷反向控制流圖獲取路徑中每個(gè)函數(shù)內(nèi)局部起點(diǎn)達(dá)到局部目標(biāo)點(diǎn)所有路徑中包含的基本塊,并通過(guò)對(duì)基本塊求取并集來(lái)獲取從外部參數(shù)輸入源到sink點(diǎn)之間途徑的所有基本塊集合及邊緣基本塊,以依據(jù)獲取的基本塊集合來(lái)構(gòu)建剪枝后的控制流圖。
25、作為本發(fā)明基于敏感目標(biāo)導(dǎo)向的物聯(lián)網(wǎng)設(shè)備脆弱性檢測(cè)方法,進(jìn)一步地,對(duì)測(cè)試空間中的請(qǐng)求處理信息、參數(shù)信息和控制信息進(jìn)行變異,包含:
26、針對(duì)每個(gè)請(qǐng)求處理信息及對(duì)應(yīng)的請(qǐng)求處理函數(shù),獲取當(dāng)前處理信息針對(duì)性的測(cè)試數(shù)據(jù),所述測(cè)試數(shù)據(jù)包括針對(duì)性測(cè)試的所有基本塊空間、基本塊鍵值并集及所有約束并集,所述基本塊鍵值為基本塊中外部輸入源參數(shù)解析函數(shù)的參數(shù);
27、將所有約束的并集作為針對(duì)性測(cè)試參數(shù)值變異字典的子集,依據(jù)基本塊空間設(shè)置針對(duì)性測(cè)試的斷點(diǎn)位置,以利用斷點(diǎn)引導(dǎo)測(cè)試程序執(zhí)行到目標(biāo)基本塊;
28、依據(jù)變異策略對(duì)參數(shù)值進(jìn)行變異并探索程序路徑,所述變異策略包括有限范圍內(nèi)數(shù)值變異和/或字符串長(zhǎng)度變異。
29、作為本發(fā)明基于敏感目標(biāo)導(dǎo)向的物聯(lián)網(wǎng)設(shè)備脆弱性檢測(cè)方法,進(jìn)一步地,對(duì)測(cè)試空間中的敏感函數(shù)參數(shù)進(jìn)行崩潰性變異,包含:
30、依據(jù)崩潰性變異策略對(duì)敏感函數(shù)的參數(shù)進(jìn)行變異,所述崩潰性變異策略包括:將參數(shù)設(shè)置為指定長(zhǎng)度字符串和/或?qū)⒄麛?shù)參數(shù)替換為指定數(shù)值和/或在參數(shù)中注入命令執(zhí)行字符串;
31、依據(jù)基本塊空間設(shè)置崩潰性測(cè)試的斷點(diǎn)位置,基于變異后的敏感函數(shù)參數(shù)并利用斷點(diǎn)引導(dǎo)測(cè)試程序執(zhí)行到目標(biāo)基本塊,以觸發(fā)敏感函數(shù)崩潰測(cè)試,執(zhí)行并記錄程序異常檢測(cè)結(jié)果,所述程序異常檢測(cè)包括:棧溢出檢測(cè)、命令執(zhí)行檢測(cè)和請(qǐng)求響應(yīng)檢測(cè)。
32、再一方面,本發(fā)明還提供一種基于敏感目標(biāo)導(dǎo)向的物聯(lián)網(wǎng)設(shè)備脆弱性檢測(cè)系統(tǒng),包含:信息提取模塊、路徑構(gòu)建模塊、程序剪枝模塊和變異測(cè)試模塊,其中,
33、信息獲取模塊,用于對(duì)待檢測(cè)設(shè)備固件進(jìn)行靜態(tài)分析,提取固件中關(guān)鍵信息,所述關(guān)鍵信息包括:外部輸入源參數(shù)解析函數(shù)、請(qǐng)求處理信息、參數(shù)信息、控制信息、敏感函數(shù)及控制流圖;
34、路徑構(gòu)建模塊,用于依據(jù)關(guān)鍵信息并通過(guò)反編譯代碼執(zhí)行中的可達(dá)數(shù)據(jù)流獲取待檢測(cè)設(shè)備固件中潛在的敏感目標(biāo)和路徑,并獲取敏感目標(biāo)和路徑對(duì)應(yīng)的基本塊位置;
35、程序剪枝模塊,用于依據(jù)敏感目標(biāo)和路徑對(duì)應(yīng)的基本塊位置對(duì)關(guān)鍵信息中的控制流圖進(jìn)行剪枝操作,并獲取與敏感目標(biāo)和路徑相關(guān)的測(cè)試空間;
36、變異測(cè)試模塊,用于對(duì)測(cè)試空間中的請(qǐng)求處理信息、參數(shù)信息和控制信息進(jìn)行變異,引導(dǎo)測(cè)試用例執(zhí)行到敏感目標(biāo);并對(duì)測(cè)試空間中的敏感函數(shù)參數(shù)進(jìn)行崩潰性變異,觸發(fā)測(cè)試用例執(zhí)行過(guò)程中待檢測(cè)設(shè)備固件脆弱性并生成測(cè)試結(jié)果。
37、本發(fā)明的有益效果:
38、1、本發(fā)明利用多個(gè)特征識(shí)別出外部輸入的入口點(diǎn),基于反編譯代碼的敏感數(shù)據(jù)流分析來(lái)快速找到受外部輸入源影響的敏感目標(biāo)和路徑,并將它們作為測(cè)試對(duì)象,利用調(diào)試接口收集程序執(zhí)行反饋信息,基于程序剪枝的方法引導(dǎo)程序到達(dá)敏感目標(biāo)并進(jìn)行高效、精準(zhǔn)和適應(yīng)性強(qiáng)的模糊測(cè)試,減少模糊測(cè)試的盲目性,有效解決現(xiàn)有技術(shù)在物聯(lián)網(wǎng)嵌入式設(shè)備漏洞檢測(cè)中的不足,對(duì)嵌入式設(shè)備的固件分析具有良好的適配性。
39、2、本發(fā)明通過(guò)引入更多特征(如循環(huán)結(jié)構(gòu)、字符串比較函數(shù)等),顯著提高外部輸入源識(shí)別的準(zhǔn)確性,能夠更精確地定位外部輸入源;通過(guò)反編譯固件代碼,結(jié)合敏感數(shù)據(jù)流分析,快速識(shí)別外部輸入源(source)和危險(xiǎn)函數(shù)調(diào)用點(diǎn)(sink),并提取潛在的危險(xiǎn)路徑,相比傳統(tǒng)的靜態(tài)分析方法(如符號(hào)執(zhí)行),通過(guò)反編譯代碼分析顯著降低計(jì)算復(fù)雜度,提高分析效率。
40、3、本發(fā)明采用調(diào)試接口收集覆蓋率,基于程序裁剪和高質(zhì)量變異策略引導(dǎo)程序執(zhí)行到指定目標(biāo)并進(jìn)行測(cè)試,不依賴于固件重托管技術(shù),能夠在真實(shí)設(shè)備和仿真環(huán)境中靈活應(yīng)用,具有良好的可擴(kuò)展性;并通過(guò)修剪控制流圖(cfg),只保留與敏感目標(biāo)相關(guān)的路徑,顯著減少了模糊測(cè)試的探索空間。將模糊測(cè)試分為兩個(gè)階段:路徑探索和漏洞觸發(fā)。在路徑探索階段,通過(guò)變異輸入?yún)?shù),引導(dǎo)程序執(zhí)行到敏感目標(biāo);在漏洞觸發(fā)階段,對(duì)危險(xiǎn)參數(shù)進(jìn)行崩潰性變異,觸發(fā)漏洞并生成poc(proof?of?concept概念驗(yàn)證,常指代一段漏洞證明的代碼)。相比傳統(tǒng)的隨機(jī)變異策略,本發(fā)明的分階段策略顯著提高漏洞觸發(fā)的效率。