本技術涉及計算機安全,具體而言,涉及一種惡意軟件檢測方法、裝置、電子設備及存儲介質。
背景技術:
1、隨著操作系統和網站軟件惡意程序檢測和計算機安全使用規范的普及,高明的攻擊者往往開始將其攻擊面擴展到更加底層的系統和固件下,以獲得更高的控制權限和更持久的攻擊控制。uefi?bootkits是一種針對uefi引導啟動平臺的惡意軟件。uefi整體固件運行在內核層權限下,通過uefi漏洞造成的影響一般具有高隱蔽和高威脅的特點,攻擊者一但利用漏洞向uefi固件中植入惡意代碼,在操作系統層面是難以發現和清除的,而這也使得它成為惡意軟件如uefi?bootkits的潛在目標。
2、2018年,劉文祺等學者在電子科技大學學報發表基于uefi固件的bootkit檢測技術研究,其通過uefi協議涉及了名為uds的dxe驅動,用于檢測后續的啟動固件和操作系統引導的各類關鍵文件,研究設計了一個備份文件倉庫、完整性檢測、文件恢復三個主要模塊,通過dxe驅動比操作系統引導代碼更早運行的特性,完成對異常bootkits的完整性檢測和正常文件恢復。但受限于啟動階段的資源限制,使用簽名驗證雖在啟動速度上處與可接受的范圍,但要運用如路徑提取、反匯編、污點識別等需要更多計算資源、更多依賴庫的技術在dxe階段運行十分困難。造成無法準確識別惡意軟件的現象。
3、現有的uefi?bootkits檢測方法,主要通過兩類型方式檢測:
4、1、行為檢測:通過啟動時間、異常進程等方式側面判斷是否有uefi?bootkits;
5、2、固件掃描:掃描uefi固件并驗證固件的哈希,通過確認各類固件和文件系統的哈希來確定底層固件文件是否有惡意更改。
6、對于行為檢測來說,該方法實際上是比較常規的保護手段,其有一定的誤報率(其他類型的惡意軟件攻擊可能也符合此特征);同時根據啟動時間等判斷方式可能存在較大的誤差。而在固件掃描實踐上主要對于通過啟動固件bootmgfw.efi和winload.efi等文件的修改時間判斷有沒有uefi?bootkits攻擊。但首先,文件系統的修改時間等屬性是可以被惡意軟件修改的,通過修改時間判斷并不嚴謹。對于驗證文件簽名來說,可能會出現頻繁更新變動導致難以管理的情況,同時系統也難以維護。
技術實現思路
1、有鑒于此,本技術的目的在于提供一種惡意軟件檢測方法、裝置、電子設備及存儲介質,該一種惡意軟件檢測方法、裝置、電子設備及存儲介質,有效地解決了現有的uefi啟動安全技術中無法較為準確以及高效地識別出惡意軟件的存在的問題。
2、第一方面,本技術實施例提供了一種惡意軟件檢測方法,所述方法包括:
3、遍歷計算機中的uefi固件層在啟動時訪問的多個efi分區,篩選出目標efi分區,并復制所述目標efi分區中的文件得到待測固件;所述待測固件的形式為固件鏡像;
4、反匯編所述待測固件中的二進制代碼識別出函數,基于所述函數中的多個基本塊與基本塊之間的控制流信息建立出所述函數的函數拓撲結構;
5、基于多種檢測維度檢測所述函數以及所述函數拓撲結構,得到對應檢測維度的異常檢測結果;所述異常檢測結果包括所述函數對應的指令序列;
6、融合所述對應檢測維度的異常檢測結果得到異常結果,以基于所述異常結果識別出對應的指令序列為惡意指令序列,以基于所示惡意指令序列確定所述uefi固件層中存在惡意軟件。
7、結合第一方面,本技術實施例提供了第一方面的第一種可能的實施方式,其中,所述基于多種檢測維度檢測所述函數拓撲結構以及所述函數,得到對應檢測維度的異常檢測結果,包括:
8、基于所述函數拓撲結構,確定針對所述函數的多種檢測維度;不同的檢測維度對應不同的檢測方式;
9、調用所述檢測維度對應的檢測方式對所述函數以及所述函數拓撲結構進行檢測得到異常檢測結果。
10、結合第一方面,本技術實施例提供了第一方面的第二種可能的實施方式,其中,所述維度至少包括基本塊維度;
11、所述調用所述檢測維度對應的檢測方式對所述函數以及所述函數拓撲結構進行檢測得到異常檢測結果,包括:
12、獲取所述函數的函數地址,并遍歷所述函數地址得到所述函數的指令序列,并判斷所述指令序列是否滿足目標指令序列條件;
13、若是,則基于所述指令序列的頻次,標注所述指令序列并得到異常檢測結果。
14、結合第一方面,本技術實施例提供了第一方面的第三種可能的實施方式,其中,所述維度至少包括執行流維度;
15、所述調用所述檢測維度對應的檢測方式對所述函數以及所述函數拓撲結構進行檢測得到異常檢測結果,包括:
16、基于所述函數拓撲結構獲取所述函數的調用圖,并判斷所述調用圖的區塊類型是否滿足預置標準類型;
17、若是,則得到所述異常檢測結果,并輸入所述函數的地址至目標地址庫中。
18、結合第一方面,本技術實施例提供了第一方面的第四種可能的實施方式,其中,所述維度至少包括代碼維度;
19、所述調用所述檢測維度對應的檢測方式對所述函數以及所述函數拓撲結構進行檢測得到異常檢測結果,包括:
20、遍歷所述函數,定位所述函數內的目標代碼段,提取所述目標代碼段所處理的第一函數簽名;
21、檢查所述函數的交叉引用并還原得到第二函數簽名,基于所述第一函數簽名、所述第二函數簽名得到異常檢測結果。
22、結合第一方面,本技術實施例提供了第一方面的第五種可能的實施方式,其中,所述方法還包括:
23、獲取uefi固件層在啟動時的待測bcd文件與nvram配置變量,并基于不同的狀態處理維度分別處理所述待測bcd文件與nvram配置變量,得到對應的狀態結果;
24、基于所述狀態結果,識別出所述uefi固件層中的待測bcd文件存在的惡意指令序列,以基于所述惡意指令序列確定惡意軟件的存在,并確定惡意軟件存在。
25、結合第一方面,本技術實施例提供了第一方面的第六種可能的實施方式,其中,所述基于不同的狀態維度分別處理所述待測bcd文件與nvram配置變量,包括:
26、基于所述待測bcd文件與所述nvram配置變量設置不同的狀態處理維度,并設置對應的處理方式;
27、按照所述對應的處理方式,分別處理所述待測bcd文件與所述nvram配置變量。
28、第二方面,本技術實施例提供了一種惡意軟件檢測裝置,所述裝置包括:
29、篩選模塊,用于遍歷計算機中的uefi固件層在啟動時訪問的多個efi分區,篩選出目標efi分區,并復制所述目標efi分區中的文件得到待測固件;所述待測固件的形式為固件鏡像;
30、建立模塊,用于反匯編所述待測固件中的二進制代碼識別出函數,基于所述函數中的多個基本塊與基本塊之間的控制流信息建立出所述函數的函數拓撲結構;
31、檢測模塊,用于基于多種檢測維度檢測所述函數以及所述函數拓撲結構,得到對應檢測維度的異常檢測結果;所述異常檢測結果包括所述函數對應的指令序列;
32、融合模塊,用于融合所述對應檢測維度的異常檢測結果得到異常結果,以基于所述異常結果識別出對應的指令序列為惡意指令序列,以基于所示惡意指令序列確定所述uefi固件層中存在惡意軟件。
33、第三方面,本技術實施例提供了一種電子設備,包括:處理器、存儲器和總線,所述存儲器存儲有所述處理器可執行的機器可讀指令,當電子設備運行時,所述處理器與所述存儲器之間通過總線通信,所述機器可讀指令被所述處理器執行時執行任意一項所述的一種惡意軟件檢測方法的步驟。
34、第四方面,本技術實施例提供了一種計算機可讀存儲介質,該計算機可讀存儲介質上存儲有計算機程序,該計算機程序被處理器運行時執行任意一項所述的一種惡意軟件檢測方法的步驟。
35、本技術實施例提供的一種惡意軟件檢測方法,所述方法首先遍歷計算機中的uefi固件層在啟動時訪問的多個efi分區,篩選出目標efi分區,并復制所述目標efi分區中的文件得到待測固件;所述待測固件的形式為固件鏡像;其次反匯編所述待測固件中的二進制代碼識別出函數,基于所述函數中的多個基本塊與基本塊之間的控制流信息建立出所述函數的函數拓撲結構;然后基于多種檢測維度檢測所述函數以及所述函數拓撲結構,得到對應檢測維度的異常檢測結果;所述異常檢測結果包括所述函數對應的指令序列;最后融合所述對應檢測維度的異常檢測結果得到異常結果,以基于所述異常結果識別出對應的指令序列為惡意指令序列,以基于所示惡意指令序列確定所述uefi固件層中存在惡意軟件,有效地解決了現有的uefi啟動安全技術中無法較為準確以及高效地識別出惡意軟件的存在的問題,也避免了對計算機啟動階段時的資源使用,從而避免了計算機資源的限制,也提升了對惡意軟件uefi?bootkits進行識別的準確性與全面性,也減少了數據計算量,本技術結合了蹦床鉤子特征和調用圖值匹配的特征的檢查,而不是使用哈希簽名驗證的方式檢測惡意程序,使得其還有能夠檢測行為類似的新惡意uefi?bootkits的能力。