[發明專利]一種基于神經網絡與深度學習的C/C++漏洞靜態檢測方法有效
| 申請號: | 202011519232.X | 申請日: | 2020-12-21 |
| 公開(公告)號: | CN112560036B | 公開(公告)日: | 2022-11-29 |
| 發明(設計)人: | 錢葉魁;付才;韓蘭勝;楊瑞朋;黃浩;雒朝峰;杜江;時晨航 | 申請(專利權)人: | 中國人民解放軍陸軍炮兵防空兵學院;華中科技大學 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06N3/04;G06N3/08 |
| 代理公司: | 中國兵器工業集團公司專利中心 11011 | 代理人: | 辛海明 |
| 地址: | 450052 河*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 神經網絡 深度 學習 c++ 漏洞 靜態 檢測 方法 | ||
1.一種基于神經網絡與深度學習的C/C++漏洞靜態檢測方法,其特征在于,該方法包括如下步驟:
S1、對待檢測的源碼進行數據清潔,即去除與漏洞挖掘的無關部分,簡化源代碼的內容與格式;利用控制流與數據流進行代碼切片;將代碼切片中的自定義的變量名和函數名進行替換,然后轉換為CVDF-LZW編碼的輸入向量;
S2、將輸入向量轉化為等長的C/C++源代碼漏洞靜態檢測框架(CVDF)神經網絡的輸入,并進行歸一化處理;通過一個全連接矩陣將歸一化后的向量的關鍵字信息輸入到14個神經元中,輸出是一個14維向量;將歸一化后的向量輸入緩沖區溢出處理神經網絡、格式化字符串處理神經網絡、數組越界處理神經網絡、類型轉換處理神經網絡、數字錯誤處理神經網絡和指針錯誤及內存分配處理神經網絡,輸出是漏洞特征向量中相應操作維度向量;將神經網絡的輸出和神經元的輸出整合成35維漏洞特征向量;
S3、在漏洞特征向量中以非全連接的形式提取有關聯的神經元,通過線性函數轉換得到一個6維的輸出向量,向量中的每一維數值是漏洞特征向量對應種類關鍵字和關鍵操作數值與權重向量乘積之和,即漏洞類型特征值;通過softmax多分類層將對應的漏洞類型特征值轉換為相應的概率值,輸出結果是一個6維向量,向量的每一維度均為一個在0-1之間的數值,對應該種類型漏洞的發生概率預測值;
其中,所述緩沖區溢出處理神經網絡包括:若關鍵字匹配提取層的輸出向量中有關緩沖區溢出的維度均為0,則不調用緩沖區溢出處理神經網絡,并自動在相應關鍵操作維度處標記為0,否則需要調用歸一化后的向量,使用bi-lstm雙向長短期記憶的神經網絡結構,輸出一個三維向量;所述格式化字符串處理神經網絡包括:若關鍵字匹配提取層的輸出向量中有關格式化字符串的維度均為0,則不調用格式化字符串處理神經網絡,并自動在相應關鍵操作維度處標記為0,否則需要調用歸一化后的向量,使用bi-lstm雙向長短期記憶的神經網絡結構,輸出一個二維向量;所述數字錯誤處理神經網絡包括:無條件調用bi-lstm雙向長短期記憶的神經網絡,輸出一個二維向量;所述數組越界處理神經網絡包括:無條件調用bi-lstm雙向長短期記憶的神經網絡,輸出一個二維向量;所述指針錯誤和內存分配處理神經網絡包括:無條件調用bi-lstm雙向長短期記憶的神經網絡,輸出一個十維向量;所述類型轉換處理神經網絡包括:使用正向傳播的神經網絡,輸出一個二維向量。
2.權利要求1所述的基于神經網絡與深度學習的C/C++漏洞靜態檢測方法,其特征在于,所述與漏洞挖掘的無關部分包括頭文件和注釋。
3.權利要求1所述的基于神經網絡與深度學習的C/C++漏洞靜態檢測方法,其特征在于,所述利用控制流與數據流進行代碼切片具體包括:通過控制流與數據流從源碼中提取出關鍵語句,再對提取出的關鍵語句按照控制流與數據流邏輯先后進行重新排序。
4.權利要求1所述的基于神經網絡與深度學習的C/C++漏洞靜態檢測方法,其特征在于,所述將代碼切片中的自定義的變量名和函數名進行替換具體包括:將所有用戶自定義的變量名以”VAR1”,”VAR2”……的格式進行替換,將所有非C/C++語言庫函數的函數名以”FUN1”,”FUN2”……格式進行替換。
5.權利要求4所述的基于神經網絡與深度學習的C/C++漏洞靜態檢測方法,其特征在于,所述轉換為CVDF-LZW編碼的輸入向量包括:將C/C++標準庫函數名按照字典序的順序進行排列,分別從0001-1000進行編碼;將用戶自定義的變量名按照替換后的順序從1001-3000進行編碼;將用戶自定義的函數名按照替換后的順序從3001-5000進行編碼;將運算符按照單目運算符,雙目運算符和三目運算符的次序從5001-5100進行編碼;將標準數據類型從5101-5115進行編碼,將“;”編碼為5116,完成了代碼切片的編碼。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍陸軍炮兵防空兵學院;華中科技大學,未經中國人民解放軍陸軍炮兵防空兵學院;華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011519232.X/1.html,轉載請聲明來源鉆瓜專利網。





