一種漏洞挖掘方法、裝置及電子設備的制造方法
【技術領域】
[0001]本發明涉及計算機網絡安全技術,尤其涉及一種漏洞挖掘方法、裝置及電子設備。
【背景技術】
[0002]隨著計算機網絡技術的高速發展,互聯網絡已逐漸成為人們工作生活中不可或缺的一部分。但互聯網絡在帶給人們便利的同時,由于互聯網絡應用環境的復雜性以及互聯網絡應用程序的多樣性,人們在通過應用軟件使用互聯網絡的過程中,應用軟件容易受到電腦病毒、木馬等網絡漏洞攻擊威脅。其中,漏洞是指應用軟件中存在的功能性或安全性邏輯缺陷,是計算機系統在硬件、應用軟件、協議的具體實現或系統安全策略上存在的缺陷和不足。因而,利用漏洞挖掘技術及時挖掘并修補應用軟件中存在的漏洞,對保護互聯網絡用戶的個人信息安全、財產安全有著積極的促進作用。
[0003]漏洞挖掘技術是指對應用軟件中存在的未知漏洞的探索,通過綜合應用各種技術和工具,盡可能地找出應用軟件中存在的潛在漏洞并予以及時修復。
[0004]目前,漏洞挖掘技術一般基于二進制漏洞挖掘,在進行二進制漏洞挖掘時,通過定制腳本來手動修改目標內容,即手動變換輸入接口數據,然后將手動修改的腳本分別提交至一個或多個目標應用程序運行,其中,目標應用程序可以運行在不同的電子設備上,最后,依據目標應用程序運行得到的運行結果,分析目標應用程序是否產生異常,進而依據產生的異常以判斷該目標應用程序是否存在漏洞,在存在漏洞時,再采用相關技術手段修復該漏洞。例如,在挖掘Off ice word應用軟件中的漏洞時,通過定制腳本doc文件,然后,在指定的doc文件中隨意填充各種值后,啟動Off ice word應用軟件加載該doc文件,并監控Office word應用軟件在運行該doc文件的過程中是否產生異常,在運行該doc文件完畢后,重新在doc文件中再次隨意填充各種值,然后再加載該doc文件,并監控Off ice word應用軟件在運行該doc文件的過程中是否產生異常,從而對Office word應用軟件中存在的潛在漏洞進行挖掘。如果Off ice word應用軟件加載該doc文件超時,則重新導入該doc文件進行重加載后運行。
[0005]但該漏洞挖掘方法,腳本中的目標內容需要進行手動修改,并在腳本中每一次手動修改目標內容后,需要將腳本重新加載至目標應用程序運行,以及,在腳本加載超時后,需要再次提交腳本至目標應用程序運行,使得挖掘該目標應用程序中存在的潛在漏洞所需的時間較長,漏洞挖掘效率較低。
【發明內容】
[0006]有鑒于此,本發明實施例提供一種漏洞挖掘方法、裝置及電子設備,提升漏洞挖掘效率。
[0007]為達到上述目的,本發明的實施例采用如下技術方案:
[0008]第一方面,本發明實施例提供一種漏洞挖掘方法,包括:
[0009]生成基于目標應用程序的模糊配置數據;
[0010]在預先設置的虛擬機中啟動所述目標應用程序,讀取用于目標應用程序的樣本文件;
[0011 ]解析所述用于目標應用程序的樣本文件的格式,得到數據塊,調用所述基于目標應用程序的模糊配置數據,對所述數據塊進行模糊配置,生成模糊數據;
[0012]將所述模糊數據寫入所述目標應用程序的輸入接口,在所述目標應用程序中運行所述模糊數據,依據運行所述模糊數據的運行結果信息進行漏洞挖掘。
[0013]優選地,所述在所述目標應用程序中運行所述模糊數據包括:
[0014]對寫入所述目標應用程序的輸入接口的模糊數據進行虛擬機鏡像;
[0015]在所述目標應用程序中運行所述模糊數據,如果運行所述模糊數據的時間超過預先設置的超時時間閾值,結束運行所述模糊數據,重加載所述虛擬機鏡像以進行漏洞挖掘。
[0016]優選地,通過快照方式對當前時刻包括內存狀態、文件操作、內核對象的進程狀態進行虛擬機鏡像。
[0017]優選地,所述在所述目標應用程序中運行所述模糊數據包括:
[0018]監控到所述目標應用程序在運行所述模糊數據的過程中異常,將記錄的運行結果寫入預先設置的結果數據庫中,結束所述所述模糊數據的運行;
[0019]判斷當前運行的所述模糊數據是否為最后一模糊數據,如果是,結束所述目標應用程序;如果不是,在所述目標應用程序中運行下一模糊數據。
[0020]優選地,在所述依據運行所述模糊數據的運行結果信息進行漏洞挖掘之前,所述方法進一步包括:
[0021 ]獲取所述目標應用程序中運行所述模糊數據的運行結果信息;
[0022]過濾運行結果信息中預先設置的非模糊數據運行產生的異常信息,基于過濾的運行結果信息執行所述漏洞挖掘。
[0023]優選地,在所述目標應用程序中運行所述模糊數據以進行漏洞挖掘之前,所述方法進一步包括:
[0024]如果生成的所述模糊數據為多個,為所述目標應用程序分配多個線程,每一線程運行一模糊數據。
[0025]優選地,利用模糊配置數據生成器,基于格式分析和目標應用程序解析相結合的方法生成所述模糊配置數據。
[0026]優選地,所述模糊配置數據的格式采用偏移-長度-數據類型格式。
[0027]優選地,利用預先注入在所述目標應用程序中的模糊數據動態鏈接庫腳本調用所述模糊配置數據。
[0028]第二方面,本發明實施例提供一種漏洞挖掘裝置,包括:配置模塊、樣本文件讀取模塊、模糊數據生成模塊以及漏洞挖掘模塊,其中,
[0029]配置模塊,用于生成基于目標應用程序的模糊配置數據;
[0030]樣本文件讀取模塊,用于在預先設置的虛擬機中啟動所述目標應用程序,讀取用于目標應用程序的樣本文件;
[0031 ]模糊數據生成模塊,用于解析所述用于目標應用程序的樣本文件的格式,得到數據塊,調用所述基于目標應用程序的模糊配置數據,對所述數據塊進行模糊配置,生成模糊數據;
[0032]漏洞挖掘模塊,用于將所述模糊數據寫入所述目標應用程序的輸入接口,在所述目標應用程序中運行所述模糊數據,依據運行所述模糊數據的運行結果信息進行漏洞挖掘。
[0033]優選地,所述漏洞挖掘模塊包括:寫入單元、鏡像單元、恢復鏡像單元以及漏洞挖掘單元,其中,
[0034]寫入單元,用于將所述模糊數據寫入所述目標應用程序的輸入接口;
[0035]鏡像單元,用于對寫入所述目標應用程序的輸入接口的模糊數據進行虛擬機鏡像;
[0036]超時檢測單元,用于在所述目標應用程序中運行所述模糊數據,如果運行所述模糊數據的時間超過預先設置的超時時間閾值,通知恢復鏡像單元;
[0037]恢復鏡像單元,用于接收通知,結束運行所述模糊數據,重加載所述虛擬機鏡像;
[0038]漏洞挖掘單元,用于依據運行所述模糊數據的運行結果信息進行漏洞挖掘。
[0039]優選地,通過快照方式對當前時刻包括內存狀態、文件操作、內核對象的進程狀態進行虛擬機鏡像。
[0040]優選地,所述漏洞挖掘模塊包括:寫入單元、監控單元、記錄單元、遍歷單元以及漏洞挖掘單元,其中,
[0041]寫入單元,用于將所述模糊數據寫入所述目標應用程序的輸入接口;
[0042]監控單元,用于在監控到所述目標應用程序在運行所述模糊數據的過程中異常后,通知記錄單元;
[0043]記錄單元,用于將記錄的運行結果寫入預先設置的結果數據庫中,結束所述所述模糊數據的運行,通知遍歷單元;
[0044]遍歷單元,用于判斷當前運行的所述模糊數據是否為最后一模糊數據,如果是,結束所述目標應用程序;如果不是,在所述目標應用程序中運行下一模糊數據;
[0045]漏洞挖掘單元,用于依據運行所述模糊數據的運行結果信息進行漏洞挖掘。
[0046]優選地,所述漏洞挖掘模塊進一步包括:
[0047]過濾單元,用于獲取所述目標應用程序中運行所述模糊數據的運行結果信息;過濾運行結果信息中預先設置的非模糊數據運行產生的異常信息,將過濾的運行結果信息輸出至所述漏洞挖掘單元。
[0048]優選地,所述漏洞挖掘模塊進一步包括:
[0049]線程分配單元,如果生成的所述模糊數據為多個,為所述目標應用程序分配多個線程,每一線程運行一模糊數據。
[0050]優選地,利用模糊配置數據生成器,基于格式分析和目標應用程序解析相結合的裝置生成所述模糊配置數據。
[0051 ]優選地,所述模糊配置數據的格式采用偏移-長度-數據類型格式。
[0052]優選地,利用預先注入在所述目標應用程序中的模糊數據動態鏈接庫腳本調用所述模糊配置數據。
[0053]第三方面,本發明實施例提供一種電子設備,所述電子設備包括:殼體、處理器、存儲