天天看點

雲安全之虛拟機安全監控1.安全監控架構研究2.安全監控的分類

自雲計算誕生以來,虛拟機監控一直是一個炙手可熱的話題。從雲服務商的角度,他們要盡可能地擷取更多的關于VM(Virtual Machine)運作狀态的資訊,進而保證每一台虛拟機健康運作,繼而保正整個雲計算平台的安全可靠。從使用者的角度,他們也需要了解自己虛拟機的運作狀态。是以,虛拟機監控是必不可少的,本文章将介紹目前針對雲平台虛拟機監控的相關技術。

1.安全監控架構研究

近年來,很多學者緻力于基于虛報機的安全監控架構的研究。目前,存在兩種主流的虛拟機安全監控架構:一種是基于虛拟機自省技術的監控架構,即将監控子產品放在Hypervisor中,通過虛拟機自省技術對其他虛拟機進行檢測;另一種是基于虛拟化的安全主動監控架構,它通過在被監控的虛拟機中插入一些鈎子函數(hook),進而截獲系統狀态的改變,并跳轉到單獨的安全虛拟機中進行監控管理。

2.安全監控的分類

從虛拟機安全監護實作的角度來看,基于虛拟化安全監控的相關研究可以分為兩大類,即内部監控和外部監控。内部監控是指在虛拟機中加載核心子產品來攔截目标虛拟機的内部事件,而核心子產品的安全通過Hypervisor來進行保護,外部監控是指通過Hypervisor對目标虛拟機中的事件進行攔裁,進而在虛拟機外部進行檢測。

(1)内部監控

基于虛拟化的内部監挖模型的典型代表系統是Lares和SIM,下圖描述了Lares内部監控系統的架構。

雲安全之虛拟機安全監控1.安全監控架構研究2.安全監控的分類

在Lares内部監控系統的架構中,安全工具部署在一個隔離的虛拟機中,該虛拟機所在的環境在理論上被認為是安全的,稱為安全域,如Xen的管理虛拟機。被監控的客戶作業系統運作在目标虛拟機内,同時該目标虛拟機中會部署一種至關重要的工具——鈎子函數。鈎子函數用于攔截某些事件,如程序建立、檔案讀寫等。由于客戶作業系統不可信,這些鈎子函數需要得到特殊的保護。這些鈎子函數在加載到客戶作業系統時,向Hypervisor通知其占據的記憶體空間,使Hypervisor中的記憶體保護子產品能夠根據鈎子函數所在的記憶體頁面對其進行保護。Hypervisor中還有一個跳轉子產品,作為目标虛拟機和安全城之間通信的橋梁。為了防止惡意攻擊者篡改,鈎子函數和統轉子產品必須是自包含的,不能識用核心的其他函數,同時它們都必須很簡單,可以友善地被記憶體保護子產品所保護。

利用該架構進行一次事件攔截響應的過程為:當鈎子函數探測到目标虛拟機中發生了某些事件時,它會主動陷入到Hypervisor中去,通過Hypervisor中的跳轉子產品,将目标虛拟機中發生的事件傳遇給安全域中的安全驅動,進而傳遞給安全工具:然後,安全工工具根據發生事件執行某種安全政策,産生響應,并将響應發送給安全驅動,進而對目标虛拟機中的事件采取響應措施。

這種架構的優勢在于,事件截獲在虛拟機中實作,而且可以直接擷取作業系統的語義。減少了性能開銷。然面,這種方式也存在不足:一方面,它需要在客戶作業系統中插入核心子產品,造成對目标虛拟機的監控不具有适明性,鈎子函數也需要Hypervisor提供足夠的保護以防止客戶機修改。另一方面,記憶體保護子產品和跳轉子產品與目标虛拟機的作業系統類型以及版本是緊密相關的,不具有通用性,這些不足限制了内部監控架構的進一步研究和使用。

(2)外部監控

基于虛拟化的外部監控模型的典型代表是Liveware,下圖描述了Livewire外部監控系統的架構。

雲安全之虛拟機安全監控1.安全監控架構研究2.安全監控的分類

對比前一張圖檔和上圖可以看出,外部監控架構中安全工具和客戶作業系統的部署和内部監控架構相同,分别位于兩個彼此隔離的虛拟機中,增強了安全工具的安全性。與内部監控架構不同的是,外部監控架構的監控點部署在Hypervisor中,它不僅是安全城中的安全工具和目标虛拟機之間通信的橋梁,還用于攔截目标虛拟機中發生的事件,并重構出進階語義,然後傳遞給目标虛拟機。由于Hypervisor位于目标虛拟機的底層,監控點可以觀測到目标虛拟機的秋态(如CPU的資訊、記憶體項面等),故在Hypervisor的輸助下,安全工具能夠對目标虛拟機進行檢測。

根據上述事件攔截響應過程可知,外部監控必須包含兩種基本功能:事件攔截和語義重構。事件攔截是指攔截虛拟機中發生的某些事件,進而觸發安全工具對其進行檢測。語義重構是指由低級語義(二進制)重構出進階語義(作業系統級語義)。由于Hypervisor位于目标虛拟機的下層,它隻能擷取低級語義(如寄存器和記憶體頁面)。監控工具是針對作業系統層的語義,是以兩者之間存在語義鴻溝。為了使監控工具能夠了解目标虛拟機中的事件,必須對其進行語義重構。語義重構的過程與客戶作業系統的類型和版本密切相關,且目前并沒有一種萬全之策徹底解決語義重構的問題。

從以上的研究可以看出,現有的工作多集中在利用Hypervisor來保護目标虛拟機中的鈎子函數或從目标虛拟機外部檢視内部狀态。雖然這兩種監控方式都能很好地實作虛拟機的安全監控,但是仍然存在一些不足,需要研究者對其進行後續研究。其不足之處主要展現在兩個方面:第一,現有的研究工作缺乏通用性;第二,虛拟機監控與現有安全工具存在融合問題。

1)通用性問題:在雲計算環境中.單個實體節點上會同時運作多個虛拟機,并且虛拟機中的客戶作業系統是多種多樣的(可能會有Linux、Windows等)監控工具需要對各種不同類型的虛拟機進行有效的監控。然而,目前所有的監控工具都是針對特定類型的客戶作業系統實作特定的安全功能,當在某個實體節點上建立一個新的虛拟機,或者從另外一個實體節點上遷移新的虛拟機時,特定的監控工具就會失效。是以現有的監控工具不能滿足監控通用性的要求,建構通用的安全監控機制十分必要。

2)虛拟機監控與現有安全工具磁合的問題:在傳統環境下,為了提高計算系統的安全性,研究者開發了大量的安全工具。在虛拟化環境下基于Hypervisor可以更好地監控虛拟機的内部運作狀态。然而,Hypervisor擷取的是二進制語義,傳統的安全工具無法直接使用。是以,為了更好地利用已有的安全工具,基于虛拟化的安全監控需要與現有的安全工具進行有效的融合。一方面,利用語義恢複來實作從二進制語義到系統級語義的轉換,同時為安全工具提供标準的調用接口,使安全工具直接或者和作修改來适應于虛拟計算環境;另一方面,語義恢複給安全工具帶來了額外的性能開銷,為了使安全監控具有更大的實用價值,研究者需要考慮在語義資訊的全面性和系統開銷之間進行綜合權衡。

繼續閱讀