999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于圖神經網絡的軟件源碼漏洞檢測方法

2023-06-15 17:49:09王蘇蘇徐陽
計算機時代 2023年6期

王蘇蘇 徐陽

摘? 要: 常規的漏洞檢測方法通過激活函數的方式,標識出存在漏洞的代碼,少有對代碼中的詞義進行分析,導致檢測效果不佳。因此,設計了基于圖神經網絡的軟件源碼漏洞檢測方法。提取軟件源碼漏洞特征,針對漏洞特征進行詞義分析。利用圖神經網絡構建軟件源碼漏洞檢測模型,對源碼漏洞做二次檢測,去掉重讀的源碼,得到正確的代碼。采用對比實驗,驗證了該方法的檢測效果更佳。

關鍵詞: 圖神經網絡; 源碼; 漏洞; 檢測方法

中圖分類號:TN919.31? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2023)06-29-04

Software source code vulnerability detection method based on graph neural network

Wang Susu, Xu Yang

(Jiangsu Shipping College, Nantong, Jiangsu 226009, China)

Abstract: The conventional methods of vulnerability detection identify the code with vulnerability by means of activation function, and seldom analyze the meaning of the words in the code, which results in poor detection results. Therefore, a software source code vulnerability detection method based on graph neural network is designed. The software source code vulnerability features are extracted and their word meaning is analyzed. The software source code vulnerability detection model is constructed using graph neural network, and the source code vulnerability is detected twice to remove the reread source code and get the correct code. Comparison experiments are used to verify that the method has better detection results.

Key words: graph neural network; source code; vulnerability; detection method

0 引言

軟件源碼漏洞是目前亟待解決的數據安全問題,設計相應的檢測方法勢在必行。在源碼出現漏洞時,應用程序受到源碼漏洞的影響,可以使攻擊者在不與用戶作出任何交互的條件下自行應答,從而出現信息泄露的問題。

針對軟件源碼漏洞問題,研究人員設計了多種解決方案。其中,基于CNN-GAP[1]可解釋性模型的方法和基于關系圖卷積網絡的方法應用較為廣泛。基于CNN-GAP可解釋性模型的方法主要是通過CAM類的激活函數,對代碼存在的漏洞情況進行標記,并利用CNN-GAP(卷積神經網絡-全局平均池化)模型,對已經標記漏洞進行檢測,檢測完成之后將正確代碼輸出,將存在漏洞的代碼進行處理,保證漏洞檢測的精準度。基于關系圖卷積網絡的方法主要是利用RGCN(關系圖卷積網絡)模型[2],通過訓練預測源碼中的漏洞,在真實的代碼漏洞上進行測試,由此提高漏洞檢測精準度。以上兩種方法雖然在一定程度上提高了漏洞檢測的精準度,但是CNN-GAP模型并未對其他代碼進行檢測,相關語義特征與漏洞特征存在混淆,影響了檢測效果;RGCN模型訓練的漏洞雖然較為準確,但是其訓練時間較長,無法適應源碼漏洞檢測環境,導致檢測效果不佳。

圖神經網絡是一種拓撲圖結構的數據,能夠深入挖掘數據特征,其對于網絡數據安全檢測具有重要作用。因此,本文利用了圖神經網絡,設計了軟件源碼漏洞檢測方法。

1 軟件源碼漏洞的圖神經網絡檢測方法設計

1.1 提取軟件源碼漏洞特征

漏洞存在于計算機系統中,硬件、軟件、協議等方面的漏洞,均會導致系統存在安全缺陷。源碼作為程序語言,可以通過詞語映射實數向量,將所有語義反映到連續向量空間中,由此檢測出源碼中存在的語義漏洞。由于程序語言的詞向量與普通詞向量不同,本文將源碼中的語言利用向量化表示。本文從源碼的上下文考量,量化源碼輸入路徑,同時增加與漏洞檢測相關的數據信息,利用注意力機制,將上下文源碼數據融合到一起,用一個單一的向量表示,從而提取出源碼漏洞特征。對于每條源碼輸入路徑,將其轉化為圖神經網絡作為輸入數值。輸入路徑中的每一個節點都存在一個源碼詞語映射,由此構成了一個大型的節點源碼語料庫。在源碼語料庫上進行向量表示,得到詞語與其對應向量的映射關系,公式如下:

[Li=min1ij=1ik-logHNodeMk|NodeMj]? ⑴

