虛擬化技術最早起源于20世紀60年代,是計算領域的一項傳統(tǒng)技術,虛擬化技術支持在一個單一的服務器之上運行多個操作系統(tǒng)的服務器。虛擬機技術是虛擬化技術在計算機上的一種體現(xiàn),通過內(nèi)存、CPU、網(wǎng)絡等虛擬化技術實現(xiàn)資源的隔離和可靠利用。目前有很多流行的虛擬機,如VMware、KVM、Xen,通過研究分析對比,開源的Xen虛擬機在性能上十分優(yōu)越,被認為是未來最有前途的虛擬化解決方案之一。
虛擬化技術作為云計算的關鍵核心技術,使得云計算成為能夠提供動態(tài)資源池、虛擬化和高可用性的下一代計算平臺,給企業(yè)和用戶帶來了很多的益處;硬件和資源的共享既節(jié)約了開銷,也為管理帶來了方便,同時也革新了許多傳統(tǒng)IT技術。然而從安全角度來分析,卻又帶來了很多威脅,除傳統(tǒng)的攻擊威脅之外,如隱蔽通道、基于VM 的Rootkit攻擊(VMBR)以及新的惡意軟件等也隨之而來。虛擬化技術作為云計算的核心技術,必須向其用戶提供安全性和隔離保證。2009年,在IDC以虛擬化技術為基礎的云計算的用戶調(diào)查中就顯示,安全是用戶最關心的關鍵點。
本文從虛擬機系統(tǒng)的原理、架構入手,從虛擬機系統(tǒng)的關鍵技術如資源隔離、共享等方面研究系統(tǒng)可能存在的安全威脅,然后,根據(jù)安全隱患提出理論上的保護方法。在總結前人研究成果的基礎上,較為全面地總結了目前國內(nèi)外針對虛擬機安全各方面相關的研究成果,指出了目前存在的問題,探討了下一步的研究方向。
1 虛擬機技術
虛擬機技術最早由IBM于20世紀60年代提出,被定義為硬件設備的軟件模擬實現(xiàn),通常的使用模式是分時共享昂貴的大型機。目前,虛擬機中用到的虛擬化技術主要有網(wǎng)絡、內(nèi)存、CPU、硬盤虛擬化技術。在虛擬機環(huán)境中,硬件層與虛擬機系統(tǒng)之間存在一層虛擬機監(jiān)視器(virtualmachinemonitor,VMM),是虛擬機的核心層,負責上層虛擬機系統(tǒng)的資源分配和底層交接。
1.1虛擬機架構
本文將以虛擬機Xen為例,介紹虛擬機架構和原理。Xen是由英國劍橋大學計算機實驗室開發(fā)的一個開源項目。Xen主要由兩個組成部分,一個是虛擬機監(jiān)控器VMM,也叫Hypervisor。Hypervisor層在硬件與虛擬機之間,是最先載入到硬件的第一層。在Xen中,虛擬機稱為Domain,其中Domain0扮演著很重要的角色,負責其他虛擬機的控制管理和硬件驅(qū)動等,同時Domain0還負責其他Domain的數(shù)據(jù)傳遞。Xen的架構如圖1所示。
圖1 Xen虛擬機架構
在Xen虛擬機系統(tǒng)中,在安全級別上分為四個等級(0~3ring),VMM運行在特權模式(0-ring),負責控制資源的隔離、共享、數(shù)據(jù)處理等,為每個虛擬機虛擬一套獨立于實際硬件的虛擬硬件環(huán)境(包括處理器、內(nèi)存、I/O設備等),并仲裁虛擬機OS對底層硬件的訪問。
1.2 虛擬機安全特征
將虛擬機架構抽象化,那么虛擬機主要由硬件、VMM、VMs及Domain0四部分組成。下面將列出這四部分的一些關鍵特征,以及在安全角度上分析其可能帶來的安全影響。
1.2.1硬件
隨著虛擬機技術的廣泛應用,目前,很多硬件針對虛擬化技術進行了拓展,如AMD和Intel相繼針對全虛擬化拓展了AMD-V和Intel VT技術,通過多余的指令集來控制虛擬過程。除此之外,虛擬機技術的硬件特征體現(xiàn)在陷進執(zhí)行和可信模塊上。
a)陷進。在所有x86的硬件平臺下,陷進執(zhí)行是支持虛擬化的重要特征,虛擬域本身并不能直接訪問本虛擬域以外的物理資源,但是虛擬域可以通過超級調(diào)用(hypercall)向Hypervisor申請各種服務,如MMU更新、I/O處理、對虛擬域的管理等。
b)可信模塊。它是可選硬件特征,目前可信計算已成為了安全工具的一部分,而通過可信計算來確保VMM代碼上的完整性也是保護虛擬機系統(tǒng)的重要方法之一。
1.2.2虛擬機管理器
在虛擬機環(huán)境中,VMM是核心。VMM可以完成如下一些功能:a)網(wǎng)絡管理,配置網(wǎng)絡及網(wǎng)絡數(shù)據(jù)包的轉(zhuǎn)發(fā),而VMM的這一特征也可以用于數(shù)據(jù)包過濾,如為上層的安全服務提供入侵檢測;b)安全日志管理,通過監(jiān)測,VMMs能對VM的事件行為進行記錄,并保存在VM的空間外,可以利用這些日志信息對VM進行入侵分析;c)認證,當VM運行時,對VM的關鍵數(shù)據(jù)和進程進行hash存儲,當VM系統(tǒng)發(fā)生數(shù)據(jù)改變或者進程調(diào)用時,可以用于認證依據(jù)。這個功能在VM完整性保護和可信模塊上可以得到很好的利用。
1.2.3Domain0
Domain0是VM的控制域,相當于所有VMs中擁有root權限的管理員,其他VM的創(chuàng)建、啟動、掛起等操作都由Domain0控制。除此之外,Domain0還具有直接訪問硬件的權利,在Domain0中安裝了硬件的原始驅(qū)動,擔任著為DomainU提供硬件服務的角色,如網(wǎng)絡數(shù)據(jù)通信(DMA傳輸除外)。Domain0在接收數(shù)據(jù)包后,通過虛擬網(wǎng)橋技術,根據(jù)虛擬網(wǎng)卡地址將數(shù)據(jù)包轉(zhuǎn)發(fā)到目標虛擬機系統(tǒng)中,因此,擁有Dmain0的控制權限就控制了上層所有虛擬機系統(tǒng),這也致使Domain0成為了攻擊者的又一個主要目標。
1.2.4VM
VM的OS運行與傳統(tǒng)意義上的操作系統(tǒng)并無兩樣,但是因為VMM的存在,VMM可以將VM當做軟件一樣進行鏡像存儲和系統(tǒng)快照,以用于復制、備份、狀態(tài)保留等。
2 虛擬機安全分析
在前面的章節(jié)中系統(tǒng)地介紹了虛擬機的一些關鍵特征,并且從安全角度進行了分析。本章中將從整個虛擬機的架構上對虛擬機存在的安全威脅進行分析。
2.1 攻擊威脅
虛擬機系統(tǒng)比起傳統(tǒng)的計算機系統(tǒng)存在更多的攻擊點及安全隱患。通過分析,得到虛擬機的攻擊模型如圖2所示,圖中箭頭表明所受攻擊威脅來源。本文只考慮虛擬機系統(tǒng)中存在的安全分析,針對VM的傳統(tǒng)攻擊,諸如病毒攻擊和網(wǎng)絡攻擊等將不再細述。
圖2 虛擬機威脅分析
2.1.1VMM的外部攻擊
目前針對VMM的外部攻擊主要有兩種,一種是基于VM的Rootkit攻擊,另一種是惡意代碼攻擊。
a)VMBR。攻擊者利用Rootkit隱藏自己的蹤跡,通過保留root訪問權限,留下后門的程序集。VMBR的攻擊會在VMM的啟動之前將程序代碼寫入內(nèi)存并運行,一旦攻擊者得逞,那么所有虛擬機系統(tǒng)都將在攻擊者的控制范圍之內(nèi)。目前比較出名的VMBR攻擊有Bluepill等。檢測及防御VMBR攻擊的方法分析如下:(a)通過計時的方法,有一些指令的執(zhí)行是通過虛擬出來的,所占用的CPU周期會比真實的時間長,可以通過這種方法來進行檢測;(b)通過可信模塊TPM來進行VMM的保護,通過啟動過程的完整監(jiān)測,可以防止Rootkit的隱蔽插入,TPM的設計不但可以抵御VMBR的攻擊,同時也可以防御其他破壞VMM完整性的攻擊。
b)惡意代碼。攻擊者可以利用遠程攻擊方法,虛擬機系統(tǒng)的遠程管理技術大多是用HTTP/HTTPs來連接控制的,因此,VMM必須運行服務器來接受HTTP連接。那么攻擊者就可以利用HTTP的漏洞來進行惡意代碼的攻擊,如Xen的XenAPIHTTP接口就存在XSS(cross sitscripting)漏洞,攻擊者可以通過瀏覽器執(zhí)行惡意代碼腳本。
2.1.2 VM對Domain0的攻擊
Domain0具有管理其他VM的特權,VM到Domain0的攻擊體現(xiàn)在guest to host的攻擊來獲取host的特權,而VMescape就是這種模式的攻擊。VM通過應用程序,繞過VMM的監(jiān)控而直接訪問Domain0,從而獲取Domain0的特權,而一旦獲取到了Domain0的控制權后,就可以控制所有VM。這些攻擊是利用所發(fā)現(xiàn)的bug來實施的,如VMwareWorkstation 6 CVE20074496,通過用戶授權,進行內(nèi)存訪問和運行惡意代碼。另外,VM還可以利用共享內(nèi)存通信方式對VMM進行病毒分析。
2.1.3VM之間的攻擊
VMs之間的攻擊體現(xiàn)在通過共同訪問的資源來進行惡意攻擊。其中隱蔽通道是一個難以解決的問題,攻擊者通過進程、內(nèi)存共享或內(nèi)存錯誤,甚至其他錯誤信息來進行代碼的植入和攻擊,目前也尚未得到很好的解決。
2.2 其他安全隱患
a)備份、快照及還原漏洞。在虛擬機中,VMM提供了備份、快照和還原的功能,一旦系統(tǒng)崩潰了,可以通過快照進行還原,這為系統(tǒng)的維護帶來了方便且具有實效性。然而這也導致了新的問題發(fā)生:(a)這種機制使得VMs容易受到新的攻擊,因為許多安全攻擊是依賴于線性時間的,重新訪問以前的系統(tǒng)狀態(tài)會違反這些協(xié)議;(b)還原后,系統(tǒng)以前存在的漏洞會全部出現(xiàn),可能沒有安全補丁,或舊的安全機制(防火墻規(guī)則、反病毒簽名等),重新激活先前那些封鎖的賬號和密碼,這都帶來了很多的安全隱患。
b)DMA攻擊。在虛擬中有一種數(shù)據(jù)傳輸不受VMM控制,這就是DMA傳輸。VM通過Domain0與硬件建立DMA連接,而后將數(shù)據(jù)控制權交由VM進行數(shù)據(jù)傳輸,在數(shù)據(jù)傳輸?shù)倪^程中,數(shù)據(jù)將直接從網(wǎng)卡傳輸?shù)侥康腣M中,在大數(shù)據(jù)量的傳輸效率上有很大的提高。然而,這也為攻擊者提供了方便,攻擊者將輕而易舉地利用DMA方式將惡意代碼或者病毒文件等傳入沒有安全防范的目標機中,從而達到攻擊的目的。
3 虛擬機系統(tǒng)研究現(xiàn)狀
目前針對虛擬安全的研究可以分為如下幾類,如圖3所示。a)安全Hypervisor。在保護Hypervisor的同時,保護VMs資源隔離性、數(shù)據(jù)安全性、通信安全性以及代碼完整性等。
b)針對專門攻擊的防御研究。針對特定攻擊,如VMBR攻擊、網(wǎng)絡攻擊、通信數(shù)據(jù)保護等。
c)可信計算。以TPM為硬件基礎,建立可信Hypervisor、可信安全域或通過可信鏈確保上層安全。
d)安全應用。如通過入侵檢測和蜜罐等技術來進行系統(tǒng)保護。
圖3 虛擬機安全研究分類
3.1 安全Hypervisor研究
Hypervisor是虛擬機的核心層,而虛擬機的安全研究也是以Hypervisor為核心。很多研究人員提出了安全Hypervisor的概念,目前針對安全Hypervisor的研究較多。
IBM研究人員Sailer等人提出了一種安全的Hypervisor架構shype,利用安全模型,通過訪問控制模塊(accesscontrolmodule,ACM)來控制系統(tǒng)進程、內(nèi)存的訪問,實現(xiàn)內(nèi)部資源安全隔離。shype可以實行多種安全模型,但只是針對明確數(shù)據(jù)流進行限制,而并未過多顧慮隱蔽通道威脅。Sailer等人在虛擬機Xen上進行了shype架構的實現(xiàn)。目前在Xen虛擬機上,已經(jīng)可以配置ACM安全模塊。
Garfinkel等人提出了基于虛擬機的可信架構Terra,利用TPM來保護Hypervisor的啟動,然后通過可信虛擬機監(jiān)視器對VM進行硬件資源隔離。這種設計保證了Hypervisor啟動的安全,同時可信鏈的存在可以對系統(tǒng)事件進行認證。但Terra的提出只是在理論上進行了研究分析,在實際中還未完成真正的實現(xiàn),這也是Terra架構的一大主要問題。
Wang等人提出了Hypersafe架構,針對代碼和控制數(shù)據(jù)的完整性保護提出了相關的模型研究。文中提到了兩種技術:a)Nonbypassablememorylockdown,是一種內(nèi)存保護技術,通過特殊位WP來控制是否能寫,除了安全更新之外,其他時間都處于保護狀態(tài),保證了執(zhí)行期間的數(shù)據(jù)和代碼完整性;b)Restrictedpointerindexing,通過將控制數(shù)據(jù)指針限制到一個自己建立的表中進行監(jiān)控。Hypersafe能靈活地控制數(shù)據(jù)流的完整性。
一些研究人員針對當前虛擬機中安全機制的一些漏洞進行了分析和改進,Jansen等人提出一種PEV(protection、enforcement、verification)架構,通過加密解封的協(xié)議、安全策略等技術進行數(shù)據(jù)檢測和保護,并使用TPM建立可信區(qū)域來保護關鍵數(shù)據(jù);但是其關鍵數(shù)據(jù)是通過數(shù)據(jù)類型日志形式來保存的,對數(shù)據(jù)日志項的加/解密勢必影響整個虛擬機系統(tǒng)的性能。
針對DMA攻擊,Shinagawa等人通過先開辟內(nèi)存緩沖區(qū)進行數(shù)據(jù)檢測,然后從緩沖區(qū)將安全數(shù)據(jù)拷貝到目標系統(tǒng)的物理內(nèi)存區(qū)。他們提出了一個parapassthrougharchitecture的架構,將很多設備的驅(qū)動直接交由客戶系統(tǒng)本身,而自身只配置了一個parapass throughdrivers驅(qū)動集,通過在Hypervisor中對指令和數(shù)據(jù)的截取來進行安全監(jiān)控,從而提高了整個系統(tǒng)的可靠性。
Azab等人提出了HyperSentry。當完整性檢測模塊在激活時,如果VMM已經(jīng)被攻擊,那么在激活過程中會擦除以往的攻擊痕跡,因此文章提出了一種隱蔽的激活方法,通過外部的out of band信道IPMI來激活,并通過系統(tǒng)管理模塊SMM來保護基本代碼和關鍵數(shù)據(jù)的安全性。同時在文獻中,他們還提出了一種基于Hypervisor的虛擬機系統(tǒng)VMs完整性測試代理HIMA,可以實現(xiàn)客戶系統(tǒng)關鍵事件的動態(tài)監(jiān)視和客戶內(nèi)存的保護,在程序完整性測試上通過對加載到內(nèi)存的代碼和數(shù)據(jù)段進行哈希計算來確認完整性;在內(nèi)存保護上,HIMA通過訪問權限限制來保護客戶內(nèi)存,并使用測試虛擬域內(nèi)存地址的哈希方法來確保頁映射中發(fā)生的安全問題。Wu等人研究了基于Hypervisor的系統(tǒng)控制和監(jiān)視機制,利用Hypervisor來進行客戶系統(tǒng)的安全保護,提出了BMCS(behaviormonitoringandcontrollingsystem)的模塊來完成系統(tǒng)中的行為監(jiān)控。Xu等人提出了一種基于VMM的OS內(nèi)核保護模型UCON,通過基于事件的策略持續(xù)而實時地檢測系統(tǒng)。
3.2針對特定攻擊的安全研究
隨著虛擬機的廣泛應用,目前針對虛擬機的漏洞攻擊也有很多種,主要體現(xiàn)在VMBR攻擊、內(nèi)存錯誤等隱蔽通道攻擊、網(wǎng)絡攻擊等。有很多安全研究人員針對這些攻擊進行了研究,并提出了相關的解決方法。
針對VMBR的攻擊,Rhee等人利用一些安全策略,通過監(jiān)視內(nèi)核的內(nèi)存訪問來防御動態(tài)數(shù)據(jù)內(nèi)核Rootkit攻擊,Riley等人提出了通過內(nèi)存影子來檢測內(nèi)核Rootkit攻擊。Gebhardtd等人提出了利用可信計算來防御Hypervisor的Rootkit攻擊。
針對虛擬機系統(tǒng)中存在的網(wǎng)絡方面的威脅,如拒絕服務攻擊(Dos),Lakshmi等人提出了一種新的I/O虛擬架構,為每個VM配置一個虛擬網(wǎng)卡,VM可以通過自身的網(wǎng)卡驅(qū)動與虛擬網(wǎng)卡直接進行通信,然后通過VMM監(jiān)視每個VM的數(shù)據(jù)流,在防御諸如DMA的無控制漏洞和Dos攻擊等威脅的同時,也可以提高網(wǎng)絡性能。
隱蔽通道是較難解決的安全問題之一,因為存在的隱蔽通道通常是用戶和系統(tǒng)不可知的傳輸通道,如基于CPU負載的隱蔽通道,攻擊者利用CPU的負載傳輸私密數(shù)據(jù)流,既能很隱蔽地傳輸數(shù)據(jù),又能成功地避免檢測。Salaun研究了虛擬機Xen上可能存在的隱蔽通道,從XenStore的機制、共享協(xié)議、驅(qū)動加載、數(shù)據(jù)傳輸?shù)确矫娣治隽丝赡艽嬖诘碾[蔽通道。隱蔽通道的建立和數(shù)據(jù)傳輸通常是需要“同伙的存在”,即接收者和發(fā)送者的存在。Cheng等人根據(jù)這一特征,在Chinesewall的安全模型上進行了改進,利用限制沖突集數(shù)據(jù)傳輸來防御隱蔽通道。
3.3可信計算
在前面的介紹中已經(jīng)提到了,一些研究人員提出用可信計算來保護系統(tǒng)的完整性。Catuogno等人研究了一個基于TCB的可信虛擬域的設計和執(zhí)行,通過安全策略和TVD協(xié)議實現(xiàn)可靠性。Berger等人則通過軟件方法設計了基于硬件TPM的虛擬TPM來保證多個VM的可靠性。而Ruan等人設計了一個一般的可信虛擬平臺架構GTVP,將控制域分為管理、安全、設備、OS成員、通信五個域,每個域都完成相應的功能,從而達到了安全、負載均衡和易用等目的。程川提出了一種基于Xen的信任虛擬機安全訪問機制,為用戶提供了一種有效的安全訪問敏感數(shù)據(jù)的模式。其核心思想是利用虛擬機的隔離性,為數(shù)據(jù)信息應用提供一個專用的隔離環(huán)境,同時利用可信計算技術保證該虛擬平臺配置狀態(tài)的可信性。
3.4安全應用
中間層VMM的存在使得一些傳統(tǒng)的安全技術能得到更好的利用,因此,一些研究人員利用傳統(tǒng)的安全技術如入侵檢測技術來提升系統(tǒng)的安全性。Jansen等人提出了通過虛擬化來提高系統(tǒng)的安全性和獨立性。首先在安全主域配置入侵檢測系統(tǒng),通過對客戶機的用戶命令所獲取的信息和內(nèi)核內(nèi)存所獲取的信息比較來進行入侵分析;然后通過設置保護模塊獲取客戶機系統(tǒng)調(diào)用,進行進程等事件管理,實現(xiàn)完整性保護。張志新等人提出了基于Xen的入侵檢測服務,通過在VMM層設置入侵檢測系統(tǒng),使得這個入侵檢測系統(tǒng)位于監(jiān)控所有對操作系統(tǒng)的入侵事件的最佳位置,并處于一個獨立于操作系統(tǒng)之外的受保護的空間內(nèi),增強了入侵檢測系統(tǒng)的獨立性和檢測能力,是傳統(tǒng)的基于主機和網(wǎng)絡入侵檢測系統(tǒng)優(yōu)點的完美結合。
3.5尚存在的問題
通過上文的分析可以發(fā)現(xiàn),在國內(nèi)外針對虛擬機系統(tǒng)的安全研究已陸續(xù)出現(xiàn)很多,針對不同角度的安全研究都存在,從整體分析來說,尚且存在如下一些問題:
a)沒有從整體安全上進行設計,只是從單一的一方面進行了研究,如shype只是針對明確數(shù)據(jù)流,沒有考慮到隱蔽通道等安全。
b)一些研究設計過于復雜。在實施上存在問題,如Terra架構,雖然作者的設計理念十分突出,但是至今沒能設計出合適的實現(xiàn)平臺。
c)忽略了性能的因素。出于安全的考慮,通過策略來進行系統(tǒng)的完整性保護,如UCON保護模型,但是在Linux系統(tǒng)中,由于資源眾多,將存在50000種策略狀態(tài),那么在實際中將嚴重影響系統(tǒng)的性能。有些研究人員針對存在的一些系統(tǒng)復雜性進行了改進,如Payne等人提出了分層的訪問控制模型,在很大程度上簡化了訪問控制模塊中的主客體關系鏈。
d)忽略了安全模塊自身的安全,一旦安全模塊自身被攻擊,那么相關的安全將得不到保障,如HIMA、BitVisor。
4 結束語
本文旨在進行虛擬機系統(tǒng)的安全分析,總結目前已有的研究成果,并指出其中存在的問題。首先以虛擬機Xen為例,介紹了虛擬機的架構和關鍵技術,并從安全的角度對虛擬機中的這些特征和存在的漏洞進行了分析,然后系統(tǒng)地介紹了虛擬機環(huán)境中存在的攻擊模型,分析了目前存在的一些攻擊方式,并針對這些攻擊方式提出了相應的防御方法。其次還對目前針對虛擬機安全的研究現(xiàn)狀進行了概括總結,主要體現(xiàn)在安全Hypervisor、安全虛擬機架構、特定攻擊安全研究、可信計算等幾個方面。同時,本文還分析了目前研究存在的一些問題。在后續(xù)研究中,筆者將在前人研究的基礎上進行安全虛擬機管理器的研究,設計一個安全可靠的虛擬機管理器架構。
核心關注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務領域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務領域的管理,全面涵蓋了企業(yè)關注ERP管理系統(tǒng)的核心領域,是眾多中小企業(yè)信息化建設首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.vmgcyvh.cn/
本文標題:虛擬機系統(tǒng)安全綜述
本文網(wǎng)址:http://www.vmgcyvh.cn/html/support/1112186163.html