[發明專利]一種面向緩沖區溢出錯誤檢測方法在審
| 申請號: | 202310195301.3 | 申請日: | 2023-02-24 |
| 公開(公告)號: | CN116305094A | 公開(公告)日: | 2023-06-23 |
| 發明(設計)人: | 王文智;范萌;于愛民;孟丹 | 申請(專利權)人: | 中國科學院信息工程研究所 |
| 主分類號: | G06F21/54 | 分類號: | G06F21/54;G06F21/57 |
| 代理公司: | 北京君尚知識產權代理有限公司 11200 | 代理人: | 李文濤 |
| 地址: | 100085*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 緩沖區 溢出 錯誤 檢測 方法 | ||
1.一種面向緩沖區溢出錯誤檢測方法,其特征在于,包括以下步驟:
1)對待分析的二進制程序進行預處理,確定發生緩沖區溢出的潛在函數,并且按照風險的優先級排序;
2)根據所述優先級排序選擇風險系數最高的函數作為待檢測的目標函數,進行緩沖區溢出檢測,通過動態污點分析和動態插樁技術,找到經過且影響該目標函數的輸入參數;
3)利用動態符號Concolic執行方法,對所述輸入參數進行符號化,利用自定義的內存模型及檢測引擎檢測所述目標函數內是否存在緩沖區溢出bug;如果在某條路徑上存在緩沖區溢出bug,則給出全局輸入,直到所述目標函數內所有的路徑都探索完畢;重復步驟2)和3),直至檢測出全部的緩沖區溢出bug。
2.如權利要求1所述的方法,其特征在于,步驟1)的預處理中,以函數為單位進行漏洞度量,通過靜態分析的方法,確定緩沖區溢出潛在漏洞的位置。
3.如權利要求1所述的方法,其特征在于,所述漏洞度量包括面向函數的緩沖區度量和面向循環的緩沖區度量。
4.如權利要求3所述的方法,其特征在于,所述面向函數的緩沖區度量是對#內存分配函數、#I/O操作函數和#數據移動函數進行漏洞度量。
5.如權利要求3所述的方法,其特征在于,所述面向循環的緩沖區度量是對#數組循環和#指針循環進行度量。
6.如權利要求1所述的方法,其特征在于,步驟2)中,對于輸入參數是已知類型和數量的被測程序,從發布程序軟件包的測試集中找到被測試程序的輸入參數集合;對于輸入參數是未知類型和數量的被測試程序,使用fuzzer來生成一系列的輸入參數集合。
7.如權利要求1所述的方法,其特征在于,所述內存模型為基于平指針方式的線性地址空間,其數據結構中的每個MemoryObject包含以下變量:
Index:用于標志每個MemoryObject的唯一索引;
S-address:表示每個MemoryObject的起始地址;
size:表示MemoryObject對象的大小;
Sym-flag:表示存儲的是符號值還是具體值,Sym-flag=1表示存儲的是符號值,Sym-flag=0表示存儲的是具體值;
Storage:用于依據Sym-flag標識存儲其對應的具體值或符號值。
8.如權利要求1所述的方法,其特征在于,步驟3)中在檢測所述目標函數內是否存在緩沖區溢出bug時,當處理一個內存訪問操作時,首先利用地址反查法查找其所需要的內存對象是否已分配,然后使用訪問的偏移來判斷其所訪問的空間是否超過了內存邊界。
9.如權利要求1所述的方法,其特征在于,所述檢測引擎在程序分析的時候會自動檢測變量的極小值與極大值,然后再自動地將判斷的極小值或者極大值作為輸入注入到程序中;如果程序沒有對象的容錯判斷機制,則報告對應的錯誤并同時給出對應的觸發該錯誤的輸入。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院信息工程研究所,未經中國科學院信息工程研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202310195301.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種通風防潮電力開關柜
- 下一篇:放射性棒狀材料切割夾具