式⑴中,[Li]為源碼詞語與向量之間的關系表達式;[NodeMk]為源碼輸入路徑的第k個詞向量;[NodeMj]為源碼輸入路徑的第j個詞向量;[H{NodeMk|NodeMj}]為節點損失函數。為了將源碼中存在的漏洞檢測出來,本文將源碼輸入路徑中的漏洞信息整合到圖神經網絡中。任意一條源碼輸入路徑中,通過一個或多個漏洞源碼信息,則增加該條路徑的漏洞權重。路徑中任意一個詞向量P={NodeMi,NodeMi+1,…,NodeMn},經過漏洞代碼存在的漏洞節點之后,相同的權重賦予多個漏洞節點上,而這條路徑上并未賦予任何權重,通過是否增加權重來判別漏洞源碼輸入路徑與正常源碼輸入路徑。從漏洞源碼輸入路徑中,對每一個向量元素進行特征提取,通過圖神經網絡更新路徑中涉及的每個權重參數,組成一個完整的漏洞特征,其表達式如下:

[Ti=?(K?Xij+n-1+B)]? ⑵

[Ti1=tanh (K?Ti)]? ⑶

式⑵~式⑶中,[Ti]為漏洞源碼輸入路徑中每一個漏洞的特征參數;[?]為激活函數;[K]為權重的權值矩陣;[Xij+n-1]為漏洞源碼輸入路徑的向量元素;[B]為偏置因子;[Ti1]為通過圖神經網絡重新組成的漏洞特征;[tanh]為非線性激活函數。在源碼語言領域中,漏洞特征的提取,使源碼漏洞詞向量更加明顯,將漏洞特征輸入到檢測模型中,模型能夠對漏洞詞向量進行專注檢測,更有利于提高檢測效果。

1.2 基于圖神經網絡構建軟件源碼漏洞檢測模型

使用本文設計的檢測方法,主要利用程序語言詞向量來提取源碼漏洞特征。此種特征提取與傳統方法漏洞特征提取不同,受到主觀性因素的影響,出現上下文丟失的現象。本文將漏洞特征提取精確到每個源碼路徑的每個詞向量上,漏洞特征提取效果更佳。將漏洞特征提取之后,本文選擇圖神經網絡檢測模型來檢測程序漏洞。圖神經網絡分類情況如圖1所示。

如圖1所示,本文選用的圖神經網絡中包括了時空網絡、注意力網絡、生成網絡、卷積網絡等內容。上文中已經利用圖注意力網絡,對漏洞特征進行針對性提取。在此基礎上,本文隨機選取了一個漏洞特征向量,隨機游走在源碼輸入路徑中,步長為5,測試次數為100。游走的過程中,碰到的其他漏洞特征向量節點定義為“鄰居”。對“鄰居”進行隨機采集,采集到的“鄰居”節點的特征向量值小于隨機漏洞特征向量值,則重新采集,否則將其與隨機漏洞特征向量進行聚合。聚合公式如下:

[Skj←?K?MEANSk-1jSk-1j,?j∈bj] ⑷

式⑷中,[Skj]為聚合后的漏洞信息;[MEAN]為聚合器聚合算法;[Sk-1j]為“鄰居”的漏洞信息;[bj]為“鄰居”的特征向量size值。將融合后的漏洞信息在圖神經網絡上游走,圖節點不斷更新直至穩定的過程中,根據遞歸函數施加相應的檢測約束,并將實時更新的圖節點進行卷積層堆疊表示[3]。在新的漏洞信息不變,圖節點達到穩定的狀態下,獲取到了圖中更高階的鄰域數據,將此數據作為圖神經網絡檢測模型的檢測數據,則構建出的檢測模型表達式如下:

[Sk+1j=εjebjij1SijvKkSkj]? ⑸

式⑸中,[Sk+1j]為漏洞檢測模型表達式;[Sij]為節點i在j層的特征信息;[ν]為歸一化因子;[Kk]為節點k的直接權重;[ε]為激活函數。通過該檢測模型的訓練,每個漏洞特征節點將自身的特征信息傳遞給鄰域節點,從而將漏洞特征進一步聚合并融合。再通過激活函數,將圖神經網絡中的漏洞節點信息進行變換,增強模型的檢測能力。無論漏洞節點與鄰域節點如何變化,最終的節點中心長度保持一致。在多級權重實時更新的條件下,聚合的信息特征也逐一采集到圖節點中,由此獲取的表征數據更加真實,最大限度地提高了源碼漏洞檢測效果。

