System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及軟件安全,尤其涉及漏洞熱補方法、裝置、設備及存儲介質。
技術介紹
1、軟件漏洞的修復一般都是通過安裝軟件生產商或操作系統廠商提供的官方補丁來,但是補丁的開發到發布需要花費較長的時間,使得上述修復方式具有滯后性,如果用戶沒有及時安裝漏洞補丁,則存在安全風險。因此,第三方安全廠商提供了“熱補丁”機制,通過“熱補丁”機制可以實現在官方補丁發布之前就修復或緩解軟件漏洞帶來的安全威脅,但是目前常用的“熱補丁”機制針對的都是windows上c/c++等語言開發的原生模塊,無法對包含托管代碼的目標類型程序集進行的漏洞進行熱補,造成操作系統的安全性較低。
2、上述內容僅用于輔助理解本專利技術的技術方案,并不代表承認上述內容是現有技術。
技術實現思路
1、本專利技術的主要目的在于提供一種漏洞熱補方法、裝置、設備及存儲介質,旨在解決現有技術無法實現對目標類型程序集的漏洞的熱補,造成操作系統的安全性較低的技術問題。
2、為實現上述目的,本專利技術提供了一種漏洞熱補方法,所述漏洞熱補方法包括以下步驟:
3、在檢測到與存在漏洞的目標類型程序集相對應的預編譯模塊的加載信息時,獲取所述預編譯模塊的結構數據;
4、根據所述結構數據確定所述目標類型程序集的當前加載信息;
5、根據所述當前加載信息對所述目標類型程序集的漏洞進行熱補。
6、可選地,所述在檢測到與存在漏洞的目標類型程序集相對應的預編譯模塊的加載信息時,獲取所述預編譯模塊
7、判斷是否檢測到動態鏈接庫;
8、在檢測到動態鏈接庫時,根據所述動態鏈接庫進行加載回調,得到當前加載回調結果;
9、根據所述當前加載回調結果判斷是否檢測到與存在漏洞的目標類型程序集相對應的預編譯模塊的加載信息。
10、可選地,所述判斷是否檢測到動態鏈接庫之后,還包括:
11、在未檢測到動態鏈接庫時,通過目標dll函數注冊所述動態鏈接庫;
12、繼續執行根據所述動態鏈接庫進行加載回調,得到當前加載回調結果的步驟。
13、可選地,所述根據所述結構數據確定所述目標類型程序集的當前加載信息,包括:
14、根據所述結構數據得到可執行標準結構的目標數據;
15、根據所述可執行標準結構的目標數據阻止對預編譯模塊的加載;
16、在阻止成功后,運行自動加載原始程序集的目標模塊;
17、在運行過程中,實時獲取所述目標類型程序集的當前加載信息。
18、可選地,所述在運行過程中,實時獲取所述目標類型程序集的當前加載信息,包括:
19、在運行過程中,利用dllhook函數實時監測clrjit模塊的加載信息和mscorjit模塊的加載信息;
20、根據所述clrjit模塊的加載信息和mscorjit模塊的加載信息確定所述目標類型程序集的當前加載路徑和當前版本信息;
21、根據所述當前加載路徑和當前版本信息得到所述目標類型程序集的當前加載信息。
22、可選地,所述根據所述clrjit模塊的加載信息和mscorjit模塊的加載信息確定所述目標類型程序集的當前加載路徑和當前版本信息,包括:
23、根據所述clrjit模塊的加載信息獲取相對應的clrjitdll函數,以及根據所述mscorjit模塊的加載信息獲取相對應的mscorjitdll函數;
24、根據目標對象虛表獲取所述clrjitdll函數和mscorjitdll函數的getjit導出函數;
25、通過調用getjit導出函數獲取目標ciljit函數;
26、根據所述目標ciljit函數的解析參數確定所述目標類型程序集的當前加載路徑和當前版本信息。
27、可選地,所述根據所述當前加載信息對所述目標類型程序集的漏洞進行熱補,包括:
28、根據所述當前加載信息得到所述目標類型程序集的版本號;
29、根據預設內置漏洞編號數據表生成當前版本號列表;
30、將所述目標類型程序集的版本號與所述當前版本號列表進行匹配;
31、根據匹配成功的版本號生成目標漏洞熱補策略;
32、根據所述目標漏洞熱補策略對所述目標類型程序集的漏洞進行熱補。
33、可選地,所述根據匹配成功的版本號生成目標漏洞熱補策略,包括:
34、根據匹配成功的版本號確定libscentdll函數;
35、根據所述libscentdll函數得到libscentdispatcher函數;
36、通過調用所述libscentdispatcher函數生成目標漏洞熱補策略。
37、可選地,所述根據所述目標漏洞熱補策略對所述目標類型程序集的漏洞進行熱補,包括:
38、根據當前進程的版本信息得到相對應的當前版本號;
39、在所述當前版本號小于或等于第一版本號時,獲取mscoree.dll函數的corbindtoruntimeex導出函數;
40、通過調用所述corbindtoruntimeex導出函數得到iclrruntimehost接口;
41、根據所述iclrruntimehost接口的executeindefaultappdomain函數和所述目標漏洞熱補策略對所述目標類型程序集的漏洞進行熱補。
42、可選地,所述根據當前進程的版本信息得到相對應的當前版本號之后,還包括:
43、在所述當前版本號大于或等于第二版本號時,獲取mscoree.dll函數的clrcreateinstance導出函數;
44、通過調用所述clrcreateinstance導出函數得到iclrmetahost接口;
45、根據所述iclrmetahost接口的executeindefaultappdomain函數和所述目標漏洞熱補策略對所述目標類型程序集的漏洞進行熱補。
46、可選地,所述根據所述當前加載信息對所述目標類型程序集的漏洞進行熱補之后,還包括:
47、獲取漏洞名稱以及熱補處理方式;
48、根據所述漏洞名稱和熱補處理方式生成漏洞阻止提示信息;
49、將所述漏洞阻止提示信息以目標形式進行展示。
50、此外,為實現上述目的,本專利技術還提出一種漏洞熱補裝置,所述漏洞熱補裝置包括:
51、檢測模塊,用于在檢測到與存在漏洞的目標類型程序集相對應的預編譯模塊的加載信息時,獲取所述預編譯模塊的結構數據;
52、確定模塊,用于根據所述結構數據確定所述目標類型程序集的當前加載信息;
53、熱補模塊,用于根據所述當前加載信息對所述目標類型程序集的漏洞進行熱補。
54、可選地,所述檢測模塊,還用于判斷是否檢測到動態鏈接庫;在檢測到本文檔來自技高網...
【技術保護點】
1.一種漏洞熱補方法,其特征在于,所述漏洞熱補方法包括以下步驟:
2.如權利要求1所述的漏洞熱補方法,其特征在于,所述在檢測到與存在漏洞的目標類型程序集相對應的預編譯模塊的加載信息時,獲取所述預編譯模塊的結構數據之前,還包括:
3.如權利要求2所述的漏洞熱補方法,其特征在于,所述判斷是否檢測到動態鏈接庫之后,還包括:
4.如權利要求1所述的漏洞熱補方法,其特征在于,所述根據所述結構數據確定所述目標類型程序集的當前加載信息,包括:
5.如權利要求4所述的漏洞熱補方法,其特征在于,所述在運行過程中,實時獲取所述目標類型程序集的當前加載信息,包括:
6.如權利要求5所述的漏洞熱補方法,其特征在于,所述根據所述clrjit模塊的加載信息和mscorjit模塊的加載信息確定所述目標類型程序集的當前加載路徑和當前版本信息,包括:
7.如權利要求1所述的漏洞熱補方法,其特征在于,所述根據所述當前加載信息對所述目標類型程序集的漏洞進行熱補,包括:
8.一種漏洞熱補裝置,其特征在于,所述漏洞熱補裝置包括:
< ...【技術特征摘要】
1.一種漏洞熱補方法,其特征在于,所述漏洞熱補方法包括以下步驟:
2.如權利要求1所述的漏洞熱補方法,其特征在于,所述在檢測到與存在漏洞的目標類型程序集相對應的預編譯模塊的加載信息時,獲取所述預編譯模塊的結構數據之前,還包括:
3.如權利要求2所述的漏洞熱補方法,其特征在于,所述判斷是否檢測到動態鏈接庫之后,還包括:
4.如權利要求1所述的漏洞熱補方法,其特征在于,所述根據所述結構數據確定所述目標類型程序集的當前加載信息,包括:
5.如權利要求4所述的漏洞熱補方法,其特征在于,所述在運行過程中,實時獲取所述目標類型程序集的當前加載信息,包括:
6.如權利要求5所述的漏洞熱補方法,其特征在于,所述根據所述clrj...
【專利技術屬性】
技術研發人員:魏狄龍,鄭勁松,
申請(專利權)人:三六零數字安全科技集團有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。