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