[發明專利]一種基于文件格式的Fuzz優化方法有效
| 申請號: | 201210161219.0 | 申請日: | 2012-05-22 |
| 公開(公告)號: | CN103425570A | 公開(公告)日: | 2013-12-04 |
| 發明(設計)人: | 聶眉寧;王明華;楊軼;蘇璞睿 | 申請(專利權)人: | 中國科學院軟件研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京君尚知識產權代理事務所(普通合伙) 11200 | 代理人: | 余長江 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 文件格式 fuzz 優化 方法 | ||
技術領域
本發明屬于軟件漏洞挖掘技術領域,具體涉及一種基于文件格式的Fuzz優化方法。
背景技術
隨著社會的不斷發展和進步,計算機在社會各個領域的應用越來越廣泛。與此同時,軟件漏洞帶來的危害也日益嚴重。無論是無意間觸發軟件漏洞帶來的損失,還是有意利用軟件漏洞進行的非法入侵、系統破壞、信息竊取等惡意行為,都對公共安全和信息保密造成了嚴重影響。因此,對軟件中存在的漏洞進行有效的挖掘和修補顯得十分必要。
目前最有效的軟件漏洞挖掘方法是針對軟件的輸入數據進行Fuzz。Fuzz是指利用大量隨機生成的數據對目標軟件進行測試的軟件測試方法。軟件的輸入數據包括文件輸入、網絡輸入、用戶終端輸入等。本發明僅涉及文件輸入,主要針對現有的文件Fuzz工具,例如FileFuzz,僅對樣本文件進行隨機Fuzz,使得Fuzz過程缺少導向性,使得時間復雜度和空間復雜度較高,漏洞挖掘的效率低下的問題。
當前的文件Fuzz技術,通常使用如下的幾種方法:
1.選擇一個特定的長度為N的字符序列,并用這個字符序列依次替換樣本文件中偏移為i至i+N-1中的所有內容,其中0≤i≤(樣本文件長度–N)。該方法選擇的特定字符串中的內容無法根據不同的域類型進行靈活變換,并且該方法需要對樣本文件中的所有偏移依次進行替換,本身是一種窮舉的方法,時間和空間復雜度都很高。
2.指定樣本文件中的某個偏移和長度,然后對該指定區域進行隨機Fuzz。該方法只能進行隨機Fuzz,無法針對不同的數據類型制定不同的Fuzz規則,并且待Fuzz的域也跟樣本文件本身的格式無關,由用戶隨意選定,盲目性很大。
綜上所訴,目前文件Fuzz的主要缺陷在于:無論是Fuzz的位置選取還是Fuzz數據的產生方法,都有很高的盲目性,缺少導向性,導致漏洞挖掘的時間復雜度和空間復雜度過高,效率低下。
發明內容
本發明提供一種基于文件格式的Fuzz優化方法。該方法首先對樣本文件的文件結構進行解析,得到樣本文件中各個域的數據長度與類型信息,然后針對各個域的偏移、長度、類型,進行有導向性的Fuzz,優先測試其邊界值,最后將Fuzz得到的文件輸入給目標可執行程序,并對目標可執行程序在運行過程中產生的異常進行監控和匯報,輔助漏洞挖掘。
一種基于文件格式的Fuzz優化方法,其步驟包括:
1)配置測試環境中的原始樣本文件、待測試目標程序和Fuzz線程參數;
2)插入文件格式解析模塊,所述解析模塊用于原始樣本文件的格式解析;
3)對解析得到的樣本文件進行Fuzz操作并將結果保存至本地存儲單元用于待測試目標程序的調用;
4)在設定的Fuzz線程下,根據所述存儲單元中樣本文件參數執行目標程序,分析并記錄目標程序執行過程中產生的異常信息;
5)遍歷所述存儲單元中所有樣本文件,直至所有樣本文件都參與過測試,完成全部測試。
文件格式解析模塊以擴展插件的形式存在,所述解析模塊可根據不同文件格式設置不同插件,并可在測試過程任意時刻補充插件。
解析得到的樣本文件中各個域以四元組(域名,偏移,長度,數據類型)來表示。
對解析得到的樣本文件進行Fuzz操作時,針對各個域采用邊界值優先的Fuzz操作。
分析目標程序執行過程中產生的異常信息,需要對所述異常的異常類型和產生異常的指令地址進行分析,若異常類型為調試異常,且產生異常的指令地址不位于系統模塊中,則異常符合要求并停止進程;若異常類型為非調試異常或產生異常的指令地址位于系統模塊中,則異常不符合要求。
目標程序運行結束、目標程序運行超時,程序運行過程中捕獲到符合要求的異常都將結束本次測試,并選擇下一個樣本繼續測試。
Fuzz線程可利用多個線程產生樣本同時進行Fuzz操作。
原始樣本文件是能夠被待測試目標可執行程序正常解析的合法文件。
待測試目標程序的啟動方式和啟動參數可根據用戶進行自定義。
觸發異常進程的指令地址位于ntdll.dll、kernel32.dll系統函數中。
本發明的優點和積極效果如下:
1.本發明在解析樣本文件格式的基礎上,針對樣本文件中各個域進行Fuzz,使得Fuzz位置的選取具有很強的針對性。
2.本發明根據樣本文件中各個域的類型和邊界值,進行不同規則的Fuzz,而非隨機產生數據,因此在產生Fuzz數據上有很好的導向性。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院軟件研究所,未經中國科學院軟件研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210161219.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種太陽能LED路燈
- 下一篇:一種系統克隆方法和裝置





