本發明屬于嵌入式設備漏洞挖掘,尤其涉及基于windows?ce操作系統嵌入式設備仿真的漏洞挖掘方法及系統。
背景技術:
1、本部分的陳述僅僅是提供了與本發明相關的背景技術信息,不必然構成在先技術。
2、隨著物聯網技術的深入發展,大量嵌入式設備接入互聯網,基于商業成本控制,嵌入式設備在設計時會在足以完成特定功能的情況下盡量節約成本,這使得嵌入式設備的硬件資源十分有限,從而使得這些設備缺乏安全防護措施。如果出現安全漏洞,就會對該嵌入式設備的使用帶來嚴重的安全隱患。
3、由于工業控制系統直接關聯到生產過程和設備安全,直接對其嵌入式設備測試可能會導致生產中斷、設備損壞甚至安全事故。工業控制系統通常運行在復雜的工業環境中,直接測試可能受到環境因素的限制,影響測試結果的準確性。同時直接測試需要投入大量的人力、物力和時間,且測試過程中可能需要暫停生產活動,導致成本上升。
4、現有技術中在分析嵌入式設備固件的安全性時,主要依賴靜態分析技術。然而面對數量龐大的嵌入式設備,其高人工成本和高誤報率的問題逐漸凸顯。
5、相比之下,動態分析技術以其高準確度和高自動化程度,顯著提升了漏洞挖掘的效率。然而,嵌入式設備固件安全分析的硬件依賴性是一個巨大的挑戰。實現嵌入式固件與底層硬件的分離的固件仿真已成為學術界的研究焦點。
6、模糊測試是一種通過向被測程序提供非預期的輸入并監視異常結果來發現目標漏洞的漏洞挖掘方法,然而存在一些局限性。
7、基于生成的模糊測試需要針對不同類型的程序編寫不同的測試代碼來描述輸入文件的格式和語法規則,可復用性較低。基于變異的模糊測試缺少對于測試用例的約束能力,大量測試用例會因無法滿足協議格式的標準而被丟棄,導致模糊測試效率降低。
8、綜上所述,目前存在著直接對工業控制系統關聯到生產過程和設備進行測試時設備易損壞、測試成本高、漏洞挖掘效率低等缺陷和不足的問題。
技術實現思路
1、為克服上述現有技術的不足,本發明提供了基于windows?ce操作系統嵌入式設備仿真的漏洞挖掘方法,能夠實現嵌入式設備的固件仿真以及仿真過程中的漏洞挖掘,提升系統安全性、預防潛在威脅保障工業生產的順利進行等。
2、為實現上述目的,本發明的一個或多個實施例提供了如下技術方案:
3、第一方面,公開了基于windows?ce操作系統嵌入式設備仿真的漏洞挖掘方法,包括:
4、獲取嵌入式設備處理器信息;
5、對嵌入式設備的固件進行固件解包以提取文件;
6、基于嵌入式設備處理器信息及提取的文件獲得嵌入式設備的操作系統,將操作系統與嵌入式設備的應用打包,形成完整的仿真鏡像,用于實現對使用windows?ce操作系統的嵌入式設備的系統態仿真;
7、在仿真環境中運行模糊測試對固件相應功能模塊進行漏洞挖掘。
8、作為進一步的技術方案,獲取嵌入式設備處理器信息的方式為:
9、對于實際物理設備,基于windows?ce系統的控制面板的信息獲取處理器型號;或
10、通過專用軟件或網線連接實際物理設備,獲得處理器的硬件信息,包括處理器型號。
11、作為進一步的技術方案,對嵌入式設備的固件進行固件解包以提取文件,具體包括:
12、通過進入網站或讀取sd卡的方式獲取嵌入式設備固件內核nk.bin,在nk.bin文件中則包含有windows系統文件和額外自定義的一些組件;
13、對于nk.bin,利用解包工具提取其中的文件。
14、作為進一步的技術方案,所述解包工具包括windows?ce開發工具包中的cvrtbin、viewbin及dumprom,基于上述工具提取nk.bin中的文件。
15、作為進一步的技術方案,所述嵌入式設備為可編程邏輯控制器時,對嵌入式設備的固件進行固件解包以提取文件,具體包括:
16、基于可編程邏輯控制器的官網,導航至固件下載頁面:
17、在官網中,基于固件下載頁面進一步導航至固件下載區域;
18、在固件下載區域選擇相應的型號下載,獲取設備固件內核nk.bin;
19、用解包工具提取設備固件內核nk.bin中的文件。
20、作為進一步的技術方案,基于嵌入式設備處理器信息及提取的文件獲得嵌入式設備的操作系統,包括:
21、提取qemu仿真器開發板配置信息;
22、生成bsp配置文件和編譯定制內核;
23、基于提取的配置信息、生成bsp配置文件和編譯定制內核獲得嵌入式設備的操作系統。
24、作為進一步的技術方案,提取qemu仿真器開發板配置信息,具體包括:
25、克隆qemu的git倉庫并切換到包含qemu仿真器開發板支持的分支git?clone;
26、在qemu的源代碼中,找到與特定架構相關的機器定義;
27、獲取開發板配置信息。
28、作為進一步的技術方案,生成bsp配置文件,包括:
29、在bsp開發環境,安裝相應的開發工具;
30、新建pb工程,啟動工程向導,初始化bsp框架;
31、根據目標操作系統和硬件平臺,選擇bsp模板克隆或從頭開始創建一個新的bsp框架;
32、設置bsp的目錄結構,根據硬件配置信息,編寫外設驅動程序,編寫或修改硬件抽象層代碼,以提供對硬件的抽象和封裝,使操作系統或rtos能夠更方便地訪問硬件資源;
33、最后使用開發工具鏈編譯bsp源代碼,生成可執行的二進制文件或鏡像。
34、作為進一步的技術方案,編譯定制內核,具體過程包括:
35、基于已創建的bsp,根據需求添加相應的模塊;
36、選擇基本配置結構;
37、選擇操作系統鏡像的基本配置及工程名稱;
38、選擇定制設備的方法:選擇操作系統特性;
39、選擇基礎類庫;
40、選擇操作系統核心服務。
41、作為進一步的技術方案,將操作系統與嵌入式設備的應用打包,形成完整的仿真鏡像,包括:
42、掛載法:將從嵌入式設備固件中提取的應用程序文件打包為一個fat16格式的磁盤鏡像文件,然后將其轉換為qemu支持的qcow2格式;或
43、打包法:修改windows?ce.net目標工程的project.bib文件,用于將從嵌入式設備固件中提取的應用程序文件集成到已創建的windows?ce?bsp中。
44、作為進一步的技術方案,在仿真環境中運行模糊測試對固件相應功能模塊進行漏洞挖掘,具體包括:
45、利用生成策略,依據網絡通信協議的精確語法信息生成符合協議規約的測試用例,生成高質量的種子文件;
46、引入變異策略,對生成的測試用例進行精細化的變異操作,并結合返回的覆蓋率信息,不斷優化測試用例變異策略,對被測程序更為深入和全面的測試,獲得輸入空間和潛在的異常場景,預測被測程序中可能存在的漏洞和缺陷;
47、在測試執行階段,密切監控被測程序的執行狀態和異常行為,通過對比和分析這些結果,識別被測程序中的漏洞和缺陷。
48、第二方面,公開了基于windows?ce操作系統嵌入式設備仿真的漏洞挖掘系統,包括:
49、預處理模塊,被配置為:獲取嵌入式設備處理器信息;
50、對嵌入式設備的固件進行固件解包以提取文件;
51、嵌入式設備仿真模塊,被配置為:基于嵌入式設備處理器信息及提取的文件獲得嵌入式設備的操作系統,將操作系統與嵌入式設備的應用打包,形成完整的仿真鏡像,用于實現對使用windows?ce操作系統的嵌入式設備的系統態仿真;
52、漏洞挖掘模糊測試模塊,被配置為:在仿真環境中運行模糊測試對固件相應功能模塊進行漏洞挖掘。
53、以上一個或多個技術方案存在以下有益效果:
54、本發明技術方案公開了一種基于windows?ce操作系統嵌入式設備仿真的漏洞挖掘方案,該方案兼顧了設備運行時不受干擾、保護了設備降低了測試成本的優點,同時解決了之前模糊測試效率低的缺陷,即該方法具有測試風險低、測試成本低、測試效率高、發現潛在漏洞的特點,在提升工業控制系統性能、增強安全性、降低測試風險和成本等方面具有顯著優勢。
55、本發明附加方面的優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。