2 實驗

為了驗證本文設計的檢測方法是否具有實用價值,本文對上述方法進行了實驗分析。最終的實驗結果以基于CNN-GAP可解釋性模型的方法、基于關系圖卷積網絡的方法,以及本文設計的基于圖神經網絡的方法進行對比的形式呈現。具體實驗過程及實驗結果如下所示。

2.1 實驗過程

在進行實驗之前,本文選擇GeForce1080GPU的實驗平臺[4],對本文設計的檢測模型進行訓練。模型訓練過程中,將源碼向量化,每個代碼的維度為100,最長代碼為200個詞。本文隨機選取了X源碼數據集,該數據集中包含了多個代碼,存在漏洞的代碼較多,漏洞類型較多,更符合實驗環境。為了保證實驗的真實性,本文針對每一類型的漏洞進行輪流多次訓練,將穩定輸出的數據作為最終的實驗結果。其中,X源碼數據集中的CAD源碼較為特殊,分隔符樣式不同,檢測較為困難,本文將CAD源碼進行歸一化處理,處理完成的代碼形式如圖2、圖3所示。

如圖2、圖3所示,源碼初始格式較為復雜,很難進行漏洞檢測,經過處理之后,格式相對簡單,可以與其他源碼進行同時檢測,保證檢測效率。源碼檢測流程如圖4所示。

如圖4所示,在進行源碼漏洞檢測的過程中,經過三次檢測,分別為源碼檢測、二次檢測、詞法檢測,能夠將源碼中存在的漏洞有效地檢測出來。檢測完成的代碼中存在的重復代碼進行清除,保留下來的代碼即為正確代碼。本次實驗引進[Precision]、[Recall]、[F1-score]等指標,對漏洞檢測效果進行判定。[Precision]、[Recall]、[F1-score]等指標的計算公式如下:

[Precision=TPTP+FPRecall=TPTP+dnF1-score=2×(Precision×Recall)Precision+Recall]? ⑹

式⑹中,[Precision]為漏洞檢測精準度指標;[TP]為源碼中沒有漏洞的代碼數量;[FP]為源碼中存在漏洞的代碼數量;[Recall]為漏洞查全指標;[DN]為[TP]中檢測出的沒有漏洞的代碼數量;[F1-score]為[Precision]與[Recall]的平均值,該值越趨近于100%,漏洞檢測的效果越好。本文將[Precision]、[Recall]、[F1-score]等值進行計算,對檢測方法的檢測效果進行綜合判定。

2.2 實驗結果

在上述實驗條件下,本文隨機選取了三種軟件源碼,分別為CAD、Hide、Show[5,6]。將三種軟件源碼利用檢測模型進行漏洞檢測。其中,[Precision]為查準率指標,[Recall]為查全率指標。[Precision]與[Recall]取平均值即為[F1-score],該值越高,軟件源碼漏洞檢測效果越趨近于完美。在其他條件均一致的情況下,將基于CNN-GAP可解釋性模型的[F1-score]值、基于關系圖卷積網絡的[F1-score]值,以及本文設計的基于圖神經網絡[F1-score]值進行對比。實驗結果如表1所示。

如表1所示,CAD、Hide、Show等三種軟件源碼中的漏洞源碼數量不同,漏洞檢測效果取決于[F1-score]值的大小,當[F1-score]值=100%時,證明該檢測方法的檢測精準度與召回率均為100%,能夠完美地檢測出源碼中的漏洞。在其他條件均一致的情況下,基于CNN-GAP可解釋性模型方法的[F1-score]值相對較低,在85.70%~87.70%的范圍內變化,主要原因在于源碼的語法信息、結構信息的語義特征與漏洞特征混合在了一起,無法準確地辨別源碼漏洞,導致檢測效果不佳,亟需進一步改進。基于關系圖卷積網絡方法的[F1-score]值有所提升,在90.16%~91.90%范圍內變化,主要原因在于源碼中的代碼數據存在注意力依賴,雖然能夠找出源碼存在的漏洞,但是檢測時間相應增加,在相同的時間內無法找出對應的漏洞。而本文設計的基于圖神經網絡方法的[F1-score]值相對較高,在99.34%~100.00%的范圍內變化,Show源碼的漏洞檢測[F1-score]值達到了100%的指標,漏洞檢測效果趨近于完美,符合本文研究目的。

