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