[發明專利]一種面向緩沖區溢出錯誤檢測方法在審
| 申請號: | 202310195301.3 | 申請日: | 2023-02-24 |
| 公開(公告)號: | CN116305094A | 公開(公告)日: | 2023-06-23 |
| 發明(設計)人: | 王文智;范萌;于愛民;孟丹 | 申請(專利權)人: | 中國科學院信息工程研究所 |
| 主分類號: | G06F21/54 | 分類號: | G06F21/54;G06F21/57 |
| 代理公司: | 北京君尚知識產權代理有限公司 11200 | 代理人: | 李文濤 |
| 地址: | 100085*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 緩沖區 溢出 錯誤 檢測 方法 | ||
本發明公開一種面向緩沖區溢出錯誤檢測方法,屬于軟件安全測試領域,對待分析的二進制程序進行預處理,確定發生緩沖區溢出的潛在函數,并且按照風險的優先級排序;根據所述優先級排序選擇風險系數最高的函數作為待檢測的目標函數,進行緩沖區溢出檢測,通過動態污點分析和動態插樁技術,找到經過且影響該目標函數的輸入參數;利用Concolic執行方法,對所述輸入參數進行符號化,利用自定義的內存模型及檢測引擎檢測所述目標函數內是否存在緩沖區溢出bug;如果在某條路徑上存在緩沖區溢出bug,則給出全局輸入,直到所述目標函數內所有的路徑都探索完畢。本方法可以高效地檢測堆棧緩沖區溢出,有效減少了系統性能開銷。
技術領域
本發明屬于軟件安全測試領域,具體涉及一種面向緩沖區溢出錯誤檢測方法。
背景技術
緩沖區溢出是一種嚴重的、常見的漏洞,它主要是由于使用的內存超出了分配的內存而引起的。緩沖區溢出漏洞會導致系統崩潰,任意代碼執行和數據泄露等非常嚴重的系統安全問題。最新的CVE統計數據顯示,在過去的二十年中,緩沖區溢出漏洞在所有的漏洞中排名第三[1]。
有許多方法被提出來保護由于緩沖區溢出漏洞帶來的內存安全。它們主要分為以下兩類。一種是增強軟件在運行過程中對內存的防護,另一種是在軟件發布之前進行大量地、全面的測試。盡管第一種方法在一定程度上能夠阻止漏洞被利用,這種方法不經會帶來很大的系統性能開銷,而且由于它們本身并沒有消除漏洞而存在兼容性與可移植性的問題。面向棧的保護機制有stack?canaries[2],shadow?stacks[3][4],ASLR[5],DEP[6],控制流完整性保護[7],面向堆的特定保護機制如Diehard[8],Dieharder[9],HeapSentry[10],Heaptherapy[11]。這些技術提供了粗粒度的保護,以防止試圖劫持或者改變程序的控制流攻擊。然而,一些攻擊很難去被檢測或者緩解。例如,非控制數據攻擊在沒有直接影響控制流的前提下修改重要數據[12],緩沖區讀操作在不影響程序執行的前提下可以暴露程序的敏感數據,而前面提到的保護機制在這種類型的攻擊面前幾乎沒有任何保護作用,所以有必要在軟件產品發布之前檢測并修復內存相關漏洞。
當前,主要有靜態分析與動態分析的方法用來在程序發布前檢測緩沖區溢出漏洞。靜態分析的方法是通過掃描軟件的源代碼來發現隱藏在軟件中的錯誤。盡管靜態源代碼分析能夠獲取較高的代碼覆蓋率,但是由于其本身并沒有真實的運行程序,所以靜態分析的結果存在較高的誤報率。為了消除這種誤報,需要耗費大量的人力與物力來進行源代碼審查[13][14][15]。
然而,一些現存的動態分析工具是專門針對堆緩沖區溢出或者棧緩沖區溢出來檢測的。HeapTherapy[16]和HOTracer[17]可以發現二進制程序中的堆緩沖區溢出。HEAPHOPPER[18]可以發現堆的實現中緩沖區溢出(e.g.glibc)。Gollum[19]可以發現解釋器中的堆緩沖區溢出。[20]可以發現基于棧的緩沖區溢出。
從某種程度上來說,離線組合現存的工具可以達到較好的效果。這種離線組合的方法同時利用現存的動態程序分析工具來自動化遍歷不同的路徑,同時生成每條路徑對應的程序輸入。然后,利用這些輸入再次運行程序在緩沖區溢出檢測工具上。例如Dowser[21]and?BORG[22],Dowser離線組合S2E和AddressSanitizer。但是其不足在于,由于在兩次程序運行中采用的不一致的內存模型將會產生一些漏報,第一次程序運行采用的是動態符號執行器,第二次程序運行采用的是具體執行器。另外,從系統性能開銷的角度來說,這種簡單的組合使得程序的每條路徑至少運行兩次,這將會帶來很大的系統性能開銷。
發明內容
本發明的目的是提出一種基于Concolic執行的面向緩沖區溢出的檢測方法,該方法不僅可以高效地檢測堆緩沖區溢出,還可以高效地檢測棧緩沖區溢出,檢測更具有針對性,避免無效路徑檢索,有效減少了系統性能開銷。
為實現上述目的,本發明采用以下技術方案:
一種面向緩沖區溢出錯誤檢測方法,包括以下步驟:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院信息工程研究所,未經中國科學院信息工程研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202310195301.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種通風防潮電力開關柜
- 下一篇:放射性棒狀材料切割夾具





