本申請涉及漏洞修復,具體而言,涉及一種漏洞自動修復的方法、存儲介質、設備及產品。
背景技術:
1、應用程序的bug,狹義概念是指軟件程序的漏洞或缺陷,廣義概念除此之外還包括測試工程師或用戶所發現和提出的軟件可改進的細節、或與需求文檔存在差異的功能實現等。由于應用程序的代碼大部分是由開發人員進行手動編寫錄入的,因此在編寫過程中難免會存在一些漏洞。而且任何應用程序在發布時都不可能是絕對的零bug。當檢測到應用程序存在bug時通常采用打補丁的方式進行修復。當前補丁文件依賴于版本,一個版本對應一個補丁文件,且需要技術人員手動上傳;若技術人員出差錯則會存在版本不兼容的問題。
2、因此,如何提供一種高效且準確的漏洞自動修復的方法的技術方案成為亟需解決的技術問題。
技術實現思路
1、本申請的一些實施例的目的在于提供一種漏洞自動修復的方法、存儲介質、設備及產品,通過本申請的實施例的技術方案可以實現漏洞自動修復,提升漏洞修復的效率和準確性,降低了人力成本。
2、第一方面,本申請的一些實施例提供了一種漏洞自動修復的方法,包括:從應用程序中存在的至少一個漏洞中確定出當前執行修復操作的待修復漏洞;從所述補丁文件庫中查找與所述待修復漏洞對應的目標補丁文件;其中,所述補丁文件庫中含有多種不同類型的漏洞所對應的補丁文件;所述多種不同類型的漏洞和所述補丁文件以目錄的形式存儲;在確認所述目標補丁文件通過校驗的情況下,將所述目標補丁文件與所述待修復漏洞所屬的版本進行對比,獲取對比結果;在所述對比結果為不一致的情況下,利用所述目標補丁文件對所述待修復漏洞進行修復,得到修復后應用程序。
3、本申請的一些實施例通過從應用程序的漏洞中選擇出待修復漏洞后從補丁文件庫中查找與之對應的目標補丁文件,之后對目標補丁文件本身以及目標補丁文件與版本間進行對比校驗后,在利用目標補丁文件對待修復漏洞進行修復,得到修復后應用程序。本申請的一些實施例可以實現目標補丁文件的自動查找,實現了漏洞自動修復,提升了漏洞修復的效率和準確性,降低了人力和時間成本。
4、在一些實施例,所述從應用程序中存在的至少一個漏洞中確定出當前執行修復操作的待修復漏洞,包括:獲取所述至少一個漏洞,并對所述至少一個漏洞按照排序規則進行優先級排序,得到修復漏洞隊列;其中,所述排序規則包括:修復難度、修復時長或版本重要程度;從所述修復漏洞隊列中確定所述待修復漏洞。
5、本申請的一些實施例通過對漏洞進行優先級排序,確定出當前執行修復操作的待修復漏洞,可以合理規劃漏洞的修復次序,提升修復效率。
6、在一些實施例,在所述從所述補丁文件庫中查找與所述待修復漏洞對應的目標補丁文件之前,所述方法還包括:獲取各種版本的應用程序存在的各種漏洞類型所對應的各種補丁文件;將所述各種補丁文件按照目錄的形式集成到所述補丁文件庫中。
7、本申請的一些實施例通過對各種補丁文件集成到補丁文件庫中,可以實現目標補丁文件的自動查找,無需人工上傳,節約了人力和時間成本。
8、在一些實施例,所述確認所述目標補丁文件通過校驗,包括:對所述目標補丁文件進行計算,獲取待校驗值;確認所述待校驗值與所述補丁文件庫中預先存儲的所述目標補丁文件的校驗值一致,則所述目標補丁文件通過校驗;或者,從所述目標補丁文件中獲取與所述待修復漏洞對應的補丁函數;對所述補丁函數進行計算,得到待驗證值;確認所述待驗證值與所述補丁文件庫中預先存儲的所述補丁函數的函數特征值一致,則所述目標補丁文件通過校驗。
9、本申請的一些實施例通過對目標補丁文件或目標補丁文件中的補丁函數進行校驗,確保目標補丁文件中的內容未被篡改,保障修復的有效性和安全性。
10、在一些實施例,所述將所述目標補丁文件與所述待修復漏洞所屬的版本進行對比,獲取對比結果,包括:對所述目標補丁文件的內容進行計算,得到第一校驗值;對所述版本進行計算,得到第二校驗值;若所述第一校驗值和所述第二校驗值一致,則所述對比結果為一致;若所述第一校驗值和所述第二校驗值不一致,則所述對比結果為不一致。
11、本申請的一些實施例通過將目標補丁文件和待修復漏洞的版本進行對比,確認該待修復漏洞需要進行修復,保障修復的精準度。
12、在一些實施例,所述方法還包括:在監測到新補丁文件產生后,使用所述新補丁文件更新所述補丁文件庫。
13、本申請的一些實施例通過對補丁文件庫進行持續更新,提升補丁文件庫的修復能力。
14、在一些實施例,在所述得到修復后應用程序之后,所述方法還包括:定期將所述修復后應用程序中的補丁文件與所述補丁文件庫進行對比,在所述修復后應用程序中的補丁文件與所述補丁文件庫內存儲不一致的情況下,對所述修復后應用程序中的補丁文件執行修復操作。
15、本申請的一些實施例通過定期對修復后應用程序中的補丁文件進行自動檢測,可以實現自動定期修復,提升修復效率。
16、第二方面,本申請的一些實施例提供了一種漏洞自動修復的裝置,包括:漏洞確定模塊,用于從應用程序中存在的至少一個漏洞中確定出當前執行修復操作的待修復漏洞;補丁查找模塊,用于從所述補丁文件庫中查找與所述待修復漏洞對應的目標補丁文件;其中,所述補丁文件庫中含有多種不同類型的漏洞所對應的補丁文件;所述多種不同類型的漏洞和所述補丁文件以目錄的形式存儲;對比模塊,用于在確認所述目標補丁文件通過校驗的情況下,將所述目標補丁文件與所述待修復漏洞所屬的版本進行對比,獲取對比結果;修復模塊,用于在所述對比結果為不一致的情況下,利用所述目標補丁文件對所述待修復漏洞進行修復,得到修復后應用程序。
17、第三方面,本申請的一些實施例提供一種計算機可讀存儲介質,其上存儲有計算機程序,所述程序被處理器執行時可實現如第一方面任一實施例所述的方法。
18、第四方面,本申請的一些實施例提供一種電子設備,包括存儲器、處理器以及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其中,所述處理器執行所述程序時可實現如第一方面任一實施例所述的方法。
19、第五方面,本申請的一些實施例提供一種計算機程序產品,所述的計算機程序產品包括計算機程序,其中,所述的計算機程序被處理器執行時可實現如第一方面任一實施例所述的方法。
1.一種漏洞自動修復的方法,其特征在于,包括:
2.如權利要求1所述的方法,其特征在于,所述從應用程序中存在的至少一個漏洞中確定出當前執行修復操作的待修復漏洞,包括:
3.如權利要求1或2所述的方法,其特征在于,在所述從所述補丁文件庫中查找與所述待修復漏洞對應的目標補丁文件之前,所述方法還包括:
4.如權利要求1或2所述的方法,其特征在于,所述確認所述目標補丁文件通過校驗,包括:
5.如權利要求1或2所述的方法,其特征在于,所述將所述目標補丁文件與所述待修復漏洞所屬的版本進行對比,獲取對比結果,包括:
6.如權利要求1或2所述的方法,其特征在于,所述方法還包括:
7.如權利要求1或2所述的方法,其特征在于,在所述得到修復后應用程序之后,所述方法還包括:
8.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序,其中,所述計算機程序被處理器運行時執行如權利要求1-7中任意一項權利要求所述的方法。
9.一種電子設備,其特征在于,包括存儲器、處理器以及存儲在所述存儲器上并在所述處理器上運行的計算機程序,其中,所述計算機程序被所述處理器運行時執行如權利要求1-7中任意一項權利要求所述的方法。
10.一種計算機程序產品,其特征在于,所述的計算機程序產品包括計算機程序,其中,所述的計算機程序被處理器運行時執行如權利要求1-7中任意一項權利要求所述的方法。