本發(fā)明涉及信息安全技術領域,特別是一種漏洞修復系統(tǒng)、方法及設備。
背景技術:
在win10中,微軟引入了新的windows更新發(fā)布機制,即不再使用過去的分散獨立安裝包的形式,而是改用每月一個大累計更新包的形式。這種形式解決了系統(tǒng)更新碎片化嚴重的問題,使得系統(tǒng)更新過程更加簡單。但也存在一些問題,例如,累計更新包體積比較大(如win10x64累計更新已超過1g),包含了大而全的更新信息,而這些信息對于具體某個用戶終端來說,并非都是必須的。此外,微軟也在其官方博客中表示,win10這種累計更新的方式將逐步應用到目前支持更新的所有系統(tǒng)(如win7sp1、win8.1等),同時會逐步取消分散獨立安裝包的更新發(fā)布形式。
目前,漏洞修復模塊的實現(xiàn)方案是從微軟每月定期發(fā)布分散獨立安裝包的網(wǎng)站中獲取分散的獨立安裝包信息,然后盡快將這些信息以補丁庫的形式下發(fā)到用戶終端,并在集中時段盡早觸發(fā)用戶端提醒,在用戶的干預下將合適的分散獨立安裝包下載到存在相應漏洞的用戶終端中,再將這些獨立安裝包一一安裝在用戶終端上,以此實現(xiàn)用戶本機漏洞文件的升級與修復。
若微軟完全采用了新的更新發(fā)布機制,目前實現(xiàn)方案下雖然能為用戶打上補丁,但會存在一些嚴重問題:
(1)累計更新包的體積較大,若要對國內海量用戶集中發(fā)布,對帶寬資源將是一個嚴峻的挑戰(zhàn),發(fā)布難度加大;
(2)對具體的某個用戶終端來說,累計更新包中存在很多無用信息,這會造成不必要的流量浪費。
因此,亟需針對微軟這種新的更新發(fā)布機制進行邏輯更新,從而來解決上述問題。
技術實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的漏洞修復系統(tǒng)、方法及相應的設備。
依據(jù)本發(fā)明的一方面,提供了一種漏洞修復系統(tǒng),包括:數(shù)據(jù)發(fā)布服務器、文件服務器以及客戶端;
所述數(shù)據(jù)發(fā)布服務器,適于按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù);從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對所述全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫;將所述累計更新數(shù)據(jù)中的更新文件發(fā)布到所述文件服務器,以及通過指定通道發(fā)布所述各平臺的掃描庫;
所述文件服務器,適于同步所述更新文件,并獲取所述更新文件的標識和所述更新文件所在所述文件服務器的地址信息,建立所述更新文件的包含標識和地址信息的索引;
所述客戶端,適于當接收到漏洞修復的觸發(fā)事件時,加載通過所述指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫,利用所述目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識;利用所述待安裝更新文件的標識從所述文件服務器處獲取所述待安裝更新文件,進而利用所述待安裝更新文件對本地漏洞進行修復。
可選地,所述文件服務器包括多個內容分發(fā)網(wǎng)絡cdn結點和kv服務器;
各cdn結點,適于同步所述更新文件;
所述kv服務器,適于獲取所述更新文件的標識和所述更新文件所在各cdn結點的地址信息,并建立所述更新文件的包含標識和地址信息的索引。
可選地,所述索引中還包括下列至少之一的索引信息:
更新文件的摘要信息、大小、發(fā)布時間、校驗信息。
可選地,所述數(shù)據(jù)發(fā)布服務器還適于:
將所述更新文件上傳到cdn發(fā)布服務器并同步到各cdn結點。
可選地,所述數(shù)據(jù)發(fā)布服務器還適于:
按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù)的描述信息,其中,所述描述信息中包含下載所述累計更新數(shù)據(jù)的下載地址;
根據(jù)所述描述信息中的下載地址下載得到所述累計更新數(shù)據(jù)。
可選地,所述數(shù)據(jù)發(fā)布服務器還適于:
調用第一命令從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫;
調用第二命令根據(jù)各系統(tǒng)平臺的標識從所述全平臺掃描庫中導出各平臺的補丁的更新列表;
調用第三命令根據(jù)所述全平臺掃描庫和所述更新列表生成各平臺的掃描庫。
可選地,所述各平臺的掃描庫中記錄有各補丁對應的更新文件的標識,所述客戶端還適于:
利用所述目標掃描庫對本地漏洞進行掃描,得到本地系統(tǒng)上未安裝的補丁的掃描結果集;
從所述掃描結果集中選取待安裝的補??;
根據(jù)所述目標掃描庫中記錄的各補丁對應的更新文件的標識,確定所述待安裝的補丁對應的所述待安裝更新文件的標識。
可選地,所述客戶端還適于:
枚舉所述目標掃描庫中所有的補丁,得到更新列表;
遍歷所述更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上,若否,則將該補丁添加到所述掃描結果集中。
可選地,所述客戶端還適于:
在遍歷所述更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上之前,判斷各補丁的父依賴是否檢測通過,若是,則判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上。
可選地,所述客戶端還適于:
若某補丁的父依賴未檢測通過,則繼續(xù)從所述更新列表中取下一個補丁,判斷下一個補丁的父依賴是否檢測通過。
可選地,所述客戶端還適于:
根據(jù)所述目標掃描庫中記錄的各補丁對應的更新文件的標識,確定所述待安裝的補丁對應的備選更新文件的標識;
根據(jù)所述備選更新文件的標識確定所述待安裝更新文件的標識。
可選地,當所述更新文件包括更新包時,所述客戶端還適于:
根據(jù)所述目標掃描庫中記錄的各補丁對應的更新包的標識,確定所述待安裝的補丁對應的目標更新包的標識;
利用所述目標更新包的標識從所述kv服務器處獲取所述目標更新包的地址信息;
利用所述目標更新包的地址信息從相應的cdn結點處下載得到所述目標更新包;
解壓所述目標更新包得到備選更新文件的標識。
可選地,所述客戶端還適于:
根據(jù)所述備選更新文件的標識,判斷本地系統(tǒng)上是否已經(jīng)存在該備選更新文件;
若否,則將該備選更新文件的標識寫入差量文件清單中,并將所述差量文件清單中文件的標識作為所述待安裝更新文件的標識;
若是,則將本地系統(tǒng)上的該備選更新文件復制到臨時安裝目錄。
可選地,所述客戶端還適于:
利用所述待安裝更新文件的標識從所述kv服務器處獲取所述待安裝更新文件的地址信息;
利用所述待安裝更新文件的地址信息從相應的cdn結點處下載得到所述待安裝更新文件。
可選地,所述客戶端還適于:
將下載得到的所述待安裝更新文件復制到所述臨時安裝目錄。
可選地,所述客戶端還適于:
利用所述待安裝更新文件的標識,從所述kv服務器處獲取所述待安裝更新文件的包含更新文件的校驗信息的索引信息;
利用所述校驗信息對下載得到所述待安裝更新文件進行校驗,在校驗通過后,將所述待安裝更新文件復制到所述臨時安裝目錄。
可選地,所述客戶端還適于:
安裝所述臨時安裝目錄中的文件,以對本地漏洞進行修復。
依據(jù)本發(fā)明的另一方面,還提供了一種漏洞修復方法,應用于數(shù)據(jù)發(fā)布服務器,包括:
按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù);
從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對所述全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫;
將所述累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,以及通過指定通道發(fā)布所述各平臺的掃描庫。
依據(jù)本發(fā)明的另一方面,還提供了一種漏洞修復方法,應用于文件服務器,包括:
同步來自數(shù)據(jù)發(fā)布服務器的更新文件;
獲取所述更新文件的標識和所述更新文件所在所述文件服務器的地址信息,建立所述更新文件的包含標識和地址信息的索引。
依據(jù)本發(fā)明的另一方面,還提供了一種漏洞修復方法,應用于客戶端,包括:
當接收到漏洞修復的觸發(fā)事件時,加載數(shù)據(jù)發(fā)布服務器通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫;
利用所述目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識;
利用所述待安裝更新文件的標識從文件服務器處獲取所述待安裝更新文件,進而利用所述待安裝更新文件對本地漏洞進行修復。
依據(jù)本發(fā)明的又一方面,還提供了一種數(shù)據(jù)發(fā)布服務器,包括:
第一同步模塊,適于按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù);
第一處理模塊,適于從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對所述全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫;
發(fā)布模塊,適于將所述累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,以及通過指定通道發(fā)布所述各平臺的掃描庫。
依據(jù)本發(fā)明的又一方面,還提供了一種文件服務器,包括:
第二同步模塊,適于同步來自數(shù)據(jù)發(fā)布服務器的更新文件;
第二處理模塊,適于獲取所述更新文件的標識和所述更新文件所在所述文件服務器的地址信息,建立所述更新文件的包含標識和地址信息的索引。
依據(jù)本發(fā)明的又一方面,還提供了一種客戶端,包括:
加載模塊,適于當接收到漏洞修復的觸發(fā)事件時,加載數(shù)據(jù)發(fā)布服務器通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫;
掃描模塊,適于利用所述目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識;
漏洞修復模塊,適于利用所述待安裝更新文件的標識從文件服務器處獲取所述待安裝更新文件,進而利用所述待安裝更新文件對本地漏洞進行修復。
本發(fā)明實施例提供了一種包括數(shù)據(jù)發(fā)布服務器、文件服務器以及客戶端的漏洞修復系統(tǒng),數(shù)據(jù)發(fā)布服務器按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù);從累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫;將累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,以及通過指定通道發(fā)布各平臺的掃描庫;文件服務器同步更新文件,并獲取更新文件的標識和更新文件所在文件服務器的地址信息,建立更新文件的包含標識和地址信息的索引;客戶端當接收到漏洞修復的觸發(fā)事件時,加載通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫,利用目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識;利用待安裝更新文件的標識從文件服務器處獲取待安裝更新文件,進而利用待安裝更新文件對本地漏洞進行修復。由此可見,由于數(shù)據(jù)發(fā)布服務器按照指定時間周期從程序提供者處同步獲取累計更新數(shù)據(jù),并對累計更新數(shù)據(jù)進行處理和發(fā)布,這樣客戶端在進行漏洞修復時無需從程序提供者處獲取并處理累計更新數(shù)據(jù),而是直接從發(fā)布至的文件服務器處獲取更新文件,能夠提高漏洞修復的效率。并且,數(shù)據(jù)發(fā)布服務器對全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫,這樣客戶端在進行漏洞修復時直接加載與自身系統(tǒng)平臺匹配的掃描庫,可以提高掃描效率,并提升漏洞修復的有效性。
上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
根據(jù)下文結合附圖對本發(fā)明具體實施例的詳細描述,本領域技術人員將會更加明了本發(fā)明的上述以及其他目的、優(yōu)點和特征。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一實施例的漏洞修復系統(tǒng)的結構示意圖;
圖2示出了根據(jù)本發(fā)明另一實施例的漏洞修復系統(tǒng)的結構示意圖;
圖3示出了客戶端230的一種掃描流程的示意圖;
圖4示出了客戶端230的一種安裝流程的示意圖;
圖5示出了根據(jù)本發(fā)明一實施例的應用于數(shù)據(jù)發(fā)布服務器的漏洞修復方法的流程圖;
圖6示出了根據(jù)本發(fā)明一實施例的應用于文件服務器的漏洞修復方法的流程圖;
圖7示出了根據(jù)本發(fā)明一實施例的應用于客戶端的漏洞修復方法的流程圖;
圖8示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)發(fā)布服務器的結構示意圖;
圖9示出了根據(jù)本發(fā)明一實施例的文件服務器的結構示意圖;以及
圖10示出了根據(jù)本發(fā)明一實施例的客戶端的結構示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
為解決上述技術問題,本發(fā)明實施例提供了一種漏洞修復系統(tǒng)。圖1示出了根據(jù)本發(fā)明一實施例的漏洞修復系統(tǒng)的結構示意圖。如圖1所示,該漏洞修復系統(tǒng)100可以包括:數(shù)據(jù)發(fā)布服務器110、文件服務器120、客戶端130。
數(shù)據(jù)發(fā)布服務器110,適于按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù);從累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫;將累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,以及通過指定通道發(fā)布各平臺的掃描庫;
文件服務器120,與數(shù)據(jù)發(fā)布服務器110相耦合,適于同步更新文件,并獲取更新文件的標識和更新文件所在文件服務器的地址信息,建立更新文件的包含標識和地址信息的索引;
客戶端130,與文件服務器120相耦合,適于當接收到漏洞修復的觸發(fā)事件時,加載通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫,利用目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識;利用待安裝更新文件的標識從文件服務器處獲取待安裝更新文件,進而利用待安裝更新文件對本地漏洞進行修復。
本發(fā)明實施例由于數(shù)據(jù)發(fā)布服務器110按照指定時間周期從程序提供者處同步獲取累計更新數(shù)據(jù),并對累計更新數(shù)據(jù)進行處理和發(fā)布,這樣客戶端130在進行漏洞修復時無需從程序提供者處獲取并處理累計更新數(shù)據(jù),而是直接從發(fā)布至的文件服務器120處獲取更新文件,能夠提高漏洞修復的效率。并且,數(shù)據(jù)發(fā)布服務器110對全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫,這樣客戶端130在進行漏洞修復時直接加載與自身系統(tǒng)平臺匹配的掃描庫,可以提高掃描效率,并提升漏洞修復的有效性。
在本發(fā)明的可選實施例中,數(shù)據(jù)發(fā)布服務器110在同步累計更新數(shù)據(jù)時,可以按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù)的描述信息,其中,描述信息中包含下載累計更新數(shù)據(jù)的下載地址;進而根據(jù)描述信息中的下載地址下載得到累計更新數(shù)據(jù)。
在本發(fā)明的可選實施例中,數(shù)據(jù)發(fā)布服務器110在對全平臺掃描庫進行拆分時,可以調用第一命令從累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,隨后調用第二命令根據(jù)各系統(tǒng)平臺的標識從全平臺掃描庫中導出各平臺的補丁的更新列表,之后調用第三命令根據(jù)全平臺掃描庫和更新列表生成各平臺的掃描庫。這里的各系統(tǒng)平臺的標識可以如win7、win8.1、win10、office等,本發(fā)明不限于此。
在本發(fā)明的可選實施例中,文件服務器120可以包括多個cdn(contentdeliverynetwork,內容分發(fā)網(wǎng)絡)結點和kv服務器。多個cdn結點中的各cdn結點適于同步更新文件,kv服務器適于獲取更新文件的標識和更新文件所在各cdn結點的地址信息,并建立更新文件的包含標識和地址信息的索引。這里的索引可以是key-value的形式,索引中的標識可以作為key,地址信息可以作為value。在可選的實施例中,索引中還可以包括更新文件的摘要信息、大小、發(fā)布時間、校驗信息等索引信息,這些索引信息均可以作為value。
在本發(fā)明的可選實施例中,在各cdn結點同步更新文件時,可以是由數(shù)據(jù)發(fā)布服務器110將更新文件上傳到cdn發(fā)布服務器并同步到各cdn結點。
在本發(fā)明的可選實施例中,各平臺的掃描庫中記錄有各補丁對應的更新文件的標識,這樣客戶端130在利用目標掃描庫按照掃描規(guī)則對本地漏洞進行掃描時,可以確定本地系統(tǒng)上未安裝的補丁的掃描結果集,隨后從掃描結果集中選取待安裝的補丁,進而根據(jù)目標掃描庫中記錄的各補丁對應的更新文件的標識,確定待安裝的補丁對應的待安裝更新文件的標識。
進一步地,客戶端130可以枚舉目標掃描庫中所有的補丁,得到更新列表,隨后遍歷更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上,若否,則將該補丁添加到掃描結果集中;若是,則繼續(xù)從更新列表中選取下一個補丁,判斷下一個補丁是否已經(jīng)安裝在本地系統(tǒng)上,以此類推。
在可選的實施例中,客戶端130在遍歷更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上之前,還可以判斷各補丁的父依賴是否檢測通過,若是,則判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上;若否,則繼續(xù)從更新列表中選取下一個補丁,判斷下一個補丁的父依賴是否檢測通過,以此類推。
在本發(fā)明的可選實施例中,為了減少下載流量,提高漏洞修復效率,本發(fā)明實施例實現(xiàn)了差量更新文件的下載,并將差量更新文件與本系統(tǒng)的已有文件進行合并,然后進行快速安裝,從而實現(xiàn)漏洞修復。具體地,本發(fā)明實施例可以根據(jù)目標掃描庫中記錄的各補丁對應的更新文件的標識,確定待安裝的補丁對應的備選更新文件的標識,進而根據(jù)備選更新文件的標識確定待安裝更新文件的標識。這里的備選更新文件可以認為是待安裝的補丁對應的所有更新文件,待安裝更新文件是差量更新文件,下面將分別介紹如何確定備選更新文件的標識和待安裝更新文件的標識。
首先介紹備選更新文件的標識的確定方案,在該方案中,更新文件包括更新包,更新包中記錄有備選更新文件的標識,客戶端130根據(jù)目標掃描庫中記錄的各補丁對應的更新包的標識,確定待安裝的補丁對應的目標更新包的標識;隨后利用目標更新包的標識從kv服務器處獲取目標更新包的地址信息;進而利用目標更新包的地址信息從相應的cdn結點處下載得到目標更新包;之后解壓目標更新包得到備選更新文件的標識。
接著介紹待安裝更新文件的標識的確定方案,即,客戶端130根據(jù)備選更新文件的標識,判斷本地系統(tǒng)上是否已經(jīng)存在該備選更新文件;若否,則將該備選更新文件的標識寫入差量文件清單中,并將差量文件清單中文件的標識作為待安裝更新文件的標識;若是,則將本地系統(tǒng)上的該備選更新文件復制到臨時安裝目錄。
在確定待安裝更新文件的標識后,客戶端130可以利用待安裝更新文件的標識從kv服務器處獲取待安裝更新文件的地址信息,進而利用待安裝更新文件的地址信息從相應的cdn結點處下載得到待安裝更新文件。接下來,客戶端130可以將下載得到的待安裝更新文件復制到臨時安裝目錄,并安裝臨時安裝目錄中的文件,以對本地漏洞進行修復。
在可選的實施例中,為了保證待安裝更新文件的有效性,可以對待安裝更新文件進行信息校驗,具體地,可以利用待安裝更新文件的標識,從kv服務器處獲取待安裝更新文件的包含更新文件的校驗信息的索引信息,進而利用校驗信息對下載得到待安裝更新文件進行校驗,在校驗通過后,將待安裝更新文件復制到臨時安裝目錄。
在可選的實施例中,客戶端130可以安裝在用戶終端上。
下面以一具體應用實例來介紹本發(fā)明實施例提供的漏洞修復系統(tǒng)。以程序提供者為微軟為例,如前文介紹,在win10中,微軟引入了新的windows更新發(fā)布機制,即不再使用過去的分散獨立安裝包的形式,而是改用每月一個大累計更新包的形式。本發(fā)明實施例提供的漏洞修復系統(tǒng)中的數(shù)據(jù)發(fā)布服務器110為wsus(windowsserverupdateservices,windows服務器更新服務)服務器,它包含一個標準wsus服務以及一系列自實現(xiàn)的數(shù)據(jù)發(fā)布工具。
一方面,wsus服務負責定期地從微軟云服務器同步最新的更新數(shù)據(jù)庫,更新數(shù)據(jù)庫里面會包含重要的描述信息,主要有全平臺掃描庫、所有補丁的快速體驗包url(uniformresourcelocator,統(tǒng)一資源定位符)、所有補丁的完整包url及補丁的psf文件url,等等。
另一方面,數(shù)據(jù)發(fā)布工具負責根據(jù)上述更新數(shù)據(jù)庫中的描述信息,將累計更新數(shù)據(jù)(如全平臺掃描庫、補丁的快速體驗包、補丁的完整包、各補丁的psf文件等)下載到本wsus服務器上。接著,從累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫。然后,將累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,以及通過指定通道發(fā)布各平臺的掃描庫。最后,將重要數(shù)據(jù)進行備份。作為唯一的運營數(shù)據(jù)來源,一臺wsus服務器就可以了,同時這臺服務器的安全性也至關重要。
本發(fā)明實施例提供的漏洞修復系統(tǒng)中的文件服務器120同步來自數(shù)據(jù)發(fā)布服務器110發(fā)布的更新文件,這里的文件服務器120是一個抽象的概念,作為數(shù)據(jù)發(fā)布的目的地,文件服務器120并非單獨的一臺或幾臺服務器,而是一系列相互配合的服務器集群。文件服務器120主要包含cdn結點和kv服務器兩個部分。一方面,分布于全國各地的各cdn結點負責及時同步最新發(fā)布的更新文件,同時負責響應數(shù)以億計的客戶端文件下載請求。另一方面,kv服務器集群負責及時建立更新數(shù)據(jù)的索引,同時負責響應數(shù)以億計的客戶端索引請求,具體地,kv服務器獲取更新文件的標識和更新文件所在各cdn結點的地址信息,并建立更新文件的包含標識和地址信息的索引。
本發(fā)明實施例提供的漏洞修復系統(tǒng)中的客戶端130在接收到漏洞修復的觸發(fā)事件(如用戶觸發(fā)或定時器等)時,加載通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫,利用目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識;隨后,利用待安裝更新文件的標識向kv服務器發(fā)起索引請求,當索引請求返回后,從請求結果中提取待安裝更新文件的下載信息(包含url及各種校驗信息),然后利用這些下載信息向cdn結點發(fā)起數(shù)據(jù)下載請求,數(shù)據(jù)下載完成后,使用從kv服務器拿到的校驗信息對下載到的數(shù)據(jù)進行校驗,當所有校驗都通過以后,將這些下載到的數(shù)據(jù)同本地文件進行合并,得到完整的安裝包,最后通過本地指定接口進行安裝。
需要說明的是,此處列舉的程序提供者微軟僅僅是示意性的,并不對本發(fā)明進行限制,本發(fā)明實施例可以應用在任何需要對程序(如操作系統(tǒng)、應用程序等)進行漏洞修復的場景。
圖2示出了根據(jù)本發(fā)明另一實施例的漏洞修復系統(tǒng)的結構示意圖。如圖2所示,該漏洞修復系統(tǒng)200(圖2中未示出)可以包括:wsus服務器210、cdn結點221、kv服務器222以及客戶端230。
漏洞修復系統(tǒng)200的工作流程可以分為數(shù)據(jù)發(fā)布階段和客戶端更新階段,下面將分別進行詳細介紹。
首先介紹數(shù)據(jù)發(fā)布階段。數(shù)據(jù)發(fā)布階段,簡單說就是當微軟有數(shù)據(jù)更新時,漏洞修復系統(tǒng)及時將這些新數(shù)據(jù)同步過來并加以處理,然后以自己的方式發(fā)布給全網(wǎng)用戶的過程。這是一個“推”的過程。數(shù)據(jù)發(fā)布階段又可以分為同步更新數(shù)據(jù)、處理更新數(shù)據(jù)、發(fā)布更新數(shù)據(jù)、數(shù)據(jù)備份階段。
(1)同步更新數(shù)據(jù)
為實現(xiàn)及時獲取微軟累計更新數(shù)據(jù)的需求,需要搭建一臺標準wsus服務器210,wsus服務器210定期(如每30分鐘一次等)地從微軟云服務器同步獲取用于修復系統(tǒng)程序漏洞的累計更新數(shù)據(jù)的描述信息,其中,累計更新數(shù)據(jù)包括全平臺掃描庫、補丁的快速體驗包、補丁的完整包、各補丁的psf文件等,描述信息中包含下載累計更新數(shù)據(jù)的下載地址。
(2)處理更新數(shù)據(jù)
wsus服務器210根據(jù)描述信息中的下載地址下載得到累計更新數(shù)據(jù)。接著,從累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫。
在對全平臺掃描庫進行拆分時,可以調用wsusutil命令從累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,隨后調用updatemake命令根據(jù)各系統(tǒng)平臺的標識從全平臺掃描庫中導出各平臺的補丁的更新列表,之后調用wsusscan命令根據(jù)全平臺掃描庫和更新列表生成各平臺的掃描庫。這里的各系統(tǒng)平臺的標識可以如win7、win8.1、win10、office等,本發(fā)明不限于此。
(3)發(fā)布更新數(shù)據(jù)
數(shù)據(jù)準備好后,就可以開始發(fā)布數(shù)據(jù)了。wsus服務器210將累計更新數(shù)據(jù)中的更新文件發(fā)布到cdn結點221。之后,計算這些更新文件的key及索引信息(如更新文件的摘要信息、大小及發(fā)布到cdn上用于客戶端230下載的url)推送到kv服務器222群集建立索引。然后,對新的更新文件中的pe文件進行加白。最后通過指定通道發(fā)布各平臺掃描庫。
(4)數(shù)據(jù)備份階段
發(fā)布完成后,需要對重要的數(shù)據(jù)進行備份,這里主要需要備份已經(jīng)計算完成的索引信息及各平臺的掃描庫,而且必須采用異地備份策略,備份于其它服務器。
其次介紹客戶端更新階段。數(shù)據(jù)發(fā)布完成后,就是發(fā)揮這些數(shù)據(jù)作用的時候了,也就是客戶端從kv服務器及cdn結點請求數(shù)據(jù)并應用這些數(shù)據(jù)更新操作系統(tǒng)或應用程序,這個階段可以分為掃描階段和安裝階段兩個部分。
1)掃描階段
用戶手動或后臺定時器觸發(fā)掃描時,客戶端230首先更新增量掃描庫libleak2_diff.dat,請求成功后,加載通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫的最新版本,然后再依據(jù)目標掃描庫中規(guī)則對本地漏洞進行掃描,得到本地系統(tǒng)上未安裝的補丁的掃描結果集,從掃描結果集中選取待安裝的補丁。
圖3示出了客戶端230的一種掃描流程的示意圖,如圖3所示,客戶端230的掃描流程可以包括以下步驟s302至s330。
步驟s302,加載通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫。
步驟s304,枚舉目標掃描庫中所有的補丁,得到更新列表。
步驟s306,判斷更新列表是否遍歷完畢,若否,則繼續(xù)執(zhí)行步驟s308;若是,則繼續(xù)執(zhí)行步驟s330。
步驟s308,從更新列表中取出一個補丁。
步驟s310,判斷該補丁的父依賴是否檢測通過,若否,則返回執(zhí)行步驟s306;若是,則繼續(xù)執(zhí)行步驟s312。
步驟s312,枚舉該補丁的所有子補丁,得到子更新列表,繼續(xù)執(zhí)行步驟s314。
步驟s314,判斷子更新列表是否遍歷完畢,若否,則繼續(xù)執(zhí)行步驟s316;若是,則繼續(xù)執(zhí)行步驟s326。
步驟s316,從子更新列表中取出一個子補丁。
步驟s318,判斷該子補丁的父依賴是否檢測通過,若否,則返回執(zhí)行步驟s314;若是,則繼續(xù)執(zhí)行步驟s320。
步驟s320,判斷該補丁是否已經(jīng)安裝在本地系統(tǒng)上,若是,則返回執(zhí)行步驟s314;若否,則繼續(xù)執(zhí)行步驟s322。
步驟s322,判斷該補丁是否適用,若否,則返回執(zhí)行步驟s314;若是,則繼續(xù)執(zhí)行步驟s324。
步驟s324,添加該子補丁到子更新掃描結果集。
步驟s326,判斷子更新掃描結果集是否為空,若是,則返回執(zhí)行步驟s306;若否,則繼續(xù)執(zhí)行步驟s328。
步驟s328,添加當前補丁到更新掃描結果集,并繼續(xù)執(zhí)行步驟s306。
步驟s330,得到掃描結果集。
2)安裝階段
掃描完成后,用戶可以從掃描結果集中選擇需要安裝的補丁(即待安裝的補丁),然后啟動安裝過程。首先,根據(jù)目標掃描庫計算出快速體驗包(即待安裝的補丁對應的更新包)key,使用該key向kv服務器請求快速體驗包的索引信息(如,快速體驗包的下載url、校驗信息等),當kv服務器返回快速體驗包的索引信息后,從中提取出快速體驗包的下載url,然后利用該url向cdn結點請求快速體驗包,當cdn返回快速體驗包后,利用索引信息中的摘要等校驗信息對快速體驗包進行校驗??焖袤w驗包校驗通過后,利用快速體驗包計算出所需差量更新文件的key,使用這些key向kv服務器請求差量索引信息,當kv服務器返回差量索引信息后,從中提取出差量更新文件的下載url,然后利用該url向cdn結點請求差量更新文件,當cdn結點返回差量更新文件后,利用索引信息中的摘要等校驗信息對差量更新文件進行校驗。所有差量更新文件都校驗通過后,通過合并本地文件及差量更新文件生成完整包,最后調用指定接口對合成的完整包進行安裝。
圖4示出了客戶端230的一種安裝流程的示意圖,如圖4所示,客戶端230的安裝流程可以包括以下步驟s402至s430。
步驟s402,下載快速體驗包。
步驟s404,將快速體驗包解壓到臨時安裝目錄。
在該步驟中,臨時安裝目錄可以是默認的,也可以是自定義的。
步驟s406,枚舉所有以psf.cix.xml結尾文件,得到xml文件集合。
步驟s408,判斷xml文件集合是否取完,若否,則繼續(xù)執(zhí)行步驟s410;若是,則繼續(xù)執(zhí)行步驟s424。
步驟s410,取出集合中的一個xml文件。
步驟s412,枚舉該xml文件中所有files/file節(jié)點,得到文件集合。
步驟s414,判斷文件集合是否取完,若是,則返回執(zhí)行步驟s408;若否,則繼續(xù)執(zhí)行步驟s416。
步驟s416,取出集合中的一個文件。
步驟s418,判斷winsxs歷史版本中是否已經(jīng)存在該文件,若是,則執(zhí)行步驟s420;若否,則繼續(xù)執(zhí)行步驟s422。
步驟s420,復制該文件到臨時安裝目錄,返回執(zhí)行步驟s414。
步驟s422,將該文件相對路徑寫入差量文件清單中,返回執(zhí)行步驟s414。
步驟s424,判斷差量文件清單是否為空,若是,則繼續(xù)執(zhí)行步驟s426;若否,則繼續(xù)執(zhí)行步驟s428。
步驟s426,通過指定接口啟動安裝臨時安裝目錄中的文件。
步驟s428,通過差量文件清單向自有cdn結點請求差量文件包,繼續(xù)執(zhí)行步驟s430。
步驟s430,差量文件包下載成功后,將其解壓到臨時安裝目錄,繼續(xù)執(zhí)行步驟s426。
本發(fā)明實施例提供的漏洞修復系統(tǒng),其核心思想是“累計更新數(shù)據(jù)的差量發(fā)布”,即,通過使用本平臺的掃描庫,對用戶終端的當前系統(tǒng)環(huán)境進行掃描,從而計算出所有需更新文件的二進制差量(binarydiffpatch,即碎片文件),然后將所需的碎片文件從服務端下載到本地,最后使用這些碎片文件和本地文件合成所需的完整包進行安裝,以修復用戶終端上存在的漏洞。這種差量更新發(fā)布機制能節(jié)省80%以上的下載流量,可以從根本上解決現(xiàn)有實現(xiàn)方案存在的問題。
此外,本發(fā)明實施例提供的漏洞修復系統(tǒng),相較于windows系統(tǒng)自帶的windowsupdate更新機制還存在以下優(yōu)點。
首先,因為客觀原因的存在,國內普通用戶直接訪問微軟官方服務器很慢,這就會造成windowsupdate的掃描和下載速度非常慢,甚至慢到無法接受。相對而言,本發(fā)明實施例中的服務器都在國內,不存在這個問題,而且結合cdn和p2p加速,數(shù)據(jù)下載速度遠勝微軟的windowsupdate。
其次,因為帶寬的限制,微軟采用了bits(后臺智能傳送服務)的帶寬優(yōu)化策略更新機制,這樣一來,windowsupdate就只能在后臺默默地分時段更新,這就必然導致更新的滯后性。相對而言,本發(fā)明實施例提供的漏洞修復系統(tǒng)可以隨時啟動更新,并集中大規(guī)模為國內用戶打補丁。所以雖然本發(fā)明實施例提供的漏洞修復系統(tǒng)中的累計更新數(shù)據(jù)來源于微軟,但是卻能讓用戶早于微軟windowsupdate獲得更新。
再次,微軟的更新機制現(xiàn)在變得越來越難以使用,主要在于其強制性、不可控性,這給用戶帶來了很大的困擾。相對而言,本發(fā)明實施例提供的漏洞修復系統(tǒng)則可以完全在用戶的干預下工作,用戶完全可控,在用戶體驗上的優(yōu)勢非常明顯。
基于同一發(fā)明構思,本發(fā)明實施例還提供了一種應用于數(shù)據(jù)發(fā)布服務器的漏洞修復方法。圖5示出了根據(jù)本發(fā)明一實施例的應用于數(shù)據(jù)發(fā)布服務器的漏洞修復方法的流程圖。如圖5所示,該方法至少可以包括以下步驟s502至步驟s506。
步驟s502,按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù)。
步驟s504,從累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫。
步驟s506,將累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,以及通過指定通道發(fā)布各平臺的掃描庫。
在本發(fā)明實施例中,數(shù)據(jù)發(fā)布服務器按照指定時間周期從程序提供者處同步獲取累計更新數(shù)據(jù),并對累計更新數(shù)據(jù)進行處理和發(fā)布,這樣客戶端在進行漏洞修復時無需從程序提供者出獲取并處理累計更新數(shù)據(jù),而是直接從發(fā)布至的文件服務器處獲取更新文件,能夠提高漏洞修復的效率。并且,數(shù)據(jù)發(fā)布服務器對全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫,這樣客戶端在進行漏洞修復時直接加載與自身系統(tǒng)平臺匹配的掃描庫,可以提高掃描效率,并提升漏洞修復的有效性。
上文步驟s502在同步累計更新數(shù)據(jù)時,本發(fā)明實施例提供了一種可選的方案,在該方案中,可以按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù)的描述信息,其中,描述信息中包含下載累計更新數(shù)據(jù)的下載地址;進而根據(jù)描述信息中的下載地址下載得到累計更新數(shù)據(jù)。
上文步驟s504在對全平臺掃描庫進行拆分時,本發(fā)明實施例提供了一種可選的方案,即,可以調用第一命令從累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,隨后調用第二命令根據(jù)各系統(tǒng)平臺的標識從全平臺掃描庫中導出各平臺的補丁的更新列表,之后調用第三命令根據(jù)全平臺掃描庫和更新列表生成各平臺的掃描庫。這里的各系統(tǒng)平臺的標識可以如win7、win8.1、win10、office等,本發(fā)明不限于此。
在本發(fā)明的可選實施例中,文件服務器可以包括多個cdn結點和kv服務器,上文步驟s506將累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,可以是將更新文件上傳到cdn發(fā)布服務器并同步到各cdn結點。
基于同一發(fā)明構思,本發(fā)明實施例還提供了一種應用于文件服務器的漏洞修復方法。圖6示出了根據(jù)本發(fā)明一實施例的應用于文件服務器的漏洞修復方法的流程圖。如圖6所示,該方法至少可以包括以下步驟s602至步驟s604。
步驟s602,同步來自數(shù)據(jù)發(fā)布服務器的更新文件。
步驟s604,獲取更新文件的標識和更新文件所在文件服務器的地址信息,建立更新文件的包含標識和地址信息的索引。
在本發(fā)明實施例中,數(shù)據(jù)發(fā)布服務器按照指定時間周期從程序提供者處同步獲取累計更新數(shù)據(jù),并對累計更新數(shù)據(jù)進行處理和發(fā)布,這樣客戶端在進行漏洞修復時無需從程序提供者出獲取并處理累計更新數(shù)據(jù),而是直接從發(fā)布至的文件服務器處獲取更新文件,能夠提高漏洞修復的效率。
在本發(fā)明的可選實施例中,文件服務器可以包括多個cdn結點和kv服務器,則由各cdn結點同步更新文件,由kv服務器獲取更新文件的標識和更新文件所在各cdn結點的地址信息,并建立更新文件的包含標識和地址信息的索引。這里的索引可以是key-value的形式,索引中的標識可以作為key,地址信息可以作為value。在可選的實施例中,索引中還可以包括更新文件的摘要信息、大小、發(fā)布時間、校驗信息等索引信息,這些索引信息均可以作為value。
基于同一發(fā)明構思,本發(fā)明實施例還提供了一種應用于客戶端的漏洞修復方法。圖7示出了根據(jù)本發(fā)明一實施例的應用于客戶端的漏洞修復方法的流程圖。如圖7所示,該方法至少可以包括以下步驟s702至步驟s706。
步驟s702,當接收到漏洞修復的觸發(fā)事件時,加載數(shù)據(jù)發(fā)布服務器通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫。
步驟s704,利用目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識。
步驟s706,利用待安裝更新文件的標識從文件服務器處獲取待安裝更新文件,進而利用待安裝更新文件對本地漏洞進行修復。
在本發(fā)明實施例中,由于數(shù)據(jù)發(fā)布服務器按照指定時間周期從程序提供者處同步獲取累計更新數(shù)據(jù),并對累計更新數(shù)據(jù)進行處理和發(fā)布,這樣客戶端在進行漏洞修復時無需從程序提供者出獲取并處理累計更新數(shù)據(jù),而是直接從發(fā)布至的文件服務器處獲取更新文件,能夠提高漏洞修復的效率。并且,由于數(shù)據(jù)發(fā)布服務器對全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫,這樣客戶端在進行漏洞修復時直接加載與自身系統(tǒng)平臺匹配的掃描庫,可以提高掃描效率,并提升漏洞修復的有效性。
在本發(fā)明的可選實施例中,各平臺的掃描庫中記錄有各補丁對應的更新文件的標識,這樣步驟s704在利用目標掃描庫對本地漏洞進行掃描時,可以確定本地系統(tǒng)上未安裝的補丁的掃描結果集,隨后從掃描結果集中選取待安裝的補丁,進而根據(jù)目標掃描庫中記錄的各補丁對應的更新文件的標識,確定待安裝的補丁對應的待安裝更新文件的標識。
進一步地,本發(fā)明實施例可以枚舉目標掃描庫中所有的補丁,得到更新列表,隨后遍歷更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上,若否,則將該補丁添加到掃描結果集中;若是,則繼續(xù)從更新列表中選取下一個補丁,判斷下一個補丁是否已經(jīng)安裝在本地系統(tǒng)上,以此類推。另外,在遍歷更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上之前,還可以判斷各補丁的父依賴是否檢測通過,若是,則判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上;若否,則繼續(xù)從更新列表中選取下一個補丁,判斷下一個補丁的父依賴是否檢測通過,以此類推。
在本發(fā)明的可選實施例中,為了減少下載流量,提高漏洞修復效率,本發(fā)明實施例實現(xiàn)了差量更新文件的下載,并將差量更新文件與本系統(tǒng)的已有文件進行合并,然后進行快速安裝,從而實現(xiàn)漏洞修復。具體地,本發(fā)明實施例可以根據(jù)目標掃描庫中記錄的各補丁對應的更新文件的標識,確定待安裝的補丁對應的備選更新文件的標識,進而根據(jù)備選更新文件的標識確定待安裝更新文件的標識。這里的備選更新文件可以認為是待安裝的補丁對應的所有更新文件,待安裝更新文件是差量更新文件,下面將分別介紹如何確定備選更新文件的標識和待安裝更新文件的標識。
首先介紹備選更新文件的標識的確定方案,在該方案中,更新文件包括更新包,更新包中記錄有備選更新文件的標識,客戶端根據(jù)目標掃描庫中記錄的各補丁對應的更新包的標識,確定待安裝的補丁對應的目標更新包的標識;隨后利用目標更新包的標識從kv服務器處獲取目標更新包的地址信息;進而利用目標更新包的地址信息從相應的cdn結點處下載得到目標更新包;之后解壓目標更新包得到備選更新文件的標識。
接著介紹待安裝更新文件的標識的確定方案,即,本發(fā)明實施例根據(jù)備選更新文件的標識,判斷本地系統(tǒng)上是否已經(jīng)存在該備選更新文件;若否,則將該備選更新文件的標識寫入差量文件清單中,并將差量文件清單中文件的標識作為待安裝更新文件的標識;若是,則將本地系統(tǒng)上的該備選更新文件復制到臨時安裝目錄。
在確定待安裝更新文件的標識后,本發(fā)明實施例可以利用待安裝更新文件的標識從kv服務器處獲取待安裝更新文件的地址信息,進而利用待安裝更新文件的地址信息從相應的cdn結點處下載得到待安裝更新文件。接下來,將下載得到的待安裝更新文件復制到臨時安裝目錄,并安裝臨時安裝目錄中的文件,以對本地漏洞進行修復。
在可選的實施例中,為了保證待安裝更新文件的有效性,可以對待安裝更新文件進行信息校驗,具體地,可以利用待安裝更新文件的標識,從kv服務器處獲取待安裝更新文件的包含更新文件的校驗信息的索引信息,進而利用校驗信息對下載得到待安裝更新文件進行校驗,在校驗通過后,將待安裝更新文件復制到臨時安裝目錄。
基于同一發(fā)明構思,本發(fā)明實施例還提供了一種數(shù)據(jù)發(fā)布服務器。圖8示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)發(fā)布服務器的結構示意圖。如圖8所示,該數(shù)據(jù)發(fā)布服務器可以包括:第一同步模塊810、第一處理模塊820以及發(fā)布模塊830。
第一同步模塊810,適于按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù);
第一處理模塊820,與第一同步模塊810相耦合,適于從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對所述全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫;
發(fā)布模塊830,與第一處理模塊820相耦合,適于將所述累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,以及通過指定通道發(fā)布所述各平臺的掃描庫。
在本發(fā)明一實施例中,所述文件服務器包括多個內容分發(fā)網(wǎng)絡cdn結點,所述發(fā)布模塊830還適于:
將所述更新文件上傳到cdn發(fā)布服務器并同步到各cdn結點。
在本發(fā)明一實施例中,所述第一同步模塊810還適于:
按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù)的描述信息,其中,所述描述信息中包含下載所述累計更新數(shù)據(jù)的下載地址;
根據(jù)所述描述信息中的下載地址下載得到所述累計更新數(shù)據(jù)。
在本發(fā)明一實施例中,所述第一處理模塊820還適于:
調用第一命令從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫;
調用第二命令根據(jù)各系統(tǒng)平臺的標識從所述全平臺掃描庫中導出各平臺的補丁的更新列表;
調用第三命令根據(jù)所述全平臺掃描庫和所述更新列表生成各平臺的掃描庫。
基于同一發(fā)明構思,本發(fā)明實施例還提供了一種文件服務器。圖9示出了根據(jù)本發(fā)明一實施例的文件服務器的結構示意圖。如圖9所示,該文件服務器可以包括:第二同步模塊910以及第二處理模塊920。
第二同步模塊910,適于同步來自數(shù)據(jù)發(fā)布服務器的更新文件;
第二處理模塊920,與第二同步模塊910相耦合,適于獲取所述更新文件的標識和所述更新文件所在所述文件服務器的地址信息,建立所述更新文件的包含標識和地址信息的索引。
在本發(fā)明一實施例中,所述文件服務器包括多個內容分發(fā)網(wǎng)絡cdn結點和kv服務器;
所述第二同步模塊910還適于由各cdn結點同步所述更新文件;
所述第二處理模塊920還適于由所述kv服務器獲取所述更新文件的標識和所述更新文件所在各cdn結點的地址信息,并建立所述更新文件的包含標識和地址信息的索引。
基于同一發(fā)明構思,本發(fā)明實施例還提供了一種客戶端。圖10示出了根據(jù)本發(fā)明一實施例的客戶端的結構示意圖。如圖10所示,該客戶端可以包括:加載模塊1010、掃描模塊1020以及漏洞修復模塊1030。
加載模塊1010,適于當接收到漏洞修復的觸發(fā)事件時,加載數(shù)據(jù)發(fā)布服務器通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫;
掃描模塊1020,與加載模塊1010相耦合,適于利用所述目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識;
漏洞修復模塊1030,與掃描模塊1020相耦合,適于利用所述待安裝更新文件的標識從文件服務器處獲取所述待安裝更新文件,進而利用所述待安裝更新文件對本地漏洞進行修復。
在本發(fā)明一實施例中,所述目標掃描庫中記錄有各補丁對應的更新文件的標識,所述掃描模塊1020還適于:
利用所述目標掃描庫對本地漏洞進行掃描,得到本地系統(tǒng)上未安裝的補丁的掃描結果集;
從所述掃描結果集中選取待安裝的補丁;
根據(jù)所述目標掃描庫中記錄的各補丁對應的更新文件的標識,確定所述待安裝的補丁對應的所述待安裝更新文件的標識。
在本發(fā)明一實施例中,所述掃描模塊1020還適于:
枚舉所述目標掃描庫中所有的補丁,得到更新列表;
遍歷所述更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上,若否,則將該補丁添加到所述掃描結果集中。
在本發(fā)明一實施例中,所述掃描模塊1020還適于:
在遍歷所述更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上之前,判斷各補丁的父依賴是否檢測通過,若是,則判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上。
在本發(fā)明一實施例中,所述掃描模塊1020還適于:
若某補丁的父依賴未檢測通過,則繼續(xù)從所述更新列表中取下一個補丁,判斷下一個補丁的父依賴是否檢測通過。
在本發(fā)明一實施例中,所述掃描模塊1020還適于:
根據(jù)所述目標掃描庫中記錄的各補丁對應的更新文件的標識,確定所述待安裝的補丁對應的備選更新文件的標識;
根據(jù)所述備選更新文件的標識確定所述待安裝更新文件的標識。
在本發(fā)明一實施例中,所述文件服務器包括多個內容分發(fā)網(wǎng)絡cdn結點和kv服務器,各cdn結點同步有所述更新文件;所述kv服務器建立有所述更新文件的標識和地址信息的索引,所述掃描模塊1020還適于:
當所述更新文件包括更新包時,根據(jù)所述目標掃描庫中記錄的各補丁對應的更新包的標識,確定所述待安裝的補丁對應的目標更新包的標識;
利用所述目標更新包的標識從所述kv服務器處獲取所述目標更新包的地址信息;
利用所述目標更新包的地址信息從相應的cdn結點處下載得到所述目標更新包;
解壓所述目標更新包得到備選更新文件的標識。
在本發(fā)明一實施例中,所述掃描模塊1020還適于:
根據(jù)所述備選更新文件的標識,判斷本地系統(tǒng)上是否已經(jīng)存在該備選更新文件;
若否,則將該備選更新文件的標識寫入差量文件清單中,并將所述差量文件清單中文件的標識作為所述待安裝更新文件的標識;
若是,則將本地系統(tǒng)上的該備選更新文件復制到臨時安裝目錄。
在本發(fā)明一實施例中,所述漏洞修復模塊1030還適于:
利用所述待安裝更新文件的標識從所述kv服務器處獲取所述待安裝更新文件的地址信息;
利用所述待安裝更新文件的地址信息從相應的cdn結點處下載得到所述待安裝更新文件。
在本發(fā)明一實施例中,所述漏洞修復模塊1030還適于:
將下載得到的所述待安裝更新文件復制到所述臨時安裝目錄;
安裝所述臨時安裝目錄中的文件,以對本地漏洞進行修復。
在本發(fā)明一實施例中,所述漏洞修復模塊1030還適于:
利用所述待安裝更新文件的標識,從所述kv服務器處獲取所述待安裝更新文件的包含更新文件的校驗信息的索引信息;
利用所述校驗信息對下載得到所述待安裝更新文件進行校驗,在校驗通過后,將所述待安裝更新文件復制到所述臨時安裝目錄。
根據(jù)上述任意一個可選實施例或多個可選實施例的組合,本發(fā)明實施例能夠達到如下有益效果:
本發(fā)明實施例提供了一種包括數(shù)據(jù)發(fā)布服務器、文件服務器以及客戶端的漏洞修復系統(tǒng),數(shù)據(jù)發(fā)布服務器按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù);從累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫;將累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,以及通過指定通道發(fā)布各平臺的掃描庫;文件服務器同步更新文件,并獲取更新文件的標識和更新文件所在文件服務器的地址信息,建立更新文件的包含標識和地址信息的索引;客戶端當接收到漏洞修復的觸發(fā)事件時,加載通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫,利用目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識;利用待安裝更新文件的標識從文件服務器處獲取待安裝更新文件,進而利用待安裝更新文件對本地漏洞進行修復。由此可見,由于數(shù)據(jù)發(fā)布服務器按照指定時間周期從程序提供者處同步獲取累計更新數(shù)據(jù),并對累計更新數(shù)據(jù)進行處理和發(fā)布,這樣客戶端在進行漏洞修復時無需從程序提供者處獲取并處理累計更新數(shù)據(jù),而是直接從發(fā)布至的文件服務器處獲取更新文件,能夠提高漏洞修復的效率。并且,數(shù)據(jù)發(fā)布服務器對全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫,這樣客戶端在進行漏洞修復時直接加載與自身系統(tǒng)平臺匹配的掃描庫,可以提高掃描效率,并提升漏洞修復的有效性。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發(fā)明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內并且形成不同的實施例。例如,在權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(dsp)來實現(xiàn)根據(jù)本發(fā)明實施例的漏洞修復系統(tǒng)及設備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
至此,本領域技術人員應認識到,雖然本文已詳盡示出和描述了本發(fā)明的多個示例性實施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據(jù)本發(fā)明公開的內容直接確定或推導出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應被理解和認定為覆蓋了所有這些其他變型或修改。
根據(jù)本發(fā)明實施例的一方面,提供了a1、一種漏洞修復系統(tǒng),包括:數(shù)據(jù)發(fā)布服務器、文件服務器以及客戶端;
所述數(shù)據(jù)發(fā)布服務器,適于按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù);從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對所述全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫;將所述累計更新數(shù)據(jù)中的更新文件發(fā)布到所述文件服務器,以及通過指定通道發(fā)布所述各平臺的掃描庫;
所述文件服務器,適于同步所述更新文件,并獲取所述更新文件的標識和所述更新文件所在所述文件服務器的地址信息,建立所述更新文件的包含標識和地址信息的索引;
所述客戶端,適于當接收到漏洞修復的觸發(fā)事件時,加載通過所述指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫,利用所述目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識;利用所述待安裝更新文件的標識從所述文件服務器處獲取所述待安裝更新文件,進而利用所述待安裝更新文件對本地漏洞進行修復。
a2、根據(jù)a1所述的漏洞修復系統(tǒng),其中,所述文件服務器包括多個內容分發(fā)網(wǎng)絡cdn結點和kv服務器;
各cdn結點,適于同步所述更新文件;
所述kv服務器,適于獲取所述更新文件的標識和所述更新文件所在各cdn結點的地址信息,并建立所述更新文件的包含標識和地址信息的索引。
a3、根據(jù)a2所述的漏洞修復系統(tǒng),其中,所述索引中還包括下列至少之一的索引信息:
更新文件的摘要信息、大小、發(fā)布時間、校驗信息。
a4、根據(jù)a2或a3所述的漏洞修復系統(tǒng),其中,所述數(shù)據(jù)發(fā)布服務器還適于:
將所述更新文件上傳到cdn發(fā)布服務器并同步到各cdn結點。
a5、根據(jù)a1-a4中任一項所述的漏洞修復系統(tǒng),其中,所述數(shù)據(jù)發(fā)布服務器還適于:
按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù)的描述信息,其中,所述描述信息中包含下載所述累計更新數(shù)據(jù)的下載地址;
根據(jù)所述描述信息中的下載地址下載得到所述累計更新數(shù)據(jù)。
a6、根據(jù)a1-a5中任一項所述的漏洞修復系統(tǒng),其中,所述數(shù)據(jù)發(fā)布服務器還適于:
調用第一命令從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫;
調用第二命令根據(jù)各系統(tǒng)平臺的標識從所述全平臺掃描庫中導出各平臺的補丁的更新列表;
調用第三命令根據(jù)所述全平臺掃描庫和所述更新列表生成各平臺的掃描庫。
a7、根據(jù)a1-a6中任一項所述的漏洞修復系統(tǒng),其中,所述各平臺的掃描庫中記錄有各補丁對應的更新文件的標識,所述客戶端還適于:
利用所述目標掃描庫對本地漏洞進行掃描,得到本地系統(tǒng)上未安裝的補丁的掃描結果集;
從所述掃描結果集中選取待安裝的補??;
根據(jù)所述目標掃描庫中記錄的各補丁對應的更新文件的標識,確定所述待安裝的補丁對應的所述待安裝更新文件的標識。
a8、根據(jù)a7所述的漏洞修復系統(tǒng),其中,所述客戶端還適于:
枚舉所述目標掃描庫中所有的補丁,得到更新列表;
遍歷所述更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上,若否,則將該補丁添加到所述掃描結果集中。
a9、根據(jù)a8所述的漏洞修復系統(tǒng),其中,所述客戶端還適于:
在遍歷所述更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上之前,判斷各補丁的父依賴是否檢測通過,若是,則判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上。
a10、根據(jù)a9所述的漏洞修復系統(tǒng),其中,所述客戶端還適于:
若某補丁的父依賴未檢測通過,則繼續(xù)從所述更新列表中取下一個補丁,判斷下一個補丁的父依賴是否檢測通過。
a11、根據(jù)a7所述的漏洞修復系統(tǒng),其中,所述客戶端還適于:
根據(jù)所述目標掃描庫中記錄的各補丁對應的更新文件的標識,確定所述待安裝的補丁對應的備選更新文件的標識;
根據(jù)所述備選更新文件的標識確定所述待安裝更新文件的標識。
a12、根據(jù)a11所述的漏洞修復系統(tǒng),其中,當所述更新文件包括更新包時,所述客戶端還適于:
根據(jù)所述目標掃描庫中記錄的各補丁對應的更新包的標識,確定所述待安裝的補丁對應的目標更新包的標識;
利用所述目標更新包的標識從所述kv服務器處獲取所述目標更新包的地址信息;
利用所述目標更新包的地址信息從相應的cdn結點處下載得到所述目標更新包;
解壓所述目標更新包得到備選更新文件的標識。
a13、根據(jù)a11或a12所述的漏洞修復系統(tǒng),其中,所述客戶端還適于:
根據(jù)所述備選更新文件的標識,判斷本地系統(tǒng)上是否已經(jīng)存在該備選更新文件;
若否,則將該備選更新文件的標識寫入差量文件清單中,并將所述差量文件清單中文件的標識作為所述待安裝更新文件的標識;
若是,則將本地系統(tǒng)上的該備選更新文件復制到臨時安裝目錄。
a14、根據(jù)a13所述的漏洞修復系統(tǒng),其中,所述客戶端還適于:
利用所述待安裝更新文件的標識從所述kv服務器處獲取所述待安裝更新文件的地址信息;
利用所述待安裝更新文件的地址信息從相應的cdn結點處下載得到所述待安裝更新文件。
a15、根據(jù)a14所述的漏洞修復系統(tǒng),其中,所述客戶端還適于:
將下載得到的所述待安裝更新文件復制到所述臨時安裝目錄。
a16、根據(jù)a14所述的漏洞修復系統(tǒng),其中,所述客戶端還適于:
利用所述待安裝更新文件的標識,從所述kv服務器處獲取所述待安裝更新文件的包含更新文件的校驗信息的索引信息;
利用所述校驗信息對下載得到所述待安裝更新文件進行校驗,在校驗通過后,將所述待安裝更新文件復制到所述臨時安裝目錄。
a17、根據(jù)a15或a16所述的漏洞修復系統(tǒng),其中,所述客戶端還適于:
安裝所述臨時安裝目錄中的文件,以對本地漏洞進行修復。
根據(jù)本發(fā)明實施例的另一方面,還提供了b18、一種漏洞修復方法,應用于數(shù)據(jù)發(fā)布服務器,包括:
按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù);
從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對所述全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫;
將所述累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,以及通過指定通道發(fā)布所述各平臺的掃描庫。
b19、根據(jù)b18所述的漏洞修復方法,其中,所述文件服務器包括多個內容分發(fā)網(wǎng)絡cdn結點,將所述累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,包括:
將所述更新文件上傳到cdn發(fā)布服務器并同步到各cdn結點。
b20、根據(jù)b18或b19所述的漏洞修復方法,其中,所述按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù),包括:
按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù)的描述信息,其中,所述描述信息中包含下載所述累計更新數(shù)據(jù)的下載地址;
根據(jù)所述描述信息中的下載地址下載得到所述累計更新數(shù)據(jù)。
b21、根據(jù)b18-b20中任一項所述的漏洞修復方法,其中,從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對所述全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫,包括:
調用第一命令從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫;
調用第二命令根據(jù)各系統(tǒng)平臺的標識從所述全平臺掃描庫中導出各平臺的補丁的更新列表;
調用第三命令根據(jù)所述全平臺掃描庫和所述更新列表生成各平臺的掃描庫。
根據(jù)本發(fā)明實施例的另一方面,還提供了c22、一種漏洞修復方法,應用于文件服務器,包括:
同步來自數(shù)據(jù)發(fā)布服務器的更新文件;
獲取所述更新文件的標識和所述更新文件所在所述文件服務器的地址信息,建立所述更新文件的包含標識和地址信息的索引。
c23、根據(jù)c22所述的漏洞修復方法,其中,所述文件服務器包括多個內容分發(fā)網(wǎng)絡cdn結點和kv服務器;
所述同步來自數(shù)據(jù)發(fā)布服務器的更新文件,包括:由各cdn結點同步所述更新文件;
所述獲取所述更新文件的標識和所述更新文件所在所述文件服務器的地址信息,建立所述更新文件的包含標識和地址信息的索引,包括:由所述kv服務器獲取所述更新文件的標識和所述更新文件所在各cdn結點的地址信息,并建立所述更新文件的包含標識和地址信息的索引。
c24、根據(jù)c22或c23所述的漏洞修復方法,其中,所述索引中還包括下列至少之一的索引信息:
更新文件的摘要信息、大小、發(fā)布時間、校驗信息。
根據(jù)本發(fā)明實施例的另一方面,還提供了d25、一種漏洞修復方法,應用于客戶端,包括:
當接收到漏洞修復的觸發(fā)事件時,加載數(shù)據(jù)發(fā)布服務器通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫;
利用所述目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識;
利用所述待安裝更新文件的標識從文件服務器處獲取所述待安裝更新文件,進而利用所述待安裝更新文件對本地漏洞進行修復。
d26、根據(jù)d25所述的漏洞修復方法,其中,所述目標掃描庫中記錄有各補丁對應的更新文件的標識,利用所述目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識,包括:
利用所述目標掃描庫對本地漏洞進行掃描,得到本地系統(tǒng)上未安裝的補丁的掃描結果集;
從所述掃描結果集中選取待安裝的補?。?/p>
根據(jù)所述目標掃描庫中記錄的各補丁對應的更新文件的標識,確定所述待安裝的補丁對應的所述待安裝更新文件的標識。
d27、根據(jù)d26所述的漏洞修復方法,其中,利用所述目標掃描庫對本地漏洞進行掃描,得到本地系統(tǒng)上未安裝的補丁的掃描結果集,包括:
枚舉所述目標掃描庫中所有的補丁,得到更新列表;
遍歷所述更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上,若否,則將該補丁添加到所述掃描結果集中。
d28、根據(jù)d27所述的漏洞修復方法,其中,還包括:
在遍歷所述更新列表,判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上之前,判斷各補丁的父依賴是否檢測通過,若是,則判斷各補丁是否已經(jīng)安裝在本地系統(tǒng)上。
d29、根據(jù)d28所述的漏洞修復方法,其中,所述判斷各補丁的父依賴是否檢測通過,包括:
若某補丁的父依賴未檢測通過,則繼續(xù)從所述更新列表中取下一個補丁,判斷下一個補丁的父依賴是否檢測通過。
d30、根據(jù)d26所述的漏洞修復方法,其中,根據(jù)所述目標掃描庫中記錄的各補丁對應的更新文件的標識,確定所述待安裝的補丁對應的所述待安裝更新文件的標識,包括:
根據(jù)所述目標掃描庫中記錄的各補丁對應的更新文件的標識,確定所述待安裝的補丁對應的備選更新文件的標識;
根據(jù)所述備選更新文件的標識確定所述待安裝更新文件的標識。
d31、根據(jù)d30所述的漏洞修復方法,其中,所述文件服務器包括多個內容分發(fā)網(wǎng)絡cdn結點和kv服務器,各cdn結點同步有所述更新文件;所述kv服務器建立有所述更新文件的標識和地址信息的索引;
當所述更新文件包括更新包時,根據(jù)所述目標掃描庫中記錄的各補丁對應的更新文件的標識,確定所述待安裝的補丁對應的備選更新文件的標識,包括:
根據(jù)所述目標掃描庫中記錄的各補丁對應的更新包的標識,確定所述待安裝的補丁對應的目標更新包的標識;
利用所述目標更新包的標識從所述kv服務器處獲取所述目標更新包的地址信息;
利用所述目標更新包的地址信息從相應的cdn結點處下載得到所述目標更新包;
解壓所述目標更新包得到備選更新文件的標識。
d32、根據(jù)d30或d31所述的漏洞修復方法,其中,根據(jù)所述備選更新文件的標識確定所述待安裝更新文件的標識,包括:
根據(jù)所述備選更新文件的標識,判斷本地系統(tǒng)上是否已經(jīng)存在該備選更新文件;
若否,則將該備選更新文件的標識寫入差量文件清單中,并將所述差量文件清單中文件的標識作為所述待安裝更新文件的標識;
若是,則將本地系統(tǒng)上的該備選更新文件復制到臨時安裝目錄。
d33、根據(jù)d32所述的漏洞修復方法,其中,利用所述待安裝更新文件的標識從所述文件服務器處獲取所述待安裝更新文件,包括:
利用所述待安裝更新文件的標識從所述kv服務器處獲取所述待安裝更新文件的地址信息;
利用所述待安裝更新文件的地址信息從相應的cdn結點處下載得到所述待安裝更新文件。
d34、根據(jù)d33所述的漏洞修復方法,其中,利用所述待安裝更新文件對本地漏洞進行修復,包括:
將下載得到的所述待安裝更新文件復制到所述臨時安裝目錄;
安裝所述臨時安裝目錄中的文件,以對本地漏洞進行修復。
d35、根據(jù)d34所述的漏洞修復方法,其中,將下載得到的所述待安裝更新文件復制到所述臨時安裝目錄,包括:
利用所述待安裝更新文件的標識,從所述kv服務器處獲取所述待安裝更新文件的包含更新文件的校驗信息的索引信息;
利用所述校驗信息對下載得到所述待安裝更新文件進行校驗,在校驗通過后,將所述待安裝更新文件復制到所述臨時安裝目錄。
根據(jù)本發(fā)明實施例的又一方面,還提供了e36、一種數(shù)據(jù)發(fā)布服務器,包括:
第一同步模塊,適于按照指定時間周期從程序提供者處同步獲取用于修復程序漏洞的累計更新數(shù)據(jù);
第一處理模塊,適于從所述累計更新數(shù)據(jù)中提取包含一個或多個更新補丁的全平臺掃描庫,對所述全平臺掃描庫按照系統(tǒng)平臺進行拆分,得到各平臺的掃描庫;
發(fā)布模塊,適于將所述累計更新數(shù)據(jù)中的更新文件發(fā)布到文件服務器,以及通過指定通道發(fā)布所述各平臺的掃描庫。
根據(jù)本發(fā)明實施例的又一方面,還提供了f37、一種文件服務器,包括:
第二同步模塊,適于同步來自數(shù)據(jù)發(fā)布服務器的更新文件;
第二處理模塊,適于獲取所述更新文件的標識和所述更新文件所在所述文件服務器的地址信息,建立所述更新文件的包含標識和地址信息的索引。
根據(jù)本發(fā)明實施例的又一方面,還提供了g38、一種客戶端,包括:
加載模塊,適于當接收到漏洞修復的觸發(fā)事件時,加載數(shù)據(jù)發(fā)布服務器通過指定通道發(fā)布的與本地系統(tǒng)平臺匹配的目標掃描庫;
掃描模塊,適于利用所述目標掃描庫對本地漏洞進行掃描,得到待安裝更新文件的標識;
漏洞修復模塊,適于利用所述待安裝更新文件的標識從文件服務器處獲取所述待安裝更新文件,進而利用所述待安裝更新文件對本地漏洞進行修復。