虛擬機隔離安全的威脅研究

時間:2022-05-21 11:21:05

導語:虛擬機隔離安全的威脅研究一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

虛擬機隔離安全的威脅研究

虛擬機隔離安全的具體實現

虛擬機之間具有良好的隔離性,但在很多應用場合,需要虛擬機間或虛擬機與宿主機之間共享資源或者通信,很重要的一點是要保證虛擬機上的重要信息與宿主操作系統或其他虛擬機的隔離。虛擬機的硬盤等存儲設備是虛擬機虛擬出來的存儲設備,這些虛擬存儲設備的安全性是虛擬機安全性的重要組成部分。虛擬存儲設備中的數據,最常見的保存方法就是在宿主操作系統上建立一個文件來保存。例如,在VirtualBox中,虛擬機的硬盤是由一個后綴名為vdi的虛擬硬盤文件保存,而VMWare的虛擬機硬盤則是使用后綴名為vmdk的虛擬硬盤文件保存。通常,這樣的文件被稱為映像文件(ImageFile),每個虛擬機的客戶操作系統的文件系統都完整保存在它們各自的映像文件中。在大部分的虛擬機技術中,映像文件位于宿主機操作系統的文件系統中。因此,惡意代碼在宿主機操作系統中讀寫映像文件就成為對破壞虛擬機或竊取虛擬機信息的一條可能的途徑,而且是非常高效和直接的途徑。存儲器的操作最終都會轉換成宿主機操作系統對映像文件的操作[3],導致映像文件很難與宿主機操作系統的文件系統完全隔離。以明文方式存儲在宿主機操作系統中的映像文件使得宿主機操作系統上運行的軟件或惡意代碼可以從中獲取到所有虛擬機操作系統的文件信息和數據,甚至惡意代碼可以用病毒或其他文件替換掉映像文件。目前,少數虛擬機技術可以為虛擬機操作系統提供獨立的硬盤邏輯分區,與宿主機操作系統進行有效隔離,但這種方式在存儲資源的分配上是低效的,在硬盤邏輯分區的管理上也很繁瑣。因此,映像文件攻擊是一個重要的虛擬機隔離安全問題。一般來說,當用戶因關閉系統或重新配置網絡等原因不再需要已分配的IP地址時,將不再保留此IP地址。當該IP地址變為可用后,通常把它再分配給其他用戶使用。從用戶安全角度而論,IP地址再分配使用可能會帶來問題,用戶無法確信他們對資源的網絡訪問能否隨著IP地址的釋放一并終止,從DNS中的IP地址改變到DNS緩存清理,從ARP表中物理地址改變到將ARP地址從緩存中的清除,都會有一定的時間延遲。這意味著,即使地址可能已經變化,原先的地址在緩存中依舊有效,用戶還是可以訪問到那些理應不存在的資源。信息泄漏是計算機系統中一直存在的一個安全隱患,這是由于很多計算機系統的設計者或者一些安全手段和策略,都沒有將信息泄漏考慮在內。隱蔽通道[4]是信息泄漏的重要渠道。虛擬機雖然具有天生的隔離性,但由于多臺虛擬機分布在同一個虛擬機監控器之上,虛擬機之間又具有一定的耦合性,這種特性可以被利用來構造隱蔽通道。在Xen中,Hypervisor保存有一張全局的機器地址到偽物理地址的關系表,稱之為M2P表。每一個Domain都能對它進行讀操作,并且能通過調用Hypervisor的mmu_update接口來更新屬于自己地址范圍內的表項。這一特性被證明是可以利用在兩虛擬機間構造隱蔽通道的[5]。通信雙方的虛擬機共享一個結構數據類型,其中第一個域充當標志(雙方互相知道對方的標志),而最后一個域包含實際傳遞的隱蔽消息。在實際的傳遞過程中,一方將共享的結構體更新到屬于自己地址范圍的表項內,而另一方則遍歷M2P表的表項,直到找到對方的標志,繼而就能通過結構體中的偏移量字段來找到相應的隱蔽消息。Xen虛擬機的CPU負載變化也可以用來構造隱蔽通道[6]。假設兩臺虛擬機的虛擬CPU(VCPU)被映射到同一個物理CPU(或CPU核),并且假設兩臺虛擬機運行一個相同的任務。作為隱蔽消息接收方的虛擬機一直執行該任務,而作為發送方的虛擬機則通過執行或不執行該任務來引起接收方中此任務執行時間的變化。于是雙方可以這樣約定,當發送方不執行此任務時,傳遞比特0;而當發送方執行此任務時,接收方觀察到任務執行時間變長,此時傳遞比特1。

