張 磊,陳興蜀,劉 亮,李 輝
?
基于虛擬機(jī)的內(nèi)核完整性保護(hù)技術(shù)
張 磊1,陳興蜀1,劉 亮2,李 輝1
(1. 四川大學(xué)計(jì)算機(jī)學(xué)院 成都 610065;2. 四川大學(xué)電子信息學(xué)院 成都 610065)
針對(duì)云計(jì)算中客戶虛擬機(jī)內(nèi)核完整性面臨的威脅,該文提出了一種保護(hù)虛擬機(jī)內(nèi)核完整性的技術(shù)—CTVM。該技術(shù)在KVM虛擬機(jī)環(huán)境中實(shí)現(xiàn)了虛擬化可信執(zhí)行環(huán)境的創(chuàng)建,使多個(gè)客戶虛擬機(jī)同時(shí)擁有可信計(jì)算功能,能對(duì)客戶虛擬機(jī)提供啟動(dòng)完整性度量;在此基礎(chǔ)上利用硬件輔助虛擬化技術(shù),通過為客戶虛擬機(jī)構(gòu)造隔離的地址空間,使客戶虛擬機(jī)中不可信模塊與內(nèi)核運(yùn)行在邏輯隔離的地址空間。從這兩個(gè)方面實(shí)現(xiàn)對(duì)客戶虛擬機(jī)的啟動(dòng)和運(yùn)行時(shí)的完整性保護(hù)。最后,以某國產(chǎn)服務(wù)器為實(shí)驗(yàn)平臺(tái)實(shí)現(xiàn)了CTVM原型系統(tǒng),系統(tǒng)測(cè)試與分析驗(yàn)證了技術(shù)的可用性,系統(tǒng)性能損耗在可接受的范圍內(nèi)。
完整性; 內(nèi)核; KVM; 可信計(jì)算; 虛擬機(jī)
用戶使用云計(jì)算平臺(tái)時(shí),主要擔(dān)心自己的數(shù)據(jù)和計(jì)算資源受到安全威脅:1) 在多租戶共享計(jì)算資源的模式下,用戶資源可能受到來自其他惡意用戶的威脅;2) 用戶可能遭到不可信云平臺(tái)管理者發(fā)起的內(nèi)部攻擊。為實(shí)現(xiàn)云計(jì)算平臺(tái)的資源虛擬化和管理,平臺(tái)提供商廣泛使用VMware、KVM和XEN等虛擬機(jī)監(jiān)視器(virtual machine monitor, VMM)軟件。目前這些軟件都使用虛擬機(jī)對(duì)用戶提供隔離機(jī)制,可以限制虛擬機(jī)之間的訪問,但為了便于前后端驅(qū)動(dòng)傳遞數(shù)據(jù),VMM同時(shí)提供了虛擬機(jī)之間的內(nèi)存共享機(jī)制,這可能被惡意虛擬機(jī)利用。另外,VMM和管理工具通常處于特權(quán)域的控制中,不可信的云平臺(tái)提供者或管理員可借助特權(quán)域的特權(quán)獲取用戶的隱私或破壞客戶虛擬機(jī)(guest virtual machine, GVM)的完整性[1-2]。
目前,已經(jīng)有很多研究關(guān)注GVM的安全問題。Overshadow[3]基于虛擬化技術(shù),采用對(duì)所有內(nèi)存頁加密的方法來保護(hù)用戶的隱私性。而CHAOS[4]采用頁表隱藏的方式,對(duì)I/O頁面進(jìn)行加密,性能更好。Inktag[5]在不可信的操作系統(tǒng)中基于虛擬化技術(shù)保護(hù)關(guān)鍵應(yīng)用。CloudVisor[6]在假設(shè)特權(quán)域不可信的情況下,使用嵌套虛擬化技術(shù)[7],將安全防護(hù)和資源管理進(jìn)行分離,對(duì)VMM與VMs之間的交互實(shí)施仲裁,從而實(shí)現(xiàn)對(duì)GVM的隱私性保護(hù)和完整性驗(yàn)證。文獻(xiàn)[8]基于Xen設(shè)計(jì)和實(shí)現(xiàn)了一種可信的VMM,用戶可按照完整性要求保存敏感數(shù)據(jù),只允許信任程序訪問。并在Xen中設(shè)計(jì)實(shí)現(xiàn)了虛擬可信計(jì)算模塊(virtual trusted platform module, VTPM),可為每個(gè)虛擬機(jī)創(chuàng)建一個(gè)VTPM實(shí)例,具有和硬件TPM[8]一致的功能。文獻(xiàn)[9]提出了一種基于UEFI的虛擬機(jī)動(dòng)態(tài)安全度量框架,對(duì)系統(tǒng)的基礎(chǔ)設(shè)施進(jìn)行實(shí)時(shí)、動(dòng)態(tài)的安全度量,提供傳統(tǒng)可信技術(shù)無法達(dá)到的動(dòng)態(tài)保護(hù)。目前部分研究工作基于可信計(jì)算技術(shù)實(shí)現(xiàn)了對(duì)宿主機(jī)和虛擬機(jī)的靜態(tài)和動(dòng)態(tài)度量,能提供遠(yuǎn)程可信驗(yàn)證機(jī)制,但在虛擬機(jī)中利用可信計(jì)算保護(hù)內(nèi)核完整性的技術(shù)還相對(duì)較少,并且完整性度量可發(fā)現(xiàn)破壞完整性的行為,卻不能對(duì)攻擊行為采取隔離措施。
針對(duì)上述問題,本文提出了一種CTVM的KVM虛擬機(jī)內(nèi)核完整性保護(hù)技術(shù),在啟動(dòng)和運(yùn)行時(shí)對(duì)云計(jì)算平臺(tái)中GVM的完整性提供保護(hù)。
1.1 威脅模型和假設(shè)
在多租戶的云計(jì)算環(huán)境中,平臺(tái)的可信性和惡意攻擊是用戶主要關(guān)注的安全問題[9]。傳統(tǒng)的可信計(jì)算技術(shù)可保證宿主機(jī)操作系統(tǒng)的可信啟動(dòng),并能提供完整性度量值和遠(yuǎn)程驗(yàn)證功能,但物理主機(jī)可信不代表GVM的可信,尤其是運(yùn)行過程中GVM的完整性可能遭到破壞。由于虛擬機(jī)通常采用商用操作系統(tǒng),內(nèi)核完整性容易遭到破壞,攻擊者可通過獲取超級(jí)管理員權(quán)限對(duì)內(nèi)核進(jìn)行Rootkit注入,也可利用操作系統(tǒng)中設(shè)備驅(qū)動(dòng)的漏洞,還可加載沒有通過驗(yàn)證的內(nèi)核模塊。惡意代碼有多種方法破壞內(nèi)核的控制流和數(shù)據(jù)完整性,例如:直接修改內(nèi)核代碼、修改控制數(shù)據(jù)(系統(tǒng)調(diào)用表、中斷描述符表和函數(shù)指針)、修改非控制數(shù)據(jù)(進(jìn)程描述符和文件系統(tǒng)元數(shù)據(jù))、利用惡意代碼直接存儲(chǔ)器訪問請(qǐng)求寫入內(nèi)核空間、控制系統(tǒng)堆棧(return-oriented attacks)[10]。因此,本文主要針對(duì)的安全威脅是虛擬機(jī)的可信執(zhí)行和內(nèi)核完整性問題。
在CTVM的設(shè)計(jì)中,假設(shè)平臺(tái)提供者為了市場(chǎng)聲譽(yù)和占有率而積極保護(hù)用戶數(shù)據(jù)安全,可認(rèn)為它是可信的,并且不考慮來自平臺(tái)提供者機(jī)房的物理攻擊。為了構(gòu)建可信的內(nèi)核虛擬機(jī)計(jì)算環(huán)境,假設(shè)用于部署虛擬機(jī)的物理主機(jī)上都配置有硬件TPM,可信計(jì)算組織(trusted computing group, TCG)曾指出TPM芯片可用于驗(yàn)證硬件設(shè)備[8]。文獻(xiàn)[11]介紹了如何使用TPM構(gòu)建可信計(jì)算基,而利用Intel的可信執(zhí)行技術(shù)(trusted execution technology, TXT)可實(shí)現(xiàn)靜態(tài)和動(dòng)態(tài)的度量[12],本文利用TXT度量宿主機(jī)啟動(dòng)和關(guān)鍵安全模塊的完整性。
1.2 設(shè)計(jì)目標(biāo)
基于上述安全威脅,CTVM的設(shè)計(jì)目標(biāo)包括虛擬可信執(zhí)行環(huán)境和虛擬機(jī)內(nèi)核完整性保護(hù)。
在內(nèi)核虛擬機(jī)中創(chuàng)建可信計(jì)算環(huán)境,將信任鏈從宿主機(jī)傳遞到虛擬機(jī),使內(nèi)核虛擬機(jī)具有與宿主機(jī)功能一致的可信計(jì)算環(huán)境,從而保護(hù)GVM的啟動(dòng)完整性,并為GVM提供基于可信計(jì)算的安全功能。進(jìn)一步實(shí)現(xiàn)對(duì)GVM執(zhí)行環(huán)境的可信驗(yàn)證機(jī)制以及類似(trusted virtual datacenter, TVDc)[13]的多層可信域分層模型,本文暫不對(duì)這些方面進(jìn)行描述。
GVM運(yùn)行時(shí)可能有意或無意加載不可信內(nèi)核模塊。針對(duì)這類安全威脅,在宿主機(jī)和虛擬機(jī)可信啟動(dòng)的基礎(chǔ)上,基于硬件輔助虛擬化技術(shù),CTVM系統(tǒng)對(duì)虛擬機(jī)內(nèi)核與不可信模塊進(jìn)行地址空間邏輯隔離,限制不可信模塊對(duì)內(nèi)核代碼及數(shù)據(jù)的訪問,實(shí)現(xiàn)對(duì)平臺(tái)運(yùn)行過程中的內(nèi)核完整性保護(hù)。
1.3 總體架構(gòu)
CTVM架構(gòu)如圖1所示。
圖1 CTVM架構(gòu)
該系統(tǒng)分為監(jiān)視代理、虛擬機(jī)內(nèi)核保護(hù)模塊和VTPM功能模塊。輕量級(jí)的監(jiān)視代理被部署于GVM,是一種可集成到類似VMware tools的驅(qū)動(dòng)模塊;虛擬機(jī)內(nèi)核保護(hù)模塊位于KVM代碼中;VTPM位于QEMU的組件中,為GVM提供與物理TPM一致的可信計(jì)算功能,同時(shí)為系統(tǒng)提供啟動(dòng)完整性驗(yàn)證。
1) 監(jiān)視代理模塊
監(jiān)視代理模塊(monitor agent module, MAM)是一個(gè)輕量級(jí)的信息獲取模塊,其功能是在GVM中動(dòng)態(tài)收集模塊地址信息,為KVM中的安全模塊與虛擬機(jī)提供通信功能,便于安全模塊準(zhǔn)確解析上層虛擬機(jī)內(nèi)部信息,在虛擬機(jī)內(nèi)核保護(hù)模塊提供監(jiān)視與隔離功能時(shí),解決虛擬機(jī)與KVM之間的地址語義鴻溝問題。
2) 虛擬機(jī)內(nèi)核保護(hù)模塊
虛擬機(jī)內(nèi)核保護(hù)模塊與MAM一起工作,對(duì)內(nèi)核的不可信模塊進(jìn)行隔離,使不可信模塊和內(nèi)核運(yùn)行在相互隔離的地址空間,可根據(jù)安全策略監(jiān)視模塊運(yùn)行過程中是否存在違反安全策略的行為。模塊包括兩個(gè)子模塊:①模塊地址空間創(chuàng)建子模塊(address space creating module, ASCM),用于KVM中隔離地址空間的創(chuàng)建;②地址空間切換與授權(quán)子模塊(address space authorization module, ASAM),其功能是完成虛擬機(jī)內(nèi)核與模塊之間的地址空間切換和授權(quán)操作。
3) VTPM功能模塊
VTPM功能模塊主要是在QEMU中實(shí)現(xiàn)對(duì)TPM的軟件模擬,作為虛擬機(jī)TPM TIS驅(qū)動(dòng)與QEMU虛擬TIS前端通信時(shí)的后端支持,并集成滿足TCG- BIOS擴(kuò)展規(guī)范的虛擬BIOS功能,使每臺(tái)GVM擁有獨(dú)立訪問的VTPM,可利用IBM IMA[14]實(shí)現(xiàn)對(duì)虛擬機(jī)系統(tǒng)的啟動(dòng)完整性度量、文件加密等可信計(jì)算相關(guān)的功能。另外,由于監(jiān)視代理自身安全性也面臨威脅,可在虛擬機(jī)中利用VTPM對(duì)MAM進(jìn)行啟動(dòng)完整性驗(yàn)證,而KVM中的安全模塊則可由宿主機(jī)的物理TPM提供驗(yàn)證功能。
4) 模塊運(yùn)行方式
系統(tǒng)啟動(dòng)后,宿主機(jī)內(nèi)核和安全模塊的啟動(dòng)完整性由物理TPM驗(yàn)證,而GVM內(nèi)核與監(jiān)視代理的啟動(dòng)完整性可由QEMU分配的VTPM驗(yàn)證。完成可信啟動(dòng)后,MAM模塊將在虛擬機(jī)生命周期內(nèi)監(jiān)視模塊加載操作,加載不可信模塊時(shí),MAM將搜集該模塊的虛擬內(nèi)存信息,并將這些信息通過超級(jí)調(diào)用傳遞給KVM。KVM中的ASCM接收到模塊地址信息后,為不可信模塊創(chuàng)建一套extended page table(EPT),使其運(yùn)行在獨(dú)立地址空間,并完成地址映射操作。之后的運(yùn)行過程由ASAM完成地址空間切換和授權(quán),使不可信模塊始終運(yùn)行在隔離的地址空間。
2.1 虛擬可信執(zhí)行環(huán)境
虛擬可信執(zhí)行環(huán)境的構(gòu)造主要依賴于VTPM對(duì)虛擬機(jī)的支持,即在虛擬機(jī)中能訪問具有可信計(jì)算功能的模塊,該模塊可以是軟件也可以是硬件。本文在實(shí)現(xiàn)過程中,嘗試了穿透模式和軟件模擬兩種方法。
1) 穿透模式
在QEMU-KVM的虛擬化環(huán)境中,以原版1.7.1的QEMU為例,若宿主機(jī)配置有硬件TPM模塊,QEMU可以為虛擬機(jī)提供穿透驅(qū)動(dòng)的模式訪問TPM,即在GVM中可以訪問到宿主機(jī)配置的物理TPM,穿透模式如圖2所示。
虛擬機(jī)通過TPM TIS驅(qū)動(dòng)通知QEMU模擬的TPM TIS前端,再由模擬的TPM TIS與宿主機(jī)的/dev/tpm0通信。但這種方式屬于獨(dú)占式訪問,宿主機(jī)上的TPM不能與其他GVM共享,甚至當(dāng)GVM訪問TPM時(shí),宿主機(jī)操作系統(tǒng)也不能訪問物理TPM。
圖2 穿透模式
2) 軟件模擬
由于穿透模式的共享問題不適合多臺(tái)虛擬機(jī)都有TPM需求的應(yīng)用場(chǎng)景,本文的CTVM系統(tǒng)以軟件模擬的方式構(gòu)造虛擬可信執(zhí)行環(huán)境,軟件模擬如圖3所示。
圖3 軟件模擬
與穿透模式不同,軟件模擬可模擬出多個(gè)VTPM實(shí)例,滿足多臺(tái)虛擬機(jī)同時(shí)擁有VTPM的需求。圖3中物理TPM可以滿足宿主機(jī)的可信計(jì)算需求,保證宿主機(jī)和安全模塊的啟動(dòng)完整性,將安全模塊加入到啟動(dòng)度量列表后,系統(tǒng)還能提供宿主機(jī)和安全模塊的啟動(dòng)完整性度量結(jié)果。多臺(tái)虛擬機(jī)對(duì)VTPM的需求主要依靠軟件模擬實(shí)現(xiàn)。利用libtpms軟件庫作為VTPM的后端,在QEMU的代碼中加入libtpms、虛擬機(jī)NVRAM、虛擬BIOS支持后,即可為多臺(tái)虛擬機(jī)同時(shí)提供VTPM。虛擬NVRAM的作用是提供一個(gè)存儲(chǔ)TPM NVRAM值的可持續(xù)鏡像文件,避免系統(tǒng)重啟后丟失VTPM的特征信息(如endorsement key, owner password等)。seaBIOS滿足TCG BIOS擴(kuò)展規(guī)范,可以初始化VTPM,并為虛擬機(jī)提供可操作TPM狀態(tài)的虛擬機(jī)BIOS界面。
2.2 虛擬機(jī)內(nèi)核模塊隔離
在CTVM系統(tǒng)中,對(duì)虛擬機(jī)不可信模塊的隔離依靠兩種技術(shù):創(chuàng)建隔離地址空間和地址空間切換。
1) 創(chuàng)建隔離地址空間
本文借助硬件輔助虛擬化技術(shù),客戶代理傳入被隔離模塊的地址信息后,由KVM為不可信模塊單獨(dú)創(chuàng)建一套EPT(MEPT),使其運(yùn)行在獨(dú)立的地址空間內(nèi)。MEPT只保存模塊自身代碼和數(shù)據(jù)的映射關(guān)系,并去除虛擬機(jī)內(nèi)核EPT(KEPT)中隔離模塊所在內(nèi)存頁的可執(zhí)行權(quán)限,內(nèi)核和模塊EPT權(quán)限設(shè)置如圖4所示。
圖4 內(nèi)核和模塊EPT權(quán)限設(shè)置
圖中,kernel code表示GVM的內(nèi)核代碼段;module code表示GVM的模塊代碼段;kernel data表示GVM的內(nèi)核數(shù)據(jù)段;module data表示GVM的模塊數(shù)據(jù)段;R、W和X分別對(duì)應(yīng)讀、寫和執(zhí)行3種權(quán)限。
執(zhí)行流程在內(nèi)核和模塊之間切換時(shí)會(huì)觸發(fā)EPT violation并陷入到KVM中,后續(xù)工作中可在這里建立訪問控制機(jī)制,監(jiān)控那些引起控制流轉(zhuǎn)移的GVM地址。另外,當(dāng)模塊需要訪問內(nèi)核數(shù)據(jù)時(shí),可以內(nèi)存頁為單位進(jìn)行授權(quán),若模塊對(duì)該內(nèi)存頁有訪問權(quán)限,則將其映射進(jìn)模塊地址空間。
2) 地址空間切換
GVM在運(yùn)行過程中,內(nèi)核需與被隔離模塊彼此交互,該過程會(huì)引起控制流在內(nèi)核與模塊之間轉(zhuǎn)移,KVM需同步切換到對(duì)應(yīng)頁表,以便GVM能正常尋址內(nèi)存。切換前,KVM需保證頁表切換后,GVM能正常運(yùn)行。所以每次頁表切換時(shí),KVM需查詢對(duì)方頁表,確認(rèn)存在GPA(引發(fā)當(dāng)前EPT violation的GVM物理地址)到HPA(宿主機(jī)物理地址)的映射關(guān)系,且權(quán)限是可執(zhí)行的。
實(shí)際運(yùn)行中,KEPT可能未與部分模塊內(nèi)存頁建立映射關(guān)系,此時(shí)根據(jù)KEPT建立起的MEPT并不完整。當(dāng)由此觸發(fā)EPTviolation時(shí),查詢KEPT便會(huì)發(fā)生映射缺失,需根據(jù)實(shí)際情況做如下處理:
1) 若當(dāng)前頁表為MEPT,需先切換到KEPT,再交給KVM的EPT violation處理函數(shù)處理,最后將建立的映射關(guān)系映射到MEPT中并切換到MEPT頁表;
2) 若當(dāng)前頁表為KEPT,則直接將執(zhí)行流程交給KVM的EPT violation處理函數(shù)處理,隨后將對(duì)應(yīng)映射關(guān)系映射到MEPT頁表。
在建立對(duì)應(yīng)MEPT的映射項(xiàng)目時(shí),需去除對(duì)應(yīng)KEPT中頁表項(xiàng)的可執(zhí)行權(quán)限??紤]到大內(nèi)存頁以及混合內(nèi)存頁的存在,同一內(nèi)存頁中可能同時(shí)包含代碼與數(shù)據(jù),該內(nèi)存頁在KEPT中的映射關(guān)系必然包含可執(zhí)行權(quán)限。當(dāng)模塊訪問內(nèi)核數(shù)據(jù)時(shí),采用最小權(quán)限的方式將對(duì)應(yīng)內(nèi)存頁映射進(jìn)MEPT中。若被訪問內(nèi)存頁包含可執(zhí)行權(quán)限,則其對(duì)應(yīng)的MEPT映射將去除可執(zhí)行位。這樣可保證MEPT中擁有執(zhí)行權(quán)限的只有模塊代碼本身,模塊在調(diào)用其他代碼時(shí)會(huì)因?yàn)楫a(chǎn)生EPT violation而被KVM捕獲。
為驗(yàn)證CTVM系統(tǒng)的可用性,本文對(duì)虛擬可信執(zhí)行環(huán)境和內(nèi)核完整性保護(hù)技術(shù)進(jìn)行了測(cè)試。CTVM原型系統(tǒng)的配置信息如表1所示。
表1 CTVM原型系統(tǒng)的配置信息
宿主機(jī)操作版本為CentOS6.5 64位,內(nèi)核版本為3.10.1,QEMU版本為1.7.1,GVM采用Linux發(fā)行版本Fedora14進(jìn)行了測(cè)試。
3.1 功能測(cè)試
1) 虛擬可信執(zhí)行環(huán)境測(cè)試
安裝虛擬機(jī)系統(tǒng)前,使用qemu-img創(chuàng)建qcow2格式的虛擬機(jī)存儲(chǔ)鏡像和VTPM NVRAM鏡像,隨后使用qemu-system-x86_64創(chuàng)建和啟動(dòng)帶VTPM的可信虛擬機(jī),第一次啟動(dòng)虛擬機(jī)時(shí)創(chuàng)建VTPM,生成Endorsement Key,初始化NVRAM并添加證書。虛擬機(jī)啟動(dòng)后,宿主機(jī)TPM和虛擬機(jī)VTPM的使用情況如圖5所示。
在內(nèi)核為3.10.1的宿主機(jī)上啟動(dòng)了fedora虛擬機(jī),通過vncviewer鏈接到虛擬機(jī)桌面,虛擬機(jī)具有/dev/tpm0設(shè)備,并且圖中可看到部分啟動(dòng)完整性度量信息。若虛擬機(jī)啟動(dòng)命令行中添加了boot菜單開啟選項(xiàng),將在啟動(dòng)過程中看到seaBIOS的控制界面,進(jìn)入虛擬機(jī)操作系統(tǒng)安裝可信軟件棧和tpm-tools后,可像物理TPM一樣查看和操作VTPM。
2) 模塊隔離測(cè)試
對(duì)模塊隔離功能主要測(cè)試了地址空間的創(chuàng)建和切換,當(dāng)模塊加載到GVM內(nèi)核時(shí),由MAM獲取模塊地址信息,通過超級(jí)調(diào)用傳到KVM層,由虛擬機(jī)內(nèi)核保護(hù)模塊創(chuàng)建MEPT,使模塊運(yùn)行在隔離的地址空間。測(cè)試過程中,加載的模塊大小為34 672Byte,而宿主機(jī)每個(gè)物理內(nèi)存頁的大小為4 KB,所以宿主機(jī)為模塊分配了9個(gè)物理內(nèi)存,并在MEPT中建立了映射,創(chuàng)建和映射模塊地址空間如圖6所示。
圖6 創(chuàng)建和映射模塊地址空間
圖7 內(nèi)核和模塊地址空間切換
隔離的地址空間創(chuàng)建后,可對(duì)模塊的行為進(jìn)行監(jiān)控,確保GVM內(nèi)核函數(shù)入口的正確性,并防止內(nèi)核敏感數(shù)據(jù)被修改。由于將內(nèi)核和不可信模塊各自的代碼和數(shù)據(jù)進(jìn)行了地址空間隔離,當(dāng)模塊調(diào)用內(nèi)核函數(shù)或修改敏感數(shù)據(jù)時(shí),由于內(nèi)核模塊的權(quán)限設(shè)置,虛擬機(jī)會(huì)產(chǎn)生缺頁錯(cuò)誤并被KVM捕獲,執(zhí)行地址空間切換過程,KVM中的ASAM可根據(jù)產(chǎn)生切換的原因進(jìn)行相應(yīng)的操作,內(nèi)核和模塊地址空間切換如圖7所示。
3.2 性能測(cè)試
由于VTPM的啟動(dòng)時(shí)間包含在GVM系統(tǒng)啟動(dòng)時(shí)間內(nèi),與不使用VTPM的啟動(dòng)時(shí)間相比,幾乎沒有在差別,所以本文使用Unixbench 5.1.2軟件,主要宿主機(jī)添加安全模塊后對(duì)GVM的性能損耗進(jìn)行了測(cè)試,CTVM原型系統(tǒng)性能測(cè)試如表2所示。
表2 CTVM原型系統(tǒng)性能測(cè)試
表中,第2、3列的數(shù)值越大性能越好,性能損耗率=(未加載安全模塊-加載安全模塊)/未加載安全模塊。從整體性能看,加載CTVM安全模塊后GVM的性能損耗在10%以內(nèi)。其中,管道上下文切換的性能損耗比較明顯,主要原因是隔離區(qū)域與非隔離區(qū)域轉(zhuǎn)換產(chǎn)生的上下文切換以及異常處理造成的性能損耗,但不會(huì)對(duì)GVM的性能產(chǎn)生明顯影響。
本文提出了一種保護(hù)虛擬機(jī)內(nèi)核完整性的技術(shù)CTVM。在KVM虛擬化環(huán)境中利用libtpms為GVM實(shí)現(xiàn)了VTPM,并為GVM創(chuàng)建了可獨(dú)立使用的可信計(jì)算環(huán)境。在虛擬機(jī)內(nèi)核可信啟動(dòng)的基礎(chǔ)上,針對(duì)運(yùn)行時(shí)的內(nèi)核完整性提出了兩套EPT機(jī)制,為不可信模塊創(chuàng)建隔離的運(yùn)行空間,可動(dòng)態(tài)監(jiān)控模塊的行為,防止GVM內(nèi)核完整性遭到破壞。實(shí)驗(yàn)結(jié)果表明,CTVM原型系統(tǒng)可實(shí)現(xiàn)虛擬可信執(zhí)行環(huán)境的創(chuàng)建,能為不可信模塊創(chuàng)建隔離地址空間并監(jiān)視模塊的執(zhí)行,安全模塊的添加對(duì)系統(tǒng)整體性能的影響控制在可接受范圍內(nèi)。下一步的工作目標(biāo)是KVM虛擬化環(huán)境中的TVDc創(chuàng)建,并對(duì)運(yùn)行時(shí)內(nèi)核完整性保護(hù)技術(shù)進(jìn)行優(yōu)化,添加較為完整的安全控制策略。
[1] ROCHA F, CORREIA M. Lucy in the sky without diamonds: Stealing confidential data in the cloud[C]//2011 IEEE/IFIP 41st International Conference on Dependable Systems and Networks Workshops(DSN-W). Hong Kong, China: IEEE, 2011.
[2] DOLAN-GAVITT B, LEEK T, ZHIVICH M, et al. Virtuoso: Narrowing the semantic gap in virtual machine introspection [C]//2011 IEEE Symposium on Security and Privacy (SP). Berkeley, CA: IEEE, 2011.
[3] CHEN X, GARFINKEL T, LEWIS E C, et al. Overshadow: a virtualization-based approach to retrofitting protection in commodity operating systems[C]//Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating System. New York, USA: ACM, 2008.
[4] CHEN H, CHEN J, MAO W, et al. Daonity-grid security from two levels of virtualization[J]. Information Security Technical Report, 2007, 12(3): 123-138.
[5] HOFMANN O S, KIM S, DUNN A M, et al. Inktag: Secure applications on an untrusted operating system[J]. ACM SIGPLAN Notices, 2013, 48(4): 265-278.
[6] ZHANG F, CHEN J, CHEN H, et al. Cloudvisor: Retrofitting protection of virtual machines in multi-tenant cloud with nested virtualization[C]//Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles. New York, USA: ACM, 2011.
[7] BEN-YEHUDA M, DAY M D, DUBITZKY Z, et al. The turtles project: Design and implementation of nested virtualization[C]//9th USENIX Symposium on Operation Systems Design and Implementation(OSDI’10). Vancouver, BC: USENIX Association, 2010.
[8] TOMLINSON A. Smart cards, tokens, security and applications[M]. New York, USA: Springer, 2008.
[9] KORKL, JAGADPRAMANA P, MOWBRAY M, et al. Trustcloud: a framework for accountability and trust in cloud computing[C]//2011 IEEE World Congress on Services. Washington, USA: IEEE, 2011.
[10] SRIVASTAVA A, GIFFIN J T. Efficient monitoring of untrusted kernel-mode execution[C]//18th Annual Network & Distributed System Security Symposium. San Diego, USA: The Internet Society NDSS, 2011.
[11] GARFINKEL T, PFAFF B, CHOW J, et al. Terra: a virtual machine-based platform for trusted computing[C]// Proceedings of the nineteenth ACM symposium on Operating systems principles. New York, USA: ACM, 2003.
[12] GEBHARDT C, DALTON C I, BROWN R. Preventing hypervisor-based rootkits with trusted execution technology[J]. Network Security, 2008, 8(11): 7-12.
[13] BERGER S, CACERES R, PENDARAKIS D, et al. TVDc: Managing security in the trusted virtual datacenter[J]. ACM SIGOPS Operating Systems Review, 2008, 42(1): 40-47.
[14] SAILER R, ZHANG X, JAEGER T, et al. Design and implementation of a TCG-based integrity measurement architecture[C]//Proceedings of the 13th USENIX Security Symposium. San Diego, USA: USENIX Association, 2004.
編 輯 葉 芳
A Kernel Integrity Protection Technology Based on Virtual Machine
ZHANG Lei1, CHEN Xing-shu1, LIU Liang2, and LI Hui1
(1. School of Computer Science, Sichuan University Chengdu 610065; 2. School of Electronics and Information Engineering, Sichuan University Chengdu 610065)
For the kernel integrity threats of virtual machine in cloud computing environment, an integrity protecting technology of virtual machine kernel, cloud trusted virtual machine(CTVM ), is proposed. In the CTVM, the virtual trusted execution environment in kernel-based virtual machine(KVM) is created, the multiple virtual machines are endowed with a trusted computing function at the same time, and the guest virtual machines are provided with integrity measurement ability. By utilizing hardware virtualization technology, the untrusted kernel modules are isolated from operating system kernel through constructing isolated address space in guest virtual machines, so as to protect the booting integrity and runtime integrity of guest virtual machines. Finally, with a domestic server as the experimental platform, CTVM prototype system is presented. System test and analysis show that the system performance loss is within the acceptable range.
integrity; kernel; KVM; trusted computing; virtual machine
TP309
A
10.3969/j.issn.1001-0548.2015.01.020
2014-02-10;
2014-11-25
國家自然科學(xué)基金(61272447);國家科技支撐計(jì)劃(2012BAH18B05)
張磊(1983-),男,博士生,主要從事信息安全、云計(jì)算和可信計(jì)算方面的研究.