文獻(xiàn)標(biāo)識(shí)碼: A
DOI: 10.19358/j.issn.2097-1788.2022.05.006
引用格式: 潘禺涵,舒遠(yuǎn)仲,洪晟,等. 基于多關(guān)系結(jié)構(gòu)圖神經(jīng)網(wǎng)絡(luò)的代碼漏洞檢測(cè)[J].網(wǎng)絡(luò)安全與數(shù)據(jù)治理,2022,41(5):36-42.
0 引言
軟件漏洞是許多系統(tǒng)攻擊[1]和數(shù)據(jù)泄露事件[2]的原因。在軟件產(chǎn)品開(kāi)發(fā)中,源代碼靜態(tài)分析技術(shù)[3]被廣泛用于檢測(cè)漏洞。傳統(tǒng)的檢測(cè)方法主要通過(guò)一些由人類(lèi)專(zhuān)家定義的度量標(biāo)準(zhǔn)所實(shí)現(xiàn)。這些方法目前取得的成果非常有限,因?yàn)樗鼈儫o(wú)法避免人類(lèi)專(zhuān)家在特征提取方面的繁重工作[4],而且用手工制作的特征來(lái)覆蓋所有漏洞是不切實(shí)際的。深度學(xué)習(xí)由于具有處理大量軟件代碼和漏洞數(shù)據(jù)的強(qiáng)大能力,被引入到代碼漏洞檢測(cè)領(lǐng)域。然而,現(xiàn)有基于深度學(xué)習(xí)的方法中不同形式的代碼表示方式只能保留部分語(yǔ)法或語(yǔ)義信息,這樣就不能覆蓋到每種漏洞并會(huì)限制模型檢測(cè)的效果。其次這些方法所使用的網(wǎng)絡(luò)模型仍存在一些局限性:例如,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是基于序列的模型,不能處理代碼的非序列特征,只能捕獲源代碼文本的淺表結(jié)構(gòu),無(wú)法利用程序結(jié)構(gòu)豐富且定義良好的語(yǔ)義。
為了應(yīng)對(duì)上述的問(wèn)題,本文提出了一種基于多關(guān)系結(jié)構(gòu)圖神經(jīng)網(wǎng)絡(luò)的漏洞檢測(cè)方法。采用多關(guān)系結(jié)構(gòu)圖進(jìn)行代碼的圖形表示,獲取全面的程序結(jié)構(gòu)信息。然后結(jié)合雙向圖神經(jīng)網(wǎng)絡(luò)以及關(guān)系結(jié)構(gòu)圖注意力機(jī)制進(jìn)行表示學(xué)習(xí)得到最終的代碼圖全局特征向量,并使用softmax分類(lèi)器進(jìn)行分類(lèi)。
本文詳細(xì)內(nèi)容請(qǐng)下載:http://ihrv.cn/resource/share/2000005024
作者信息:
潘禺涵1,舒遠(yuǎn)仲1,洪 晟2,羅 斌1,聶云峰1
(1.南昌航空大學(xué) 信息工程學(xué)院,江西 南昌330000;2.北京航空航天大學(xué) 網(wǎng)絡(luò)安全空間學(xué)院,北京100191)

