本發明涉及虛擬化技術領域,特別是涉及基于虛擬化環境下的安全防護方法及系統。
背景技術:
隨著硬件虛擬化技術的廣泛應用,在一臺物理主機上可以同時運行多個操作系統,操作系統之間相互隔離,使得對硬件設施的管理更加有效、靈活和節約。例如:可以將資源占用率高的物理主機上的虛擬機遷移到一個資源占用率低的物理主機上,從而達到資源的合理分配;又或者將資源占用率低的物理主機上虛擬機全部遷移到其它物理主機上,并關閉本臺物理主機從而來達到節能的效果。但是這樣傳統操作系統部署中面臨的安全威脅問題,在虛擬化的部署過程中也會面臨。
為了解決虛擬化環境下虛擬機安全的問題,傳統的解決是在每臺物理主機上的各個虛擬機中部署一套安全防護軟件,從而達到與普通物理機上操作系統中安裝的安全防護軟件具有相同的功能。但在同一物理主機上的多個虛擬機中都部署一套安全防護產品,會造成對計算資源和存儲資源的占用。為了減輕虛擬化環境中虛擬機重復部署安全防護軟件造成的對計算資源和存儲資源的占用,可采用一種輕代理的方式,輕代理方式是將安全防護軟件中的大部分查詢數據移到私有云或公有云中處理,虛擬機中只保留最低限度的安全引擎服務數據,但將安全防護軟件中的數據移到云端服務器,虛擬機在進行安全引擎時,需要占用一定的網絡帶寬并對網絡環境的響應速度有一定的要求。
使用無代理安全防護的方式可以解決上述在物理主機的各個虛擬機上都部署一套安全防護軟件會造成資源的占用及采用輕代理方式會對網絡環境有一定的要求的問題,但無代理安全防護方式是在物理主機的某一虛擬機上部署安全防護軟件(該部署有安全防護軟件的虛擬機為安全虛擬機),并為該物理主機上運行的各個虛擬機都配置各自的虛擬內存,各個虛擬內存都對應同一物理內存空間,這樣當安全虛擬機對其它沒有部署安全防護軟件的虛擬機進行安全防護,而該被防護的虛擬機又要從當前物理主機遷移到其它物理主機時,這些被防護的虛擬機遷移到新的物理主機后,由于其自身不具備安全防護功能,且原來的物理主機上的安全虛擬機也不能繼續對該被防護的虛擬機進行安全防護,因此安全防護將停止,這些被防護的虛擬機將重新面臨安全威脅問題。
技術實現要素:
基于此,有必要針對傳統的采用無代理安全防護方式的物理主機中被防護的虛擬機從一物理主機遷移到另一物理主機時將不能繼續被防護問題,提供一種基于虛擬化環境下的安全防護方法及系統,能夠使采用無代理安全防護方式的物理主機中的正在被防護的虛擬機進行遷移時,不間斷地對該被防護的虛擬機進行安全防護。
為達到發明目的,提供一種基于虛擬化環境下的安全防護方法,所述方法包括:
當有虛擬機需要從其所在的源物理主機遷移到目的物理主機,且所述源物理主機的源安全虛擬機正在對需要遷移的遷移虛擬機執行安全防護事件時,所述遷移虛擬機從所述源安全虛擬機中獲取所述安全防護事件的防護進度信息,并從所述源物理主機的源物理內存空間中獲取所述安全防護事件對應的待防護數據;
當所述遷移虛擬機遷移到所述目的物理主機之后,所述遷移虛擬機將所述防護進度信息發送給所述目的物理主機的目的安全虛擬機,同時將所述待防護數據寫入所述目的物理主機的目的物理內存空間;
所述目的安全虛擬機接收到所述防護進度信息后,根據所述防護進度信息對寫入所述目的物理內存空間中的所述待防護數據繼續進行安全防護。
在其中一個實施例中,所述當有虛擬機需要從其所在的源物理主機遷移到目的物理主機,且所述源物理主機的源安全虛擬機正在對需要遷移的遷移虛擬機執行安全防護事件時,所述遷移虛擬機從所述源安全虛擬機中獲取所述安全防護事件的防護進度信息,并從所述源物理主機的源物理內存中獲取所述安全防護事件對應的待防護數據的步驟包括:
當有虛擬機需要從其所在的源物理主機遷移到目的物理主機,且所述源物理主機的源安全虛擬機正在對需要遷移的所述遷移虛擬機執行安全防護事件時,所述遷移虛擬機向所述源安全虛擬機發送遷移暫停指令;
所述源安全虛擬機接收到所述遷移暫停指令后,停止對所述遷移虛擬機執行所述安全防護事件,并將所述安全防護事件的防護進度信息發送給所述遷移虛擬機;
所述遷移虛擬機接收所述防護進度信息,將所述防護進度信息保存在本地磁盤分區中,并從所述源物理內存空間中獲取所述安全防護事件對應的待防護數據;
其中,所述待防護數據為被所述源安全虛擬機進行部分安全防護后的數據。
在其中一個實施例中,所述當所述遷移虛擬機遷移到所述目的物理主機之后,所述遷移虛擬機將所述防護進度信息發送給所述目的物理主機的目的安全虛擬機,同時將所述待防護數據寫入所述目的物理主機的目的物理內存空間的步驟包括:
當所述遷移虛擬機遷移到所述目的物理主機之后,所述遷移虛擬機建立其與所述目的物理內存空間之間的映射關系;
所述遷移虛擬機根據所述映射關系將所述防護進度信息發送給所述目的安全虛擬機,并根據所述映射關系向所述目的物理內存空間中寫入所述待防護數據。
在其中一個實施例中,在所述遷移虛擬機建立其與所述目的物理內存空間之間的映射關系的步驟之后,還包括:
所述遷移虛擬機根據所述防護進度信息和所述待防護數據在所述目的物理主機上生成遷移防護事件,并將所述遷移安全防護事件作為安全防護事件發送給所述目的安全虛擬機;
所述目的安全虛擬機接收所述遷移虛擬機發送的所述安全防護事件,由所述安全防護事件中提取所述安全防護事件的任務標識信息,并根據所述任務標識信息查詢本地記錄;
如果所述目的安全虛擬機查詢到所述本地記錄中存在與所述任務標識信息相同的本地任務標識信息,則確定所述安全防護事件不是所述遷移防護事件;
如果所述目的安全虛擬機查詢到所述本地記錄中不存在與所述任務標識信息相同的本地任務標識信息,則確定所述安全防護事件為所述遷移防護事件,并執行所述遷移虛擬機根據所述映射關系將所述防護進度信息發送給所述目的安全虛擬機,并根據所述映射關系向所述目的物理內存空間中寫入所述待防護數據的步驟。
在其中一個實施例中,所述目的安全虛擬機接收到所述防護進度信息后,根據所述防護進度信息對寫入所述目的物理內存空間中的所述待防護數據繼續進行安全防護的步驟包括:
所述目的安全虛擬機接收所述防護進度信息,并由所述防護進度信息中提取未防護數據信息;
所述目的安全虛擬機根據所述未防護數據信息對寫入所述目的物理內存空間中的所述待防護數據進行分析,得到所述待防護數據中的未防護數據;
所述目的安全虛擬機對所述未防護數據進行安全防護,并將安全防護的結果反饋給所述遷移后的虛擬機。
在其中一個實施例中,所述目的安全虛擬機接收到所述防護進度信息后,根據所述防護進度信息對寫入所述目的物理內存空間中的所述待防護數據繼續進行安全防護的步驟還包括:
所述目的安全虛擬機接收所述防護進度信息,并由所述防護進度信息中提取已防護數據信息;
所述目的安全虛擬機根據所述已防護數據信息對寫入所述目的物理內存空間中的所述待防護數據進行分析,得到所述待防護數據中的已防護數據;
所述目的安全虛擬機將所述已防護數據從所述目的物理內存空間中刪除。
本發明還提供一種基于虛擬化環境下的安全防護系統,所述系統至少包括源物理主機和目的物理主機,所述源物理主機中包括源安全虛擬機,所述目的物理主機中包括目的安全虛擬機,源物理主機中需要遷移的遷移虛擬機能夠從所述源物理主機遷移到所述目的物理主機;所述遷移虛擬機包括獲取模塊和發送寫入模塊;所述目的安全虛擬機包括安全防護模塊,其中:
所述獲取模塊,用于當有虛擬機需要從其所在的所述源物理主機遷移到所述目的物理主機,且所述源物理主機的源安全虛擬機正在對需要遷移的遷移虛擬機執行安全防護事件時,從所述源安全虛擬機中獲取所述安全防護事件的防護進度信息,并從所述源物理主機的源物理內存空間中獲取所述安全防護事件對應的待防護數據;
所述發送寫入模塊,用于當所述遷移虛擬機遷移到所述目的物理主機之后,將所述防護進度信息發送給所述目的物理主機的目的安全虛擬機,同時將所述待防護數據寫入所述目的物理主機的目的物理內存空間;
所述安全防護模塊,用于在所述目的安全虛擬機接收到所述防護進度信息后,根據所述防護進度信息對寫入所述目的物理內存空間中的所述待防護數據繼續進行安全防護。
在其中一個實施例中,所述獲取模塊包括:
指令發送單元,用于當有虛擬機需要從其所在的源物理主機遷移到目的物理主機,且所述源物理主機的源安全虛擬機正在對需要遷移的所述遷移虛擬機執行安全防護事件時,向所述源安全虛擬機發送遷移暫停指令;
接收保存單元,用于在所述源安全虛擬機根據所述遷移暫停指令停止執行所述安全防護事件后,接收所述源安全虛擬機反饋的所述安全防護事件的防護進度信息,并將所述防護進度信息保存在本地磁盤分區中;
獲取單元,用于從所述源物理內存空間中獲取所述安全防護事件對應的待防護數據,其中,所述待防護數據為被所述源安全虛擬機進行部分安全防護后的數據。
在其中一個實施例中,所述發送寫入模塊包括:
建立單元,用于當所述遷移虛擬機遷移到所述目的物理主機之后,建立其與所述目的物理內存空間之間的映射關系;
發送寫入單元,用于根據所述映射關系將所述防護進度信息發送給所述目的安全虛擬機,并根據所述映射關系向所述目的物理內存空間中寫入所述待防護數據。
在其中一個實施例中,所述發送寫入模塊還包括:
生成單元,用于在所述遷移虛擬機建立其與所述目的物理內存空間之間的映射關系之后,根據所述防護進度信息和所述待防護數據在所述目的物理主機上生成遷移防護事件,并將所述遷移安全防護事件作為安全防護事件發送給所述目的安全虛擬機;
查詢結果接收單元,用于在所述目的安全虛擬機根據所述安全防護事件中的任務標識信息查詢本地記錄后,接收所述目的安全虛擬機的查詢結果;查詢結果包括如果所述目的安全虛擬機查詢到所述本地記錄中存在與所述任務標識信息相同的本地任務標識信息,則確定所述安全防護事件不是所述遷移防護事件;如果所述目的安全虛擬機查詢到所述本地記錄中不存在與所述任務標識信息相同的本地任務標識信息,則確定所述安全防護事件為所述遷移防護事件。
在其中一個實施例中,所述安全防護模塊包括:
提取單元,用于接收所述防護進度信息,并由所述防護進度信息中提取未防護數據信息和已防護數據信息;
分析單元,用于根據所述未防護數據信息和所述已防護數據信息對寫入所述目的物理內存空間中的所述待防護數據進行分析,得到所述待防護數據中的未防護數據和未防護數據;
安全防護單元,用于對所述未防護數據進行安全防護,并將安全防護的結果反饋給所述遷移后的虛擬機;
刪除單元,用于將所述已防護數據從所述目的物理內存空間中刪除。
本發明的有益效果包括:
上述基于虛擬化環境下的安全防護方法及系統,當某一物理主機上運行的正在被防護的虛擬機進行遷移時,該虛擬機作為遷移虛擬機從其所在的物理主機的源安全虛擬機中獲取源安全虛擬機執行安全防護事件的防護進度信息,同時獲取其所在的物理主機的物理內存空間中的待防護數據,待該遷移虛擬機遷移到目的物理主機上時,該遷移虛擬機將防護進度信息傳送給目的物理主機的安全虛擬機,同時將待防護數據寫入該目的物理主機的物理內存空間中,從而使得目的物理主機中的安全虛擬機根據防護進度信息繼續對該遷移虛擬機進行安全防護,從而實現虛擬機遷移過程中的不間斷安全防護,保證虛擬機在遷移過程中的安全性。
附圖說明
圖1為一個實施例中的部署一個安全虛擬機的物理主機的結構示意圖;
圖2為一個實施例中的基于虛擬化環境下的安全防護方法的流程示意圖;
圖3為一個實施例中的基于虛擬化環境下的安全防護系統中虛擬機遷移的過程示意圖;
圖4為一個實施例中的基于虛擬化環境下的安全防護系統的結構示意圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例對本發明基于虛擬化環境下的安全防護方法及系統進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
在一個實施例中,如圖1、圖2所示,提供了一種基于虛擬化環境下的安全防護方法,該方法包括以下步驟:
S100,當有虛擬機需要從其所在的源物理主機遷移到目的物理主機,且源物理主機的源安全虛擬機正在對需要遷移的遷移虛擬機執行安全防護事件時,遷移虛擬機從源安全虛擬機中獲取安全防護事件的防護進度信息,并從源物理主機的源物理內存空間中獲取安全防護事件對應的待防護數據。
S200,當遷移虛擬機遷移到目的物理主機之后,遷移虛擬機將防護進度信息發送給目的物理主機的目的安全虛擬機,同時將待防護數據寫入目的物理主機的目的物理內存空間。
S300,目的安全虛擬機接收到防護進度信息后,根據防護進度信息對寫入目的物理內存空間中的待防護數據繼續進行安全防護。
其中,上述方法中至少包括兩個物理主機,且每個物理主機均基于“無代理安全防護機制”,參見圖1,該無代理安全防護機制指的是:一個物理主機上部署有多個虛擬機,每個虛擬機均對應有各自的虛擬內存,各個虛擬內存對應同一物理內存空間,多個虛擬機中有預設個數的虛擬機為安全虛擬機,其余的為沒有配置安全防護軟件的普通虛擬機。即同一物理主機中的多個虛擬機共享同一物理內存空間。優選的,任選多個虛擬機中的一個為安全虛擬機。該無代理安全防護機制由于每個虛擬機的虛擬內存對應同一物理內存空間,即相當于各個虛擬機共享一個物理內存空間,這樣多個虛擬機之間便可通過該物理內存空間實現相互之間的直接通信,且多個虛擬機中有虛擬機被配置為安全虛擬機,即從多個虛擬機中選擇出預設個數的虛擬機將之配置安全防護軟件,例如:選擇資源占用率低或物理資源大的一個、兩個或多個虛擬機作為安全虛擬機,從而實現安全虛擬機對其它非安全虛擬機的安全防護。其中,事件管理器相當于是運行在VMM(Virtual Machine Monitor,虛擬機監管器)層的一個軟件,用于實現同一物理主機內各個虛擬機之間的安全防護事件及數據的傳輸,其相當于各個虛擬機之間的通信管道。虛擬內存利用傳統的仿真軟件(qemu,一種開源的仿真軟件)將VMM層中的一段存儲空間仿真得到。VMM用于對各個虛擬機進行規劃、部署、管路和優化,實現各個虛擬機的調度,VMM在調度各個虛擬機時將各個虛擬機作為一個調度單元,按照時間片輪詢方式調度。
本實施例中的基于虛擬化環境下的安全防護方法,在其中一個物理主機上運行的虛擬機需要遷移到另一物理主機,而該虛擬機作為遷移虛擬機正在被其所在的物理主機上部署的安全虛擬機執行安全防護事件時,該遷移虛擬機會從其所在的物理主機的源安全虛擬機中獲取防護進度信息,這樣當該遷移虛擬機遷移到另一物理主機時,該防護進度信息也隨該遷移虛擬機一起遷移到目的物理主機中,該遷移虛擬機將防護進度信息發送給目的物理主機的目的安全虛擬機,同時將從上述源物理內存空間中獲取的待防護數據寫入目的物理主機的目的物理內存空間中,從而使目的安全虛擬機能夠根據防護進度信息繼續對待防護數據進行安全防護,從而實現虛擬機遷移過程中不間斷地進行安全防護,保證虛擬機在遷移過程中的安全性。
需要說明的是,該防護進度信息中包括安全防護事件的任務標識信息、以及安全防護事件對應的待防護數據的文件數量信息、起始信息,已防護標簽信息等。其中,任務標識信息包括任務ID(identification,身份)信息。根據已防護標簽信息可以容易地得到從源物理內存空間中獲取的待防護數據的已防護數據和未防護數據。任務標識信息可以唯一的確定安全防護事件是哪一個。安全虛擬機遷移時與傳統的安裝有安全防護軟件的虛擬機相同,此處不再贅述。
在一個實施例中,步驟S100包括:
S110,當有虛擬機需要從其所在的源物理主機遷移到目的物理主機,且源物理主機的源安全虛擬機正在對需要遷移的遷移虛擬機執行安全防護事件時,遷移虛擬機向所述源安全虛擬機發送遷移暫停指令。
S120,源安全虛擬機接收到遷移暫停指令后,停止對遷移虛擬機執行安全防護事件,并將安全防護事件的防護進度信息發送給遷移虛擬機。
S130,遷移虛擬機接收防護進度信息,將防護進度信息保存在本地磁盤分區中,并從源物理內存空間中獲取安全防護事件對應的待防護數據;其中,待防護數據為被源安全虛擬機進行部分安全防護后的數據。
當源物理主機接收到遷移任務時,該遷移任務中包括遷移對象,即將要執行遷移任務的虛擬機,以及該遷移虛擬機將要遷移到的目的物理主機。在源物理主機根據遷移任務得知遷移虛擬機后,通知遷移虛擬機執行遷移任務。如果該遷移虛擬機正在被源物理主機上的源安全虛擬機執行安全防護事件時,遷移虛擬機向該源安全虛擬機發送一個遷移暫停指令,從而通知該源安全虛擬機停止對該遷移虛擬機執行安全防護事件,避免不必要的安全防護,減少對源物理主機的內存的占用。同時,該源安全虛擬機將其執行的安全防護事件的防護進度信息發送給遷移虛擬機,遷移虛擬機接收到防護進度信息后,保存在本地磁盤分區中,以便于在將遷移虛擬機遷移到目的物理主機上時,將防護進度信息同時遷移到目的物理主機上。將防護進度信息存在本地磁盤分區中,是指將防護進度信息保存在遷移虛擬機所在磁盤的分區中,驅動程序能夠訪問的位置,方便遷移虛擬機遷移時防護進度信息隨其一起遷移。
優選地,在遷移虛擬機接收源安全虛擬機發送的防護進度信息的同時,遷移虛擬機還從物理內存空間中獲取安全防護事件對應的待防護數據,該待防護數據為源安全虛擬機進行部分安全防護后的數據。這樣可以有效避免將沒有部分安全防護的待防護數據(遷移虛擬機寫入源物理內存空間之前的待防護數據)寫入到目的物理內存空間時,目的安全虛擬機對源安全虛擬機已防護的數據重復防護的資源浪費。更優地,以快照的方式從源物理內存空間中獲取待防護數據,即對源物理內存空間中的待防護數據創建快照,當需要在目的物理內存空間中恢復待防護數據時,利用快照將源物理內存空間中的待防護數據恢復到目的物理內存空間中。利用快照功能將待防護數據從源物理內存空間中復制到目的物理內存空間中,簡單方便,易于實現,且節省遷移時對存儲資源的占用。
在一個實施例中,步驟S200包括:
S210,當遷移虛擬機遷移到目的物理主機之后,遷移虛擬機建立其與目的物理內存空間之間的映射關系。
S220,遷移虛擬機根據映射關系將防護進度信息發送給目的安全虛擬機,并根據映射關系向目的物理內存空間中寫入待防護數據。
當遷移虛擬機遷移到目的物理主機后,其在目的物理主機上相對于其他的虛擬機是一個獨立的系統,與其它虛擬機是相互隔離的,沒有數據交互的功能。因此,需要建立該遷移虛擬機在目的物理主機上與其它虛擬機的通信功能。具體地,建立遷移虛擬機的虛擬內存與目的物理主機的目的物理內存空間的映射關系,由于該目的物理內存空間已與該目的物理主機的其它虛擬機的虛擬內存存在相應的映射關系,因此,建立遷移虛擬機的虛擬內存與目的物理內存空間之間的映射關系后,便能實現該遷移虛擬機與該目的物理主機上其它虛擬共享同一物理內存空間的目的。其中,該目的物理內存空間是在目的物理主機的物理內存中劃分出一塊內存作為各個虛擬機的共享內存空間。虛擬機的虛擬內存是使用傳統的仿真軟件(qemu,一種開源的仿真軟件)將VMM(Virtual Machine Monitor,虛擬機監管器)層中的一段存儲空間仿真得到的,其用于緩存各個虛擬機的待防護數據。同一物理主機上的各個虛擬機通過物理內存空間實現相互之間的數據交互,使得各個虛擬機之間從外部看起來是相互透明的。
在步驟S210之后,遷移虛擬機便可根據其與目的物理內存空間之間的映射關系將遷移虛擬機遷移時帶來的待防護數據的防護進度信息發送給目的安全虛擬機,同時將其遷移時帶來的待防護數據寫入目的物理內存空間中,這樣安全虛擬機便可根據防護進度信息對待防護數據繼續執行安全防護,實現虛擬機遷移過程中安全防護的不間斷進行。
進一步地,在步驟S210之后,包括:
S210a,遷移虛擬機根據防護進度信息和待防護數據在目的物理主機上生成遷移防護事件,并將遷移安全防護事件作為安全防護事件發送給目的安全虛擬機。
S210b,目的安全虛擬機接收遷移虛擬機發送的安全防護事件,由安全防護事件中提取安全防護事件的任務標識信息,并根據任務標識信息查詢本地記錄。
S210c,如果目的安全虛擬機查詢到所述本地記錄中存在與任務標識信息相同的本地任務標識信息,則確定安全防護事件不是遷移防護事件。
S210d,如果目的安全虛擬機查詢到本地記錄中不存在與任務標識信息相同的本地任務標識信息,則確定安全防護事件為所述遷移防護事件,并執行步驟S220。
在遷移虛擬機與目的物理主機的目的內存空間建立映射關系之后,在同一物理主機中連通各個虛擬機之間的事件管理器只負責事件的傳輸,因此需要根據待防護數據和防護進度信息生成遷移防護事件,并通過事件管理器將遷移防護事件從遷移虛擬機傳輸到目的安全虛擬機,從而實現將待防護數據對應的安全防護事件的防護進度信息傳遞給目的安全虛擬機。建立遷移虛擬機與目的物理內存空間之間的映射關系后,遷移虛擬機上除了會產生遷移防護事件外,還可能產生其他的安全防護事件,例如:虛擬機的驅動單元捕獲到的安全防護事件(網址訪問、文件修改等)或安全虛擬機根據掃描任務發送的安全防護事件。如果安全防護事件是在本地(目的物理主機)產生的,則該安全防護事件在產生時本地記錄中會記錄其標識信息,否則則本地記錄中沒有該安全防護事件的標識信息。這樣,當遷移虛擬機將遷移防護事件(在目的物理主機上也看成一安全防護事件)和其在本地產生的安全防護事件都發送給目的安全虛擬機時,目的安全虛擬機需要先判斷該安全防護事件是否是遷移防護事件,如果接收到的安全防護事件是遷移防護事件,則目的安全虛擬機則可根據該遷移防護事件的防護進度信息對寫入目的物理內存空間的待防護數據進行安全防護,從而實現虛擬機遷移時安全防護事件的不間斷執行,目的安全虛擬機確認接收到的安全防護事件是否為遷移防護事件,能夠進一步地確保遷移防護事件能夠順利進行,進一步保證虛擬機的安全性。如果目的安全虛擬機接收到的安全防護事件不是遷移防護事件,則按照一般的安全防護事件進行安全防護,保證遷移虛擬機的安全性。
在一個實施例中,步驟S300包括:
S310,目的安全虛擬機接收防護進度信息,并由防護進度信息中提取未防護數據信息。
S320,目的安全虛擬機根據未防護數據信息對寫入目的物理內存空間中的待防護數據進行分析,得到待防護數據中的未防護數據。
S330,目的安全虛擬機對未防護數據進行安全防護,并將安全防護的結果反饋給遷移后的虛擬機。
進一步地,步驟S300還包括:
S310′,目的安全虛擬機接收防護進度信息,并由防護進度信息中提取已防護數據信息。
S320′,目的安全虛擬機根據已防護數據信息對寫入目的物理內存空間中的待防護數據進行分析,得到待防護數據中的已防護數據。
S330′,目的安全虛擬機將已防護數據從目的物理內存空間中刪除。
上述兩個實施例為步驟S300的兩個具體實施例,其中,對待防護數據中的未防護數據進行安全防護是必要的步驟,其能夠減少目的安全虛擬機對已防護數據重復防護時對資源的占用,并且還能提高對待防護數據的防護效率,高效準確且節省資源。而獲得待防護數據中的已防護數據,并將已防護數據從目的物理內存空間中刪除,可以有效減少已防護數據為物理內存空間的占用,提高防護效率。
在一個具體的實施例中,目的安全虛擬機可以根據防護進度信息獲得待防護數據中的已防護數據,將已防護數據從目的物理內存空間中刪除,然后再對剩下的未防護數據進行安全防護。這樣可以簡化目的安全虛擬機的安全防護過程。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
在一個實施例中,如圖3、4所示,還提供了一種基于虛擬化環境下的安全防護系統,該系統至少包括源物理主機和目的物理主機,源物理主機中包括源安全虛擬機,目的物理主機中包括目的安全虛擬機,源物理主機中需要遷移的遷移虛擬機能夠從源物理主機遷移到目的物理主機;遷移虛擬機包括獲取模塊100和發送寫入模塊200;目的安全虛擬機包括安全防護模塊300。其中:
獲取模塊100,,用于當有虛擬機需要從其所在的源物理主機遷移到目的物理主機,且源物理主機的源安全虛擬機正在對需要遷移的遷移虛擬機執行安全防護事件時,從源安全虛擬機中獲取安全防護事件的防護進度信息,并從源物理主機的源物理內存空間中獲取安全防護事件對應的待防護數據。發送寫入模塊200,用于當遷移虛擬機遷移到目的物理主機之后,將防護進度信息發送給目的物理主機的目的安全虛擬機,同時將待防護數據寫入目的物理主機的目的物理內存空間。安全防護模塊300,在用于在目的安全虛擬機接收到防護進度信息后,根據防護進度信息對寫入目的物理內存空間中的待防護數據繼續進行安全防護。
本實施例中的基于虛擬化環境下的安全防護系統,當某一物理主機上運行的正在被防護的虛擬機進行遷移時,該虛擬機作為遷移虛擬機從其所在的物理主機的源安全虛擬機中獲取源安全虛擬機執行安全防護事件的防護進度信息,同時獲取其所在的物理主機的物理內存空間中的待防護數據,待該遷移虛擬機遷移到目的物理主機上時,該遷移虛擬機將防護進度信息傳送給目的物理主機的安全虛擬機,同時將待防護數據寫入該目的物理主機的物理內存空間中,從而使得目的物理主機中的安全虛擬機根據防護進度信息繼續對該遷移虛擬機進行安全防護,從而實現虛擬機遷移過程中的不間斷安全防護,保證虛擬機在遷移過程中的安全性。
在一個實施例中,獲取模塊100包括:指令發送單元110,用于當有虛擬機需要從其所在的源物理主機遷移到目的物理主機,且源物理主機的源安全虛擬機正在對需要遷移的遷移虛擬機執行安全防護事件時,向源安全虛擬機發送遷移暫停指令。接收保存單元120,用于在源安全虛擬機根據遷移暫停指令停止執行安全防護事件后,接收源安全虛擬機反饋的安全防護事件的防護進度信息,并將防護進度信息保存在本地磁盤分區中。獲取單元130,用于從源物理內存空間中獲取安全防護事件對應的待防護數據,其中,待防護數據為被源安全虛擬機進行部分安全防護后的數據。
在一個實施例中,發送寫入模塊200包括:建立單元210,用于當遷移虛擬機遷移到目的物理主機之后,建立其與目的物理內存空間之間的映射關系。發送寫入單元220,用于根據映射關系將防護進度信息發送給目的安全虛擬機,并根據映射關系向目的物理內存空間中寫入待防護數據。
在一個實施例中,發送寫入模塊200還包括:生成單元210a,用于在遷移虛擬機建立其與目的物理內存空間之間的映射關系之后,根據防護進度信息和待防護數據在目的物理主機上生成遷移防護事件,并將遷移安全防護事件作為安全防護事件發送給目的安全虛擬機。查詢結果接收單元210b,用于在目的安全虛擬機根據安全防護事件中的任務標識信息查詢本地記錄后,接收目的安全虛擬機的查詢結果;查詢結果包括如果目的安全虛擬機查詢到本地記錄中存在與任務標識信息相同的本地任務標識信息,則確定安全防護事件不是遷移防護事件;如果目的安全虛擬機查詢到本地記錄中不存在與任務標識信息相同的本地任務標識信息,則確定安全防護事件為遷移防護事件。
在一個實施例中,安全防護模塊300包括:提取單元310,用于接收防護進度信息,并由防護進度信息中提取未防護數據信息和已防護數據信息。分析單元320,用于根據未防護數據信息和已防護數據信息對寫入目的物理內存空間中的待防護數據進行分析,得到待防護數據中的未防護數據和未防護數據。安全防護單元330,用于對未防護數據進行安全防護,并將安全防護的結果反饋給遷移后的虛擬機。刪除單元340,用于將已防護數據從目的物理內存空間中刪除。
由于此系統解決問題的原理與前述一種基于虛擬化環境下的安全防護方法相似,因此該系統的實施可以參見前述方法的實施,重復之處不再贅述。
以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬于本發明的保護范圍。因此,本發明專利的保護范圍應以所附權利要求為準。