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

基于圖神經(jīng)網(wǎng)絡的軟件源碼漏洞檢測方法

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

王蘇蘇 徐陽

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

關鍵詞: 圖神經(jīng)網(wǎng)絡; 源碼; 漏洞; 檢測方法

中圖分類號: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 引言

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

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

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

1 軟件源碼漏洞的圖神經(jīng)網(wǎng)絡檢測方法設計

1.1 提取軟件源碼漏洞特征

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

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

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

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

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

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

1.2 基于圖神經(jīng)網(wǎng)絡構建軟件源碼漏洞檢測模型

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

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

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

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

[Sk+1j=εjebjij1SijvKkSkj]? ⑸

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

2 實驗

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

2.1 實驗過程

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

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

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

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

式⑹中,[Precision]為漏洞檢測精準度指標;[TP]為源碼中沒有漏洞的代碼數(shù)量;[FP]為源碼中存在漏洞的代碼數(shù)量;[Recall]為漏洞查全指標;[DN]為[TP]中檢測出的沒有漏洞的代碼數(shù)量;[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]值、基于關系圖卷積網(wǎng)絡的[F1-score]值,以及本文設計的基于圖神經(jīng)網(wǎng)絡[F1-score]值進行對比。實驗結果如表1所示。

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

3 結束語

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

參考文獻(References):

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

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

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

架的C類語言漏洞檢測方法[J].信息網(wǎng)絡安全,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īng)網(wǎng)絡的源碼漏洞檢測方法研究[J].

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

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

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

主站蜘蛛池模板: 国产精品免费p区| 精品国产美女福到在线不卡f| av午夜福利一片免费看| 亚洲中文字幕国产av| 国产啪在线| 中文字幕亚洲无线码一区女同| 国产真实乱了在线播放| 精品欧美一区二区三区在线| 欧美特黄一级大黄录像| 九色综合伊人久久富二代| 97国产精品视频自在拍| 国产xx在线观看| 国产精品播放| 成人午夜久久| 久久亚洲美女精品国产精品| 在线不卡免费视频| 日韩乱码免费一区二区三区| 日本黄色a视频| 欧美久久网| 欧美色综合网站| 国产国语一级毛片在线视频| 青青草国产在线视频| 婷婷色狠狠干| 在线免费不卡视频| 麻豆AV网站免费进入| 狠狠色噜噜狠狠狠狠色综合久| 国产欧美日韩免费| 日本欧美视频在线观看| 午夜爽爽视频| 免费网站成人亚洲| 福利在线一区| 国产激情无码一区二区三区免费| 免费人欧美成又黄又爽的视频| 日韩毛片免费视频| 久久这里只精品热免费99| 9丨情侣偷在线精品国产| 国产成人精品免费av| 欧美国产精品不卡在线观看| 亚洲精品在线观看91| 无码啪啪精品天堂浪潮av| 青青草a国产免费观看| 在线观看亚洲精品福利片| 欧美黄网在线| 亚洲国产成人超福利久久精品| 五月天婷婷网亚洲综合在线| 福利一区在线| 亚洲无码不卡网| 国产精品香蕉在线| 久久综合伊人77777| 国产精品自在拍首页视频8| 超清无码熟妇人妻AV在线绿巨人| 伊人蕉久影院| 免费看黄片一区二区三区| 露脸国产精品自产在线播| 亚洲欧美另类中文字幕| 欧美啪啪网| 国产亚洲成AⅤ人片在线观看| 在线国产欧美| 免费国产黄线在线观看| 一级全免费视频播放| 国产成人综合日韩精品无码不卡| 内射人妻无码色AV天堂| 国产成人免费观看在线视频| 国产性生大片免费观看性欧美| 国产在线观看91精品亚瑟| 国产黑人在线| 天天躁夜夜躁狠狠躁图片| 久久中文电影| 九九热视频精品在线| 国产91蝌蚪窝| 人妻少妇久久久久久97人妻| 国产欧美成人不卡视频| 精品1区2区3区| 欧美高清国产| 欧美一区二区三区不卡免费| 亚洲天堂视频在线观看免费| 爱做久久久久久| 一级在线毛片| 亚洲精品视频免费| 视频国产精品丝袜第一页| 91蜜芽尤物福利在线观看| 精品三级在线|