本公開涉及信息安全檢測,具體涉及一種基于圖表示和稀疏transformer的高階漏洞檢測方法及系統。
背景技術:
1、本部分的陳述僅僅是提供了與本公開相關的背景技術信息,不必然構成在先技術。
2、在當今高度互聯的數字化社會中,信息安全面臨著日益復雜和普遍的威脅。漏洞檢測是信息安全管理中至關重要的一環,及時發現和修補漏洞可以有效降低系統遭受攻擊的風險,保護關鍵數據和系統的安全性和完整性。然而,由于軟件復雜性和漏洞種類繁多,漏洞檢測是一項具有挑戰性的工作。
3、現有的漏洞檢測方法大部分是對低階漏洞進行檢測的,依賴于其中的數據流、控制流等關系,通過學習源代碼的結構關系來進行漏洞檢測。一個數據在傳播過程中,經過了持久化存儲,當它到達一個安全敏感節點時,導致缺乏與源節點數據流、控制流的依賴關系,產生的漏洞稱為高階漏洞。對于這種漏洞檢測過程是繁瑣的,并且對于其檢測的方法有限,準確性也不高。因此,將高階漏洞轉化為低階漏洞,使用低階漏洞的檢測方法對其進行檢測會更加方便。使用全注意力?transformer的方法可能需要數小時到數周的時間才能揭示漏洞分析所需的上下文信息,這大大增加時間性能的消耗,并且產生高階漏洞的源代碼程序有很長的序列。
技術實現思路
1、本公開為了解決上述問題,提出了一種基于圖表示和稀疏transformer的高階漏洞檢測方法及系統,通過具有稀疏注意力的transformer處理長序列代碼,同時在使用稀疏注意力的transformer的基礎上,結合句子剪枝算法,通過句子剪枝的可視化提高模型的效率和模型的可解釋性。
2、根據一些實施例,本公開采用如下技術方案:
3、一種基于圖表示和稀疏transformer的高階漏洞檢測方法,包括:
4、獲取模塊程序源代碼的字符流數據;
5、對所述字符流數據進行詞法分析,將全局變量或用戶控制的輸入的變量持久化存儲的變量信息保存到數據表中;
6、生成每個源代碼的代碼屬性圖,通過查找數據表持久化存儲的變量信息,生成程序之間的持久化存儲數據流關系;
7、將持久化存儲數據流關系輸入gnn模塊中學習圖中節點的信息,得到節點的嵌入向量;
8、將節點的嵌入向量再輸入到具有稀疏注意力transformer模塊中,利用基于閾值的剪枝句子修剪算法在transformer中逐層修剪句子,并進行注意力稀疏化,自適應地刪除不相關句子,將高階漏洞轉化為低階漏洞。
9、根據一些實施例,本公開采用如下技術方案:
10、一種基于圖表示和稀疏transformer的高階漏洞檢測系統,包括:
11、數據獲取模塊,用于獲取模塊程序源代碼的字符流數據;
12、預處理模塊,用于對所述字符流數據進行詞法分析,將全局變量或用戶控制的輸入的變量持久化存儲的變量信息保存到數據表中;
13、特征提取模塊,用于生成每個源代碼的代碼屬性圖,通過查找數據表持久化存儲的變量信息,生成程序之間的持久化存儲數據流關系;將持久化存儲數據流關系輸入gnn模塊中學習圖中節點的信息,得到節點的嵌入向量;
14、剪枝模塊,用于將節點的嵌入向量再輸入到具有稀疏注意力transformer模塊中,利用基于閾值的剪枝句子修剪算法在transformer中逐層修剪句子,并進行注意力稀疏化,自適應地刪除不相關句子,將高階漏洞轉化為低階漏洞。
15、根據一些實施例,本公開采用如下技術方案:
16、一種非暫態計算機可讀存儲介質,所述非暫態計算機可讀存儲介質用于存儲計算機指令,所述計算機指令被處理器執行時,實現所述的一種基于圖表示和稀疏transformer的高階漏洞檢測方法。
17、根據一些實施例,本公開采用如下技術方案:
18、一種電子設備,包括:處理器、存儲器以及計算機程序;其中,處理器與存儲器連接,計算機程序被存儲在存儲器中,當電子設備運行時,所述處理器執行所述存儲器存儲的計算機程序,以使電子設備執行實現所述的一種基于圖表示和稀疏transformer的高階漏洞檢測方法。
19、與現有技術相比,本公開的有益效果為:
20、本公開的一種基于圖表示和稀疏transformer的高階漏洞檢測方法,現有的漏洞檢測方法通常是對低階漏洞進行檢測,沒有考慮到高階漏洞這種復雜的情況,同時使用gnn和transformer,將兩種方法的優點結合起來,gnn擅長處理圖結構數據,能夠有效捕捉節點之間的關系和結構信息。transformer具有強大的全局信息捕獲能力,能夠關注圖中任意兩個節點之間的關系。將兩者結合后,可以更好地利用圖結構數據的特性,同時通過transformer的全局建模能力提升對復雜關系的理解和預測準確性,大大減少檢測的復雜程度,提高檢測的準確性。
21、本公開的一種基于圖表示和稀疏transformer的高階漏洞檢測方法,使用具有稀疏注意力的transformer,通過減少注意力機制中需要計算的元素數量來提高計算效率和處理能力。這對于處理長序列尤其有用,因為標準注意力機制的計算復雜度是序列長度的平方,而稀疏注意力可以減少這個復雜度。稀疏注意力能夠減少不相關信息的干擾,提升模型的注意力集中度和對重要信息的敏感性。這在提高模型準確性和穩定性方面起到了積極作用。
22、本公開的一種基于圖表示和稀疏transformer的高階漏洞檢測方法,在具有稀疏注意力的transformer學習句子剪枝,由于并非輸入序列中的所有句子都是模型性能所必需的,通過刪除不太相關的標記可以顯著減少模型推理期間的整體計算量。句子剪枝能夠減少不相關信息的干擾,增強模型在面對噪聲數據或不完整數據時的魯棒性。這使得模型在實際應用中更具穩定性和可靠性。
1.一種基于圖表示和稀疏transformer的高階漏洞檢測方法,其特征在于,包括:
2.如權利要求1所述的一種基于圖表示和稀疏transformer的高階漏洞檢測方法,其特征在于,對所述字符流數據進行詞法分析,從左到右掃描源程序字符流,在掃描過程中,忽略空白字符和注釋,轉換為根據預定義的詞法規則有意義單詞符號,包括關鍵字、標識符、運算符、分隔符和常量。
3.如權利要求1所述的一種基于圖表示和稀疏transformer的高階漏洞檢測方法,其特征在于,建立新的數據表,當掃描到標識符時,與數據表中存儲的變量進行對比,如果數據表已經存在該變量的信息,只需將它出現的位置,在添加到數據表中;
4.如權利要求1所述的一種基于圖表示和稀疏transformer的高階漏洞檢測方法,其特征在于,使用開源工具joern生成每個源代碼的代碼屬性圖,包括抽象語法樹、控制流圖、數據流圖或程序依賴圖以及內部函數之間的調用關系。
5.如權利要求1所述的一種基于圖表示和稀疏transformer的高階漏洞檢測方法,其特征在于,將得到的圖結構通過node2vec生成每個節點的初始向量,使用鄰接矩陣來表示圖結構,捕捉圖形中的節點和邊的相關性,通過查找數據表得到持久化存儲變量的信息,得到先后執行關系,每兩個變量之間形成一條數據流邊,如果其中存在安全敏感操作,這樣就形成一條污點傳播鏈,污點傳播鏈表示持久化存儲變量進行的污點傳播數據流,生成這個圖的鄰接矩陣。
6.如權利要求1所述的一種基于圖表示和稀疏transformer的高階漏洞檢測方法,其特征在于,將圖結構輸入到gnn中,將鄰接矩陣乘上初始向量矩陣,得到經過一層gnn消息傳遞后更新的節點向量表示,設置2層gnn,設hl為l層節點信息矩陣,hl+1=w*hl,w為圖的鄰接矩陣。
7.如權利要求1所述的一種基于圖表示和稀疏transformer的高階漏洞檢測方法,其特征在于,源程序的每一句代碼用圖結構中的一個節點表示,將經過2層gnn的節點向量輸入到具有稀疏注意力的transformer?中,在transformer的稀疏注意力層采用局部注意力,給定設定窗口大小的滑動窗口,輸入語句數量為n的源代碼表示的向量,滑動窗口以當前步中窗口大小覆蓋的每個單元與下一步中的所有窗口覆蓋的單元連接,獲取關注的信息。
8.一種基于圖表示和稀疏transformer的高階漏洞檢測系統,其特征在于,包括:
9.一種非暫態計算機可讀存儲介質,其特征在于,所述非暫態計算機可讀存儲介質用于存儲計算機指令,所述計算機指令被處理器執行時,實現如權利要求1-7任一項所述的一種基于圖表示和稀疏transformer的高階漏洞檢測方法。
10.一種電子設備,其特征在于,包括:處理器、存儲器以及計算機程序;其中,處理器與存儲器連接,計算機程序被存儲在存儲器中,當電子設備運行時,所述處理器執行所述存儲器存儲的計算機程序,以使電子設備執行實現如權利要求1-7任一項所述的一種基于圖表示和稀疏transformer的高階漏洞檢測方法。