提高虛擬機隔離的安全性考慮

(1)資源分配的問題虛擬機運行時,要求在物理機上需要有足夠的處理能力、內存、硬盤容量和帶寬等。為了高效利用資源,有時會分配超出處理能力的資源給虛擬機,很可能會導致拒絕服務。當無法保證所有虛擬機不會在同一時間達到峰值,虛擬機資源共享機制又比較簡單,CPU、內存、磁盤、帶寬都有可能出現資源不夠用的問題,預留出一些額外的處理能力、內存等資源用于調度是非常必要的。(2)限制對虛擬機的訪問宿主機對虛擬機的攻擊有著得天獨厚的條件,包括:不需要賬戶和密碼,即可使用特定的功能來殺死進程,監控資源的使用或者關閉機器;重啟機器,引導到外部媒體從而破解密碼;竊取文件,比如利用外接存儲器等,或直接盜走宿主機的磁盤以訪問虛擬文件系統;刪除一個或多個虛擬磁盤,把它們掛載到已知管理員密碼的機器上,可以進入虛擬機,從而看到該磁盤全部內容;刪除整個虛擬機等。宿主機的環境不同,造成的風險也不同,所以要對宿主機的安全提供周密的安全措施:宿主機的物理環境安全,包括對進入機房的身份卡驗證,對機器進行加鎖(避免被人竊走硬盤);拆除軟驅、光驅;BIOS設置禁止從其他設備引導,只允許從主硬盤引導。另外,對BIOS設置密碼,避免被人修改啟動選項;控制所有的外部接口。(1)虛擬化軟件層的安全隔離軟件層位于硬件和虛擬服務器之間,提供終端用戶創建和刪除虛擬化實例的能力,由虛擬化服務提供商管理,終端用戶無法看到并訪問虛擬化軟件。其管理程序保證硬件和操作系統虛擬化實現在多個用戶虛擬機之間共享硬件資源,而不會彼此干擾。鑒于管理程序虛擬化是保證在多用戶環境下客戶虛擬機彼此分隔與隔離的基本要素,保護其不受未授權用戶訪問是非常重要的。一旦黑客對其進行完整性攻擊,突破這些隔離單元,將造成災難性后果。虛擬化服務提供商應當建立必要的安全控制,包括限制對管理程序及其他虛擬化層面的物理和邏輯訪問;而用戶應當理解相關技術及虛擬化服務提供商的安全控制流程。虛擬化軟件層的程序絕大部分是服務提供商專有而封閉的源代碼,用戶的安全保障團隊要設法獲得并檢查提供虛擬化服務提供商的軟件源代碼,保障自身安全。(2)虛擬化系統采用虛擬防火墻在基于云計算的虛擬化技術中,安全等級往往采用域進行構建,域與域之間有邏輯隔離。為了實現虛擬機之間安全互訪[7],虛擬防火墻要具有基于IP地址(特定的地址或子網)、數據包類型(TCP、UDP或者ICMP)以及端口(或者端口范圍)進行流量過濾的功能。同時,為了防止遭受外界攻擊,要阻止所有到虛擬服務器的端口,建議只使用端口號22(SSH——安全外殼協議,要有密鑰認證)來管理虛擬服務器的資源。(3)通信加密和虛擬機身份驗證使用謂詞加密、完全同態加密等各種手段,用HTTPS、TLS、SSH,或者加密VPN來管理。除了通信加密以外,還應有身份鑒別和認證手段,以防止偽造源IP攻擊、連接劫持、中間人攻擊等。虛擬機和宿主機一樣也需要升級認證方式,比如使用key登錄、口令的加密存儲等。

虛擬機技術還面臨著很多其他已知和未知的威脅,這些威脅需要逐一去研究解決,尤其是在國內這樣大范圍使用虛擬機但虛擬機安全技術卻暫時落后的背景下,自身掌握虛擬機的安全技術就顯得更加重要和必要。同時,可信邊界的變動造成了人們對虛擬化技術應用的顧慮,加強對虛擬化技術安全特性的研究是一個非常有意義的課題。

本文作者:范偉韓奕黃偉慶工作單位:中國科學院信息工程研究所