[發(fā)明專(zhuān)利]一種面向緩沖區(qū)溢出錯(cuò)誤檢測(cè)方法在審
| 申請(qǐng)?zhí)枺?/td> | 202310195301.3 | 申請(qǐng)日: | 2023-02-24 |
| 公開(kāi)(公告)號(hào): | CN116305094A | 公開(kāi)(公告)日: | 2023-06-23 |
| 發(fā)明(設(shè)計(jì))人: | 王文智;范萌;于愛(ài)民;孟丹 | 申請(qǐng)(專(zhuān)利權(quán))人: | 中國(guó)科學(xué)院信息工程研究所 |
| 主分類(lèi)號(hào): | G06F21/54 | 分類(lèi)號(hào): | G06F21/54;G06F21/57 |
| 代理公司: | 北京君尚知識(shí)產(chǎn)權(quán)代理有限公司 11200 | 代理人: | 李文濤 |
| 地址: | 100085*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 面向 緩沖區(qū) 溢出 錯(cuò)誤 檢測(cè) 方法 | ||
1.一種面向緩沖區(qū)溢出錯(cuò)誤檢測(cè)方法,其特征在于,包括以下步驟:
1)對(duì)待分析的二進(jìn)制程序進(jìn)行預(yù)處理,確定發(fā)生緩沖區(qū)溢出的潛在函數(shù),并且按照風(fēng)險(xiǎn)的優(yōu)先級(jí)排序;
2)根據(jù)所述優(yōu)先級(jí)排序選擇風(fēng)險(xiǎn)系數(shù)最高的函數(shù)作為待檢測(cè)的目標(biāo)函數(shù),進(jìn)行緩沖區(qū)溢出檢測(cè),通過(guò)動(dòng)態(tài)污點(diǎn)分析和動(dòng)態(tài)插樁技術(shù),找到經(jīng)過(guò)且影響該目標(biāo)函數(shù)的輸入?yún)?shù);
3)利用動(dòng)態(tài)符號(hào)Concolic執(zhí)行方法,對(duì)所述輸入?yún)?shù)進(jìn)行符號(hào)化,利用自定義的內(nèi)存模型及檢測(cè)引擎檢測(cè)所述目標(biāo)函數(shù)內(nèi)是否存在緩沖區(qū)溢出bug;如果在某條路徑上存在緩沖區(qū)溢出bug,則給出全局輸入,直到所述目標(biāo)函數(shù)內(nèi)所有的路徑都探索完畢;重復(fù)步驟2)和3),直至檢測(cè)出全部的緩沖區(qū)溢出bug。
2.如權(quán)利要求1所述的方法,其特征在于,步驟1)的預(yù)處理中,以函數(shù)為單位進(jìn)行漏洞度量,通過(guò)靜態(tài)分析的方法,確定緩沖區(qū)溢出潛在漏洞的位置。
3.如權(quán)利要求1所述的方法,其特征在于,所述漏洞度量包括面向函數(shù)的緩沖區(qū)度量和面向循環(huán)的緩沖區(qū)度量。
4.如權(quán)利要求3所述的方法,其特征在于,所述面向函數(shù)的緩沖區(qū)度量是對(duì)#內(nèi)存分配函數(shù)、#I/O操作函數(shù)和#數(shù)據(jù)移動(dòng)函數(shù)進(jìn)行漏洞度量。
5.如權(quán)利要求3所述的方法,其特征在于,所述面向循環(huán)的緩沖區(qū)度量是對(duì)#數(shù)組循環(huán)和#指針循環(huán)進(jìn)行度量。
6.如權(quán)利要求1所述的方法,其特征在于,步驟2)中,對(duì)于輸入?yún)?shù)是已知類(lèi)型和數(shù)量的被測(cè)程序,從發(fā)布程序軟件包的測(cè)試集中找到被測(cè)試程序的輸入?yún)?shù)集合;對(duì)于輸入?yún)?shù)是未知類(lèi)型和數(shù)量的被測(cè)試程序,使用fuzzer來(lái)生成一系列的輸入?yún)?shù)集合。
7.如權(quán)利要求1所述的方法,其特征在于,所述內(nèi)存模型為基于平指針?lè)绞降木€(xiàn)性地址空間,其數(shù)據(jù)結(jié)構(gòu)中的每個(gè)MemoryObject包含以下變量:
Index:用于標(biāo)志每個(gè)MemoryObject的唯一索引;
S-address:表示每個(gè)MemoryObject的起始地址;
size:表示MemoryObject對(duì)象的大小;
Sym-flag:表示存儲(chǔ)的是符號(hào)值還是具體值,Sym-flag=1表示存儲(chǔ)的是符號(hào)值,Sym-flag=0表示存儲(chǔ)的是具體值;
Storage:用于依據(jù)Sym-flag標(biāo)識(shí)存儲(chǔ)其對(duì)應(yīng)的具體值或符號(hào)值。
8.如權(quán)利要求1所述的方法,其特征在于,步驟3)中在檢測(cè)所述目標(biāo)函數(shù)內(nèi)是否存在緩沖區(qū)溢出bug時(shí),當(dāng)處理一個(gè)內(nèi)存訪(fǎng)問(wèn)操作時(shí),首先利用地址反查法查找其所需要的內(nèi)存對(duì)象是否已分配,然后使用訪(fǎng)問(wèn)的偏移來(lái)判斷其所訪(fǎng)問(wèn)的空間是否超過(guò)了內(nèi)存邊界。
9.如權(quán)利要求1所述的方法,其特征在于,所述檢測(cè)引擎在程序分析的時(shí)候會(huì)自動(dòng)檢測(cè)變量的極小值與極大值,然后再自動(dòng)地將判斷的極小值或者極大值作為輸入注入到程序中;如果程序沒(méi)有對(duì)象的容錯(cuò)判斷機(jī)制,則報(bào)告對(duì)應(yīng)的錯(cuò)誤并同時(shí)給出對(duì)應(yīng)的觸發(fā)該錯(cuò)誤的輸入。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于中國(guó)科學(xué)院信息工程研究所,未經(jīng)中國(guó)科學(xué)院信息工程研究所許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202310195301.3/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過(guò)保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過(guò)保護(hù)特定的外圍設(shè)備,如鍵盤(pán)或顯示器
G06F21-06 .通過(guò)感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過(guò)限制訪(fǎng)問(wèn)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過(guò)限制訪(fǎng)問(wèn)或處理程序或過(guò)程
- 一種主動(dòng)回收數(shù)據(jù)緩沖區(qū)的方法
- 緩沖區(qū)控制裝置及方法
- 緩沖區(qū)數(shù)的調(diào)整方法和裝置
- 一種面向多租戶(hù)的緩沖區(qū)管理方法及服務(wù)器
- 一種汽車(chē)CAN總線(xiàn)網(wǎng)關(guān)的報(bào)文收發(fā)方法及系統(tǒng)
- 數(shù)據(jù)緩沖方法、裝置及存儲(chǔ)介質(zhì)
- 高并發(fā)數(shù)據(jù)存儲(chǔ)方法及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 環(huán)形緩沖區(qū)的數(shù)據(jù)寫(xiě)入方法、裝置、設(shè)備及介質(zhì)
- 一種能夠保證接收數(shù)據(jù)完整性的數(shù)據(jù)緩沖系統(tǒng)及方法
- 一種串口通信中的雙指針環(huán)形緩沖區(qū)設(shè)計(jì)方法及系統(tǒng)





