[發明專利]二進制程序循環寫內存安全漏洞的檢測方法無效
| 申請號: | 201210138459.9 | 申請日: | 2012-05-08 |
| 公開(公告)號: | CN102708054A | 公開(公告)日: | 2012-10-03 |
| 發明(設計)人: | 吳世忠;郭濤;郝永樂;崔寶江;梁曉兵 | 申請(專利權)人: | 中國信息安全測評中心;北京郵電大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F21/00 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100089 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 二進制 程序 循環 內存 安全漏洞 檢測 方法 | ||
技術領域
本發明涉及計算機軟件安全分析領域,尤其涉及一種二進制程序循環寫內存安全漏洞的檢測方法。
背景技術
二進制程序中的緩沖區溢出漏洞通常發生在復雜的循環結構中。當二進制程序的代碼含有嵌套循環時,通常會有復雜的代碼之間的交互,而這類代碼可能更易于含有潛在的安全漏洞。例如二進制程序循環寫內存安全漏洞,該安全漏洞是指在循環寫內存時,沒有考慮內存區間的邊界導致的內存訪問越界。
目前,通常采用靜態分析技術對二進制程序循環寫內存安全漏洞進行檢測。其工作原理是,利用靜態的符號執行技術生成測試數據,遍歷二進制程序循環結構的所有路徑,將循環結構進行明確數目的展開或近似的展開來逼近循環。
對于真實的應用程序來說,展開循環在計算上的代價是很昂貴的。二進制程序循環結構的路徑數目可能非常巨大,比如,如果一個單循環的迭代次數依賴于一些無界的輸入,可能導致該二進制程序循環結構的可行路徑也是無限增長的,因此二進制程序中的循環結構是進行靜態分析的瓶頸。
另外,有些包含在循環結構內部的安全漏洞在循環執行到一定次數時才被觸發。采用符號執行技術在解析匯編指令時,將循環結構按照預定的次數進行展開,如果預定的次數小于安全漏洞的觸發次數,則無法檢測到隱含在循環結構內部的安全漏洞。
發明內容
本發明的目的在于,提供一種二進制程序循環寫內存安全漏洞的檢測方法,從而解決靜態分析技術存在的缺陷。
本發明的目的通過以下方式實現:
一種二進制程序循環寫內存安全漏洞的檢測方法,包括:
步驟1、獲取與二進制程序中潛在安全漏洞相關的二進制程序的循環結構摘要信息;
步驟2、根據所述循環結構摘要信息,生成測試數據;
步驟3、根據所述測試數據對二進制程序進行循環寫內存安全漏洞的檢測。
本發明實施例提供的方法,在生成測試數據時,不需要遍歷二進制程序循環結構的所有路徑,僅需要根據生成的循環結構摘要信息得到測試數據。由于循環結構摘要信息是和二進制程序的潛在安全漏洞相關的,因此,生成的測試數據更有針對性,大大降低了展開循環的計算代價。
附圖說明
圖1為本發明實施例提供的方法流程圖;
圖2為本發明實施例提供的方法對應的系統工作流程圖。
具體實施方式
本發明提供了一種二進制程序循環寫內存安全漏洞的檢測方法,其實現方式如圖1所示,包括如下操作:
步驟1、獲取與二進制程序中潛在安全漏洞相關的二進制程序的循環結構摘要信息;
步驟2、根據所述循環結構摘要信息,生成測試數據;
步驟3、根據所述測試數據對二進制程序進行循環寫內存安全漏洞的檢測。
本發明實施例提供的方法,在生成測試數據時,不需要遍歷二進制程序循環結構的所有路徑,僅需要根據生成的循環結構摘要信息得到測試數據。由于循環結構摘要信息是和二進制程序的潛在安全漏洞相關的,因此,生成的測試數據更有針對性,大大降低了安全漏洞檢測的計算代價。另外,基于循環結構摘要信息生成測試數據,不需要對循環進行展開,也就避免了無法檢測到隱含在循環結構內部的安全漏洞的問題。
本發明實施例提供的檢測方法中,獲取二進制程序的循環結構摘要信息的具體實現方式為:首先從二進制程序控制流圖中最內部的循環結構開始,依次向外展開,分別對有內存寫操作的循環結構生成單循環結構的摘要信息;獲取單循環結構的摘要信息的集合,所述單循環結構的摘要信息的集合就是二進制程序的循環結構摘要信息。其中,所述單循環結構的摘要信息包括:循環結構的起始地址、循環結構的結束地址、控制循環體的循環次數的變量、循環寫內存的緩沖區變量、所述緩沖區的數據的來源變量、輸入文件中的關鍵字節相對于輸入文件的文件頭的偏移地址。
因此,對于二進制程序中復雜的嵌套循環結構來說,最終會歸結為單循環結構的摘要信息的生成。二進制程序的循環結構摘要信息是單循環結構的摘要信息的集合。
本發明實施例中,單循環結構的摘要信息的生成依賴于二進制程序中循環結構的識別和動態的數據結構重構。動態的數據結構重構不需要源碼,不依賴于關于二進制程序的任何注釋信息。相應的,在生成單循環結構的摘要信息之前,本發明實施例提供的方法還包括如下操作:
步驟11、對所述二進制程序的循環結構進行識別;
步驟12、基于識別出的循環結構,對二進制程序進行動態數據結構重構。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國信息安全測評中心;北京郵電大學,未經中國信息安全測評中心;北京郵電大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210138459.9/2.html,轉載請聲明來源鉆瓜專利網。