3 結束語

本文在圖神經網絡下,設計了軟件源碼漏洞檢測方法。本文設計的檢測方法主要從源碼漏洞特征的角度考慮,利用[F1-score]值提高了檢測效果。與其他檢測方法相同的是,均利用了漏洞特征與檢測模型,不同的是本文設計的方法能夠對源代碼進行歸一化處理,更加準確地找出存在漏洞的代碼,對于網絡技術的發展具有重要意義。

參考文獻(References):

[1] 鄒權臣,張濤,吳潤浦,等.從自動化到智能化:軟件漏洞挖掘

技術進展[J].清華大學學報(自然科學版),2018,58(12):1079-1094

[2] 朱麗娜,馬銘芮,朱東昭.基于圖神經網絡和通用漏洞分析框

架的C類語言漏洞檢測方法[J].信息網絡安全,2022,22(10):59-68

[3] 李元誠,崔亞奇,呂俊峰,等.開源軟件漏洞檢測的混合深度

學習方法[J].計算機工程與應用,2019,55(11):52-59

[4] LIN Guanjun, ZHANG Jun, LUO Wei, et al. POSTER:

Vulnerability discovery with function representation learning from unlabeled projects[C].The 2017 ACMSIGSAC Conference on Computer and Communications Security, New York, USA,2017:2539-2541

[5] 宋子韜,胡勇.基于圖神經網絡的源碼漏洞檢測方法研究[J].

通信技術,2022,55(5):640-645

[6] 段旭,吳敬征,羅天悅,等.基于代碼屬性圖及注意力雙向

LSTM的漏洞挖掘方法[J].軟件學報,2020,31(11):3404-3420

主站蜘蛛池模板: 香蕉久人久人青草青草| 视频一本大道香蕉久在线播放| 免费在线视频a| 亚洲色婷婷一区二区| 凹凸国产分类在线观看| 国产69精品久久久久妇女| 国产一区二区网站| 91成人免费观看在线观看| 激情综合激情| 天堂成人在线| 2020国产免费久久精品99| 国产一级妓女av网站| 久久久精品国产亚洲AV日韩| 欧美国产日韩在线| 成人va亚洲va欧美天堂| 国产精品主播| 国产十八禁在线观看免费| 国产剧情一区二区| 久久久国产精品无码专区| 国产毛片高清一级国语 | 999福利激情视频| 亚洲欧美成人在线视频| 国产欧美日韩综合一区在线播放| 日韩最新中文字幕| 精品天海翼一区二区| 国产人成在线视频| 国产18在线| 婷婷丁香在线观看| 91成人在线免费观看| 亚洲an第二区国产精品| 国产jizz| 国产av剧情无码精品色午夜| 日本黄色不卡视频| 成人综合久久综合| 日韩精品少妇无码受不了| 一区二区三区在线不卡免费| 激情无码字幕综合| 日韩一区精品视频一区二区| 亚洲AV永久无码精品古装片| 精品一区二区三区自慰喷水| 亚洲天堂久久| 国产女人在线观看| 免费在线a视频| 久久久久人妻精品一区三寸蜜桃| 亚洲天堂视频在线观看| 久久亚洲国产最新网站| 亚洲欧美另类色图| 亚洲天堂2014| 国产精品私拍99pans大尺度| 色综合日本| 欧美成人精品一区二区| 一区二区三区精品视频在线观看| 欧美日韩在线第一页| 99精品在线看| 2021国产精品自产拍在线| 四虎精品国产永久在线观看| 又粗又大又爽又紧免费视频| 99久久国产综合精品2020| 久久久黄色片| 99久久国产综合精品2020| 国产性生大片免费观看性欧美| 26uuu国产精品视频| 久久久久久久久久国产精品| 亚洲国产AV无码综合原创| 国产精品国产主播在线观看| 国产精品黄色片| 国内精品手机在线观看视频| 国产乱子伦精品视频| 一区二区在线视频免费观看| 亚洲精品国产综合99久久夜夜嗨| 91色在线视频| 亚洲天堂网在线视频| 97久久免费视频| 国产精品主播| 婷婷色婷婷| 日本欧美一二三区色视频| 日本免费福利视频| 国产免费a级片| 青青青国产视频| 久久精品人人做人人综合试看| 女同久久精品国产99国| 精品无码专区亚洲|