云平臺(tái)虛擬化漏洞修復(fù)的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全技術(shù)領(lǐng)域,特別是涉及一種云平臺(tái)虛擬化漏洞修復(fù)的方法及 裝置。
【背景技術(shù)】
[0002] 隨著信息技術(shù)的發(fā)展,虛擬化技術(shù)得到越來越廣泛的認(rèn)可及使用。虛擬化技術(shù)是 一種資源管理技術(shù),是將計(jì)算機(jī)的各種實(shí)體資源,予以抽象、轉(zhuǎn)換后呈現(xiàn)出來,打破實(shí)體機(jī) 構(gòu)間不可分割的障礙,提高了資源利用率,提高了運(yùn)營效率。虛擬機(jī)(Virtual Machine,VM) 是虛擬化技術(shù)的一種,VM是指可以像真實(shí)物理機(jī)一樣運(yùn)行應(yīng)用程序的計(jì)算機(jī)的軟件實(shí)現(xiàn)。
[0003] 為了充分利用資源,可以在服務(wù)器上安裝由虛擬機(jī)軟件模擬出的一臺(tái)虛擬機(jī),即 邏輯上的服務(wù)器,在該虛擬機(jī)運(yùn)行過程中,用戶可以像對(duì)真實(shí)物理機(jī)的操作一樣,對(duì)虛擬機(jī) 進(jìn)行操作。例如,當(dāng)檢測(cè)到虛擬機(jī)中出現(xiàn)高危漏洞時(shí),可以采用通過升級(jí)源代碼的方式,對(duì) 該高危漏洞進(jìn)行修復(fù),但是,完成修復(fù)該高危漏洞的前提是關(guān)閉或者重新啟動(dòng)該虛擬機(jī),如 此便會(huì)導(dǎo)致虛擬機(jī)間斷或者停機(jī)的問題;由于虛擬機(jī)中同時(shí)運(yùn)行多個(gè)應(yīng)用程序,若關(guān)閉或 者重新啟動(dòng)該虛擬機(jī),會(huì)造成虛擬機(jī)業(yè)務(wù)中斷。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明提供的一種云平臺(tái)虛擬化漏洞修復(fù)的方法及裝置,主要目的在 于解決在虛擬機(jī)中進(jìn)行漏洞修復(fù)時(shí),出現(xiàn)關(guān)閉或者重新啟動(dòng)虛擬機(jī)的問題。
[0005] 依據(jù)本發(fā)明一個(gè)方面,本發(fā)明提供了一種云平臺(tái)虛擬化漏洞修復(fù)的方法,包括:
[0006] 在虛擬機(jī)運(yùn)行的過程中,通過預(yù)設(shè)檢索漏洞規(guī)則,確定漏洞所在的內(nèi)存區(qū)間;
[0007] 從漏洞修復(fù)數(shù)據(jù)庫中獲取漏洞對(duì)應(yīng)的漏洞修復(fù)補(bǔ)丁;
[0008] 將漏洞修復(fù)補(bǔ)丁注入內(nèi)存區(qū)間,以修改內(nèi)存區(qū)間中漏洞對(duì)應(yīng)的程序代碼。
[0009] 依據(jù)本發(fā)明另一個(gè)方面,本發(fā)明提供了一種云平臺(tái)虛擬化漏洞修復(fù)的裝置,包 括:
[0010] 確定單元,用于在虛擬機(jī)運(yùn)行的過程中,通過預(yù)設(shè)檢索漏洞規(guī)則,確定漏洞所在的 內(nèi)存區(qū)間;
[0011] 獲取單元,用于從漏洞修復(fù)數(shù)據(jù)庫中獲取漏洞對(duì)應(yīng)的漏洞修復(fù)補(bǔ)丁;
[0012] 注入單元,用于將獲取單元獲取的漏洞修復(fù)補(bǔ)丁注入確定單元確定的內(nèi)存區(qū)間, 以修改內(nèi)存區(qū)間中漏洞對(duì)應(yīng)的程序代碼。
[0013] 借由上述技術(shù)方案,本發(fā)明提供的云平臺(tái)虛擬化漏洞修復(fù)的方法及裝置,首先通 過預(yù)設(shè)檢索漏洞規(guī)則,確定漏洞所在的內(nèi)存區(qū)間,從漏洞修復(fù)數(shù)據(jù)庫中獲取該對(duì)應(yīng)的漏洞 修復(fù)補(bǔ)丁,將獲取的漏洞修復(fù)補(bǔ)丁注入到該漏洞對(duì)應(yīng)的內(nèi)存區(qū)間中,本發(fā)明中,在確保虛擬 機(jī)正常運(yùn)行的情況下,即保證虛擬機(jī)不重啟或者不關(guān)閉,將所述漏洞修復(fù)補(bǔ)丁注入到漏洞 對(duì)應(yīng)的內(nèi)存區(qū)間內(nèi),修改該漏洞對(duì)應(yīng)的程序代碼,實(shí)現(xiàn)漏洞修復(fù)。
[0014] 上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段, 而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠 更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說明】
[0015] 通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通 技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明 的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0016] 圖1示出了本發(fā)明實(shí)施例提供的一種云平臺(tái)虛擬化漏洞修復(fù)的方法的流程圖;
[0017] 圖2示出了本發(fā)明實(shí)施例提供的一種云平臺(tái)虛擬化漏洞修復(fù)的裝置的組成框圖;
[0018] 圖3示出了本發(fā)明實(shí)施例提供的另一種云平臺(tái)虛擬化漏洞修復(fù)的裝置的組成框 圖。
【具體實(shí)施方式】
[0019] 下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開 的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例 所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍 完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0020] 本發(fā)明實(shí)施例提供一種云平臺(tái)虛擬化漏洞修復(fù)的方法,如圖1所示,該方法包括:
[0021] 101、在虛擬機(jī)運(yùn)行的過程中,通過預(yù)設(shè)檢索漏洞規(guī)則,確定漏洞所在的內(nèi)存區(qū)間。
[0022] 在修復(fù)虛擬機(jī)中的漏洞時(shí),首先需要準(zhǔn)確的查找到存儲(chǔ)該漏洞對(duì)應(yīng)的內(nèi)存區(qū)間, 該內(nèi)存區(qū)間中可能存儲(chǔ)有一個(gè)或多個(gè)程序,通過預(yù)設(shè)檢索漏洞規(guī)則查找內(nèi)存區(qū)間中含有漏 洞的程序,確定該漏洞的具體位置。需要說明的是,所述內(nèi)存區(qū)間中可以包含多個(gè)程序,而 不同的程序?qū)?yīng)有不同的內(nèi)存塊,以方便程序的開發(fā)者對(duì)該程序進(jìn)行統(tǒng)一管理。示例性的, 假設(shè),一個(gè)內(nèi)存區(qū)間中存儲(chǔ)有三個(gè)程序,分別為程序1、程序2、程序3,可以將程序1存儲(chǔ)在 內(nèi)存區(qū)間中的內(nèi)存塊1中,并將該程序?qū)?yīng)不同行的程序代碼進(jìn)行編號(hào),以便開發(fā)者能夠 更快速的確定漏洞的具體位置;將程序2存儲(chǔ)在內(nèi)存區(qū)間中的內(nèi)存塊2中,并將該程序?qū)?yīng) 不同行的程序代碼進(jìn)行編號(hào);將程序3存儲(chǔ)在內(nèi)存區(qū)間中的內(nèi)存塊4中,并將該程序?qū)?yīng)不 同行的程序代碼進(jìn)行編號(hào);具體的,本發(fā)明實(shí)施例對(duì)程序存儲(chǔ)的具體形式不進(jìn)行限定。
[0023] 所述預(yù)設(shè)檢索漏洞規(guī)則為基于漏洞關(guān)鍵字及符號(hào)表預(yù)設(shè)的規(guī)則。漏洞分為不同的 類型,不同的類型的漏洞對(duì)應(yīng)不同的漏洞關(guān)鍵字,因此,在確定漏洞內(nèi)存區(qū)間時(shí),可以通過 漏洞關(guān)鍵字查找并確定該漏洞關(guān)鍵字對(duì)應(yīng)的漏洞的內(nèi)存區(qū)間;在本發(fā)明實(shí)施例的另一種實(shí) 現(xiàn)方式中,預(yù)設(shè)檢索漏洞規(guī)則為基于符號(hào)表預(yù)設(shè)的規(guī)則,確定漏洞所在的內(nèi)存區(qū)間,其中, 所述符號(hào)表為開發(fā)者在編譯程序的過程中不斷收集、記錄及使用程序中一些語法符號(hào)的類 型和特征等相關(guān)信息,符號(hào)表中包含符號(hào)名、地址、注釋等信息。通過查找符號(hào)表中記錄的 信息能夠確定漏洞所在的內(nèi)存區(qū)間。本發(fā)明實(shí)施例對(duì)所述預(yù)設(shè)檢索漏洞規(guī)則中包含的內(nèi) 容、漏洞關(guān)鍵字的具體類型、符號(hào)表中包含的內(nèi)容等信息不進(jìn)行具體限定。
[0024] 102、從漏洞修復(fù)數(shù)據(jù)庫中獲取漏洞對(duì)應(yīng)的漏洞修復(fù)補(bǔ)丁。
[0025] 需要說明的是,本發(fā)明實(shí)施例中所述的漏洞為已知漏洞,即該漏洞有對(duì)應(yīng)的漏洞 修復(fù)補(bǔ)丁。在步驟101確定漏洞所在的內(nèi)存區(qū)間后,向云平臺(tái)發(fā)送獲取漏洞修復(fù)數(shù)據(jù)庫的 請(qǐng)求信息,云平臺(tái)在接收到該請(qǐng)求信息之后,向虛擬機(jī)發(fā)送對(duì)應(yīng)的漏洞修復(fù)數(shù)據(jù)庫,虛擬機(jī) 接收到該漏洞修復(fù)數(shù)據(jù)庫后,查找該漏洞對(duì)應(yīng)的漏洞修復(fù)補(bǔ)丁。需要說明的是,所述漏洞修 復(fù)數(shù)據(jù)庫中每條信息記錄有漏洞所在的內(nèi)存區(qū)間、漏洞修復(fù)補(bǔ)丁,所述漏洞所在的內(nèi)存區(qū) 間與漏洞修復(fù)補(bǔ)丁均唯一并且一一對(duì)應(yīng)。在本發(fā)明實(shí)施例的一種實(shí)現(xiàn)方式中,虛擬機(jī)可以 將獲取到的漏洞修復(fù)數(shù)據(jù)庫保存到虛擬機(jī)本地中,在確定漏洞所在的內(nèi)存區(qū)間之后,判斷 虛擬機(jī)中是否保存有漏洞修復(fù)數(shù)據(jù)庫,,若存在,則無需向云平臺(tái)發(fā)送漏洞修復(fù)數(shù)據(jù)庫的請(qǐng) 求信息,若不存在,則向云平臺(tái)發(fā)送漏洞修復(fù)數(shù)據(jù)庫的請(qǐng)求信息;本發(fā)明實(shí)施例對(duì)虛擬機(jī)向 云平臺(tái)獲取漏洞修復(fù)數(shù)據(jù)庫的時(shí)機(jī)不進(jìn)行具體的限定。
[0026] 在實(shí)際的應(yīng)用中,虛擬機(jī)接收到該漏洞修復(fù)數(shù)據(jù)庫后,在查找該漏洞對(duì)應(yīng)的漏洞 修復(fù)補(bǔ)丁時(shí),可以直接從所述漏洞修復(fù)數(shù)據(jù)庫中獲取到漏洞修復(fù)補(bǔ)丁,也可以通過該漏洞 修復(fù)數(shù)據(jù)庫中記錄的該漏洞修復(fù)補(bǔ)丁的鏈接地址,獲取該漏洞修復(fù)補(bǔ)丁,其中,該漏洞修復(fù) 補(bǔ)丁的鏈接地址可以為訪問互聯(lián)網(wǎng)絡(luò)的鏈接地址,也可以為保存在虛擬機(jī)本地中的鏈接地 址。具體的本發(fā)明實(shí)施例對(duì)虛擬機(jī)查找并獲取該漏洞修復(fù)補(bǔ)丁的實(shí)現(xiàn)過程不