虛擬機(jī)隔離安全的威脅研究
時(shí)間:2022-05-21 11:21:05
導(dǎo)語:虛擬機(jī)隔離安全的威脅研究一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
虛擬機(jī)之間具有良好的隔離性,但在很多應(yīng)用場(chǎng)合,需要虛擬機(jī)間或虛擬機(jī)與宿主機(jī)之間共享資源或者通信,很重要的一點(diǎn)是要保證虛擬機(jī)上的重要信息與宿主操作系統(tǒng)或其他虛擬機(jī)的隔離。虛擬機(jī)的硬盤等存儲(chǔ)設(shè)備是虛擬機(jī)虛擬出來的存儲(chǔ)設(shè)備,這些虛擬存儲(chǔ)設(shè)備的安全性是虛擬機(jī)安全性的重要組成部分。虛擬存儲(chǔ)設(shè)備中的數(shù)據(jù),最常見的保存方法就是在宿主操作系統(tǒng)上建立一個(gè)文件來保存。例如,在VirtualBox中,虛擬機(jī)的硬盤是由一個(gè)后綴名為vdi的虛擬硬盤文件保存,而VMWare的虛擬機(jī)硬盤則是使用后綴名為vmdk的虛擬硬盤文件保存。通常,這樣的文件被稱為映像文件(ImageFile),每個(gè)虛擬機(jī)的客戶操作系統(tǒng)的文件系統(tǒng)都完整保存在它們各自的映像文件中。在大部分的虛擬機(jī)技術(shù)中,映像文件位于宿主機(jī)操作系統(tǒng)的文件系統(tǒng)中。因此,惡意代碼在宿主機(jī)操作系統(tǒng)中讀寫映像文件就成為對(duì)破壞虛擬機(jī)或竊取虛擬機(jī)信息的一條可能的途徑,而且是非常高效和直接的途徑。存儲(chǔ)器的操作最終都會(huì)轉(zhuǎn)換成宿主機(jī)操作系統(tǒng)對(duì)映像文件的操作[3],導(dǎo)致映像文件很難與宿主機(jī)操作系統(tǒng)的文件系統(tǒng)完全隔離。以明文方式存儲(chǔ)在宿主機(jī)操作系統(tǒng)中的映像文件使得宿主機(jī)操作系統(tǒng)上運(yùn)行的軟件或惡意代碼可以從中獲取到所有虛擬機(jī)操作系統(tǒng)的文件信息和數(shù)據(jù),甚至惡意代碼可以用病毒或其他文件替換掉映像文件。目前,少數(shù)虛擬機(jī)技術(shù)可以為虛擬機(jī)操作系統(tǒng)提供獨(dú)立的硬盤邏輯分區(qū),與宿主機(jī)操作系統(tǒng)進(jìn)行有效隔離,但這種方式在存儲(chǔ)資源的分配上是低效的,在硬盤邏輯分區(qū)的管理上也很繁瑣。因此,映像文件攻擊是一個(gè)重要的虛擬機(jī)隔離安全問題。一般來說,當(dāng)用戶因關(guān)閉系統(tǒng)或重新配置網(wǎng)絡(luò)等原因不再需要已分配的IP地址時(shí),將不再保留此IP地址。當(dāng)該IP地址變?yōu)榭捎煤?,通常把它再分配給其他用戶使用。從用戶安全角度而論,IP地址再分配使用可能會(huì)帶來問題,用戶無法確信他們對(duì)資源的網(wǎng)絡(luò)訪問能否隨著IP地址的釋放一并終止,從DNS中的IP地址改變到DNS緩存清理,從ARP表中物理地址改變到將ARP地址從緩存中的清除,都會(huì)有一定的時(shí)間延遲。這意味著,即使地址可能已經(jīng)變化,原先的地址在緩存中依舊有效,用戶還是可以訪問到那些理應(yīng)不存在的資源。信息泄漏是計(jì)算機(jī)系統(tǒng)中一直存在的一個(gè)安全隱患,這是由于很多計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)者或者一些安全手段和策略,都沒有將信息泄漏考慮在內(nèi)。隱蔽通道[4]是信息泄漏的重要渠道。虛擬機(jī)雖然具有天生的隔離性,但由于多臺(tái)虛擬機(jī)分布在同一個(gè)虛擬機(jī)監(jiān)控器之上,虛擬機(jī)之間又具有一定的耦合性,這種特性可以被利用來構(gòu)造隱蔽通道。在Xen中,Hypervisor保存有一張全局的機(jī)器地址到偽物理地址的關(guān)系表,稱之為M2P表。每一個(gè)Domain都能對(duì)它進(jìn)行讀操作,并且能通過調(diào)用Hypervisor的mmu_update接口來更新屬于自己地址范圍內(nèi)的表項(xiàng)。這一特性被證明是可以利用在兩虛擬機(jī)間構(gòu)造隱蔽通道的[5]。通信雙方的虛擬機(jī)共享一個(gè)結(jié)構(gòu)數(shù)據(jù)類型,其中第一個(gè)域充當(dāng)標(biāo)志(雙方互相知道對(duì)方的標(biāo)志),而最后一個(gè)域包含實(shí)際傳遞的隱蔽消息。在實(shí)際的傳遞過程中,一方將共享的結(jié)構(gòu)體更新到屬于自己地址范圍的表項(xiàng)內(nèi),而另一方則遍歷M2P表的表項(xiàng),直到找到對(duì)方的標(biāo)志,繼而就能通過結(jié)構(gòu)體中的偏移量字段來找到相應(yīng)的隱蔽消息。Xen虛擬機(jī)的CPU負(fù)載變化也可以用來構(gòu)造隱蔽通道[6]。假設(shè)兩臺(tái)虛擬機(jī)的虛擬CPU(VCPU)被映射到同一個(gè)物理CPU(或CPU核),并且假設(shè)兩臺(tái)虛擬機(jī)運(yùn)行一個(gè)相同的任務(wù)。作為隱蔽消息接收方的虛擬機(jī)一直執(zhí)行該任務(wù),而作為發(fā)送方的虛擬機(jī)則通過執(zhí)行或不執(zhí)行該任務(wù)來引起接收方中此任務(wù)執(zhí)行時(shí)間的變化。于是雙方可以這樣約定,當(dāng)發(fā)送方不執(zhí)行此任務(wù)時(shí),傳遞比特0;而當(dāng)發(fā)送方執(zhí)行此任務(wù)時(shí),接收方觀察到任務(wù)執(zhí)行時(shí)間變長(zhǎng),此時(shí)傳遞比特1。
提高虛擬機(jī)隔離的安全性考慮
(1)資源分配的問題虛擬機(jī)運(yùn)行時(shí),要求在物理機(jī)上需要有足夠的處理能力、內(nèi)存、硬盤容量和帶寬等。為了高效利用資源,有時(shí)會(huì)分配超出處理能力的資源給虛擬機(jī),很可能會(huì)導(dǎo)致拒絕服務(wù)。當(dāng)無法保證所有虛擬機(jī)不會(huì)在同一時(shí)間達(dá)到峰值,虛擬機(jī)資源共享機(jī)制又比較簡(jiǎn)單,CPU、內(nèi)存、磁盤、帶寬都有可能出現(xiàn)資源不夠用的問題,預(yù)留出一些額外的處理能力、內(nèi)存等資源用于調(diào)度是非常必要的。(2)限制對(duì)虛擬機(jī)的訪問宿主機(jī)對(duì)虛擬機(jī)的攻擊有著得天獨(dú)厚的條件,包括:不需要賬戶和密碼,即可使用特定的功能來殺死進(jìn)程,監(jiān)控資源的使用或者關(guān)閉機(jī)器;重啟機(jī)器,引導(dǎo)到外部媒體從而破解密碼;竊取文件,比如利用外接存儲(chǔ)器等,或直接盜走宿主機(jī)的磁盤以訪問虛擬文件系統(tǒng);刪除一個(gè)或多個(gè)虛擬磁盤,把它們掛載到已知管理員密碼的機(jī)器上,可以進(jìn)入虛擬機(jī),從而看到該磁盤全部?jī)?nèi)容;刪除整個(gè)虛擬機(jī)等。宿主機(jī)的環(huán)境不同,造成的風(fēng)險(xiǎn)也不同,所以要對(duì)宿主機(jī)的安全提供周密的安全措施:宿主機(jī)的物理環(huán)境安全,包括對(duì)進(jìn)入機(jī)房的身份卡驗(yàn)證,對(duì)機(jī)器進(jìn)行加鎖(避免被人竊走硬盤);拆除軟驅(qū)、光驅(qū);BIOS設(shè)置禁止從其他設(shè)備引導(dǎo),只允許從主硬盤引導(dǎo)。另外,對(duì)BIOS設(shè)置密碼,避免被人修改啟動(dòng)選項(xiàng);控制所有的外部接口。(1)虛擬化軟件層的安全隔離軟件層位于硬件和虛擬服務(wù)器之間,提供終端用戶創(chuàng)建和刪除虛擬化實(shí)例的能力,由虛擬化服務(wù)提供商管理,終端用戶無法看到并訪問虛擬化軟件。其管理程序保證硬件和操作系統(tǒng)虛擬化實(shí)現(xiàn)在多個(gè)用戶虛擬機(jī)之間共享硬件資源,而不會(huì)彼此干擾。鑒于管理程序虛擬化是保證在多用戶環(huán)境下客戶虛擬機(jī)彼此分隔與隔離的基本要素,保護(hù)其不受未授權(quán)用戶訪問是非常重要的。一旦黑客對(duì)其進(jìn)行完整性攻擊,突破這些隔離單元,將造成災(zāi)難性后果。虛擬化服務(wù)提供商應(yīng)當(dāng)建立必要的安全控制,包括限制對(duì)管理程序及其他虛擬化層面的物理和邏輯訪問;而用戶應(yīng)當(dāng)理解相關(guān)技術(shù)及虛擬化服務(wù)提供商的安全控制流程。虛擬化軟件層的程序絕大部分是服務(wù)提供商專有而封閉的源代碼,用戶的安全保障團(tuán)隊(duì)要設(shè)法獲得并檢查提供虛擬化服務(wù)提供商的軟件源代碼,保障自身安全。(2)虛擬化系統(tǒng)采用虛擬防火墻在基于云計(jì)算的虛擬化技術(shù)中,安全等級(jí)往往采用域進(jìn)行構(gòu)建,域與域之間有邏輯隔離。為了實(shí)現(xiàn)虛擬機(jī)之間安全互訪[7],虛擬防火墻要具有基于IP地址(特定的地址或子網(wǎng))、數(shù)據(jù)包類型(TCP、UDP或者ICMP)以及端口(或者端口范圍)進(jìn)行流量過濾的功能。同時(shí),為了防止遭受外界攻擊,要阻止所有到虛擬服務(wù)器的端口,建議只使用端口號(hào)22(SSH——安全外殼協(xié)議,要有密鑰認(rèn)證)來管理虛擬服務(wù)器的資源。(3)通信加密和虛擬機(jī)身份驗(yàn)證使用謂詞加密、完全同態(tài)加密等各種手段,用HTTPS、TLS、SSH,或者加密VPN來管理。除了通信加密以外,還應(yīng)有身份鑒別和認(rèn)證手段,以防止偽造源IP攻擊、連接劫持、中間人攻擊等。虛擬機(jī)和宿主機(jī)一樣也需要升級(jí)認(rèn)證方式,比如使用key登錄、口令的加密存儲(chǔ)等。
虛擬機(jī)技術(shù)還面臨著很多其他已知和未知的威脅,這些威脅需要逐一去研究解決,尤其是在國內(nèi)這樣大范圍使用虛擬機(jī)但虛擬機(jī)安全技術(shù)卻暫時(shí)落后的背景下,自身掌握虛擬機(jī)的安全技術(shù)就顯得更加重要和必要。同時(shí),可信邊界的變動(dòng)造成了人們對(duì)虛擬化技術(shù)應(yīng)用的顧慮,加強(qiáng)對(duì)虛擬化技術(shù)安全特性的研究是一個(gè)非常有意義的課題。
本文作者:范偉韓奕黃偉慶工作單位:中國科學(xué)院信息工程研究所
熱門標(biāo)簽
虛擬現(xiàn)實(shí) 虛擬現(xiàn)實(shí)技術(shù) 虛擬仿真實(shí)訓(xùn) 虛擬團(tuán)隊(duì) 虛擬世界 虛擬貨幣 虛擬學(xué)習(xí) 虛擬演播室 虛擬物流 虛擬參考 心理培訓(xùn) 人文科學(xué)概論