[發(fā)明專利]一種基于程序切片和圖神經(jīng)網(wǎng)絡(luò)的多類漏洞檢測(cè)方法在審
| 申請(qǐng)?zhí)枺?/td> | 202210904602.4 | 申請(qǐng)日: | 2022-07-29 |
| 公開(公告)號(hào): | CN115357904A | 公開(公告)日: | 2022-11-18 |
| 發(fā)明(設(shè)計(jì))人: | 陶傳奇;王明珂;郭虹靜 | 申請(qǐng)(專利權(quán))人: | 南京航空航天大學(xué) |
| 主分類號(hào): | G06F21/57 | 分類號(hào): | G06F21/57;G06F21/56;G06K9/62;G06N3/04;G06N3/08 |
| 代理公司: | 江蘇圣典律師事務(wù)所 32237 | 代理人: | 賀翔 |
| 地址: | 211106 江*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 程序 切片 神經(jīng)網(wǎng)絡(luò) 漏洞 檢測(cè) 方法 | ||
1.一種基于程序切片和圖神經(jīng)網(wǎng)絡(luò)的多類漏洞檢測(cè)方法,其特征在于,步驟如下:
1)從漏洞數(shù)據(jù)庫中采集存在漏洞的循環(huán)代碼,構(gòu)建循環(huán)代碼漏洞數(shù)據(jù)集;
2)根據(jù)循環(huán)代碼段的控制依賴關(guān)系和數(shù)據(jù)依賴關(guān)系生成系統(tǒng)依賴圖,識(shí)別系統(tǒng)依賴圖中的敏感操作語句的節(jié)點(diǎn),以敏感操作語句為起點(diǎn)生成靜態(tài)切片集合,構(gòu)建系統(tǒng)依賴子圖;
3)對(duì)所述靜態(tài)切片集合進(jìn)行規(guī)范化操作,作為系統(tǒng)依賴子圖中對(duì)應(yīng)節(jié)點(diǎn)包含的字段信息;
4)將系統(tǒng)依賴子圖的每個(gè)節(jié)點(diǎn)表示為固定長度的向量,作為系統(tǒng)依賴子圖的節(jié)點(diǎn)的初始節(jié)點(diǎn)表示;
5)訓(xùn)練基于門控圖神經(jīng)網(wǎng)絡(luò)的循環(huán)代碼漏洞挖掘模型,使用Softmax分類器作為漏洞分類器,進(jìn)行漏洞檢測(cè)。
2.根據(jù)權(quán)利要求1所述的基于程序切片和圖神經(jīng)網(wǎng)絡(luò)的多類漏洞檢測(cè)方法,其特征在于,所述步驟1)具體包括:
11)從漏洞數(shù)據(jù)庫中下載漏洞數(shù)據(jù)集,采集包含循環(huán)代碼的代碼文件,并移除所有的注釋以清洗數(shù)據(jù)集;
12)將漏洞數(shù)據(jù)集中易受攻擊的文件拆分為一組函數(shù)集合,刪除頭文件、注釋以及外部定義的全局變量,每個(gè)函數(shù)作為一個(gè)函數(shù)級(jí)循環(huán)代碼樣本;
13)根據(jù)通用缺陷枚舉提供的CWE-ID提取并標(biāo)注每個(gè)樣本的漏洞類型,構(gòu)建循環(huán)代碼漏洞數(shù)據(jù)集。
3.根據(jù)權(quán)利要求1所述的基于程序切片和圖神經(jīng)網(wǎng)絡(luò)的多類漏洞檢測(cè)方法,其特征在于,所述步驟2)具體包括:
21)根據(jù)循環(huán)代碼段的控制依賴關(guān)系和數(shù)據(jù)依賴關(guān)系,生成系統(tǒng)依賴圖;
22)通過啟發(fā)式方法查找系統(tǒng)依賴圖中的敏感語句的節(jié)點(diǎn);
23)根據(jù)數(shù)據(jù)依賴邊和控制依賴邊對(duì)系統(tǒng)依賴圖進(jìn)行裁剪,找到與敏感語句的節(jié)點(diǎn)具有依賴關(guān)系的節(jié)點(diǎn)集,并刪除該節(jié)點(diǎn)集之外的其他節(jié)點(diǎn);
24)將與敏感語句的節(jié)點(diǎn)具有數(shù)據(jù)依賴和控制依賴關(guān)系的節(jié)點(diǎn)集構(gòu)成子圖,作為切片后的代碼段所構(gòu)成的系統(tǒng)依賴子圖;系統(tǒng)依賴子圖中的節(jié)點(diǎn)表示切片代碼段的每行語句,邊表示數(shù)據(jù)依賴或控制依賴關(guān)系。
4.根據(jù)權(quán)利要求1所述的基于程序切片和圖神經(jīng)網(wǎng)絡(luò)的多類漏洞檢測(cè)方法,其特征在于,所述步驟3)具體包括:
對(duì)靜態(tài)切片集合中的特定變量、函數(shù)名進(jìn)行規(guī)范化操作;相同的變量和函數(shù)名映射到相同的值,不同的變量和函數(shù)名則按照出現(xiàn)順序進(jìn)行重命名。
5.根據(jù)權(quán)利要求1所述的基于程序切片和圖神經(jīng)網(wǎng)絡(luò)的多類漏洞檢測(cè)方法,其特征在于,所述步驟4)具體包括:
41)遍歷函數(shù)的系統(tǒng)依賴子圖,提取節(jié)點(diǎn)及其類型的代碼表示;
42)通過Word2Vec實(shí)現(xiàn)節(jié)點(diǎn)代碼表示的嵌入;在系統(tǒng)依賴子圖中節(jié)點(diǎn)表示函數(shù)中的一行代碼語句,對(duì)代碼語句進(jìn)行分詞得到一組token集合,使用Word2Vec為代碼token生成向量表示,計(jì)算這組token的向量的平均值,作為代碼語句的向量表示;
43)使用One-hot Encoding對(duì)節(jié)點(diǎn)類型進(jìn)行編碼,以得到節(jié)點(diǎn)類型的標(biāo)簽表示;
44)將步驟42)得到的代碼語句的向量表示與步驟43)得到的節(jié)點(diǎn)類型的標(biāo)簽表示連接起來,以獲得系統(tǒng)依賴子圖中每個(gè)節(jié)點(diǎn)的初始表示。
6.根據(jù)權(quán)利要求1所述的基于程序切片和圖神經(jīng)網(wǎng)絡(luò)的多類漏洞檢測(cè)方法,其特征在于,所述步驟5)具體包括:
51)將系統(tǒng)依賴子圖的節(jié)點(diǎn)嵌入作為圖模型輸入的初始節(jié)點(diǎn)表示,輸入門控圖神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;門控圖神經(jīng)網(wǎng)絡(luò)通過鄰接矩陣來對(duì)鄰接節(jié)點(diǎn)的信息進(jìn)行聚合,將聚合節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)一起經(jīng)過GRU網(wǎng)絡(luò)得到下一時(shí)刻的當(dāng)前節(jié)點(diǎn);經(jīng)過T時(shí)刻,生成所有節(jié)點(diǎn)的最終的節(jié)點(diǎn)表征;
52)應(yīng)用一維卷積層從步驟51)生成的節(jié)點(diǎn)表征中提取漏洞代碼和正常代碼的圖級(jí)特征,增加不同缺陷類型的代碼之間的差異,使用激活函數(shù)Relu來優(yōu)化一維卷積層的非線性分割能力;
53)利用最大池化層對(duì)輸入特征維度進(jìn)行壓縮,以減少特征向量的維數(shù),提取得到與漏洞更相關(guān)的特征;
54)通過全連接層連接步驟53)得到的所有特征,作為最終的圖級(jí)特征,并將其傳輸給Softmax分類器以進(jìn)行漏洞檢測(cè)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京航空航天大學(xué),未經(jīng)南京航空航天大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210904602.4/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程
- 功能限制程序、安裝程序生成程序和程序存儲(chǔ)介質(zhì)
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序創(chuàng)建裝置,程序創(chuàng)建方法和程序
- 程序生成裝置、程序生產(chǎn)方法及程序
- 程序生成裝置、程序生成程序以及程序生成方法
- 程序生成裝置、程序生成方法及程序生成程序
- 程序開發(fā)支持裝置、程序開發(fā)支持方法以及存儲(chǔ)介質(zhì)
- 程序執(zhí)行輔助裝置、程序執(zhí)行輔助方法及程序執(zhí)行輔助程序
- 程序?qū)φ昭b置、程序?qū)φ辗椒俺绦驅(qū)φ粘绦?/a>
- 網(wǎng)絡(luò)切片的管理方法及系統(tǒng)和存儲(chǔ)介質(zhì)
- 一種確定磁盤快照數(shù)據(jù)切片的引用次數(shù)的方法和裝置
- 一種手動(dòng)厚度可調(diào)的藥材切片裝置
- 一種藥材切片機(jī)的切片厚度手動(dòng)調(diào)節(jié)方法
- 一種網(wǎng)絡(luò)切片的處理方法及接入網(wǎng)網(wǎng)元
- 切片處理方法、系統(tǒng)及切片掃描裝置、切片分析裝置
- 一種用于切片掃描的切片夾持裝置
- 用于切片掃描的切片夾持裝置
- 一種基于網(wǎng)絡(luò)自協(xié)商的動(dòng)態(tài)切片管理方法與裝置
- 網(wǎng)絡(luò)切片管理方法、裝置、網(wǎng)絡(luò)設(shè)備和存儲(chǔ)介質(zhì)
- 硬件神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換方法、計(jì)算裝置、軟硬件協(xié)作系統(tǒng)
- 生成較大神經(jīng)網(wǎng)絡(luò)
- 神經(jīng)網(wǎng)絡(luò)的生成方法、生成裝置和電子設(shè)備
- 一種舌診方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
- 脈沖神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換方法及相關(guān)轉(zhuǎn)換芯片
- 圖像處理方法、裝置、可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)設(shè)備
- 一種適應(yīng)目標(biāo)數(shù)據(jù)集的網(wǎng)絡(luò)模型微調(diào)方法、系統(tǒng)、終端和存儲(chǔ)介質(zhì)
- 用于重構(gòu)人工神經(jīng)網(wǎng)絡(luò)的處理器及其操作方法、電氣設(shè)備
- 一種圖像神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化方法及裝置





