[發(fā)明專利]堆內(nèi)存漏洞檢測方法、裝置、存儲介質(zhì)及電子設(shè)備在審
| 申請?zhí)枺?/td> | 202111236368.4 | 申請日: | 2021-10-22 |
| 公開(公告)號: | CN113987507A | 公開(公告)日: | 2022-01-28 |
| 發(fā)明(設(shè)計)人: | 張茜;閆海林;蔣家堂;李帥宇 | 申請(專利權(quán))人: | 中國工商銀行股份有限公司 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57 |
| 代理公司: | 北京康信知識產(chǎn)權(quán)代理有限責(zé)任公司 11240 | 代理人: | 黃海英 |
| 地址: | 100140 北*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 內(nèi)存 漏洞 檢測 方法 裝置 存儲 介質(zhì) 電子設(shè)備 | ||
1.一種堆內(nèi)存漏洞檢測方法,其特征在于,包括:
通過二進(jìn)制插樁模塊獲取目標(biāo)二進(jìn)制程序中的目標(biāo)調(diào)用函數(shù),其中,所述目標(biāo)調(diào)用函數(shù)至少包括所述目標(biāo)調(diào)用函數(shù)的函數(shù)名;
將所述目標(biāo)調(diào)用函數(shù)的函數(shù)名與風(fēng)險函數(shù)模型進(jìn)行匹配,得到匹配結(jié)果,其中,所述風(fēng)險函數(shù)模型中包括多個函數(shù)的函數(shù)名,各個函數(shù)是否屬于風(fēng)險的內(nèi)存操作函數(shù),以及各個函數(shù)名對應(yīng)的類型;
若所述匹配結(jié)果表示所述目標(biāo)調(diào)用函數(shù)屬于風(fēng)險的內(nèi)存操作函數(shù)時,確定所述目標(biāo)調(diào)用函數(shù)的類型;
根據(jù)所述目標(biāo)調(diào)用函數(shù)的類型,執(zhí)行所述目標(biāo)調(diào)用函數(shù)對應(yīng)的堆內(nèi)存漏洞檢測策略。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)調(diào)用函數(shù)的類型為以下至少之一:堆分配函數(shù)的類型、堆釋放函數(shù)的類型、堆內(nèi)存讀取函數(shù)的類型、堆內(nèi)存寫入函數(shù)的類型。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在根據(jù)所述目標(biāo)調(diào)用函數(shù)的類型,執(zhí)行所述目標(biāo)調(diào)用函數(shù)對應(yīng)的堆內(nèi)存漏洞檢測策略之前,所述方法還包括:
若所述目標(biāo)調(diào)用函數(shù)的類型為所述堆分配函數(shù)的類型時,通過程序的目標(biāo)接口獲取所述堆分配函數(shù)的函數(shù)參數(shù);
根據(jù)所述函數(shù)參數(shù)計算所述目標(biāo)調(diào)用函數(shù)分配的堆內(nèi)存空間。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,根據(jù)所述目標(biāo)調(diào)用函數(shù)的類型,執(zhí)行所述目標(biāo)調(diào)用函數(shù)對應(yīng)的堆內(nèi)存漏洞檢測策略包括:
若所述目標(biāo)調(diào)用函數(shù)的類型為所述堆分配函數(shù)的類型時,根據(jù)所述程序的目標(biāo)接口獲取所述堆分配函數(shù)的執(zhí)行結(jié)果,其中,所述執(zhí)行結(jié)果包括堆塊元數(shù)據(jù)的內(nèi)容;
通過所述執(zhí)行結(jié)果判斷所述目標(biāo)調(diào)用函數(shù)的堆內(nèi)存空間是否分配成功,若所述目標(biāo)調(diào)用函數(shù)的堆內(nèi)存空間分配成功,對所述堆內(nèi)存空間的申請次數(shù)進(jìn)行判斷;
若所述堆內(nèi)存空間的申請次數(shù)為第一預(yù)設(shè)值,通過所述堆分配函數(shù)的函數(shù)參數(shù)以及所述堆分配函數(shù)的程序執(zhí)行結(jié)果確定堆內(nèi)存的使用日志;
若所述堆內(nèi)存空間的申請次數(shù)大于第一預(yù)設(shè)值,判斷所述堆內(nèi)存空間地址是否為空閑堆內(nèi)存地址,若所述堆內(nèi)存空間地址為空閑堆內(nèi)存地址,判斷所述堆分配函數(shù)是否為目標(biāo)函數(shù),若所述堆分配函數(shù)為所述目標(biāo)函數(shù),則對所述堆內(nèi)存的使用日志進(jìn)行更新。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,根據(jù)所述目標(biāo)調(diào)用函數(shù)的類型,執(zhí)行所述目標(biāo)調(diào)用函數(shù)對應(yīng)的堆內(nèi)存漏洞檢測策略包括:
若所述目標(biāo)調(diào)用函數(shù)的類型為所述堆釋放函數(shù)的類型時,通過所述程序的目標(biāo)接口獲取所述堆釋放函數(shù)的函數(shù)參數(shù);
根據(jù)所述堆釋放函數(shù)的函數(shù)參數(shù)獲取待釋放的堆內(nèi)存地址,判斷所述待釋放的堆內(nèi)存地址是否與所述堆內(nèi)存的使用日志中已經(jīng)分配的堆塊首地址存在匹配的記錄;
若所述待釋放的堆內(nèi)存地址與所述堆內(nèi)存的使用日志中已經(jīng)分配的堆塊首地址存在匹配的記錄,將所述待釋放的堆內(nèi)存地址進(jìn)行釋放,并對所述堆內(nèi)存的使用日志進(jìn)行更新。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,根據(jù)所述目標(biāo)調(diào)用函數(shù)的類型,執(zhí)行所述目標(biāo)調(diào)用函數(shù)對應(yīng)的堆內(nèi)存漏洞檢測策略包括:
若所述目標(biāo)調(diào)用函數(shù)的類型為所述堆內(nèi)存讀取函數(shù)的類型時,通過所述程序的目標(biāo)接口獲取所述堆內(nèi)存讀取函數(shù)的函數(shù)參數(shù)以及所述堆內(nèi)存讀取函數(shù)的程序執(zhí)行結(jié)果;
根據(jù)所述堆內(nèi)存讀取函數(shù)的函數(shù)參數(shù)以及所述堆內(nèi)存讀取函數(shù)的程序執(zhí)行結(jié)果確定所述堆內(nèi)存讀取函數(shù)的目標(biāo)信息,其中,所述目標(biāo)信息至少包括:讀內(nèi)存的地址與讀取內(nèi)容的長度;
通過所述目標(biāo)信息判斷所述目標(biāo)二進(jìn)制程序是否存在讀堆內(nèi)存數(shù)據(jù)的情況,在所述目標(biāo)信息存在讀堆內(nèi)存數(shù)據(jù)的情況下,根據(jù)所述堆分配函數(shù)的內(nèi)存使用日志中的堆內(nèi)存分配狀態(tài),判斷所述讀內(nèi)存的地址是否為釋放的堆內(nèi)存地址;
若所述讀內(nèi)存的地址為釋放的堆內(nèi)存地址,觸發(fā)異常報警并終止所述目標(biāo)二進(jìn)制程序進(jìn)程。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國工商銀行股份有限公司,未經(jīng)中國工商銀行股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111236368.4/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計算機(jī)或計算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計算機(jī)系統(tǒng)或計算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程





