[發(fā)明專利]一種源代碼漏洞檢測(cè)方法、裝置和系統(tǒng)有效
申請(qǐng)?zhí)枺?/td> | 202310823880.1 | 申請(qǐng)日: | 2023-07-06 |
公開(公告)號(hào): | CN116663019B | 公開(公告)日: | 2023-10-24 |
發(fā)明(設(shè)計(jì))人: | 索雯琪;胡雨濤;吳月明;李珍;鄒德清 | 申請(qǐng)(專利權(quán))人: | 華中科技大學(xué) |
主分類號(hào): | G06F21/57 | 分類號(hào): | G06F21/57;G06F21/56;G06F18/214;G06F18/20;G06N3/0464;G06N3/08;G06N7/01 |
代理公司: | 華中科技大學(xué)專利中心 42201 | 代理人: | 尹麗媛 |
地址: | 430074 湖北*** | 國(guó)省代碼: | 湖北;42 |
權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
摘要: | |||
搜索關(guān)鍵詞: | 一種 源代碼 漏洞 檢測(cè) 方法 裝置 系統(tǒng) | ||
1.一種源代碼漏洞檢測(cè)方法,其特征在于,包括:
訓(xùn)練階段:
S1:針對(duì)訓(xùn)練集中代碼片段,通過靜態(tài)分析獲取對(duì)應(yīng)的增強(qiáng)抽象語(yǔ)法樹AST;
S2:將所述訓(xùn)練集中代碼片段的增強(qiáng)AST對(duì)應(yīng)的狀態(tài)概率矩陣轉(zhuǎn)化為灰度圖像;
S3:利用所述訓(xùn)練集中代碼片段對(duì)應(yīng)的灰度圖像訓(xùn)練原始CNN模型,得到目標(biāo)CNN模型;
檢測(cè)階段:
S4:將待檢測(cè)源代碼按照S1和S2中的步驟轉(zhuǎn)化為其增強(qiáng)AST對(duì)應(yīng)的狀態(tài)概率矩陣的灰度圖像;
S5:將所述待檢測(cè)源代碼對(duì)應(yīng)的灰度圖像輸入所述目標(biāo)CNN模型,得到漏洞檢測(cè)結(jié)果。
2.如權(quán)利要求1所述的源代碼漏洞檢測(cè)方法,其特征在于,所述S1包括:
通過靜態(tài)分析生成所述訓(xùn)練集中代碼片段的AST;
對(duì)所述訓(xùn)練集中代碼片段的AST進(jìn)行控制流和數(shù)據(jù)流的添加,得到所述訓(xùn)練集中代碼片段的增強(qiáng)AST。
3.如權(quán)利要求2所述的源代碼漏洞檢測(cè)方法,其特征在于,所述增強(qiáng)AST規(guī)定如下類型表示數(shù)據(jù)流和控制流的邊:
父子關(guān)系:根據(jù)AST規(guī)則,將非終端結(jié)點(diǎn)連接至其所有子結(jié)點(diǎn);
兄弟關(guān)系:將結(jié)點(diǎn)連接至其兄弟結(jié)點(diǎn);
下一標(biāo)識(shí):將終端結(jié)點(diǎn)連接至下一個(gè)終端節(jié)點(diǎn);
數(shù)據(jù)流:連接一個(gè)變量使用的結(jié)點(diǎn)及其下一次出現(xiàn)的結(jié)點(diǎn);
控制流:表示if、for、while語(yǔ)句控制流的邊和表示語(yǔ)句順序的邊。
4.如權(quán)利要求1所述的源代碼漏洞檢測(cè)方法,其特征在于,所述S2包括:
S21:統(tǒng)計(jì)增強(qiáng)AST中每個(gè)子樹一條邊連接的兩個(gè)節(jié)點(diǎn)的信息,得出一個(gè)狀態(tài)轉(zhuǎn)移為另一個(gè)狀態(tài)的次數(shù);通過統(tǒng)計(jì)所有狀態(tài)轉(zhuǎn)移情況,建立一個(gè)基于AST的馬爾可夫鏈模型;
S22:根據(jù)所述基于AST的馬爾可夫鏈模型中記錄的狀態(tài)轉(zhuǎn)移次數(shù),生成狀態(tài)轉(zhuǎn)移矩陣;
S23:將所述狀態(tài)轉(zhuǎn)移矩陣轉(zhuǎn)化為轉(zhuǎn)移概率矩陣,并將所述轉(zhuǎn)移概率矩陣中的值灰度化得到對(duì)應(yīng)的灰度圖像。
5.如權(quán)利要求4所述的源代碼漏洞檢測(cè)方法,其特征在于,所述S23包括:
對(duì)所述狀態(tài)轉(zhuǎn)移矩陣中的所有數(shù)據(jù)進(jìn)行歸一化處理,確定一個(gè)狀態(tài)轉(zhuǎn)移為另一個(gè)狀態(tài)的概率,最終得到轉(zhuǎn)移概率矩陣;
將所述轉(zhuǎn)移概率矩陣中的值灰度化得到對(duì)應(yīng)的灰度圖像。
6.如權(quán)利要求4所述的源代碼漏洞檢測(cè)方法,其特征在于,每個(gè)子樹的狀態(tài)包括:語(yǔ)句表達(dá)式、調(diào)用語(yǔ)句、參數(shù)列表和標(biāo)識(shí)符。
7.如權(quán)利要求1-6任一項(xiàng)所述的源代碼漏洞檢測(cè)方法,其特征在于,所述S5包括:
將所述待檢測(cè)源代碼對(duì)應(yīng)的灰度圖像輸入所述目標(biāo)CNN模型;
所述目標(biāo)CNN模型輸出的漏洞檢測(cè)結(jié)果1,則表示所述待檢測(cè)源代碼存在漏洞;
所述目標(biāo)CNN模型輸出的漏洞檢測(cè)結(jié)果0,則表示所述待檢測(cè)源代碼非漏洞。
8.一種源代碼漏洞檢測(cè)裝置,其特征在于,包括:
訓(xùn)練模塊,用于針對(duì)訓(xùn)練集中代碼片段,通過靜態(tài)分析獲取對(duì)應(yīng)的增強(qiáng)抽象語(yǔ)法樹AST;將所述訓(xùn)練集中代碼片段的增強(qiáng)AST轉(zhuǎn)化為其狀態(tài)概率矩陣對(duì)應(yīng)的灰度圖像;利用所述訓(xùn)練集中代碼片段對(duì)應(yīng)的灰度圖像訓(xùn)練原始CNN模型,得到目標(biāo)CNN模型;
檢測(cè)模塊,用于將待檢測(cè)源代碼轉(zhuǎn)化為增強(qiáng)AST對(duì)應(yīng)的狀態(tài)概率矩陣的灰度圖像;將所述待檢測(cè)源代碼對(duì)應(yīng)的灰度圖像輸入所述目標(biāo)CNN模型,得到漏洞檢測(cè)結(jié)果。
9.一種源代碼漏洞檢測(cè)系統(tǒng),包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)權(quán)利要求1至7中任一項(xiàng)所述的方法的步驟。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至7中任一項(xiàng)所述的方法的步驟。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華中科技大學(xué),未經(jīng)華中科技大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202310823880.1/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 .通過限制訪問或處理程序或過程
- 網(wǎng)站漏洞告警方法及裝置
- 網(wǎng)站漏洞審核方法及裝置
- 漏洞檢測(cè)方法及裝置、信息交互方法及設(shè)備
- 一種基于漏洞關(guān)聯(lián)分布模型的漏洞發(fā)現(xiàn)方法
- 漏洞庫(kù)構(gòu)建方法、裝置、漏洞庫(kù)及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 漏洞快速感知、定位及驗(yàn)證的方法與系統(tǒng)
- 一種基于Oval的漏洞掃描修復(fù)系統(tǒng)及方法
- 一種漏洞驗(yàn)證的方法及電子設(shè)備
- 一種漏洞防護(hù)方法、裝置及電子設(shè)備
- 漏洞數(shù)據(jù)的比較方法、裝置、電子設(shè)備以及存儲(chǔ)介質(zhì)
- 檢測(cè)裝置、檢測(cè)方法和檢測(cè)組件
- 檢測(cè)方法、檢測(cè)裝置和檢測(cè)系統(tǒng)
- 檢測(cè)裝置、檢測(cè)方法以及記錄介質(zhì)
- 檢測(cè)設(shè)備、檢測(cè)系統(tǒng)和檢測(cè)方法
- 檢測(cè)芯片、檢測(cè)設(shè)備、檢測(cè)系統(tǒng)和檢測(cè)方法
- 檢測(cè)裝置、檢測(cè)設(shè)備及檢測(cè)方法
- 檢測(cè)芯片、檢測(cè)設(shè)備、檢測(cè)系統(tǒng)
- 檢測(cè)組件、檢測(cè)裝置以及檢測(cè)系統(tǒng)
- 檢測(cè)裝置、檢測(cè)方法及檢測(cè)程序
- 檢測(cè)電路、檢測(cè)裝置及檢測(cè)系統(tǒng)
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)