楊 杰,朱智強(qiáng)
1.解放軍信息工程大學(xué)密碼工程學(xué)院,鄭州4500012.解放軍信息工程大學(xué)科研部,鄭州450001
ISSN 1673-9418 CODEN JKYTA8
Journal of Frontiers of Computer Science and Technology 1673-9418/2016/10(03)-0311-15
http://www.ceaj.org Tel: +86-10-89056056
* The National High Technology Research and Development Program of China under Grant No. 2012AA012704 (國家高技術(shù)研究發(fā)展計劃(863計劃)).
Received 2015-07,Accepted 2015-10.
CNKI網(wǎng)絡(luò)優(yōu)先出版: 2015-11-02, http://www.cnki.net/kcms/detail/11.5602.TP.20151102.1547.006.html
XHydra: Xen-Based Virtual Machine Architecture for Enhancing Xen Security?
YANG Jie1+, ZHU Zhiqiang21. Cryptography Engineering Institute, PLAInformation Engineering University, Zhengzhou 450001, China2. Scientific Research Department, PLAInformation Engineering University, Zhengzhou 450001, China+ Corresponding author: E-mail: isyangjie@sina.com
YANG Jie, ZHU Zhiqiang. XHydra: Xen-based virtual machine architecture for enhancing Xen security. Journal of Frontiers of Computer Science and Technology, 2016, 10(3):311-325.
?
XHydra:面向虛擬機(jī)Xen的安全增強(qiáng)架構(gòu)*
楊杰1+,朱智強(qiáng)2
1.解放軍信息工程大學(xué)密碼工程學(xué)院,鄭州450001
2.解放軍信息工程大學(xué)科研部,鄭州450001
ISSN 1673-9418 CODEN JKYTA8
Journal of Frontiers of Computer Science and Technology 1673-9418/2016/10(03)-0311-15
http://www.ceaj.org Tel: +86-10-89056056
* The National High Technology Research and Development Program of China under Grant No. 2012AA012704 (國家高技術(shù)研究發(fā)展計劃(863計劃)).
Received 2015-07,Accepted 2015-10.
CNKI網(wǎng)絡(luò)優(yōu)先出版: 2015-11-02, http://www.cnki.net/kcms/detail/11.5602.TP.20151102.1547.006.html
XHydra: Xen-Based Virtual Machine Architecture for Enhancing Xen Security?
YANG Jie1+, ZHU Zhiqiang2
1. Cryptography Engineering Institute, PLAInformation Engineering University, Zhengzhou 450001, China
2. Scientific Research Department, PLAInformation Engineering University, Zhengzhou 450001, China
+ Corresponding author: E-mail: isyangjie@sina.com
YANG Jie, ZHU Zhiqiang. XHydra: Xen-based virtual machine architecture for enhancing Xen security. Journal of Frontiers of Computer Science and Technology, 2016, 10(3):311-325.
摘要:針對開源虛擬化平臺Xen的管理虛擬機(jī)Dom0服務(wù)臃腫和可信計算基龐大等問題,提出了一種基于Xen的安全虛擬機(jī)架構(gòu)XHydra。該架構(gòu)采用微內(nèi)核的設(shè)計思想和最小特權(quán)安全理論,將Dom0分離成多個功能獨(dú)立、相互隔離且具有最小特權(quán)的迷你服務(wù)域,并設(shè)計了一個服務(wù)監(jiān)視器進(jìn)行管理。服務(wù)監(jiān)視器通過構(gòu)建用戶虛擬機(jī)與迷你服務(wù)域之間設(shè)備通信的專用通道,實(shí)現(xiàn)用戶虛擬機(jī)和迷你服務(wù)域之間的雙向隔離。最后基于Xen4.4開發(fā)了XHydra的原型系統(tǒng),提高了平臺的安全性,驗(yàn)證了架構(gòu)的可行性。同時,針對虛擬化平臺的存儲性能和網(wǎng)絡(luò)性能進(jìn)行基準(zhǔn)測試,實(shí)驗(yàn)結(jié)果表明所提方案性能相對于原始Xen僅降低了3%。
關(guān)鍵詞:Xen;安全虛擬機(jī);最小特權(quán);服務(wù)分離;Dom0虛擬化;XHydra
云計算[1-4]利用虛擬化技術(shù)將大規(guī)模的數(shù)據(jù)中心以基礎(chǔ)設(shè)施即服務(wù)(infrastructure as a service,IaaS)、平臺即服務(wù)(platform as a service,PaaS)、軟件即服務(wù)(software as a service,SaaS)的形式出租給付費(fèi)用戶,云計算服務(wù)提供商通過虛擬化技術(shù)讓多個客戶操作系統(tǒng)共享同一臺物理主機(jī),為多租戶提供服務(wù)。在這種多租戶環(huán)境下,云計算通過虛擬化的“服務(wù)整合”,有效降低了企業(yè)的運(yùn)營成本,提高了管理效率,使得大量企業(yè)將其線上應(yīng)用部署到IaaS。但這些都基于同一個前提——虛擬化平臺能保證同一臺物理主機(jī)上的不同虛擬機(jī)(virtual machine,VM)之間不能進(jìn)行違反安全策略的相互訪問或干擾。
虛擬化技術(shù)作為云計算的重要組成部分,用戶越來越看重它們的安全性。然而虛擬化平臺能否滿足用戶的安全需求仍值得商酌。支持者認(rèn)為虛擬機(jī)監(jiān)視器Hypervisor[5-6]作為整個虛擬化平臺的核心,相比于服務(wù)器操作系統(tǒng),具有較小的可信計算基[7](trusted computing base,TCB),且只提供少量的核心接口,因此其被認(rèn)為是安全可信的。實(shí)際上,虛擬化平臺的安全性并不是僅由Hypervisor決定的,它還包括除Hypervisor外的Administrative VM(管理虛擬機(jī))的安全性。Administrative VM管理Guest VM(用戶虛擬機(jī)),提供設(shè)備仿真等虛擬化服務(wù),同時向Guest VM提供了大量的接口,導(dǎo)致其一旦被攻擊,會直接影響用戶虛擬機(jī)的安全,因此虛擬化平臺的TCB還應(yīng)包括整個Administrative VM的TCB,如Xen[5-6,8-9]、KVM(kernel-based virtual machine)[10]、Hyper-V[11]等具有較小TCB的Hypervisor,但它們的TCB卻要大于通用的服務(wù)器操作系統(tǒng)。虛擬化平臺的TCB的大小并不能直接代表其面臨的風(fēng)險,但平臺中各客戶虛擬機(jī)依賴的Administrative VM不僅增大了平臺的TCB,而且還包含大量具有較高特權(quán)且安全隔離性弱的虛擬化服務(wù),直接影響虛擬化平臺的安全。如在Xen中,Dom0包含著系統(tǒng)引導(dǎo)、設(shè)備仿真、網(wǎng)絡(luò)、存儲、管理工具和XenStore等虛擬化服務(wù),一旦其中一個服務(wù)被攻擊,將導(dǎo)致整個平臺陷于危險之中。綜上可得,如今常用的虛擬化平臺面臨著嚴(yán)重的安全威脅,即巨大的攻擊表面和龐大的TCB。
操作系統(tǒng)的研發(fā)歷史針對系統(tǒng)TCB龐大的問題提出了一種解決方案,即將系統(tǒng)分離成相互獨(dú)立的多個服務(wù),這些服務(wù)相互隔離且僅擁有其完成相應(yīng)功能的最小特權(quán)。由于虛擬化平臺和操作系統(tǒng)都是管理硬件資源的系統(tǒng)軟件,該方案同樣可用于解決虛擬化平臺TCB龐大的問題。同時,操作系統(tǒng)的開發(fā)實(shí)踐表明,將系統(tǒng)的安全性貫穿于系統(tǒng)的整個生命周期才能最大限度保證系統(tǒng)的安全性,如安全操作系統(tǒng)sel4[12-13]。可以看出,對虛擬化平臺架構(gòu)的重新設(shè)計是提高其安全性的有效途徑之一,但這可能降低其整體功能特性,而無法滿足商用環(huán)境的需求,如安全虛擬機(jī)架構(gòu)Nova[14]、BitVisor[15]等。
針對虛擬化平臺TCB龐大,攻擊表面巨大和全新設(shè)計平臺架構(gòu)會損害系統(tǒng)功能完整性等問題,本文在Xen的基礎(chǔ)上,提出了一種基于Xen的安全虛擬機(jī)架構(gòu)XHydra。該架構(gòu)在不改變原有虛擬化平臺的功能和應(yīng)用接口的基礎(chǔ)上,將Administrative VM分離為相互獨(dú)立的服務(wù),并利用相互隔離且特權(quán)最小的迷你服務(wù)虛擬機(jī)(mini-service VM,簡稱迷你服務(wù)域)來承載相應(yīng)的服務(wù)。同時,根據(jù)Administrative VM的功能接口及它與Hypervisor、Guest VM之間的關(guān)系設(shè)計了一個虛擬服務(wù)監(jiān)視器Hydravisor。XHydra通過Hydravisor實(shí)現(xiàn)對Administrative VM的虛擬化,用戶虛擬機(jī)與迷你服務(wù)域之間的雙向屏蔽,迷你服務(wù)域管理和用戶虛擬機(jī)與迷你服務(wù)域間的設(shè)備通道管理。最后,基于最小特權(quán)安全理論和Xen的安全模塊XSM(http://wiki.xensource.com/wiki/Xen_Security_ Modules_:_XSM-FLASK)設(shè)計了XHydra安全模塊,實(shí)現(xiàn)了虛擬機(jī)粒度的強(qiáng)制訪問控制,保證了迷你服務(wù)域和Guest VM僅擁有其被賦予的特權(quán),進(jìn)一步增強(qiáng)了平臺的安全性。
隨著虛擬化技術(shù)應(yīng)用范圍的擴(kuò)大,虛擬化平臺的安全性得到了深入的研究,相關(guān)研究人員提出了多種減小平臺TCB和增強(qiáng)平臺安全性的解決方案,主要分為以下3種類型。
(1)構(gòu)建輕量級虛擬機(jī)監(jiān)視器。SecVisor[16]和BitVisor是以系統(tǒng)TCB的大小作為主要評估對象而設(shè)計出的輕量級虛擬機(jī)的代表。它們利用虛擬機(jī)監(jiān)視器的“干涉”能力來增強(qiáng)商用操作系統(tǒng)的安全特性,但它們不具備商用虛擬機(jī)監(jiān)視器可用于多租戶共享的特性,也不適用于多租戶共享的應(yīng)用場景。
Zhang等人提出的CloudVisor[17]利用嵌套虛擬化技術(shù)將用戶與虛擬機(jī)之間以及虛擬機(jī)與云操作員之間進(jìn)行隔離;其次將云操作員所能接觸到的數(shù)據(jù)全部加密,使得操作員接觸到的數(shù)據(jù)均為密文,且具有非常小的可信計算基。但它以硬件虛擬化為基礎(chǔ),不能支持半虛擬化技術(shù),并且依賴于嵌套虛擬化,有一定的性能損耗。
Nova將Administrative VM從系統(tǒng)中移除,并明確地將系統(tǒng)的TCB分離到虛擬機(jī)監(jiān)視器的多個用戶進(jìn)程中。但它存在以下3點(diǎn)不足:首先,由于它需要提供硬件驅(qū)動而導(dǎo)致Hypervisor的TCB陡增;其次,它雖然支持同時運(yùn)行多個不需修改內(nèi)核的客戶操作系統(tǒng),但并不支持Windows系統(tǒng);最后,相比于其他架構(gòu),它的工具棧功能非常有限。
NoHype[18]提倡將虛擬機(jī)監(jiān)視器整體移出虛擬化平臺,并利用靜態(tài)分離技術(shù)將CPU、內(nèi)存和其他外圍設(shè)備分配到各個虛擬機(jī)。這雖然可以使多個操作系統(tǒng)同時共享一臺物理主機(jī),但失去了虛擬化技術(shù)的其他優(yōu)勢,如熱遷移、內(nèi)存共享等。
(2)增強(qiáng)TCB組成部分的安全性。對于虛擬化平臺TCB的獨(dú)立組成部分的安全性,可以通過提高其代碼的質(zhì)量和引入訪問控制限制其擁有特權(quán)來增強(qiáng)。如XenServer(http://xenserver.org/)的XAPI[19]工具棧就利用OCaml[20]言語的靜態(tài)類型來提高它的健壯性;Xen和Linux分別通過XSM與SELinux(https:// www.nsa.gov/research/selinux/)實(shí)施細(xì)粒度的訪問控制來實(shí)現(xiàn)系統(tǒng)安全性增強(qiáng),但這些技術(shù)都不關(guān)注整個系統(tǒng)TCB的大小。
(3)分離虛擬化平臺TCB,減小每個組成部分的特權(quán)。Murray等人將虛擬機(jī)創(chuàng)建服務(wù)Builder移植到一個隔離特權(quán)虛擬機(jī)中[21],從而將Dom0的用戶空間從Xen的TCB中移除。但是Dom0的內(nèi)核空間仍是TCB的一部分,其暴露的接口仍給系統(tǒng)留下安全隱患,如Dom0中的網(wǎng)絡(luò)驅(qū)動。Qubes-OS(https://www. qubes-os.org/doc/SystemDoc/)將網(wǎng)絡(luò)驅(qū)動、設(shè)備模型QEMU[22]從Dom0中分離出來,增強(qiáng)了桌面操作系統(tǒng)的安全性和隔離性。Butt等人提出的SSC[23]將Dom0分離成系統(tǒng)級Dom0和用戶級Dom0,有效防止了內(nèi)部攻擊,解決了虛擬機(jī)管理不靈活的問題。Colp等人提出的Xoar[24]架構(gòu),從空間和時間上將Dom0徹底地分離為相互隔離的9部分,并限制每部分的特權(quán),減小了系統(tǒng)的TCB。但它的分離策略相對固定,系統(tǒng)配置管理復(fù)雜,降低了系統(tǒng)的靈活性,難以實(shí)現(xiàn)虛擬機(jī)遷移需求。
本文在開源虛擬化平臺Xen的基礎(chǔ)上仿照Hydra (http://en.wikipedia.org/wiki/Lernaean_Hydra)的生理特征設(shè)計了一個虛擬機(jī)安全架構(gòu)XHydra1))安全虛擬機(jī)架構(gòu)XHydra的名稱來源于古希臘神話故事中的九頭蛇Hydra(海德拉),Hydra共有9個頭,其中的8個頭殺掉后會重生,而中間的那個頭卻“刀槍不入”。,其主要有以下4個安全目標(biāo):
(1)減小系統(tǒng)的TCB。整個虛擬化平臺的TCB由虛擬化平臺的核心模塊TCB組成,且其大小不受與其關(guān)聯(lián)的服務(wù)或應(yīng)用的安全性影響。
(2)減少組件特權(quán)。系統(tǒng)中的每個組件只能擁有完成其相應(yīng)功能的最小特權(quán),同時只向其他組件或應(yīng)用提供能完成相應(yīng)功能的最小接口集,有效限制了攻擊表面,降低了一次成功攻擊帶來的危害。
(3)實(shí)現(xiàn)迷你服務(wù)域和用戶虛擬機(jī)之間雙向屏蔽。在XHydra中,迷你服務(wù)域和用戶虛擬機(jī)都不知道對方的存在,也不能區(qū)別它們所處的虛擬化環(huán)境是Xen還是XHydra,有效隔離了服務(wù)域和用戶虛擬機(jī)之間的攻擊流。
(4)不改變系統(tǒng)的易用性。系統(tǒng)提供給上層應(yīng)用的接口不變,保證原始應(yīng)用能夠方便快速地遷移到新平臺上,有利于新平臺的推廣應(yīng)用。
3.1威脅模型
為了保證本文設(shè)計的架構(gòu)安全可靠和設(shè)計思路清晰明確,進(jìn)行以下若干假設(shè)。
(1)假設(shè)虛擬化平臺的Hypervisor是一個設(shè)計完美,實(shí)現(xiàn)正確,足夠小且可驗(yàn)證的安全軟件層,能夠保證虛擬機(jī)運(yùn)行環(huán)境之間的內(nèi)存隔離、CPU隔離和其他通信機(jī)制等的隔離,且能限制虛擬機(jī)對物理資源和特權(quán)管理接口的訪問,但其無法保證虛擬運(yùn)行環(huán)境之間I/O的有效隔離。
(2)假設(shè)虛擬化平臺的服務(wù)虛擬機(jī)提供的功能組件中存在Bug,且會給系統(tǒng)帶來安全威脅。若這些Bug被惡意利用,會威脅依賴于該功能組件的Guest VM的安全。眾所周知,Bug是無法完全消除的,因而本文提出的架構(gòu)將它們隔離到系統(tǒng)安全邊界外。
(3)假設(shè)Guest VM不是系統(tǒng)TCB的一部分,用戶可以在Guest VM上發(fā)起任意惡意攻擊,且對其沒有任何“知識”要求。同時,本文不考慮虛擬化平臺管理員引入的安全威脅。
3.2 XHydra總體架構(gòu)
在Xen中,由于系統(tǒng)管理員完全控制運(yùn)行于同一臺物理主機(jī)上的所有虛擬機(jī),很難使用戶相信虛擬機(jī)的機(jī)密性和完整性沒有被破壞,這在一定程度上阻礙了Xen虛擬化方案應(yīng)用于對安全性要求較高的環(huán)境。
本文基于服務(wù)虛擬化模型提出的安全虛擬機(jī)架構(gòu)XHydra如圖1所示。相比于Xen,XHydra中的服務(wù)監(jiān)視器Hydravisor及其管理的迷你服務(wù)域Mini-Service Domain代替了Xen架構(gòu)中的Dom0,同時替換了Xen Hypervisor中的安全模塊。
XHydra將Dom0分離為多個Mini-Service Domain。Mini-Service Domain是指承載某項(xiàng)虛擬化服務(wù),且僅擁有支持該虛擬化服務(wù)運(yùn)行的最小運(yùn)行環(huán)境的虛擬機(jī),又稱迷你服務(wù)域。如網(wǎng)絡(luò)域是將Dom0中的網(wǎng)絡(luò)服務(wù)分離出來而成的迷你服務(wù)域,其被Hypervisor授權(quán)在Intel VT-d[25]或AMD IOMMU[26]等硬件虛擬化技術(shù)支持下直接訪問物理網(wǎng)卡,為多個DomU(用戶域)提供網(wǎng)絡(luò)服務(wù)。同時,為了避免惡意軟件或冗余功能代碼給Mini-Service Domain帶來安全威脅,Mini-Service Domain除了包含實(shí)現(xiàn)其被賦予的服務(wù)功能的代碼外,不包含其他無關(guān)代碼。對于每一個全虛擬化虛擬機(jī)HVM,XHydra都提供一個設(shè)備模型域?yàn)槠鋵B毺峁┰O(shè)備虛擬化服務(wù)。
Hydravisor主要管理迷你服務(wù)域,并為用戶域虛擬一個與Dom0無差別的交互環(huán)境,同時實(shí)現(xiàn)迷你服務(wù)域和用戶域之間的雙向屏蔽。其根據(jù)既定的服務(wù)分離方案動態(tài)創(chuàng)建迷你服務(wù)域,并將相應(yīng)的硬件設(shè)備分配給對應(yīng)的迷你服務(wù)域,生成服務(wù)信息頁,構(gòu)建虛擬服務(wù)模型,從而完成對Dom0的虛擬化。同時,當(dāng)創(chuàng)建用戶域或進(jìn)行一次新的服務(wù)分離方案部署時,Hydravisor需要創(chuàng)建用戶域和迷你服務(wù)域之間的設(shè)備連接,并對這些設(shè)備連接進(jìn)行監(jiān)控,確保其安全可靠。最后,Hydravisor根據(jù)各用戶域?qū)/O資源的訪問請求狀況,通過Hypervisor調(diào)度迷你服務(wù)域來響應(yīng)用戶域的I/O訪問請求。
XHydra架構(gòu)仍基于Xen Hypervisor,對Hypervisor不做任何功能性的修改,僅替換了其原有的安全模塊,保證了Hypervisor提供給虛擬機(jī)的接口不變,且保證了迷你服務(wù)域有且僅有完成其被賦予的服務(wù)功能所需的最小特權(quán)。同樣,XHydra使用與Xen完全一樣的一個包含如虛擬機(jī)內(nèi)存、CPU等運(yùn)行時參數(shù)的配置文件來描述用戶域。當(dāng)創(chuàng)建用戶域時,它們都使用管理工具棧(toolstack)來解析該配置文件,并根據(jù)解析的參數(shù)來為該用戶域構(gòu)建運(yùn)行環(huán)境。但XHydra在構(gòu)建用戶域運(yùn)行環(huán)境時需要Hydravisor完成其中的I/O運(yùn)行環(huán)境的構(gòu)建,使用戶域“認(rèn)為”其運(yùn)行于Xen上。而且,XHydra提供的管理接口與Xen無異。
Fig.1 Overall of XHydra architecture圖1 XHydra總體架構(gòu)
3.3 XHydra服務(wù)分離
在Xen虛擬機(jī)架構(gòu)中,Dom0作為系統(tǒng)的特權(quán)域,為虛擬機(jī)系統(tǒng)提供了如I/O虛擬化、XenStore、管理工具棧和Domain Builder等服務(wù)。顯然,將這些服務(wù)從Hypervisor中抽離出來,使其只提供如內(nèi)存虛擬化、CPU虛擬化、虛擬機(jī)調(diào)度及事件通道等核心服務(wù),將會有效降低Hypervisor的復(fù)雜度和減小攻擊表面。
但Xen為了保證Hypervisor的安全性和可靠性,卻使Dom0變得異常復(fù)雜和龐大。在Dom0中,既有位于內(nèi)核空間的設(shè)備后端驅(qū)動等系統(tǒng)關(guān)鍵服務(wù),也有位于用戶空間,具有較高特權(quán)的工具棧,它們不論是自身存在Bug或遭受惡意攻擊都會影響整個虛擬化平臺的安全,因而Dom0的內(nèi)核空間和具有特權(quán)的用戶進(jìn)程都是虛擬化平臺TCB的組成部分,且增大了整個平臺的攻擊表面。
在XHydra中,針對原架構(gòu)中Dom0給系統(tǒng)引入龐大的TCB和巨大攻擊表面等問題,采用微內(nèi)核的設(shè)計思想,將Dom0提供的服務(wù)按照一定規(guī)則進(jìn)行劃分,并用相互隔離的迷你虛擬機(jī)來承載這些新劃分的服務(wù),如圖2所示。
Fig.2 Service separation of XHydra圖2 XHydra服務(wù)分離示意圖
(1)服務(wù)S(service)表示XHydra中輔助Hypervisor為用戶提供一個完整的虛擬化平臺的原子服務(wù)組件。其主要有安全屬性SA(security attribute)和功能屬性FA(function attribute)這兩大屬性。
(2)服務(wù)劃分SP(service partitioning)表示XHydra中所有服務(wù)組成的集合的劃分。XHydra中所有服務(wù)組成的集合用S′={S(S.SA,S.FA)}表示,若由服務(wù)組成的集合′,′′滿足′′?′,′=′且′=?, 1≤i,j≤l,則SP= {,′′}。
(3)XHydra服務(wù)分離方案SsS(service separation scheme)是指根據(jù)SA和FA對XHydra中的服務(wù)進(jìn)行一次劃分的方案。一種XHydra服務(wù)分離方案實(shí)際可以用一不存在沖突的服務(wù)劃分來表示,記作SsS?SP。
系統(tǒng)管理員執(zhí)行過程1即可產(chǎn)生其需要的XHydra服務(wù)分離方案,然后將生成的SsS部署到迷你服務(wù)虛擬機(jī)上。
過程1服務(wù)分離過程
1.將Dom0中的虛擬化服務(wù)按照功能特點(diǎn)和安全特點(diǎn)細(xì)化為原子服務(wù)S,得到服務(wù)集合S;
2. SP′:= Generate_Set_Partitionings(S);
3. SsS := {}
4. For all SP in SP′
5. Find_SsS := true
6. For all S′in SP
7. If (Conflict_Detection (S′) == true) //檢測服務(wù)之間是否存在安全或功能實(shí)現(xiàn)上的沖突
8. Find_SsS := false;
9. Break;
10. If (Find_SsS == true)
11. SsS := SsS∪{SP};
SsS即為所有可用的服務(wù)分離方案的集合,Hydravisor根據(jù)SsS自行選擇當(dāng)前系統(tǒng)使用的服務(wù)分離方案。
3.4服務(wù)監(jiān)視器Hydravisor
Hydravisor將迷你服務(wù)域虛擬化為Dom0,同時將Dom0虛擬化為迷你服務(wù)域,為用戶域提供與Dom0無差別的服務(wù)接口,并實(shí)現(xiàn)迷你服務(wù)域和用戶域之間的雙向屏蔽。如圖1所示,Hydravisor主要由虛擬服務(wù)倉庫、虛擬服務(wù)控制器、服務(wù)域管理器、HydraStore和XHydra安全代理這5部分組成。其中虛擬服務(wù)倉庫主要用于存儲整個虛擬化平臺所有虛擬服務(wù)和與虛擬服務(wù)相關(guān)聯(lián)的信息。
3.4.1服務(wù)域管理器
服務(wù)域管理器(service domain manager,SDM)協(xié)同Hydravisor的其他功能組件管理虛擬服務(wù)承載虛擬機(jī)或服務(wù)域。SDM主要完成服務(wù)域創(chuàng)建、服務(wù)域重啟、服務(wù)域關(guān)閉、服務(wù)域暫停、服務(wù)域恢復(fù)、服務(wù)域銷毀和服務(wù)域調(diào)度等服務(wù)域管理任務(wù)。
服務(wù)域管理器根據(jù)XHydra服務(wù)分離方案創(chuàng)建服務(wù)域,并協(xié)同虛擬服務(wù)控制器實(shí)現(xiàn)服務(wù)域的全生命周期管理。同時,服務(wù)域管理器根據(jù)各虛擬服務(wù)上關(guān)聯(lián)的設(shè)備通道的I/O狀態(tài)來調(diào)度服務(wù)域,保證系統(tǒng)整體性能最優(yōu)。
3.4.2 HydraStore
HydraStore在XHydra中承擔(dān)系統(tǒng)配置信息的存儲和管理任務(wù),實(shí)現(xiàn)迷你服務(wù)域與用戶域之間的雙向屏蔽,并建立用戶域和迷你服務(wù)域之間的服務(wù)依賴關(guān)系。
HydraStore的架構(gòu)如圖3所示,其主要由Xen-Store、服務(wù)依賴映射器和服務(wù)依賴倉庫這3部分組成。其中,XenStore是將位于Xen虛擬化平臺Dom0中的XenStore無差別地移植到Hydravisor中形成的,其提供給用戶域和服務(wù)域的接口不變,即不需要對用戶域和迷你服務(wù)域做任何修改。
虛擬服務(wù)(virtual service,VS)是指XHydra服務(wù)分離方案SsS的元素(簡稱服務(wù)項(xiàng)),該服務(wù)項(xiàng)由單獨(dú)的迷你服務(wù)域承載。
服務(wù)依賴關(guān)系是指一個虛擬機(jī)的運(yùn)行依賴于另一個虛擬機(jī)提供的虛擬服務(wù),簡記為SDR=domi?domj,即虛擬機(jī)domi服務(wù)依賴于虛擬機(jī)domj。其中domj∈DomS∪{Hydravisor},domi∈DomU∪DomS∪{Hydravisor},DomS表示所有迷你服務(wù)域構(gòu)成的集合,DomU表示所有用戶域構(gòu)成的集合。
在HydraStore中,XenStore僅僅記錄了用戶域服務(wù)依賴于Hydravisor (DomU?Hydravisor)和Hydravisor服務(wù)依賴于服務(wù)域(Hydravisor?DomS)的相關(guān)配置信息,且用戶域和迷你服務(wù)域都只能通過XenStore提供的接口來獲取它們所需的配置信息。同時,XHydra使用與Xen相同的配置文件來描述虛擬機(jī),從而在XHydra中,Hydravisor和用戶域、Hydravisor和迷你服務(wù)域之間互相可見,但用戶域和迷你服務(wù)域不知道對方的存在。即從用戶域來看,其無法分辨出運(yùn)行環(huán)境是Xen虛擬化平臺還是XHydra虛擬化平臺,保證了XHydra與Xen之間的虛擬機(jī)無障礙遷移,并隔離了服務(wù)域和用戶域之間的攻擊流。
Fig.3 Architecture of HydraStore圖3 HydraStore架構(gòu)
服務(wù)依賴映射器利用虛擬服務(wù)模型中的服務(wù)分離方案和XenStore中記錄的用戶域配置信息將DomU?Hydravisor映射為DomU?DomS,然后對DomU?Hydravisor和DomU?DomS進(jìn)行依賴關(guān)系計算得到Hydravisor?DomS,并將其存儲到XenStore中,以保證迷你服務(wù)域能夠根據(jù)XenStore正確無誤地提供相應(yīng)服務(wù)。
服務(wù)依賴倉庫存儲著用戶域和迷你服務(wù)域之間的依賴關(guān)系,以及基于該依賴關(guān)系下的設(shè)備依賴關(guān)系。服務(wù)依賴映射器實(shí)時監(jiān)控XenStore中配置信息的變動,當(dāng)配置信息改變時,其對變動的配置信息進(jìn)行映射,并將映射結(jié)果記錄在服務(wù)依賴倉庫中,通知虛擬服務(wù)控制器服務(wù)依賴關(guān)系或該依賴關(guān)系下的設(shè)備依賴關(guān)系已改變。
3.4.3虛擬服務(wù)控制器
虛擬服務(wù)控制器(virtual service controller,VSC),是Hydravisor的控制中心,它直接管理虛擬服務(wù)模型中的虛擬服務(wù)及與虛擬服務(wù)相關(guān)聯(lián)的設(shè)備通道(服務(wù)虛擬機(jī)后端設(shè)備與被服務(wù)的虛擬機(jī)前端設(shè)備之間進(jìn)行通信的通道),并協(xié)同服務(wù)域管理器、Hydra-Store等組件共同完成對Dom0的虛擬化,其虛擬化過程如過程2所示。VSC與Hydravisor其他組件間的關(guān)系如圖4所示。
過程2 Hydravisor虛擬化Dom0的過程
1.根據(jù)服務(wù)分離模型生成服務(wù)分離方案SsS ;
6. HydraStore完成DomU對DomS的服務(wù)依賴關(guān)系映射;
其中Admin表示虛擬平臺管理員或具有特權(quán)的用戶;形如AB的表達(dá)式表示A對B以?實(shí)施控制θ,θ表示控制命令,?表示控制參數(shù);在形如β(α)的表達(dá)式中,α表征β的屬性;形如?||φ的表達(dá)式表示?與φ之間是并列關(guān)系;形如{σ}表示與σ同一類型的所有實(shí)例的集合。
Fig.4 Relationships between virtual service controller and other components of Hydravisor圖4 虛擬服務(wù)控制器與Hydravisor其他組件間的關(guān)系
XHydra安全模塊(XHydra security module,XHSM)在Xen安全模塊XSM的基礎(chǔ)上,引入具有高抽象策略的基于接口的訪問控制模型,以確保迷你服務(wù)域、用戶域僅擁有其被賦予的最小特權(quán),同時簡化安全策略和安全策略管理。
4.1基于接口的訪問控制模型
基于接口的訪問控制模型(interface based access control model, IFBAC)以最小特權(quán)安全理論為安全準(zhǔn)則,根據(jù)主體的安全標(biāo)識、接口的安全標(biāo)識和訪問控制策略決定主體能否訪問相應(yīng)接口。IFBAC實(shí)施強(qiáng)制訪問控制,且其訪問控制策略能直觀地體現(xiàn)相應(yīng)的安全目標(biāo)。
(1)IFBAC元素
定義和說明如表1所示。
Table 1 Elements of IFBAC and their descriptions表1 IFBAC模型定義的部分元素及說明
(2)系統(tǒng)狀態(tài)表示
系統(tǒng)狀態(tài)由主體、客體、接口及標(biāo)識主體、客體和接口的訪問類屬性函數(shù)組成,狀態(tài)v∈V可用一個有序三元組(S,I,f)表示。定義規(guī)則γ為函數(shù)γ:R×V→D×V,即對給定請求和狀態(tài),規(guī)則γ決定系統(tǒng)產(chǎn)生的下一個響應(yīng)和狀態(tài),其中判定集D中的yes表示該請求被執(zhí)行,no表示該請求被拒絕,?表示規(guī)則γ不能處理該請求。
(3)安全狀態(tài)定義
狀態(tài)v=(S,I,f)是安全的,則當(dāng)且僅當(dāng)有s∈S?[I∈A(S)?fS?fI]成立,其中?表示前者支配后者,即f(S)?f(I),A(S)表示能夠被S訪問的所有接口。
(4)狀態(tài)轉(zhuǎn)換規(guī)則
定義域:Ri=(Sj,Ik)∈R,R的定義域記為{ } R。
顯然,根據(jù)系統(tǒng)安全狀態(tài)定義,當(dāng)主體Sj的安全級支配接口Ik的安全級時,Sj可調(diào)用Ik,且系統(tǒng)的狀態(tài)仍然是安全的。
4.2 XHydra訪問控制框架
XHydra訪問控制框架如圖5所示,其訪問控制的粒度是虛擬機(jī),并在主體對客體訪問時,實(shí)施了兩層訪問控制。當(dāng)主體S以接口I的方式訪問客體O時,首先由訪問控制點(diǎn)1判定主體S能否訪問接口I,若能訪問,則轉(zhuǎn)向訪問控制點(diǎn)2,由它判定主體S能否訪問客體O,否則主體S不能以接口I的方式訪問客體O。
Fig.5 Architecture of XHydra access control module圖5 XHydra訪問控制框架
訪問控制點(diǎn)1采用基于接口的訪問控制模型,在XHydra中IFBAC的主體為用戶域或迷你服務(wù)域,接口為Hypervisor向虛擬機(jī)提供的超級調(diào)用,記為I∈{Hypercall1, Hypercall2, Hypercallq},權(quán)限標(biāo)識分別表示主體擁有的權(quán)限和訪問接口需要的權(quán)限,記為P。每個主體可以擁有多個權(quán)限標(biāo)識,而每個接口則有且僅有一個權(quán)限標(biāo)識,同時它們權(quán)限標(biāo)識的集合代表它們的安全標(biāo)識。XHydra中權(quán)限標(biāo)識劃分示例如表2所示。
Table 2 Example of permissions identification divisionof IFBAC in XHydra表2 XHydra中IFBAC模型的權(quán)限標(biāo)識劃分示例
訪問控制點(diǎn)2利用XSM中的Flask安全模塊來實(shí)施訪問控制,F(xiàn)lask相關(guān)安全定義和安全策略與其在XSM中的相關(guān)信息相同,因而不需要對其做任何改動。
本文基于開源虛擬化平臺Xen4.4實(shí)現(xiàn)了XHydra的原型系統(tǒng),能夠良好地支持X86架構(gòu)的CPU。由于Fedora(https://getfedora.org/)操作系統(tǒng)對Xen虛擬化平臺支持較好,且Fedora Project開源社區(qū)允許用戶自由修改和發(fā)布Fedora,因而采用Fedora20及其相應(yīng)的開發(fā)工具和程序庫來對XHydra原型系統(tǒng)進(jìn)行開發(fā)工作。
5.1 XHydra服務(wù)分離
根據(jù)XHydra服務(wù)分離方案,將Dom0中承載的服務(wù)進(jìn)行分離,并將分離后的服務(wù)部署到客戶操作系統(tǒng)與服務(wù)相契合的虛擬機(jī)上。
XHydra原型系統(tǒng)根據(jù)過程1生成一種服務(wù)分離方案,在該方案中,分離出的服務(wù)、承載該服務(wù)的客戶操作系統(tǒng)和服務(wù)的功能描述如表3所示,但其僅代表XHydra服務(wù)分離方案中的一種。
Table 3 Service separation scheme of XHydra prototype表3 XHydra原型系統(tǒng)服務(wù)分離方案
下面以Network Service分離為例描述服務(wù)分離實(shí)現(xiàn)的過程。首先定制承載Network Service的操作系統(tǒng)Fedora20,定制后的Fedora20中僅保留PCI前端驅(qū)動、物理網(wǎng)卡驅(qū)動、后端網(wǎng)卡驅(qū)動等驅(qū)動程序,libx-enstore.so、libxenlight.so等Xen運(yùn)行環(huán)境依賴庫,相關(guān)網(wǎng)絡(luò)腳本和上述組件運(yùn)行依賴的最小運(yùn)行環(huán)境。隨后通過PCI Service將物理網(wǎng)卡分配給網(wǎng)絡(luò)域,最后創(chuàng)建網(wǎng)絡(luò)域,并將相關(guān)信息注冊到XenStore中,當(dāng)其正常運(yùn)行后即可提供網(wǎng)絡(luò)虛擬化服務(wù)。
5.2 Hydravisor
Hydravisor是在Mini-OS(http://www.cs.uic.edu/~ spopuri/minios.html)的基礎(chǔ)上實(shí)現(xiàn)的。Mini-OS是隨Xen發(fā)布的一個運(yùn)行在半虛擬化環(huán)境下的輕量級操作系統(tǒng)內(nèi)核,它具有非常小的可信計算基,且已經(jīng)實(shí)現(xiàn)了對XenStore的移植,可以有效地減少開發(fā)工作量。在Hydravisor的實(shí)現(xiàn)過程中,主要有兩個關(guān)鍵點(diǎn):
第一個關(guān)鍵點(diǎn)是實(shí)現(xiàn)用戶域和迷你服務(wù)域之間的雙向屏蔽。要實(shí)現(xiàn)迷你服務(wù)域和用戶域之間的相互隔離,則要求用戶域不知道為其提供服務(wù)的迷你服務(wù)域,同樣迷你服務(wù)域也不知道它在為用戶域提供服務(wù),但依賴于XenStore構(gòu)建的前后端驅(qū)動模型則要求迷你服務(wù)域和用戶域之間知道對方存在,如用戶域?qū)?nèi)存頁共享給服務(wù)域時,需要知道迷你服務(wù)域的ID。因而通過實(shí)現(xiàn)HydraStore,將用戶域和迷你服務(wù)域之間的關(guān)系映射為用戶域服務(wù)依賴于Hydravisor和Hydravisor服務(wù)依賴于迷你服務(wù)域,保證用戶域?qū)ydravisor當(dāng)作Dom0,而迷你服務(wù)域?qū)ydravisor當(dāng)作用戶域,很好地解決了關(guān)鍵點(diǎn)一面臨的難題。實(shí)現(xiàn)HydraStore需要在XenStore的基礎(chǔ)上添加480行ocaml代碼,但對XenStore不做任何改變。
第二個關(guān)鍵點(diǎn)就是在第一個關(guān)鍵點(diǎn)的基礎(chǔ)上如何實(shí)現(xiàn)用戶域和迷你服務(wù)域之間的前后端設(shè)備通信。由于不能直接運(yùn)用Xen的前后端驅(qū)動模型,又不能改變用戶域原有的前后端通信機(jī)制,因而如圖4所示,通過設(shè)備通道來同時實(shí)現(xiàn)對服務(wù)域的后端設(shè)備和用戶域的前端設(shè)備的虛擬,即設(shè)備通道對于用戶域是后端設(shè)備,而對于迷你服務(wù)域是前端設(shè)備,用戶域與設(shè)備通道、設(shè)備通道與迷你服務(wù)域即可按照Xen前后端設(shè)備模型進(jìn)行正常通信,從而避免了對前后端驅(qū)動的修改。但是不同的設(shè)備,其前后端驅(qū)動有一定的差異,因而為了適配不同的設(shè)備,需要實(shí)現(xiàn)與設(shè)備對應(yīng)的設(shè)備通道,但有大于90%的設(shè)備通道代碼可以重用。
6.1安全性分析
眾所周知,系統(tǒng)安全研究中最大挑戰(zhàn)就是對系統(tǒng)安全的評估,對于XHydra的安全性評估也不例外。針對這一難題,本文不直接對XHydra的安全性進(jìn)行評估,而通過將其與Xen進(jìn)行對比來評估安全性。主要通過對系統(tǒng)的TCB大小、攻擊表面和系統(tǒng)的安全機(jī)制來對比分析XHydra的安全性,并通過模擬攻擊實(shí)驗(yàn)證明安全對比分析的正確性。
在XHydra中,各迷你服務(wù)域?qū)ξ锢碣Y源和虛擬資源的訪問都要受到Hypervisor的控制,同時相互隔離的各迷你服務(wù)域僅具備完成相應(yīng)功能服務(wù)的最小特權(quán)和支持服務(wù)正常運(yùn)行的最小運(yùn)行環(huán)境。Hydravisor實(shí)現(xiàn)了迷你服務(wù)域之間,以及迷你服務(wù)域和用戶虛擬機(jī)之間的邏輯隔離。因而迷你服務(wù)域不應(yīng)成為系統(tǒng)的TCB,而Hydravisor是實(shí)現(xiàn)Dom0虛擬化的核心,且具有較高的特權(quán),所以Hydravisor應(yīng)該成為XHydra的TCB的一部分。XHydra和Xen基于相同的Hypervisor,因而在除去Hypervisor的TCB的條件下,系統(tǒng)的可信計算基從原來Dom0的7 600 KLOC減少到Hydravisor的20 KLOC。
XHydra的各迷你服務(wù)域均按照其提供的服務(wù)進(jìn)行細(xì)粒度剪裁定制,即除了該服務(wù)和支撐該服務(wù)運(yùn)行的最小運(yùn)行環(huán)境外,其他的所有軟件和文件等都被移出迷你服務(wù)域。顯然各迷你服務(wù)域的攻擊表面僅來自于其承載的服務(wù)。而Dom0的攻擊表面來源除了其承載的服務(wù),還包括其他與虛擬化無關(guān)的進(jìn)程和服務(wù)。因此,Dom0的攻擊表面明顯大于各迷你服務(wù)域的攻擊表面,而且各迷你服務(wù)域的攻擊表面被隔離,使攻擊者更加難以實(shí)施攻擊。
在Xen中,Dom0所有服務(wù)都運(yùn)行在最高特權(quán)下,且從Hypervisor這一層很難對它們實(shí)施訪問控制,其中一個服務(wù)被攻陷,則整個虛擬化平臺就被攻擊者控制,導(dǎo)致其停止提供服務(wù),進(jìn)而使其上運(yùn)行的虛擬機(jī)被強(qiáng)迫關(guān)機(jī)下線,并且需要較長時間才能恢復(fù)。而在XHydra中,通過Hydravisor既能對服務(wù)實(shí)施訪問控制,又可以通過XHydra安全模塊限制各迷你服務(wù)域的特權(quán)。同時,Hydravisor可以隔離用戶虛擬機(jī)與迷你服務(wù)域之間的雙向攻擊流,利用設(shè)備通道來避免由迷你服務(wù)域的崩潰而引發(fā)的虛擬化平臺崩潰,且迷你服務(wù)域在崩潰后,將被其立即恢復(fù)到正常運(yùn)行狀態(tài)。
為了模擬Dom0和XHydra原型系統(tǒng)的網(wǎng)絡(luò)域被惡意攻擊后關(guān)機(jī)的場景,分別在Dom0和網(wǎng)絡(luò)域植入具有root運(yùn)行權(quán)限的自啟動腳本hacker.sh,其代碼如圖6所示。當(dāng)分別啟動XHydra原型系統(tǒng)和Xen 10 min后,它們的運(yùn)行狀態(tài)如圖7所示。其中,Xen直接關(guān)機(jī)停止運(yùn)行,而XHydra原型系統(tǒng)仍正常運(yùn)行,僅用戶域約有40 s不能聯(lián)網(wǎng)(網(wǎng)絡(luò)域重啟導(dǎo)致),但其網(wǎng)絡(luò)連接顯示正常(這是由于設(shè)備通道為用戶域虛擬了后端虛擬設(shè)備,其仍可正常連接)。該模擬攻擊實(shí)驗(yàn)很好地證明了上述安全分析的正確性。綜上分析可知,XHydra的安全性相對于Xen有很大的提升。
Fig.6 Code of attacking hacker.sh圖6 模擬攻擊腳本hacker.sh的代碼
Fig.7 States of Xen and XHydra when their servicedomains were attacked圖7 Xen和XHydra的服務(wù)域被攻擊后各自狀態(tài)示意圖
6.2實(shí)驗(yàn)性能分析
由于XHydra相對于Xen虛擬化平臺最根本的改變是通過Hydravisor實(shí)現(xiàn)了對Dom0的虛擬化,即XHydra利用Hydravisor和迷你服務(wù)域替換了Xen虛擬化平臺中的Dom0,因而XHydra和Xen虛擬化平臺的性能對比實(shí)驗(yàn)主要比較運(yùn)行于它們之上的用戶域虛擬機(jī)的I/O處理性能和服務(wù)域虛擬機(jī)的內(nèi)存開銷。本文所有實(shí)驗(yàn)的硬件環(huán)境為支持Intel VT-x的Intel Core i3-2130 3.39 GHz的四核處理器,Lenovo QiTianM4350主板,500 GB Western Digital磁盤和Realtek RTL8111/8186/8411網(wǎng)卡。性能對比實(shí)驗(yàn)的軟件配置如表4所示。
Table 4 Software configuration of performance comparison experiments between XHydra and Xen表4 XHydra和Xen性能對比實(shí)驗(yàn)的軟件配置
XHydra和Xen的客戶域的配置均為2個虛擬CPU,1 GB內(nèi)存,1個虛擬網(wǎng)卡和10 GB的虛擬磁盤。XHydra每個服務(wù)域配置1個虛擬CPU,內(nèi)存的配置如表5所示,Hydravisor配置為128 MB內(nèi)存和2個虛擬CPU;Xen中的Dom0配置4個虛擬CPU,1 GB的內(nèi)存。
Table 5 Memory configuration of Mini-ServiceDomains of XHydra prototype表5 XHydra原型系統(tǒng)中各迷你服務(wù)域的內(nèi)存配置
由表5可知在XHydra的原型系統(tǒng)中各迷你服務(wù)域和Hydravisor的內(nèi)存開銷總和為1 024 MB。其中不包括PCI Service Domain和Qemu Domain的內(nèi)存開銷,因?yàn)镻CI Service Domain在服務(wù)分離完成后,則被Hydravisor銷毀。同樣Qemu Domain作為HVM的設(shè)備模型,其內(nèi)存開銷應(yīng)該計入用戶域的性能開銷。XHydra原型系統(tǒng)中非用戶域的內(nèi)存開銷和Xen 中Dom0的內(nèi)存開銷基本持平,當(dāng)然XHydra的服務(wù)分離方案有很多種,其內(nèi)存開銷也各不相同,但都在用戶可接受范圍之內(nèi)。
XHydra和Xen虛擬化平臺的I/O性能對比實(shí)驗(yàn)主要對比它們的存儲性能和網(wǎng)絡(luò)性能。存儲性能通過PostMark(http://openbenchmarking.org/test/pts/postmark)工具來測試,網(wǎng)絡(luò)性能通過命令scp在千兆局域網(wǎng)環(huán)境下拷貝文件來測試。
PostMark是由著名的NSA軟件承包商N(yùn)etApp開發(fā)的一款用來測試產(chǎn)品后端存儲性能的測試工具,主要用于測試文件系統(tǒng)在郵件系統(tǒng)或電子商務(wù)系統(tǒng)中的性能,而郵件系統(tǒng)和電子商務(wù)系統(tǒng)等應(yīng)用是通過云計算進(jìn)行服務(wù)整合的主要對象,因而通過PostMark的存儲性能測試可以較好地反映虛擬化平臺的存儲性能。實(shí)驗(yàn)中,PostMark未改變的參數(shù)配置如表6所示,變動的參數(shù)取PostMark的3種經(jīng)典配置參數(shù),分別為表示初始創(chuàng)建文件數(shù)量的number和表示create/delete和read/append事務(wù)執(zhí)行次數(shù)的transactions,分別取值為(1 000,50 000)、(20 000,50 000)和(20 000,100 000)。測試結(jié)果如圖8~圖13所示,無論是在半虛擬化環(huán)境下,還是全虛擬化環(huán)境下,XHydra的磁盤性能的各項(xiàng)測試結(jié)果相對于Xen的各項(xiàng)測試結(jié)果降低了1.0%~2.5%。同時,半虛擬化環(huán)境下的存儲性能均優(yōu)于全虛擬化環(huán)境下的存儲性能,這是由于I/O虛擬化方式不同帶來的性能差異。
Table 6 Parameters configuration of PostMark表6 PostMark未改變的參數(shù)配置
Fig.8 Transactions performed per second in paravirtualization environment圖8 半虛擬化環(huán)境下每秒執(zhí)行的事務(wù)數(shù)量
Fig.9 Transactions performed per second in full virtualization environment圖9 全虛擬化環(huán)境下每秒執(zhí)行的事務(wù)數(shù)量
Fig.10 Data read per second in paravirtualization environment圖10 半虛擬化環(huán)境下每秒讀取的數(shù)據(jù)大小
Fig.11 Data read per second in full virtualization environment圖11 全虛擬化環(huán)境下每秒讀取的數(shù)據(jù)大小
用Linux命令scp遠(yuǎn)程拷貝大小分別為512 MB 和2 GB的文件,并將文件分別寫入到/dev/null(消除磁盤帶來的影響)和磁盤,以文件拷貝速度來衡量網(wǎng)絡(luò)的吞吐量。測試結(jié)果如圖14和圖15所示,在半虛擬化環(huán)境下,XHydra的網(wǎng)絡(luò)吞吐量在各項(xiàng)測試中相對于Xen降低了2%~3%。在全虛擬化環(huán)境下,XHydra的網(wǎng)絡(luò)吞吐量在某些測試中略低于Xen,在某些測試中還略高于Xen,這是由于將設(shè)備模型QEMU從Dom0中分離出來后帶來的性能提升。
Fig.12 Data written per second in paravirtualizationenvironment圖12 半虛擬化環(huán)境下每秒寫入的數(shù)據(jù)大小
Fig.13 Data written per second in full virtualizationenvironment圖13 全虛擬化環(huán)境下每秒寫入的數(shù)據(jù)大小
Fig.14 Network throughput in paravirtualizationenvironment圖14 半虛擬化環(huán)境下網(wǎng)絡(luò)吞吐量
Fig.15 Network throughput in full virtualizationenvironment圖15 全虛擬化環(huán)境下網(wǎng)絡(luò)吞吐量
綜上可得,XHydra的性能相對于Xen降低了大約3%,但XHydra相對于Xen給用戶提供了更高的安全保障,在信息安全形式日益嚴(yán)峻的今天,損失不到3%的性能換來系統(tǒng)的安全性增強(qiáng),對用戶來說完全是可以接受的。
隨著虛擬化技術(shù)的發(fā)展,虛擬化平臺的安全已經(jīng)成為人們關(guān)注的焦點(diǎn)。在現(xiàn)有虛擬化架構(gòu)下,由于用戶對更多企業(yè)級的虛擬化特性的需求不斷增加,導(dǎo)致管理虛擬機(jī)臃腫復(fù)雜,給虛擬化平臺帶來了大量的安全風(fēng)險和不穩(wěn)定因素。
本文提出的安全架構(gòu)XHydra采用微內(nèi)核的設(shè)計準(zhǔn)則和最小特權(quán)的安全思想,將Xen虛擬化平臺的管理虛擬機(jī)Dom0虛擬為多個相互隔離且特權(quán)最小的迷你服務(wù)域,同時利用Hydravisor實(shí)現(xiàn)了用戶虛擬機(jī)與迷你服務(wù)域之間的雙向屏蔽。通過實(shí)驗(yàn)分析表明,在不改變?nèi)魏喂δ芴匦院陀脩羰褂昧?xí)慣的基礎(chǔ)上,XHydra相對于Xen具有更小的可信計算基和更高的可靠性,但會有3%左右的性能損耗。XHydra雖然是基于Xen虛擬化平臺設(shè)計實(shí)現(xiàn)的,但其設(shè)計思想仍可用于與Xen架構(gòu)類似的虛擬化平臺(如Hyper-V)的安全性增強(qiáng)。
由實(shí)驗(yàn)可知,XHydra原型系統(tǒng)的性能相對于Xen降低了3%左右,造成系統(tǒng)性能下降的原因除了系統(tǒng)實(shí)現(xiàn)外,主要是Hypervisor的調(diào)度算法與XHydra架構(gòu)不相適應(yīng)。同時,XHydra并不能防御來自內(nèi)部的攻擊,且目前支持的服務(wù)分離方案僅實(shí)現(xiàn)了兩種,那么對系統(tǒng)的進(jìn)一步完善和優(yōu)化系統(tǒng)性能將是下一步需要進(jìn)行的工作。
References:
[1] Gomes D G, Calheiros R N, Tolosana-Calasanz R. Introduction to the special issue on cloud computing[J]. Computers and Electrical Engineering, 2015, 42: 31-32.
[2] Lin Chuang, Su Wenbo, Meng Kun, et al. Cloud computing security: archtecture, mechnism, modeling[J]. Chinese Journal of Computers, 2013, 36(9): 1765-1784.
[3] He Wu, Xu Lida. A state-of-the-art survey of cloud manufacturing[J]. International Journal of Computer Integrated Manufacturing, 2015, 28(3): 239-250.
[4] Huo Zheng, Meng Xiaofeng, Xu Jianliang. Privacy-preserving query processing in cloud computing[J]. Journal of Frontiers of Computer Science and Technology, 2012, 6(5): 385-396.
[5] Barham P, Dragovic B, Fraser K, et al. Xen and the art of virtualization[C]//Proceedings of the 19th ACM Symposium on Operating Systems Principles, Bolton Landing, USA, Oct 19-22, 2003. NewYork, USA:ACM, 2003: 164-177.
[6] Pratt I, Fraser K, Hand S, et al. Xen 3.0 and the art of virtualization[C]//Proceedings of the 2005 Linux Symposium, Ottawa, Canada, Jul 20-23, 2005. New York, USA: ACM, 2005: 65-77.
[7] Mohanty S D, Thotakura V, Ramkumar M. An efficient trusted computing base for MANET security[J]. Journal of Information Security, 2014, 5(4): 192-206.
[8] Boen J. Researches on the virtual iecurity issues based on Xen cloud computing platform[J]. Applied Mechanics & Materials, 2014, 687: 2858-2861.
[9] Kumar P. Open source virtual machines on Xen: creation, implementaion and analysis[J]. Journal of Information Sciences and Computing Technologies, 2015, 3(1): 186-190.
[10] Kivity A, Kamay Y, Laor D, et al. KVM: the Linux virtual machine monitor[C]//Proceedings of the 2007 Linux Symposium, Ottawa, Canada, Jun 27-30, 2007: 225-230.
[11] Rzecki K, Nied?wiecki M, So?nicki T, et al. Experimental verification of Hyper-V performance isolation quality level [J]. Computer Science, 2014, 15(2): 159-172.
[12] Murray T, Matichuk D, Brassil M, et al. seL4: from general purpose to a proof of information flow enforcement[C]// Proceedings of the 2013 IEEE Symposium on Security & Privacy, Berkeley, USA, May 19- 22, 2013. Piscataway, USA: IEEE, 2013: 415-429.
[13] Elphinstone K, Heiser G. From L3 to seL4 what have we learnt in 20 years of L4 microkernels?[C]//Proceedings of the 24th ACM Symposium on Operating Systems Principles, Farmington, USA, Nov 3-6, 2013. NewYork, USA: ACM, 2013: 133-150.
[14] Steinberg U, Kauer B. NOVA: a microhypervisor-based secure virtualization architecture[C]//Proceedings of the 5th European Conference on Computer Systems, Paris, France, Apr 13-16, 2010. New York, USA:ACM, 2010: 209-222.
[15] Hirano M, Chadwick D W, Yamaguchi S. Use of role based access control for security-purpose hypervisors[C]//Proceedings of the 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications, Melbourne, Jul 16-18, 2013. Piscataway, USA: IEEE, 2013: 1613-1619.
[16] Sun Jianhua, Chen Hao, Chang Cheng, et al. Kernel code integrity protection based on a virtualized memory architecture[J]. Computing and Informatics, 2013, 32(2): 295-311.
[17] Zhang Fengzhe, Chen Jin, Chen Haibo, et al. CloudVisor: retrofitting protection of virtual machines in multi- tenant cloud with nested virtualization[C]//Proceedings of the 23rd ACM Symposium on Operating Systems Principles, Cascais, Portugal, Oct 23-26, 2011. New York, USA: ACM, 2011: 203-216.
[18] de Souza W, Tomlinson A. Understanding threats in a cloud infrastructure with no hypervisor[C]//Proceedings of the 2013 World Congress on Internet Security, London, UK, Dec 9-12, 2013. Piscataway, USA: IEEE, 2013: 128-133.
[19] Almurayh A, Semwal S. Controlling Xen cloud platform via smart phones[C]//Proceedings of the 2013 IEEE 14th International Conference on Information Reuse and Integration, San Francisco, USA, Aug 14-16, 2013. Piscataway, USA: IEEE, 2013: 676-683.
[20] Leroy X, Doligez D, Frisch A, et al. The OCaml system release 4.02[R]. Institut National de Recherche en Informatique et en Automatique, 2014.
[21] Murray D G, Milos G, Hand S. Improving Xen security through disaggregation[C]//Proceedings of the 4th ACMSIGPLAN/SIGOPS International Conference on Virtual Execution Environments, Seattle, USA , Mar 5- 7, 2008. NewYork, USA:ACM, 2008: 151-160.
[22] Liang Yi, Shao Yuanhua, Yang Guowu, et al. Register allocation for QEMU dynamic binary translation systems[J]. International Journal of Hybrid Information Technology, 2015, 8(2): 199-210.
[23] Butt S, Lagar-Cavilla H A, Srivastava A, et al. Self-service cloud computing[C]//Proceedings of the 19th ACM Conference on Computer and Communications Security, Raleigh, USA, Oct 16-18, 2012.
[24] Colp P, Nanavati M, Zhu J, et al. Breaking up is hard to do: security and functionality in a commodity hypervisor[C]// Proceedings of the 23rd ACM Symposium on Operating Systems Principles, Cascais, Portugal, Oct 23-26, 2011. New York, USA:ACM, 2011: 189-202.
[25] Yao Jiewen, Zimmer V J. White paper a tour beyond BIOS using Intel?VT-d for DMA Protection in UEFI BIOS. Intel Corporation, 2015.
[26] Malka M, Amit N, Ben-Yehuda M, et al. rIOMMU: efficient IOMMU for I/O devices that employ ring buffers[C]// Proceedings of the 20th International Conference on Architectural Support for Programming Languages and Operating Systems, Istanbul, Turkey, Mar 14-18, 2015. New York, USA: ACM, 2015: 355-368.
附中文參考文獻(xiàn):
[2]林闖,蘇文博,孟坤,等.云計算安全:架構(gòu),機(jī)制與模型評價[J].計算機(jī)學(xué)報, 2013, 36(9): 1765-1784.
[4]霍崢,孟小峰,徐建良.云計算中面向隱私保護(hù)的查詢處理技術(shù)研究[J].計算機(jī)科學(xué)與探索, 2012, 6(5): 385-396.
YANG Jie was born in 1990. He is an M.S. candidate at PLA Information Engineering University. His research interests include cloud security, virtualization security and computer security model, ect.楊杰(1990—),男,四川巴中人,解放軍信息工程大學(xué)碩士研究生,主要研究領(lǐng)域?yàn)樵瓢踩?,虛擬化安全,計算機(jī)安全模型等。
ZHU Zhiqiang was born in 1961. He received the Ph.D. degree in cloud computing from Wuhan University in 2011. Now he is a professor and M.S. supervisor at PLA Information Engineering University. His research interests include information security strategy, cloud security and trusted computing, etc.朱智強(qiáng)(1961—),男,河南信陽人,2011年于武漢大學(xué)獲得博士學(xué)位,現(xiàn)為解放軍信息工程大學(xué)科研部長、教授、碩士生導(dǎo)師,主要研究領(lǐng)域?yàn)樾畔踩珣?zhàn)略,云計算安全,可信計算等。
Abstract:This paper presents XHydra, a Xen-based virtual machine (VM) security architecture, which focuses on the problems of Xen?s administrative VM with bloated services and a large aggregate TCB (trusted computing base). XHydra separates Dom0 into single-purpose mini-service domains with least privilege and isolated runtime environment, based on the modularity and isolated principles used in micro-kernels.And, this architecture manages the separated mini-service domains and bi-directional shields between DomU and mini-service domains, and bridges the device channel, the device communication between DomU and mini-service domain is supported through an ingenious service monitor called Hydravisor. Finally, this paper gives a prototype XHydra based on Xen4.4, which improves the security of virtualization platform and proves that XHydra is a feasible architecture. Experiments show that, for the benchmark tests about disk performance and network performance of the prototype system, the proposed approach just incurs about 3% performance overhead compared to Xen.
Key words:Xen; security virtual machine; least privilege; service separation; Dom0 virtualization; XHydra
doi:10.3778/j.issn.1673-9418.1507024 E-mail: fcst@vip.163.com
文獻(xiàn)標(biāo)志碼:A
中圖分類號:TP309