[發明專利]一種基于二進制程序的漏洞檢測方法及相關設備在審
| 申請號: | 202011474805.1 | 申請日: | 2020-12-14 |
| 公開(公告)號: | CN112613040A | 公開(公告)日: | 2021-04-06 |
| 發明(設計)人: | 石志強;楊壽國;曾怡誠;宋站威;朱紅松;孫利民 | 申請(專利權)人: | 中國科學院信息工程研究所 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;G06F11/36 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 譚云 |
| 地址: | 100093 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 二進制 程序 漏洞 檢測 方法 相關 設備 | ||
1.一種基于二進制程序的漏洞檢測方法,其特征在于,包括:
基于預先給出的已知漏洞的二進制函數集合,計算所述已知漏洞的二進制函數集合的每個已知漏洞函數與目標二進制程序中所有函數的相似度;
當第一已知漏洞函數與所述目標二進制中的第二函數的相似度大于閾值時,則確定所述第二函數與所述第一已知漏洞函數是同源函數,所述第二函數具有與所述第一已知漏洞函數相似的漏洞。
2.根據權利要求1所述的基于二進制程序的漏洞檢測方法,其特征在于,所述計算所述已知漏洞的二進制函數集合的每個已知漏洞函數與目標二進制程序中所有函數的相似度,包括:
將第一已知漏洞函數和第二函數依次進行反匯編和反編譯后,提取所述第一已知漏洞函數的AST1和所述第二函數的AST2;
對所述第一已知漏洞函數的AST1和所述第二函數的AST2,分別進行預處理后輸入至孿生神經網絡對應的第一Tree-LSTM網絡和第二Tree-LSTM網絡;
通過所述第一Tree-LSTM網絡對所述第一已知漏洞函數的AST1進行向量編碼得到所述第一已知漏洞函數的特征向量,以及通過所述第二Tree-LSTM網絡對所述第二函數的AST2進行向量編碼得到所述第二函數的特征向量;
通過孿生神經網絡對所述第一已知漏洞函數的特征向量和所述第二函數的特征向量進行相似性計算,得到AST相似度;
對所述AST相似度進行校準,得到所述第一已知漏洞函數和所述第二函數的相似度。
3.根據權利要求2所述的方法,其特征在于,所述將第一已知漏洞函數和第二函數依次進行反匯編和反編譯后,提取所述第一已知漏洞函數的AST1和所述第二函數的AST2,包括:
使用IDA匯編器對所述第一已知漏洞函數和所述第二函數分別進行反匯編,得到對應的第一匯編代碼和第二匯編代碼;
將所述第一匯編代碼和所述第二匯編代碼進行反編譯,得到對應的第一C代碼和第二C代碼;
從所述第一C代碼提取所述第一已知漏洞函數的AST1和從所述第二C代碼提取所述第二函數的AST2,所述第一已知漏洞函數的AST1、第二函數的AST2中的節點對應所述第一C代碼、所述第二C代碼中的表達式或聲明。
4.根據權利要求2所述的方法,其特征在于,所述對所述第一已知漏洞函數的AST1和所述第二函數的AST2,分別進行預處理,包括:
分別將所述第一已知漏洞函數的AST1和所述第二函數的AST2進行數值化,所述數據值化是分別將所述第一已知漏洞函數的AST1和所述第二函數的AST2的每個節點映射并替換為一個預設整數值作為其標簽;
對經過所述數值化處理的所述第一已知漏洞函數的AST1和所述第二函數的AST2進行格式轉換,所述格式轉換是分別將所述第一已知漏洞函數的AST1和所述第二函數的AST2的每個節點的第一個子節點轉換為左子節點,與所述第一個子節點右邊最近的兄弟節點轉換為右子節點。
5.根據權利要求2所述的方法,其特征在于,通過孿生神經網絡對所述第一已知漏洞函數的特征向量和所述第二函數的特征向量進行相似性計算,得到AST相似度,包括:
孿生神經網絡使用減法和乘法操作捕獲所述第一已知漏洞函數的特征向量和所述第二函數的特征向量之間的關系;
將所述第一已知漏洞函數的特征向量和所述第二函數的特征向量串聯為一個大向量,通過softmax函數計算生成一個二維向量。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院信息工程研究所,未經中國科學院信息工程研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011474805.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:半導體器件及其制備方法
- 下一篇:一種預測大氣污染的方法、裝置及系統





