[發明專利]面向二進制代碼的復現漏洞檢測方法及系統在審
| 申請號: | 202210740708.5 | 申請日: | 2022-06-28 |
| 公開(公告)號: | CN115129591A | 公開(公告)日: | 2022-09-30 |
| 發明(設計)人: | 王風宇;楊銘杰;孔健;呂光發;李曉帆 | 申請(專利權)人: | 山東大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F21/57;G06K9/62;G06N3/04;G06N3/08 |
| 代理公司: | 濟南圣達知識產權代理有限公司 37221 | 代理人: | 閆圣娟 |
| 地址: | 250101 山東*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 面向 二進制 代碼 復現 漏洞 檢測 方法 系統 | ||
1.面向二進制代碼的復現漏洞檢測方法,其特征在于:包括以下步驟:
獲取目標軟件不同版本的二進制可執行程序中的函數數據;
根據漏洞信息從對應二進制項目的漏洞影響版本中獲取二進制漏洞函數構造漏洞數據庫,得到目標軟件不同版本的二進制函數數據集,經解析后為每個函數構造一個操作碼共現矩陣;
將目標軟件函中的函數,同漏洞信息數據庫中的漏洞函數組成函數對,以它們的共現矩陣作為輸入分別通過訓練完畢的Siamese-CNN模型得到相應的特征向量,經相似度評估后判斷是否匹配;
若匹配,則對匹配到的函數對進行精確識別,判斷是否存在漏洞。
2.如權利要求1所述的面向二進制代碼的復現漏洞檢測方法,其特征在于:獲取目標軟件不同版本且包含調試信息的二進制可執行程序中的函數數據集的過程中,將可執行程序和調試符號文件合并成帶調試符號的二進制可執行程序。
3.如權利要求1所述的面向二進制代碼的復現漏洞檢測方法,其特征在于:二進制函數由指令序列組成,每條指令分為操作碼和操作數,操作碼序列表示函數執行的操作。
4.如權利要求3所述的面向二進制代碼的復現漏洞檢測方法,其特征在于:利用Bi-gram語言模型對操作碼指令序列處理,將前后相鄰的兩個操作碼作為一個二元組,并根據bi-gram頻率序列構造操作碼共現矩陣。
5.如權利要求1所述的面向二進制代碼的復現漏洞檢測方法,其特征在于:Siamese-CNN模型將兩個相同的卷積神經網絡模型CNN進行連接且共享同一組參數,每個卷積神經網絡模型CNN以一個函數的共現矩陣作為輸入,通過訓練最大化不相似函數間編碼空間的距離,最小化相似函數間編碼空間的距離,使卷積神經網絡模型CNN學習到函數的特征表示。
6.如權利要求4所述的面向二進制代碼的復現漏洞檢測方法,其特征在于:所述卷積神經網絡模型CNN中,每個卷積層和整流層之間具有一個批量歸一化層以加快網絡收斂速度。
7.如權利要求1所述的面向二進制代碼的復現漏洞檢測方法,其特征在于:對匹配到的函數對進行精確識別,判斷是否存在漏洞,具體為:通過利用漏洞和補丁函數共現矩陣之間的差異來提取目標函數中的漏洞強相關的區域特征向量,比較漏洞函數與目標函數,和補丁函數與目標函數的區域特征向量之間的距離來判斷是否存在漏洞。
8.面向二進制代碼的復現漏洞檢測系統,其特征在于:包括:
訓練數據模塊,配置為:獲取目標軟件不同版本的二進制可執行程序中的函數數據;
測試數據模塊,配置為:根據漏洞信息從對應二進制項目的漏洞影響版本中獲取二進制漏洞函數構造漏洞數據庫,獲取目標軟件不同版本的二進制函數數據集,經解析后為每個函數構造一個操作碼共現矩陣;
函數匹配模塊,配置為:將目標軟件函中的函數,同漏洞信息數據庫中的漏洞函數組成函數對,以它們的共現矩陣作為輸入分別通過訓練完畢的Siamese-CNN模型得到相應的特征向量,經相似度評估后判斷是否匹配;
漏洞識別模塊,配置為:若匹配,則對匹配到的函數對進行精確識別,判斷是否存在漏洞。
9.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現如權利要求1-7中任一項所述的面向二進制代碼的復現漏洞檢測方法中的步驟。
10.一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執行所述程序時實現如權利要求1-7中任一項所述的面向二進制代碼的復現漏洞檢測方法中的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于山東大學,未經山東大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210740708.5/1.html,轉載請聲明來源鉆瓜專利網。





