龔敏斌,潘 理,姚立紅
(1.上海交通大學(xué) 電子信息與電氣工程學(xué)院 電子工程系,上海200240;2.上海市信息安全綜合管理技術(shù)研究重點(diǎn)實(shí)驗(yàn)室,上海200240)
隨著虛擬化技術(shù)的推廣應(yīng)用,虛擬化系統(tǒng)的安全問題,尤其是其核心組件——虛擬機(jī)監(jiān)視器[1](hypervisor or VMM,virtual machine monitor)的安全問題日益突出[2-4]。主流的開源 Hypervisor(如 XEN[5])和商用 Hypervisor(如 VMware ESX 3.x[6,7])均面臨著日益嚴(yán)峻的安全問題,如隱蔽信道、顯式信息流和單點(diǎn)失效等安全問題,其中,由Hypervisor運(yùn)行時(shí)代碼與完整性安全風(fēng)險(xiǎn)所引發(fā)的單點(diǎn)失效問題尤為突出。而目前可用于保護(hù)Hypervisor運(yùn)行時(shí)代碼完整性的方法主要有:①重新設(shè)計(jì)安全性更高的Hypervisor,如 NOVA[8],BitVisor[9]。由于 Terra等 Hypervisor為達(dá)到更高的安全性設(shè)置了嚴(yán)格的代碼實(shí)現(xiàn)限制,導(dǎo)致其功能較少,接口簡單,只適用于特定的應(yīng)用環(huán)境下,不能廣泛應(yīng)用于當(dāng)前的虛擬化系統(tǒng);②增加額外的系統(tǒng)校驗(yàn)軟件進(jìn)行代碼完整性校驗(yàn),如HyperCheck[10],HyperG-uard[11],HyperSentry[12]。由于 HyperCheck等均缺少保障校驗(yàn)軟件自身代碼完整性的方法,導(dǎo)致其安全性不高,因此不適用于安全需求較高的虛擬化系統(tǒng);③對Hypervisor運(yùn)行時(shí)代碼采用形式化方法進(jìn)行校驗(yàn),如文獻(xiàn)[13,14]等均提出了嚴(yán)格的形式化校驗(yàn)方法,有效地保障了Hypervisor運(yùn)行時(shí)代碼完整性安全。與代碼完整性安全的保護(hù)方案不同,Hypervisor運(yùn)行時(shí)數(shù)據(jù)的多樣性和動(dòng)態(tài)變化等特點(diǎn),導(dǎo)致其完整性通常難以采用形式化方法進(jìn)行校驗(yàn)。然而,Hypervisor安全機(jī)制的關(guān)鍵組成部分——系統(tǒng)策略文件,與其它Hypervisor的運(yùn)行時(shí)數(shù)據(jù)不同。由于系統(tǒng)策略文件直接關(guān)系到Hypervisor安全機(jī)制是否發(fā)揮作用,而且系統(tǒng)策略文件在系統(tǒng)運(yùn)行期間的變化較少,因此,Hypervisor可以且必須采用數(shù)據(jù)校驗(yàn)方法以保障策略文件的數(shù)據(jù)完整性安全?;诖?,本文以基于內(nèi)核的虛擬機(jī)系統(tǒng)[16](kernel-based virtual machine, 開 源 Hypervisor, 以 下 稱KVM Hypervisor為Hypervisor)為基礎(chǔ),提出了一種改進(jìn)的虛擬機(jī)監(jiān)視器系統(tǒng)策略的完整性安全機(jī)制 (secure hypervisor policy integrity mechanism,稱SHPI機(jī)制)。SHPI機(jī)制針對目前Hypervisor采用的傳統(tǒng)文件安全機(jī)制[17]在保護(hù)運(yùn)行時(shí)策略文件方面存在的不足,采用了改進(jìn)的策略文件存儲方案,保障了存儲策略文件的完整性安全,并通過采用完整性校驗(yàn)方法對動(dòng)態(tài)策略文件進(jìn)行完整性定時(shí)校驗(yàn),保障了動(dòng)態(tài)策略文件的完整性安全。
目前,KVM虛擬化系統(tǒng)采用傳統(tǒng)文件安全機(jī)制[18]保護(hù)系統(tǒng)策略文件的數(shù)據(jù)完整性安全。傳統(tǒng)文件安全機(jī)制框架如圖1所示。
圖1 KVM傳統(tǒng)文件安全機(jī)制
如圖1所示,系統(tǒng)策略文件存儲于普通用戶進(jìn)程空間的系統(tǒng)策略文件庫。該策略文件庫通過普通用戶進(jìn)程空間的策略管理模塊向Hypervisor訪問控制機(jī)制提供系統(tǒng)策略文件查詢服務(wù)。同時(shí)策略管理模塊負(fù)責(zé)系統(tǒng)策略文件的管理與維護(hù)工作。但是,該文件安全機(jī)制存在兩大不足:①Hypervisor在其系統(tǒng)的內(nèi)核空間構(gòu)建了動(dòng)態(tài)策略文件庫,這是為了提高Hypervisor訪問控制機(jī)制獲取系統(tǒng)策略文件的速度。然而,動(dòng)態(tài)策略文件庫的策略文件的完整性安全無法得到保障,即,如果惡意程序修改了動(dòng)態(tài)策略文件,Hypervisor與普通用戶進(jìn)程空間中的策略管理模塊均無法得知,這將導(dǎo)致Hypervisor使用非法的系統(tǒng)策略文件,甚至導(dǎo)致Hypervisor訪問控制機(jī)制失效。②Hypervisor無法保障普通用戶進(jìn)程空間所存儲策略文件的完整性安全。即,系統(tǒng)管理員、安全管理員或其他非法用戶均可以修改存儲于用戶空間的策略文件,而Hypervisor無法判斷此類行為的合法性。此時(shí),Hypervisor若使用已被非法修改的策略文件更新動(dòng)態(tài)策略文件庫,將導(dǎo)致Hypervisor訪問控制機(jī)制使用非法的策略文件處理系統(tǒng)安全事件,從而產(chǎn)生Hypervisor系統(tǒng)安全問題。
正是由于傳統(tǒng)文件安全機(jī)制存在著上述安全風(fēng)險(xiǎn),即傳統(tǒng)文件安全機(jī)制無法滿足Hypervisor動(dòng)態(tài)策略文件和存儲策略文件的完整性安全需求,因此,設(shè)計(jì)新的可解決上述安全風(fēng)險(xiǎn)的策略完整性安全機(jī)制是有意義的。
針對第1節(jié)所述安全風(fēng)險(xiǎn),本文提出了SHPI機(jī)制。該機(jī)制針對Hypervisor無法保障動(dòng)態(tài)策略文件的數(shù)據(jù)完整性的安全,采用數(shù)據(jù)校驗(yàn)算法對動(dòng)態(tài)策略文件進(jìn)行完整性校驗(yàn),以保障動(dòng)態(tài)策略文件的數(shù)據(jù)完整性。同時(shí),該機(jī)制針對Hypervisor無法保障普通用戶進(jìn)程空間所存儲策略文件的完整性安全,基于統(tǒng)一可擴(kuò)展固件[19](unified extensible firmware interface,稱UEFI固件),將系統(tǒng)策略文件存儲于UEFI固件中,以實(shí)現(xiàn)系統(tǒng)策略文件的安全存儲。
如前所述,與傳統(tǒng)文件安全機(jī)制所采用的策略文件存儲方案不同,SHPI機(jī)制將策略文件存儲于UEFI固件中,利用UEFI固件的安全特性[20]實(shí)現(xiàn)策略文件的安全存儲,并基于UEFI運(yùn)行時(shí)服務(wù)[20]實(shí)現(xiàn) Hypervisor安全獲取UEFI固件中策略文件的目標(biāo)。同時(shí),SHPI機(jī)制使用讀寫信號鎖機(jī)制實(shí)現(xiàn)SHPI機(jī)制與Hypervisor訪問控制機(jī)制之間相互獨(dú)立運(yùn)行,以增強(qiáng)Hypervisor的可靠性與可用性。另外,SHPI機(jī)制通過代理模塊使用MD5消息摘要算法[20]對動(dòng)態(tài)策略文件進(jìn)行完整性定時(shí)校驗(yàn),以保障動(dòng)態(tài)策略文件的完整性安全。并當(dāng)SHPI機(jī)制檢測到動(dòng)態(tài)策略文件被非法修改后,SHPI機(jī)制啟動(dòng)文件更新程序,以更新動(dòng)態(tài)策略文件,保障Hypervisor訪問控制機(jī)制使用可靠安全的策略文件。
SHPI機(jī)制的工作流程如圖2所示。
(1)校驗(yàn)。SHPI代理模塊定時(shí)校驗(yàn)動(dòng)態(tài)策略文件的數(shù)據(jù)完整性。
(2)查詢。若需要更新動(dòng)態(tài)策略文件庫,SHPI代理模塊則查詢系統(tǒng)策略文件庫。
(3)獲取。SHPI代理模塊獲取存儲于UEFI固件的系統(tǒng)策略文件。
(4)更新。SHPI代理模塊使用可信任的策略文件更新動(dòng)態(tài)策略文件庫。
圖2 SHPI機(jī)制工作流程
SHPI機(jī)制實(shí)現(xiàn)框架如圖3所示。
圖3 SHPI機(jī)制實(shí)現(xiàn)框架
SHPI機(jī)制由動(dòng)態(tài)策略文件庫、SHPI代理模塊和鉤子函數(shù)庫等3部分組成。動(dòng)態(tài)策略文件庫通過鉤子函數(shù)庫為Hypervisor提供策略快速查詢服務(wù),SHPI代理模塊用于保障動(dòng)態(tài)策略文件的數(shù)據(jù)完整性安全,同時(shí)在需要更新動(dòng)態(tài)策略文件庫時(shí)獲取UEFI固件中的系統(tǒng)策略文件,從而實(shí)現(xiàn)了固件級的策略存儲安全方案。
(1)SHPI代理模塊。SHPI代理模塊的策略校驗(yàn)子模塊 (圖3所示)采用MD5消息摘要算法對策略文件進(jìn)行完整性校驗(yàn),即通過比較動(dòng)態(tài)策略文件的MD5值與UEFI固件中策略文件的MD5值,判斷策略文件的完整性。若該模塊檢測到策略文件的完整性已被破壞,即策略文件被非法修改了,則SHPI代理模塊調(diào)用策略更新子模塊 (圖3所示)恢復(fù)動(dòng)態(tài)策略文件庫中的策略文件。同時(shí),由于SHPI機(jī)制將策略文件以系統(tǒng)配置信息的形式存儲于UEFI固件中,而不是用戶空間,SHPI代理模塊的策略查詢子模塊(圖3所示)使用UEFI運(yùn)行時(shí)服務(wù)安全地獲取UEFI固件中的策略文件。
(2)動(dòng)態(tài)策略文件庫。該模塊主要功能是提高Hypervisor訪問控制機(jī)制獲取策略文件的速度。SHPI機(jī)制修改并改進(jìn)了Hypervisor原有動(dòng)態(tài)策略文件庫的實(shí)現(xiàn),利用/proc文件系統(tǒng)建立動(dòng)態(tài)策略文件庫 (圖3所示)。動(dòng)態(tài)策略文件庫的建立由SHPI代理模塊的查詢子模塊負(fù)責(zé)構(gòu)建 (圖3所示)。系統(tǒng)啟動(dòng)初期,查詢子模塊調(diào)用UEFI運(yùn)行時(shí)服務(wù)從UEFI固件中加載策略源文件,并負(fù)責(zé)構(gòu)建一個(gè)/proc文件系統(tǒng)設(shè)備結(jié)點(diǎn),用于存儲所獲取的策略源文件,形成動(dòng)態(tài)策略文件庫。
(3)鉤子函數(shù)庫。由于SHPI機(jī)制將策略文件存儲于UEFI固件中,因此Hypervisor需采用新的策略查詢方法來查詢與獲取策略文件。SHPI機(jī)制修改了Hypervisor原有的策略查詢函數(shù) (圖3所示),實(shí)現(xiàn)了Hypervisor訪問控制機(jī)制查詢并獲取新的動(dòng)態(tài)策略文件庫中的策略文件等功能。
SHPI機(jī)制原型系統(tǒng)的性能測試硬件環(huán)境為Intel?CoreTM2Duo E6850 3.00GHZ,2GB RAM的工作站。軟件環(huán)境為Linux操作系統(tǒng),內(nèi)核版本為v3.4.10(其中內(nèi)核中與策略查詢相關(guān)的鉤子函數(shù)庫模塊已修改,如圖3所示鉤子函數(shù)庫),并啟動(dòng)了SELinux安全服務(wù)和關(guān)閉了其它不相關(guān)的服務(wù)。同時(shí),本文使用BluePill[21]程序攻擊 Hypervisor,以測試SHPI機(jī)制的性能。
如圖3所示,虛擬機(jī)n是一臺已被成功攻擊的虛擬機(jī),且虛擬機(jī)n的虛擬網(wǎng)卡驅(qū)動(dòng)程序中已被植入了BluePill攻擊代碼。當(dāng)虛擬機(jī)n試圖訪問實(shí)際網(wǎng)卡設(shè)備時(shí),虛擬網(wǎng)卡驅(qū)動(dòng)程序被載入Hypervisor內(nèi)核,導(dǎo)致BluePill程序獲得Hypervisor內(nèi)核空間的ring 0執(zhí)行權(quán)限。BluePill程序運(yùn)行后,使用非法的策略文件替換動(dòng)態(tài)策略文件庫中的策略文件。此時(shí),校驗(yàn)子模塊 (圖3所示)將及時(shí)檢測到動(dòng)態(tài)策略文件已被修改,同時(shí),通過獲取UEFI固件中可信任的策略并調(diào)用策略文件更新子模塊 (圖3所示),更新動(dòng)態(tài)策略文件庫的動(dòng)態(tài)策略文件。
如前所述,定時(shí)間隔是影響SHPI機(jī)制性能的主要因素,因此,本文測試了不同定時(shí)間隔下SHPI機(jī)制的性能指標(biāo)。采用Matlab程序?qū)y試數(shù)據(jù)進(jìn)行多項(xiàng)式函數(shù)擬合后的結(jié)果如圖4所示。隨著定時(shí)間隔時(shí)間延長,SHPI機(jī)制運(yùn)行開銷 (圖4所示虛線)逐步降低,系統(tǒng)性能 (圖4所示實(shí)線)將顯著提高。因此,定時(shí)間隔是影響SHPI機(jī)制的主要因素。虛擬化系統(tǒng)根據(jù)實(shí)際環(huán)境的安全需求,合理選擇合適的定時(shí)間隔,以實(shí)現(xiàn)策略安全與系統(tǒng)性能之間的合理平衡。
圖4 定時(shí)間隔、SHPI運(yùn)行開銷和系統(tǒng)性能之間的關(guān)系
實(shí)驗(yàn)結(jié)果表明,SHPI機(jī)制與現(xiàn)有的Hypervisor訪問控制機(jī)制,如SELinux安全機(jī)制,之間僅存在的沖突是二者的策略查詢函數(shù)獲取策略路徑不同。因此只需修改現(xiàn)有訪問控制機(jī)制查詢策略函數(shù)等相關(guān)模塊,即可將SHPI機(jī)制作為現(xiàn)有訪問控制機(jī)制的有效補(bǔ)充機(jī)制,并可實(shí)現(xiàn)存儲策略文件及動(dòng)態(tài)策略文件的完整性安全保障目標(biāo),以提高虛擬化系統(tǒng)的整體安全。
針對Hypervisor的傳統(tǒng)文件安全機(jī)制無法保障系統(tǒng)所存儲策略文件完整性安全及無法對動(dòng)態(tài)策略文件進(jìn)行完整性校驗(yàn)的不足,本文提出了SHPI機(jī)制。該機(jī)制基于UEFI固件,實(shí)現(xiàn)策略文件安全存儲于UEFI固件中,并使用完整性校驗(yàn)方法實(shí)現(xiàn)動(dòng)態(tài)策略文件完整性定時(shí)校驗(yàn)?zāi)繕?biāo),保障了動(dòng)態(tài)策略文件的完整性安全,提高了系統(tǒng)的安全性。下一步的工作重點(diǎn)是將SHPI機(jī)制應(yīng)用于云計(jì)算系統(tǒng)中,并基于UEFI固件的TCP/IP網(wǎng)絡(luò)協(xié)議棧,實(shí)現(xiàn)云計(jì)算系統(tǒng)服務(wù)器之間共享策略文件在云計(jì)算系統(tǒng)中的應(yīng)用安全。
[1]Rosenblum M,Garfinkel T.Virtual machine monitors:Current technology and future trends[J].Computer,2005,38(5):39-47.
[2]Bulygin Y,Samyde D.Chipset based approach to detect virtualization malware a.k.a.DeepWatch[EB/OL].[2008-06-07].Black Hat USA.http://www.mnm-team.org/pub/Fopras/frit08/PDF-Version/frit08.pdf.
[3]Wojtczuk R.Subverting the Xen hypervisor[EB/OL].[2008-08-07].http://invisiblethingslab.com/bh08/papers/part1-subverting_xen.pdf.
[4]Murray D G,Milos G,Hand S.Improving Xen security through disaggregation[C]//Proceedings of the Fourth ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments.ACM,2008:151-160.
[5]Xue H,Qing S,Zhang H.XEN virtual machine technology and its security analysis[J].Wuhan University Journal of Natural Sciences,2007,12 (1):159-162.
[6]Secunia.Vulnerability report:Xen 3.x[EB/OL].[2010-02-08].http://secunia.com/advisories/product/15863.
[7]Secunia.Vulnerability report:Vmware esx server 3.x[EB/OL].[2010-02-08].http://secunia.com/advisories/product/10757.
[8]Steinberg U,Kauer B.NOVA:A microhypervisor-based secure virtualization architecture[C]//Proceedings of the 5th European Conference on Computer Systems.ACM,2010:209-222.
[9]Shinagawa T,Eiraku H,Tanimoto K,et al.Bitvisor:A thin hypervisor for enforcing i/o device security[C]//Proceedings of the ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments.ACM,2009:121-130.
[10]Wang J,Stavrou A,Ghosh A.HyperCheck:A hardwareassisted integrity monitor[C]//Recent Advances in Intrusion Detection.Springer Berlin Heidelberg,2010:158-177.
[11]Wojtczuk R,Rutkowska J,Tereshkin A.Xen 0wning trilogy:Code and demos[EB/OL].[2008-08-07].http://invisiblethingslab.com/resources/bh08/.
[12]Azab A M,Ning P,Wang Z,et al.HyperSentry:Enabling stealthy in-context measurement of hypervisor integrity[C]//Proceedings of the 17th ACM Conference on Computer and Communications Security.ACM,2010:38-49.
[13]McCune J M,Li Y,Qu N,et al.TrustVisor:Efficient TCB reduction and attestation[C]//IEEE Symposium on Security and Privacy.IEEE,2010:143-158.
[14]Petroni N L,F(xiàn)raser T,Molina J,et al.Copilot-a coprocessor-based kernel runtime integrity monitor[C]//Proceedings of the 13th USENIX Security Symposium.San Diego,CA,USA:USENIX Press,2004:13-13.
[15]Klein G.The L4.verified project-next steps[M].Verified Software:Theories,Tools,Experiments.Springer Berlin Heidelberg,2010:86-96.
[16]Kivity A,Kamay Y,Laor D,et al.KVM:The Linux virtual machine monitor[C]//Proceedings of the Linux Symposium,2007:225-230.
[17]Morris J.sVirt:Hardening Linux virtualization with mandatory access control[C]//Linux conf au Conference,2009.
[18]Stephan M.KVM security comparison[EB/OL].[2009-09-01].http://www.redhat.com/rhecm/rest-rhecm/jcr/repository/collaboration/jcr:system/jcr:versionStorage/5e795dff7f0-00001573402592ed22d4b/56/jcr:frozenNode/rh:pdfFile.pdf.
[19]Zimmer V,Rothman M,Hale R.Beyond BIOS:Implementing the unified extensible firmware interface with intel’s framework[M].Intel Press,2006.
[20]Rivest R.The MD5message-digest algorithm[EB/OL].[1992-04-15].http://http://tools.ietf.org/html/rfc1321.
[21]Rutkowska J.Introducing blue pill[EB/OL].[2006-06-22].http://theinvisiblethings.blogspot.com/2006/06/introducingblue-pill.html.