本發(fā)明涉及計算機安全和網(wǎng)絡(luò),具體涉及一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法。
背景技術(shù):
1、隨著網(wǎng)絡(luò)設(shè)備的普及和路由器在日常生活及商業(yè)活動中的關(guān)鍵作用,路由器固件的安全性顯得尤為重要。固件中的安全漏洞可能導致嚴重的信息泄露和網(wǎng)絡(luò)攻擊,因此,及時發(fā)現(xiàn)并修補這些漏洞是網(wǎng)絡(luò)安全領(lǐng)域的重要任務。
2、傳統(tǒng)的漏洞檢測技術(shù),如靜態(tài)分析和符號執(zhí)行,雖然能夠在一定程度上進行漏洞挖掘,但這些方法往往面臨多種挑戰(zhàn)。然而,動態(tài)分析常常受困于路徑爆炸問題,即潛在的執(zhí)行路徑數(shù)量過多,導致分析過程資源消耗巨大,效率低下。
3、為了克服這些問題,近年來研究開始探索使用圖神經(jīng)網(wǎng)絡(luò)(gnn)來分析靜態(tài)分析工具生成的cfg。gnn能有效處理圖結(jié)構(gòu)數(shù)據(jù),通過學習圖中節(jié)點間的復雜關(guān)系來提高漏洞識別的準確性和效率。gnn的引入為固件漏洞的自動檢測提供了新的技術(shù)手段,能夠更好地理解和預測程序行為中潛在的安全問題。然而,將gnn應用于固件漏洞檢測還面臨一些技術(shù)挑戰(zhàn),包括如何有效地從cfg中提取特征,以及如何設(shè)計適應固件分析的gnn架構(gòu),得到的分析結(jié)果是否準確。此外,現(xiàn)有的gnn模型在處理大規(guī)模固件數(shù)據(jù)時還需進一步優(yōu)化其性能和擴展性。
技術(shù)實現(xiàn)思路
1、針對現(xiàn)有技術(shù)中的上述不足,本發(fā)明提供了一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,通過結(jié)合angr的深入動靜態(tài)混合分析能力和gnn的高效圖數(shù)據(jù)處理能力,提高漏洞檢測的自動化水平和準確性,同時解決傳統(tǒng)二進制分析工具在處理復雜固件時遇到的路徑爆炸問題。動靜態(tài)混合分析工具angr能夠生成詳盡的控制流圖(cfg),幫助分析軟件的行為模式。angr的動靜態(tài)混合分析巧妙地結(jié)合了靜態(tài)分析和動態(tài)分析的優(yōu)點。在靜態(tài)層面,angr通過分析程序的二進制代碼來推斷可能的執(zhí)行路徑,無需實際運行程序;在動態(tài)層面,它模擬程序執(zhí)行,跟蹤狀態(tài)變化,并利用運行時信息。angr的符號執(zhí)行引擎允許同時使用具體值和符號值,能夠在分析過程中在具體執(zhí)行和符號執(zhí)行中靈活切換。該混合分析方法使angr能夠在不實際運行程序的情況下全面探索程序的多個執(zhí)行路徑,同時利用動態(tài)信息提高分析的精度和效率,從而實現(xiàn)更深入、更全面的程序分析。
2、為了達到上述發(fā)明目的,本發(fā)明采用的技術(shù)方案為:
3、一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,包括以下步驟:
4、利用靜態(tài)分析工具從路由器固件中生成控制流圖;
5、對控制流圖進行數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)增強處理;
6、利用預訓練的圖神經(jīng)網(wǎng)絡(luò)模型對處理后的控制流圖進行漏洞識別,并對存在漏洞的程序執(zhí)行路徑進行優(yōu)先級排序;
7、基于存在漏洞的程序執(zhí)行路徑排序結(jié)果,利用動靜態(tài)混合分析工具對程序執(zhí)行路徑進行符號執(zhí)行,得到路由器固件漏洞挖掘結(jié)果。
8、作為優(yōu)選地,對控制流圖進行數(shù)據(jù)轉(zhuǎn)換包括:
9、將控制流圖轉(zhuǎn)換為json數(shù)據(jù)格式,記錄控制流圖中每個節(jié)點和邊的指令類型和跳轉(zhuǎn)條件。
10、作為優(yōu)選地,對控制流圖進行數(shù)據(jù)增強處理包括:
11、隨機刪除控制流圖中的節(jié)點;
12、隨機刪除控制流圖中的邊;
13、在控制流圖中添加新的節(jié)點和邊,或修改現(xiàn)有節(jié)點和邊的屬性信息。
14、作為優(yōu)選地,對存在漏洞的程序執(zhí)行路徑進行優(yōu)先級排序包括:
15、根據(jù)不同漏洞類別的優(yōu)先級和圖神經(jīng)網(wǎng)絡(luò)模型輸出的漏洞類別預測概率計算每個節(jié)點的路徑優(yōu)先級得分;
16、根據(jù)每個節(jié)點的路徑優(yōu)先級得分對存在漏洞的程序執(zhí)行路徑進行優(yōu)先級排序。
17、作為優(yōu)選地,每個節(jié)點的路徑優(yōu)先級得分的計算方式為:
18、
19、其中,為節(jié)點i的路徑優(yōu)先級得分,為漏洞類別c的重要性權(quán)重,為節(jié)點i屬于漏洞類別c的預測概率,為漏洞類別總數(shù)。
20、作為優(yōu)選地,利用動靜態(tài)混合分析工具對程序執(zhí)行路徑進行符號執(zhí)行包括:
21、根據(jù)不同的漏洞類型,對不同架構(gòu)下的指令集、操作方式和寄存器配置進行檢測邏輯和約束條件優(yōu)化。
22、作為優(yōu)選地,利用動靜態(tài)混合分析工具對程序執(zhí)行路徑進行符號執(zhí)行時,
23、針對緩沖區(qū)溢出漏洞,對arm固件架構(gòu)和mips固件架構(gòu)的指令特性,監(jiān)控對堆棧的寫入操作,監(jiān)控特定寄存器的變化以發(fā)現(xiàn)返回地址可能被篡改導致的溢出,并驗證堆棧指針是否指向合法的堆棧區(qū)域。
24、作為優(yōu)選地,利用動靜態(tài)混合分析工具對程序執(zhí)行路徑進行符號執(zhí)行時,
25、針對權(quán)限繞過漏洞,在符號執(zhí)行的上下文中,檢測即使在輸入?yún)?shù)被篡改的情況下,權(quán)限檢查函數(shù)也返回授權(quán)成功的標志。
26、作為優(yōu)選地,利用動靜態(tài)混合分析工具對程序執(zhí)行路徑進行符號執(zhí)行時,
27、針對命令注入漏洞,通過檢測外部輸入是否影響命令執(zhí)行邏輯,并監(jiān)控輸入對系統(tǒng)命令執(zhí)行函數(shù)的調(diào)用。
28、作為優(yōu)選地,利用動靜態(tài)混合分析工具對程序執(zhí)行路徑進行符號執(zhí)行時,
29、針對使用后釋放漏洞,在符號執(zhí)行中通過跟蹤內(nèi)存的分配和釋放事件來監(jiān)控是否存在非法引用;具體策略為在每個內(nèi)存分配操作后標記內(nèi)存塊為已分配,在每個內(nèi)存釋放后標記內(nèi)存塊為已釋放,對于每次內(nèi)存訪問檢查相關(guān)內(nèi)存塊的狀態(tài),如果訪問的是已釋放的內(nèi)存塊則觸發(fā)uaf警報。
30、本發(fā)明具有以下有益效果:
31、本發(fā)明基于gnn的動靜態(tài)混合分析方法通過angr生成的cfg獲得詳盡的程序執(zhí)行路徑信息,進一步通過數(shù)據(jù)預處理和增強技術(shù)提升模型的泛化能力和預測準確度,結(jié)合數(shù)據(jù)特點進行針對性的模型訓練和漏洞分類,從而在保持高效率的同時增強檢測的精確度;基于符號執(zhí)行的動態(tài)分析方法,依據(jù)靜態(tài)分析的初步結(jié)果進行剪枝,避免傳統(tǒng)符號執(zhí)行中的路徑爆炸問題,并實現(xiàn)了針對mips和arm類型的固件二進制程序的符號執(zhí)行策略;通過動態(tài)分析和靜態(tài)分析的結(jié)合,全面提升了對路由器固件漏洞檢測的精準度和可靠性。
1.一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,其特征在于,對控制流圖進行數(shù)據(jù)轉(zhuǎn)換包括:
3.根據(jù)權(quán)利要求1所述的一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,其特征在于,對控制流圖進行數(shù)據(jù)增強處理包括:
4.根據(jù)權(quán)利要求1所述的一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,其特征在于,對存在漏洞的程序執(zhí)行路徑進行優(yōu)先級排序包括:
5.根據(jù)權(quán)利要求4所述的一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,其特征在于,每個節(jié)點的路徑優(yōu)先級得分的計算方式為:
6.根據(jù)權(quán)利要求1所述的一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,其特征在于,利用動靜態(tài)混合分析工具對程序執(zhí)行路徑進行符號執(zhí)行包括:
7.根據(jù)權(quán)利要求6所述的一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,其特征在于,利用動靜態(tài)混合分析工具對程序執(zhí)行路徑進行符號執(zhí)行時,
8.根據(jù)權(quán)利要求6所述的一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,其特征在于,利用動靜態(tài)混合分析工具對程序執(zhí)行路徑進行符號執(zhí)行時,
9.根據(jù)權(quán)利要求6所述的一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,其特征在于,利用動靜態(tài)混合分析工具對程序執(zhí)行路徑進行符號執(zhí)行時,
10.根據(jù)權(quán)利要求6所述的一種基于gnn與angr的路由器固件雙階段漏洞自動挖掘方法,其特征在于,利用動靜態(tài)混合分析工具對程序執(zhí)行路徑進行符號執(zhí)行時,