[發(fā)明專利]一種基于圖對比學習的代碼漏洞檢測方法在審
| 申請?zhí)枺?/td> | 202211598857.9 | 申請日: | 2022-12-14 |
| 公開(公告)號: | CN116204877A | 公開(公告)日: | 2023-06-02 |
| 發(fā)明(設計)人: | 梁策;林瑩;盧興見 | 申請(專利權(quán))人: | 華東師范大學 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06F21/57;G06N3/042 |
| 代理公司: | 上海藍迪專利商標事務所(普通合伙) 31215 | 代理人: | 徐筱梅;張翔 |
| 地址: | 200241 *** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 對比 學習 代碼 漏洞 檢測 方法 | ||
本發(fā)明將圖對比學習思想引入到代碼漏洞檢測任務中,提出了一種基于圖對比學習的代碼漏洞檢測方法,可分為初始節(jié)點表示獲取和基于圖對比學習的代碼漏洞檢測兩個階段。在初始節(jié)點表示獲取中,首先根據(jù)代碼生成抽象語法樹,然后在抽象語法樹的基礎上添加多種代表節(jié)點之間關(guān)系的邊,得到代碼AST擴展圖,最后使用word2vec生成初始節(jié)點表示。在基于圖對比學習的代碼漏洞檢測階段中過,首先通過圖編碼器來生成最終節(jié)點與最終圖表示,然后利用這些表示之間信息的交互判斷代碼是否有漏洞。本發(fā)明使用無監(jiān)督方式訓練模型,因此無需數(shù)據(jù)標簽即可檢測代碼漏洞,在包含多種語言代碼漏洞的開源數(shù)據(jù)集SARD上的6種漏洞檢測的對比實驗驗證了本發(fā)明的有效性。
技術(shù)領域
本發(fā)明屬于代碼漏洞檢測領域,更為具體地講,是一種基于圖對比學習的代碼漏洞檢測方法VDGCL(vulnerability?detection?with?graph?contrastive?Learning)。
背景技術(shù)
1)代碼漏洞檢測
當代碼漏洞是指軟件源代碼中可利用的代碼缺陷,通常由軟件的設計、開發(fā)或配置中的錯誤引起,而這些缺陷可能會被不法分子利用,繞過系統(tǒng)的訪問控制,非法竊取較高的權(quán)限從而任意操縱系統(tǒng),如觸發(fā)特權(quán)命令、訪問敏感信息、冒充身份、監(jiān)聽系統(tǒng)運行等,進而使系統(tǒng)或其應用數(shù)據(jù)的保密性、完整性、可用性、訪問控制等面臨嚴重威脅,因此,急需針對漏洞檢測領域開展系統(tǒng)的研究工作,以便高效及時地發(fā)現(xiàn)軟件系統(tǒng)的漏洞,實時修補,提高網(wǎng)絡空間的安全等級。
代碼漏洞檢測可分為傳統(tǒng)檢測方法、基于機器學習的方法和基于深度學習的方法等,傳統(tǒng)檢測方法在應對大型復雜軟件系統(tǒng)和新型漏洞時表現(xiàn)不佳,需要大量的人工參與,有許多漏洞無法識別,并且誤報率較高,基于機器學習的方法在一定程度上實現(xiàn)了代碼漏洞檢測工作的自動化,但其仍需要人工來抽取數(shù)據(jù)特征、制定漏洞模式,同時也面臨假陽性率較高、數(shù)據(jù)集信息不準確和編程語言多樣性等問題,基于深度學習的方法可以自動識別代碼中的漏洞特征,但是許多方法將原始源代碼轉(zhuǎn)化的平面序列化數(shù)據(jù),忽略了源代碼中跳轉(zhuǎn)、循環(huán)、判斷形成的控制流特征,對代碼中的邏輯和語義信息利用率不高,為了更好地對復雜的代碼結(jié)構(gòu)進行建模,根據(jù)源代碼的結(jié)構(gòu)特征將其抽象為圖結(jié)構(gòu)數(shù)據(jù),然后利用圖神經(jīng)網(wǎng)絡(GraphNeural?Networks,GNN)檢測漏洞,但是這些方法設計的編碼器通常使用疊加的多層圖神經(jīng)網(wǎng)絡,無法更充分利用源代碼中的語義信息。
2)圖對比學習
對比學習思想的提出可以追溯到上世紀90年代,具體方法為選出錨樣本、正例與負例樣本,最大化正例樣本和錨樣本之間的一致性,同時最小化負例樣本與錨樣本之間的一致性,它無需數(shù)據(jù)標簽的參與,因此在許多領域得到了廣泛應用,例如在推薦系統(tǒng)中,CL4SRec對用戶交互序列進行編碼,最大化不同視圖之間同一用戶交互序列的一致性,最小化不同視圖之間不同用戶交互序列的一致性,在自然語言處理中,VarCLR將源代碼變量名作為輸入,最大化相似變量名之間的一致性,最大化不相似變量名之間一致性,在計算機視覺中,DIM利用“局部信息與全局信息一致性最大化”的思想進行對比學習,而DGI將這種思想引入到圖領域,利用局部信息(節(jié)點表示)與全局信息(圖表示)的一致性最大化進行對比學習操作,并在節(jié)點分類、圖分類以及鏈接預測任務中取得了良好效果,但是對比學習在函數(shù)級漏洞檢測領域尚無人使用。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于圖對比學習的代碼漏洞檢測方法,目標是在無標簽的前提下訓練模型并檢測代碼漏洞,本發(fā)明首次在代碼漏洞檢測任務中引入圖對比學習,利用局部信息與全局信息一致性最大化來學習圖數(shù)據(jù)特征,并通過實驗驗證了VDGCL的有效性。
實現(xiàn)本發(fā)明目的具體技術(shù)方案是:
一種基于圖對比學習的代碼漏洞檢測方法,可分為初始節(jié)點表示獲取和基于圖對比學習的代碼漏洞檢測兩個階段;包括以下步驟:
初始節(jié)點表示獲取(S1-S3):
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華東師范大學,未經(jīng)華東師范大學許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211598857.9/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





