相關(guān)鏈接: 中國安全網(wǎng) 中國質(zhì)量網(wǎng) 中國論文網(wǎng) 中國資訊網(wǎng)
作者:鄭曉敏
云計(jì)算以資源管理集中化、應(yīng)用和服務(wù)托管化的核心理念,使計(jì)算機(jī)資源真正實(shí)現(xiàn)了按需服務(wù),極大提高了IT資源利用率及各行業(yè)的信息化水平。虛擬化技術(shù)作為云計(jì)算平臺(tái)IaaS(infrastructure as a service,基礎(chǔ)設(shè)施即服務(wù))的重要技術(shù)支持,具有提供系統(tǒng)資源的隔離性、封裝性以及對(duì)虛擬資源良好的可管理性等特點(diǎn),有助于各種網(wǎng)絡(luò)環(huán)境的跨平臺(tái)、松散耦合的若干服務(wù)資源的協(xié)同。然而,云計(jì)算在提高資源利用率、降低服務(wù)成本以及增加應(yīng)用智能性等的同時(shí),面對(duì)的安全威脅相比傳統(tǒng)PC來說也更為嚴(yán)峻。國內(nèi)外近幾年發(fā)生的重大安全事件證實(shí)了云計(jì)算安全威脅的嚴(yán)重性,如2013年Amazon重大中斷事故、Dropbox崩潰事故、Facebook事故;2014年eBay數(shù)據(jù)大泄露,阿里云、騰訊云服務(wù)器相繼宕機(jī);近兩年Google -直存在的數(shù)據(jù)泄露事件等。正如Gartner調(diào)查報(bào)告的結(jié)果,安全與隱私成為人們對(duì)云計(jì)算最為擔(dān)心的問題。作為云計(jì)算的重要組成部分,虛擬化技術(shù)也存在著許多安全問題,如來自虛擬化管理平臺(tái)的管理員內(nèi)部攻擊、來自虛擬層的虛擬機(jī)內(nèi)核提權(quán)漏洞利用攻擊等。Coogle數(shù)據(jù)泄露事件就是最典型的虛擬化攻擊案例。
云環(huán)境中的安全機(jī)制通常建立在為虛擬機(jī)構(gòu)建隔離執(zhí)行環(huán)境之上,虛擬化技術(shù)有助于提升該類隔離環(huán)境的安全性。系統(tǒng)虛擬化技術(shù)包括對(duì)CPU、內(nèi)存及設(shè)備等物理資源的虛擬。目前兩大芯片廠商Intel和AMD從硬件的角度對(duì)CPU的虛擬化提供了較好的技術(shù)支持,但內(nèi)存和設(shè)備虛擬化方面的安全問題還有待解決。此外,可信計(jì)算組織TCC提出的將可信平臺(tái)模塊( trusted platform module,TPM)作為整個(gè)系統(tǒng)的可信根的信任鏈傳遞思想則為構(gòu)建虛擬機(jī)的安全執(zhí)行環(huán)境提供了一定的借鑒。為此,本文提出一個(gè)Xen平臺(tái)上基于獨(dú)立域思想及VT-d虛擬化技術(shù)的虛擬機(jī)安全隔離框架,該框架能夠滿足虛擬機(jī)在I/O訪問和內(nèi)存管理兩方面的安全隔離需求。
1安全威脅
云環(huán)境下虛擬機(jī)面臨的安全威脅來自多方面。從虛擬機(jī)應(yīng)用層往底層平臺(tái)延伸,包括:1)虛擬機(jī)自身的數(shù)據(jù)和代碼可能被攻擊者竊。2)虛擬機(jī)之間的數(shù)據(jù)傳輸安全性易受威脅;3)攻擊者從特權(quán)域或利用虛擬機(jī)的內(nèi)核提權(quán)漏洞“窺探”虛擬機(jī)內(nèi)存信息;4)虛擬機(jī)發(fā)起惡意DMA操作訪問其他虛擬機(jī)信息甚至重寫DMA內(nèi)存區(qū)域?qū)е抡麄(gè)系統(tǒng)崩潰等
針對(duì)上述問題,國內(nèi)外學(xué)者按照系統(tǒng)層級(jí)來區(qū)分,主要從虛擬機(jī)管理層( VMM)和虛擬機(jī)層兩方面進(jìn)行虛擬機(jī)隔離方案的研究。Overshadow[31、Bastiod、SecureME等通過增加VMM功能來提高宿主機(jī)安全性,但是這會(huì)增加系統(tǒng)可信基( TCB)的大小,使得系統(tǒng)安全性問題更多;相反HyperSafe、CloudVisor、SICE、Barrier、SplitVisor等則通過減少VMM功能以減少TCB大小,提高安全性。虛擬機(jī)層面的安全主要是利用VMM提供的虛擬機(jī)自身隔離性在軟件層面實(shí)現(xiàn),包括基于硬件的H-SVMSilakov、Ramya、Butterworth和基于軟件的TerravTPM、TVEM等,前者修改硬件開銷較大,后者提升了效率但安全性無法保障。此外,許多研究者基于硬,輔助虛擬化技術(shù)如VT-d技術(shù)對(duì)虛擬機(jī)安全進(jìn)行了研究如減少中斷次數(shù)的ELI方法、Paul的保護(hù)策略以及習(xí)形rIOMMU[2U模型等,在提升效率的同時(shí)提供基于硬件保護(hù)的設(shè)備I/0安全,但這些研究均沒有提出系統(tǒng)的虛擬機(jī)隔離方案。因此,本文利用VT-d技術(shù)將內(nèi)存區(qū)域劃分,基于DMA重映射和中斷重映射機(jī)制,提出一個(gè)虛擬機(jī)安全隔離框架,著重提升虛擬機(jī)之間的設(shè)備I/0訪問隔離及內(nèi)存訪問隔離,并結(jié)合基于獨(dú)立域的vTPM域,保護(hù)虛捌機(jī)內(nèi)密鑰等敏感數(shù)據(jù)。
2安全架構(gòu)
針對(duì)云環(huán)境下虛擬機(jī)之間的安全隔離需求,即虛擬機(jī)的數(shù)據(jù)安全存儲(chǔ)、虛擬機(jī)之間的I/0訪問隔離及內(nèi)存訪問隔離,本文基于VT-d技術(shù)和可信計(jì)算技術(shù),提出一個(gè)虛擬機(jī)安全隔離框架(如圖1所示),該框架包括vTPM域模塊、Mgnt管理域模塊、授權(quán)表策略管理模塊以及VT-d硬件設(shè)備抽象模塊。
2.1功能模塊描述
2.1.1 vTPM域模塊
1) vTPM功能實(shí)現(xiàn)
vTPM域模塊封裝了Xen的mini- OS微型操作系統(tǒng),作為獨(dú)立域運(yùn)行。vTPM提供了類似硬件TPM的功能,包括密碼功能、密鑰管理、策略管理、vPCR管理等。本框架使用硬件TPM對(duì)vTPM域的密鑰及內(nèi)存數(shù)據(jù)進(jìn)行加密保護(hù),虛擬機(jī)中的數(shù)據(jù)則通過vTPM提供的密鑰進(jìn)行安全存儲(chǔ)。vTPM域的密鑰層次如圖2所示,其中虛擬機(jī)的可信身份由vEK和EK/EPS的映射關(guān)系標(biāo)識(shí),基于該映射關(guān)系將信任鏈由物理平臺(tái)擴(kuò)展到虛擬平臺(tái)。
2) vTPM前/后端驅(qū)動(dòng)
Xen-4.3.0架構(gòu)目前只為PV虛擬機(jī)提供vTPM支持,本框架通過修改Xen底層模擬軟件Qemu來兼容支持HVM虛擬機(jī)。前端驅(qū)動(dòng)功能比較簡單,接收來自vTPM后端驅(qū)動(dòng)的請(qǐng)求,將根密鑰的獲取、加解密密鑰等命令轉(zhuǎn)發(fā)給Mgnt管理域的后端驅(qū)動(dòng),最終交由硬件TPM處理,其他命令則直接由vTPM域模塊完成。
vTPM后端驅(qū)動(dòng)用于接收和轉(zhuǎn)發(fā)虛擬機(jī)發(fā)送的TPM命令。qemu-frontend前端驅(qū)動(dòng)實(shí)際上包含了兩個(gè)部分:qemutpm tis驅(qū)動(dòng)和Xen stubdoms backend驅(qū)動(dòng)。其中,qemu tpmtis驅(qū)動(dòng)由Qemu模擬生成,作為虛擬tpm驅(qū)動(dòng)供HVM虛擬機(jī)使用,用來接收HVM虛擬機(jī)的vtpm命令請(qǐng)求;Xenstubdoms backend驅(qū)動(dòng)則用于處理Qemu與vTPM域間的通信。在Qemu為HVM虛擬機(jī)初始化系統(tǒng)資源時(shí),Qemu將qemu-frontend掛到xenbus總線上,并建立與vTPM域的連接通道。
2.1.2 Mgnt管理域模塊
Mgnt管理域獨(dú)立于Xen的特權(quán)域Dom0,負(fù)責(zé)每個(gè)獨(dú)立的vTPM域的創(chuàng)建、刪除、恢復(fù)等操作,并負(fù)責(zé)建立vTPM域與虛擬機(jī)的唯一對(duì)應(yīng)關(guān)系。Mgnt管理域的命令過濾模塊負(fù)責(zé)過濾vTPM域的一些改變TPM狀態(tài)的特殊命令;vTPM域中的資源如密鑰由Mgnt管理域的根密鑰SRK'加密保護(hù)存儲(chǔ);多個(gè)vTPM域?qū)τ布⺄PM的請(qǐng)求通過Mgnt管理域的調(diào)度模塊處理;遷移管理則由Hypervisor觸發(fā),將虛擬機(jī)對(duì)應(yīng)的vTPM域一同遷移到目標(biāo)平臺(tái)。Mgnt后端驅(qū)動(dòng)用于接收來自vTPM域的加解密、簽名驗(yàn)證等請(qǐng)求,TPM驅(qū)動(dòng)tpm_tis則通過passthrough的方式訪問硬件TPM。
2.1.3授權(quán)表策略管理模塊
本框架中vTPM域與虛擬機(jī)及Mgnt管理域之間采用授權(quán)表機(jī)制實(shí)現(xiàn)內(nèi)存共享。Xen授權(quán)表相關(guān)操作由20號(hào)超級(jí)調(diào)用-_HYPERVISOR_grant_table_op處理。通過對(duì)虛擬機(jī)之間的內(nèi)存映射進(jìn)行分析,發(fā)現(xiàn)該映射過程沒有對(duì)授權(quán)索引GR的來源進(jìn)行驗(yàn)證,導(dǎo)致內(nèi)存非法映射請(qǐng)求成功,從而訪問內(nèi)存共享頁。因此,該模塊將擴(kuò)展對(duì)授權(quán)表機(jī)制的訪問控制策略(如圖3所示)。
經(jīng)過授權(quán)表機(jī)制系統(tǒng)調(diào)用代碼的追蹤,虛擬機(jī)之間的內(nèi)存映射最終是在函數(shù)do_granttable_op()中完成,因此將該函數(shù)作為截獲授權(quán)操作的位置。X SM模塊本身包含了一個(gè)函數(shù)xsm_grant_mapref()用來處理授權(quán)表的檢查,但是該函數(shù)只是簡單地對(duì)虛擬機(jī)的ssid號(hào)進(jìn)行判斷,因此本文在截獲位置處添加對(duì)授權(quán)索引GR的訪問控制策略,這里只關(guān)心gnttab_map_grant_ref()和gnttab—unmap_grant_ref()兩個(gè)函數(shù)的操作。擴(kuò)展過程包括3個(gè)步驟:1)在XSM模塊中添加hooks擴(kuò)展操作;2)在FLASK模塊中添加對(duì)授權(quán)索引的處理函數(shù);3)在do_grant_table()中調(diào)用已定義好的接口。
2.1.4 VT-d硬件設(shè)備抽象模塊
該模塊由基于硬件的VT-d設(shè)備虛擬化實(shí)現(xiàn)虛擬機(jī)的域隔離。VT-d技術(shù)能夠?qū)?nèi)存區(qū)域分割成多個(gè)獨(dú)立的域并使每個(gè)虛擬機(jī)只能訪問相應(yīng)的域,結(jié)合DMA重映射技術(shù)實(shí)現(xiàn)虛擬機(jī)之間的內(nèi)存訪問隔離,中斷重映射技術(shù)則禁止虛擬機(jī)直接發(fā)送惡意MSI中斷,提高了虛擬機(jī)的隔離性。本框架為虛擬機(jī)直接分配物理網(wǎng)卡設(shè)備以提升虛擬機(jī)之間的域隔離性(如圖4所示)。
Xen架構(gòu)中的Dom0負(fù)責(zé)所有設(shè)備的管理和分配。因此,通過PCIBACK機(jī)制屏蔽Dom0中需要分配的物理設(shè)備信息(即進(jìn)行設(shè)備隱藏)后,就可以在虛擬機(jī)配置文件中加入PCI設(shè)備信息而將設(shè)備直接分配給虛擬機(jī)。PCI配置空間為上層應(yīng)用提供一個(gè)編程接口,其中PCI BAR( PCI base address register,PCI基址寄存器)為操作系統(tǒng)訪問設(shè)備提供了設(shè)備寄存器或設(shè)備RAM的I/O地址空間或MMIO地址空間,Xen接收到直接設(shè)備分配請(qǐng)求并由Qemu完成虛擬設(shè)備的注冊(cè)和中斷綁定后,建立虛擬設(shè)備的PCI BAR和硬件設(shè)備的PCI BAR之間的映射。
為了使虛擬機(jī)能基于VT-d技術(shù)直接訪問設(shè)備,在虛擬機(jī)內(nèi)需要做三件事情:首先在虛擬機(jī)中建立對(duì)設(shè)備訪問的端口PIO和內(nèi)存映射MMIO轉(zhuǎn)換表;然后通過Dom0中reassign_device()操作實(shí)現(xiàn)將設(shè)備直接分配給虛擬機(jī);最后通過虛擬機(jī)中的VT-dl/0頁表索引到的真實(shí)物理設(shè)備地址進(jìn)行訪問。
2.2模塊之間調(diào)度關(guān)系
基于VT-d技術(shù)提升虛擬機(jī)之間域隔離性需要硬件CPU虛擬化特性的支持。在BIOS中啟用VT-d支持,在宿主機(jī)內(nèi)核中打開VT-d相關(guān)驅(qū)動(dòng)和總線BUS接口,啟用DMA重映射和中斷重映射。系統(tǒng)引導(dǎo)階段,由BIOS將重映射硬件單元通過ACPI表報(bào)告宿主機(jī)上層軟件,完成物理平臺(tái)上的VT-d硬件探測。Dom0啟動(dòng)前則對(duì)VT-d硬件進(jìn)行初始化,即對(duì)物理平臺(tái)上的VT-d硬件進(jìn)行解析和填充描述,為虛擬機(jī)上的VT-d硬件設(shè)備抽象模塊做好準(zhǔn)備工作。
系統(tǒng)啟動(dòng)之后,當(dāng)需要?jiǎng)?chuàng)建具備vTPM功能的虛擬機(jī)以及需要直接訪問物理設(shè)備時(shí),首先由Xen LibXL庫讀取虛擬機(jī)配置文件,將讀取到的vtpm參數(shù)和pci參數(shù)傳遞給底層Qemu,調(diào)度Mgnt管理域模塊創(chuàng)建相應(yīng)的vTPM域。然后由Qemu和Xen -起調(diào)度VT-d硬件設(shè)備抽象模塊完成設(shè)備直接訪問。最后,虛擬機(jī)到vTPM域以及vTPM域到Mgnt管理域間的通信通過授權(quán)表策略管理模塊控制。
3框架實(shí)現(xiàn)
在本文提出的基于VT-d技術(shù)的虛擬機(jī)安全隔離框架的基礎(chǔ)上,以Xen為云計(jì)算基礎(chǔ)設(shè)施平臺(tái),實(shí)現(xiàn)該隔離框架的原型系統(tǒng)。實(shí)驗(yàn)平臺(tái)為Xen-4.3.0國產(chǎn)服務(wù)器,配置Intel E5-2620 6核CPU,8 GB RAM,Ubuntu-13.10Server。vTPM域和Mgnt管理域都為2 MB內(nèi)存的Xenmini- OS系統(tǒng),虛擬機(jī)測試用例為PV(Ubuntu-13.10/Redhat-6.4)和HVM( Ubuntu-13.10/Fedora20/Win 7)。
3.1功能測試與分析
功能測試包括:將硬件TPM直接分配給Mgnt管理域;為PV和HVM虛擬機(jī)分配獨(dú)立的vTPM域,并在虛擬機(jī)中使用vTPM域執(zhí)行加解密和簽名操作;為虛擬機(jī)使用VT-d技術(shù)直接分配物理網(wǎng)卡設(shè)備。
1)為虛擬機(jī)分配vTPM域
為了將硬件TPM直接分配給Mgnt管理域,在特權(quán)域Dom0的內(nèi)核中采取了未編譯TPM的驅(qū)動(dòng)來隱藏該設(shè)備,這樣在Dom0中加載tpm_tis驅(qū)動(dòng)時(shí)將會(huì)發(fā)現(xiàn)沒有該設(shè)備,提供給應(yīng)用程序的/dev/tpm0接口也不會(huì)呈現(xiàn),如圖5所示。圖5中,vtpmmgr是Mgnt管理域,vtpml和vtpm2分別是提供給HVM虛擬機(jī)ubtHVM-l和PV虛擬機(jī)ubtPV-2的vTPM域。vTPM域的密鑰將按照本文設(shè)計(jì)的密鑰結(jié)構(gòu)來實(shí)現(xiàn)。圖6則為vTPM域中的EK公鑰。
上述實(shí)驗(yàn)表明,本文框架實(shí)現(xiàn)了對(duì)PV和HVM虛擬機(jī)的vTPM兼容管理,提供了對(duì)HVM虛擬機(jī)vTPM域的支持。框架將Mgnt管理域和每個(gè)vTPM域都作為獨(dú)立域獨(dú)立于特權(quán)域Dom0,減小了系統(tǒng)TCB的大小,減少了來自Dom0的直接外部攻擊,且有效利用了Xen虛擬域的地址空間隔離性。
2)虛擬機(jī)加解密及簽名
為便于測試和比較,本文使用應(yīng)用層TSS協(xié)議棧來訪問vTPM域。首先采用類型為TSS_KEY_TYPE_BIND的RSA密鑰對(duì)一個(gè)BYTE數(shù)組rgbDataToBind(內(nèi)容為{‘1’h,i,s,e,c,r,e,l})進(jìn)行加解密測試。RSA的密鑰長度有1024位和2048位兩種,加密結(jié)果寫入test.txt中,解密結(jié)果則通過讀取該文件并對(duì)文件內(nèi)容解密得到。接著驗(yàn)證vTPM的簽名功能,簽名密鑰類型為TSS_KEY_TYPE_SIGNING,對(duì)字符串“this is sign verify!”進(jìn)行哈希運(yùn)算然后簽名。在此只給出2048位的加解密和簽名驗(yàn)證結(jié)果,分別如圖7和圖8所示。
實(shí)驗(yàn)結(jié)果表明,vTPM獨(dú)立域能夠?yàn)樘摂M機(jī)提供加解密及簽名功能,且vTPM的密鑰層次結(jié)構(gòu)采用受硬件TPM保護(hù)的密鑰結(jié)構(gòu),能夠在提升執(zhí)行效率的同時(shí)增加密鑰的安全性。不同的密鑰長度(加密密鑰/簽名密鑰)使得加解密和驗(yàn)證簽名哈希值的時(shí)間有所不同。
3)使用VT-d技術(shù)為虛擬機(jī)分配設(shè)備
本測試為PV/HVM虛擬機(jī)通過VT-d技術(shù)直接分配網(wǎng)卡設(shè)備(設(shè)備的BDF號(hào)為00:19.0)。該設(shè)備在分配之前被宿主機(jī)elOOOe驅(qū)動(dòng)占用(如圖9所示),利用PCIBACK機(jī)制靜態(tài)隱藏后,該設(shè)備分配給虛擬機(jī)ubt-HVM-l。通過lspci命令可查看虛擬機(jī)中的設(shè)備分配情況。由圖10可見,網(wǎng)卡驅(qū)動(dòng)由pciback驅(qū)動(dòng)接管,將網(wǎng)卡直接分配給虛擬機(jī)后可直接通過該設(shè)備進(jìn)行網(wǎng)絡(luò)訪問。
實(shí)驗(yàn)結(jié)果表明,使用VT-d技術(shù)將網(wǎng)卡設(shè)備直接分配給虛擬機(jī)后,只能在該虛擬機(jī)中看到該設(shè)備信息,其他虛擬機(jī)都無法得知該設(shè)備的具體信息。因此,VT-d技術(shù)能夠保證虛擬機(jī)之間設(shè)備I/O及內(nèi)存訪問的隔離性。
3.2性能測試比較
1)密鑰產(chǎn)生時(shí)間
利用硬件TPM和在虛擬機(jī)中調(diào)用vTPM域分別產(chǎn)生RSA 1024/2048位密鑰的時(shí)間來進(jìn)行性能比較,實(shí)驗(yàn)結(jié)果如圖11所示。硬件TPM產(chǎn)生RSA 1024位和2048位密鑰的平均時(shí)間分別為1504 ms和2193 ms;vTPM域使用軟件模擬器產(chǎn)生密鑰(vTPM域的根密鑰受TPM保護(hù)),產(chǎn)生vRSA 1024位和2048位密鑰的平均時(shí)間分別為26 ms和155 ms,產(chǎn)生時(shí)間較快。由此可見,本文采用的安全隔離框架在密鑰產(chǎn)生時(shí)間性能上較原生設(shè)備有較大提高。
2)加解密和簽名驗(yàn)證時(shí)間
該測試調(diào)用TSS協(xié)議棧中的加密函數(shù)Tspi_Data_Bind()和解密函數(shù)Tspi_Data_UnBind()完成加解密測試。加密密鑰長度不同,得到的加密結(jié)果也不同,其中1024位加密密鑰的加密結(jié)果為128字節(jié),2048位加密密鑰的加密結(jié)果為256字節(jié),因此加密的時(shí)間不同(如圖12所示)。解密時(shí)從文件中讀取密文數(shù)據(jù),RSA 1024位的加密結(jié)果其解密時(shí)間平均需要3815 ms,而vRSA 1024位平均需要60 ms:RSA 2048位平均需要4896 ms,而vRSA 2048位平均需要245 ms(如圖13所示)?梢钥闯,基于硬件TPM保護(hù)的vTPM域的實(shí)現(xiàn)效率有較大幅度提升。
本文使用vTPM域?qū)V虛擬機(jī)內(nèi)核和initrd引導(dǎo)程序進(jìn)行完整性度量并將度量值寫入平臺(tái)寄存器PCR04和PCR05中,通過身份證明密鑰AIK對(duì)寄存器PCR值進(jìn)行簽名并驗(yàn)證,對(duì)簽名驗(yàn)證時(shí)間的比較如圖14所示。由圖14可見,不同長度的簽名密鑰在驗(yàn)證簽名值時(shí),硬件TPMRSA 1024位和2048位簽名驗(yàn)證平均時(shí)間分別為1249 ms和3041 ms,而vTPM RSA 1024位和2048位的平均時(shí)間分別為50 ms和260 ms。由此可見,vTPM域的簽名驗(yàn)證時(shí)間性能優(yōu)于硬件TPM。
3)網(wǎng)絡(luò)訪問吞吐量及CPU使用率
本文將使用VT-d技術(shù)將為虛擬機(jī)直接分配的物理網(wǎng)卡性能與設(shè)備模擬生成的虛擬網(wǎng)絡(luò)設(shè)備性能進(jìn)行比較。本文采用較為簡單的netperf測試工具,在支持VT-d技術(shù)和不支持VT-d技術(shù)兩個(gè)環(huán)境下,測試在虛擬機(jī)之間批量發(fā)送TCP_STREAM包的網(wǎng)絡(luò)吞吐量,并對(duì)比測試網(wǎng)絡(luò)訪問過程中系統(tǒng)的CPU使用率。在宿主機(jī)上部署netserver服務(wù)器端,在HVM虛擬機(jī)中部署netclient客戶端。虛擬機(jī)I/O訪問吞吐量結(jié)果如圖15所示,實(shí)驗(yàn)過程中的CPU使用率如圖16所示。
上述結(jié)果表明,當(dāng)HVM虛擬機(jī)通過設(shè)備模擬的虛擬網(wǎng)卡進(jìn)行網(wǎng)絡(luò)訪問時(shí),VMM需要頻繁地參與到虛擬機(jī)I/O訪問過程中,這會(huì)帶來性能開銷,虛擬機(jī)I/O訪問平均吞吐量為1595 Mbps。啟用VT-d技術(shù)之后,虛擬機(jī)直接訪問物理網(wǎng)卡的I/O平均吞吐量(2449 Mbps)幾乎能達(dá)到原生設(shè)備的I/O平均吞吐量(2792 Mbps),CPU的使用率也接近原生設(shè)備。因此,通過VT-d技術(shù)為虛擬機(jī)分配網(wǎng)卡設(shè)備性能較有保障。
3.3安全性分析
1)虛擬機(jī)I/O安全性分析
下面通過兩種方式驗(yàn)證本文方案I/0隔離的有效性。方式一:使用vTPM域提供的受硬件TPM保護(hù)的密鑰對(duì)虛擬機(jī)內(nèi)用戶關(guān)心的敏感數(shù)據(jù)進(jìn)行加密,在Dom0中以mount命令掛載虛擬機(jī)鏡像,發(fā)現(xiàn)無法查看加密后的數(shù)據(jù),實(shí)驗(yàn)結(jié)果如圖17所示。方式二:使用qemu-img命令對(duì)HVM虛擬機(jī)鏡像加密,發(fā)現(xiàn)此時(shí)使用fdisk - u-l命令已經(jīng)無法查看鏡像的分區(qū)信息,從而無法掛載鏡像,實(shí)驗(yàn)結(jié)果如圖18所示。
上述結(jié)果表明,攻擊者就算能夠獲取加密后的敏感數(shù)據(jù),但由于無法獲取由硬件TPM保護(hù)的vTPM密鑰,因而無法讀取虛擬機(jī)鏡像的敏感信息。3.1節(jié)中已經(jīng)完成了使用VT-d技術(shù)為虛擬機(jī)直接分配網(wǎng)卡設(shè)備,未分配到網(wǎng)卡的虛擬機(jī)(包括Dom0)都不能發(fā)現(xiàn)并使用該設(shè)備。因此,本文的安全隔離框架能夠保證虛擬機(jī)之間對(duì)物理設(shè)備I/O訪問的隔離和對(duì)DMA內(nèi)存映射的隔離。
2)虛擬機(jī)內(nèi)存安全性分析
虛擬機(jī)內(nèi)存安全是指虛擬機(jī)安全隔離框架中,每個(gè)虛擬機(jī)只能訪問分配給它的vTPM域的內(nèi)存區(qū)域,且虛擬機(jī)的內(nèi)存不能通過設(shè)備DMA方式被訪問到,以提升虛擬機(jī)之間的內(nèi)存訪問隔離性。
首先,驗(yàn)證框架中VM-vTPM的唯一綁定性。創(chuàng)建一個(gè)虛擬機(jī)并為該虛擬機(jī)分配一個(gè)vTPM域(配置文件參數(shù)為vtpm=["backend=vtpm2”])。再創(chuàng)建一個(gè)虛擬機(jī),把配置文件的vtpm參數(shù)也做相同修改,啟動(dòng)該虛擬機(jī),實(shí)驗(yàn)結(jié)果如圖19所示。由結(jié)果可以看出,再創(chuàng)建的虛擬機(jī)啟動(dòng)時(shí)發(fā)現(xiàn)該vTPM域已經(jīng)和其他虛擬機(jī)進(jìn)行了綁定,因此將vTPM域的前后端驅(qū)動(dòng)狀態(tài)修改為“關(guān)閉”,實(shí)現(xiàn)VM-vTPM的唯一綁定。
其次,驗(yàn)證框架中虛擬機(jī)的內(nèi)存訪問隔離性。本文框架擴(kuò)展XSM安全模塊,增加了授權(quán)表機(jī)制中對(duì)內(nèi)存映射過程的訪問控制。內(nèi)存攻擊實(shí)驗(yàn)采取在host虛擬機(jī)中調(diào)用LibVMI庫獲取虛擬機(jī)DomU進(jìn)程列表的方法,實(shí)驗(yàn)結(jié)果如圖20所示。LibVMI通過讀取Xen系統(tǒng)內(nèi)存映射中的init_task尋找虛擬機(jī)的初始進(jìn)程,根據(jù)該進(jìn)程的地址計(jì)算進(jìn)程的id和name。由于在XSM模塊中增加了虛擬機(jī)之間授權(quán)表訪問控制策略,上述host虛擬機(jī)獲取DomU進(jìn)程列表的內(nèi)存頁映射過程中,Hypervisor會(huì)截獲該內(nèi)存頁授權(quán)索引來判斷host虛擬機(jī)是否滿足這些策略,如果不滿足,則阻止其對(duì)該地址范圍的映射,此時(shí)再調(diào)用LibV MI庫將無法讀取虛擬機(jī)DomU進(jìn)程列表信息,實(shí)驗(yàn)結(jié)果如圖21所示,因此本文框架能提升虛擬機(jī)之間的內(nèi)存訪問隔離性。
最后,驗(yàn)證VT-d技術(shù)提供虛擬機(jī)內(nèi)存設(shè)備DMA訪問隔離性。前文實(shí)驗(yàn)完成了使用VT-d技術(shù)為虛擬機(jī)直接分配物理網(wǎng)卡設(shè)備,并驗(yàn)證了虛擬機(jī)獨(dú)享該設(shè)備后,其他虛擬機(jī)無法發(fā)現(xiàn)和使用該設(shè)備。VT-d技術(shù)提供DMA重映射和中斷重映射機(jī)制,使得只有獲取了相應(yīng)物理設(shè)備信息的虛擬機(jī)才有權(quán)限請(qǐng)求DMA內(nèi)存映射訪問,且通過開啟VT-d中斷重映射,使得惡意虛擬機(jī)無法利用MSI中斷直接發(fā)送攻擊性的中斷消息給虛擬機(jī)管理層。因此,VT-d技術(shù)的重映射機(jī)制較好地提升了虛擬機(jī)之間設(shè)備I/O訪問隔離性和內(nèi)存映射隔離性。
4結(jié)束語
本文提出了_一個(gè)基于VT-d技術(shù)和可信計(jì)算技術(shù)的虛擬機(jī)安全隔離框架,該框架通過vTPM獨(dú)立域?yàn)樘摂M機(jī)提供加密保護(hù),虛擬域間的內(nèi)存映射采用文中設(shè)計(jì)的XSM訪問控制策略擴(kuò)展機(jī)制,并利用VT-d技術(shù)提供的DMA重映射和中斷重映射機(jī)制,避免虛擬機(jī)直接通過設(shè)備內(nèi)存訪問或直接發(fā)送惡意中斷消息攻擊其他虛擬機(jī),提升了虛擬機(jī)之間的隔離性。但是,仍然存在某些問題制約該框架的安全性。例如,硬件TPM設(shè)備目前作為熱插拔PNP設(shè)備并未掛載到PCI總線上,文中的Mgnt管理域“穿透”訪問TPM存在一定的安全風(fēng)險(xiǎn)。又如,文中虛擬機(jī)間XSM策略擴(kuò)展機(jī)制的粒度較粗,并不能較好控制內(nèi)存映射過程。這些工作將在下一步研究中繼續(xù)開展。
5摘要:
虛擬化技術(shù)作為云計(jì)算IaaS服務(wù)的支撐,能從根本上解決云計(jì)算平臺(tái)上虛擬機(jī)面臨的安全威脅問題。針對(duì)目前云計(jì)算虛擬機(jī)隔離執(zhí)行環(huán)境在設(shè)備I/O和內(nèi)存訪問隔離方面的不足,文章結(jié)合基于硬件輔助虛擬化的VT-d技術(shù)以及可信計(jì)算中虛擬可信平臺(tái)模塊(vTPM)獨(dú)立域的思想,提出了一個(gè)在Xen云平臺(tái)上的安全隔離框架。該框架中由vTPM獨(dú)立域?qū)μ摂M機(jī)內(nèi)的數(shù)據(jù)和代碼進(jìn)行加密保護(hù),并基于獨(dú)立域思想對(duì)虛擬機(jī)鏡像本身加密;使用VT-d技術(shù)為虛擬機(jī)直接分配網(wǎng)卡設(shè)備,并擴(kuò)展XSM安全模塊,增加了虛擬機(jī)之間授權(quán)表策略控制。實(shí)驗(yàn)與分析表明,該框架能夠有效確保虛擬機(jī)之間的設(shè)備I/O及內(nèi)存訪問安全隔離,提升虛擬機(jī)隔離環(huán)境的安全性,且能較好滿足系統(tǒng)運(yùn)行性能。