周英+謝旭徽+李志華
摘 要:針對(duì)云平臺(tái)運(yùn)行面臨的安全威脅,傳統(tǒng)面向啟動(dòng)過程保護(hù)的可信硬件技術(shù)不能提供足夠的保障。為保障虛擬機(jī)監(jiān)控器(Virtual Machine Monitor, VMM)的安全,提出一種基于統(tǒng)一可擴(kuò)展固件接口(Unified Extensible Firmware Interface, UEFI)的VMM動(dòng)態(tài)可信監(jiān)控基框架HyperSpector。該框架以UEFI固件為可信基,對(duì)VMM動(dòng)態(tài)進(jìn)行實(shí)時(shí)度量,相對(duì)于傳統(tǒng)防護(hù)措施,提供更加安全可信的動(dòng)態(tài)防護(hù)。依照該框架,構(gòu)建一個(gè)面向Xen虛擬化軟件的UEFI動(dòng)態(tài)可信監(jiān)控原型系統(tǒng)。實(shí)驗(yàn)表明,該框架不僅能夠?qū)崟r(shí)監(jiān)測(cè)到針對(duì)虛擬化軟件的攻擊,而且不影響用戶使用,同時(shí)達(dá)到了保障虛擬機(jī)監(jiān)控器安全的目的。
關(guān)鍵詞:云計(jì)算;VMM;可信計(jì)算;UEFI;云安全
DOIDOI:10.11907/rjdk.162167
中圖分類號(hào):TP309
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-7800(2016)012-0150-03
0 引言
云計(jì)算具有低成本、靈活的特點(diǎn),越來越多的企業(yè)將服務(wù)部署到云平臺(tái)上。與此同時(shí),針對(duì)云環(huán)境的安全事件層出不窮,2013年,Evernote遭到入侵,威脅到約5千萬用戶的數(shù)據(jù)安全。2015年3月,Xen發(fā)布嚴(yán)重安全漏洞,攻擊者可以通過該漏洞獲得Xen的最高權(quán)限。很多云計(jì)算運(yùn)營(yíng)商(如亞馬遜)停機(jī)修復(fù)該漏洞,給用戶帶來了嚴(yán)重?fù)p失。National Vulnerability Database報(bào)告顯示,著名的虛擬機(jī)監(jiān)控器Xen和VMWare ESX分別至少有73和30個(gè)漏洞,還有更多的虛擬機(jī)(Virtual Machine,VM)逃逸攻擊、VM穿透攻擊和VM rootkits等安全威脅,并且還在不斷升級(jí)更新中。這些安全問題引起了服務(wù)提供商與云客戶對(duì)云計(jì)算應(yīng)用前景的擔(dān)憂。Gartner的分析報(bào)告表明,云安全是阻礙云計(jì)算發(fā)展的關(guān)鍵因素,因此研究云計(jì)算安全的意義重大。
1 云虛擬機(jī)安全
云安全問題引起學(xué)術(shù)界和工業(yè)界極大興趣,目前解決云計(jì)算安全問題的方法有運(yùn)行虛擬機(jī)上的NFORCE[1]、語(yǔ)義完整性檢測(cè)[2]和Pioneer[3]等,但是它們自身的安全依賴于宿主機(jī)和虛擬機(jī)監(jiān)控軟件安全。有研究人員提出在虛擬化軟件層對(duì)虛擬機(jī)進(jìn)行安全監(jiān)控,如Rootkit[4,5]、Patagonix[7]、REDAS[8]、HIMA[6]等,但此類方法不能保障虛擬化軟件本身的安全。此外,一些研究人員將可信計(jì)算等安全硬件設(shè)備應(yīng)用到云安全領(lǐng)域[10,11],利用安全硬件的防篡改特性對(duì)云系統(tǒng)啟動(dòng)過程進(jìn)行完整性度量,但是在云計(jì)算環(huán)境中主機(jī)不會(huì)頻繁關(guān)機(jī)、啟動(dòng),更應(yīng)關(guān)心系統(tǒng)運(yùn)行環(huán)境中的軟件安全。VMM作為云計(jì)算系統(tǒng)中最重要的基礎(chǔ),其安全問題倍受關(guān)注[9],研究增強(qiáng)其安全性的方法。
為解決云計(jì)算環(huán)境中虛擬化軟件本身的安全,本文提出一種基于Unified Extensible Firmware Interface(UEFI)和系統(tǒng)管理模式(System Management Model,SMM)的VMM可信監(jiān)控基方案HyperSpector,兼容現(xiàn)有成熟的商業(yè)虛擬化系統(tǒng),不需要額外硬件支持,只需增加少量代碼即可以實(shí)現(xiàn)在系統(tǒng)運(yùn)行時(shí)對(duì)VMM運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)、安全度量,從而防御在系統(tǒng)運(yùn)行過程中的多類攻擊。據(jù)此,構(gòu)建了一個(gè)基于UEFI的VMM動(dòng)態(tài)度量原型系統(tǒng),通過攻擊實(shí)驗(yàn)、性能實(shí)驗(yàn)和數(shù)據(jù)分析驗(yàn)證了方案的安全性與實(shí)用性。
本文主要貢獻(xiàn)如下:①提出了一種創(chuàng)新的基于硬件和固件的VMM度量方案,能夠?qū)ι蠈覸MM進(jìn)行透明的度量檢測(cè),并保護(hù)自身不受攻擊影響,而且能夠與現(xiàn)有商業(yè)中使用的UEFI相結(jié)合,不用增加額外的硬件和軟件成本;②本方案為動(dòng)態(tài)框架,能夠使用硬件與固件特性,對(duì)VMM狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,能夠檢測(cè)VMM的改變,并能防止“閃躲攻擊”,提供了云環(huán)境下運(yùn)行時(shí)的基礎(chǔ)設(shè)施層保護(hù);③本方案實(shí)現(xiàn)了一個(gè)原型系統(tǒng),該系統(tǒng)對(duì)保護(hù)對(duì)象是透明的,提高了保護(hù)手段的安全性與有效性;④本方案根據(jù)UEFI固件被篡改難度大的特點(diǎn),將其作為可信基,從根本上提高了云環(huán)境的安全性。
2 威脅模型
2.1 威脅與假設(shè)
虛擬化環(huán)境的威脅來源于多個(gè)方面,本文主要側(cè)重于虛擬化軟件層的安全威脅。從2015年3月公布的Xen安全漏洞來看,攻擊者能夠通過該漏洞從Domain0獲得Xen的完整權(quán)限。將添加了后門的Xen虛擬機(jī)內(nèi)核通過DMA的方式導(dǎo)入到內(nèi)存,通過該后門就能獲取Xen的控制權(quán)限,形成一個(gè)隱形的控制域。這種在運(yùn)行時(shí)攻擊虛擬機(jī)的方法,使得傳統(tǒng)的安全監(jiān)控防護(hù)軟件無法檢測(cè)該攻擊。
2.2 安全要求
針對(duì)上述安全威脅,本文提出運(yùn)行HyperCheck時(shí)對(duì)VMM進(jìn)行可信度量和安全保護(hù),該方案滿足以下幾個(gè)特點(diǎn):①隱蔽觸發(fā):整個(gè)觸發(fā)的傳遞過程是安全隱蔽的,VMM無法干預(yù);②保護(hù)自身安全:在VMM及UEFI運(yùn)行中,度量過程中所有模塊在任何時(shí)刻是安全的;③獲得度量對(duì)象:度量模塊能夠獲得度量對(duì)象(內(nèi)存中的關(guān)鍵信息和CPU上下文);④安全反饋:發(fā)送反饋信息模塊、傳遞反饋信息模塊、接收反饋信息模塊以及信息反饋過程都是安全可信的。
3 HyperSpector設(shè)計(jì)方法與實(shí)現(xiàn)
3.1 原型系統(tǒng)結(jié)構(gòu)方案架構(gòu)
基于以上安全威脅和安全監(jiān)控要求,本文提出HyperSpecto:基于UEFI和SMM的VMM可信監(jiān)控基方案,該方案綜合x86結(jié)構(gòu)CPU中的SMM模式、UEFI和VMM在內(nèi)存中的分布等技術(shù),在不增加額外硬件和軟件的情況下,巧妙地實(shí)現(xiàn)對(duì)VMM的動(dòng)態(tài)、實(shí)時(shí)、可信監(jiān)控。該方案主要由初始化模塊、度量模塊(LKMCA+Xen度量模塊)、驗(yàn)證模塊、調(diào)度模塊、報(bào)告模塊組成,其架構(gòu)如圖1所示。
度量模塊是HyperSpector的核心。該模塊分為兩部分,最主要的部分在UEFI的SMI handler中實(shí)現(xiàn),主要功能是對(duì)VMM的內(nèi)核模塊進(jìn)行度量,以及獲取CPU執(zhí)行上下文,并對(duì)其中關(guān)鍵寄存器進(jìn)行度量,另一部分是在VMM中實(shí)現(xiàn),其作用是對(duì)特權(quán)域Domain 0的核心模塊進(jìn)行度量。最后生成度量日志,并將度量值寫入TPM芯片中的PCR(Platform Configuration Register)中。
驗(yàn)證模塊是唯一與VMM分離的模塊,主要用于將報(bào)告模塊提交的度量日志信息和PCR信息進(jìn)行驗(yàn)證。本文將第一次生成的度量信息作為基線值,后續(xù)收集到的信息都與基線值進(jìn)行匹配,若匹配成功則表明系統(tǒng)安全可信,否則說明已經(jīng)被攻擊了。
調(diào)度模塊是用來定時(shí)或不定時(shí)觸發(fā)HyperSpector運(yùn)行,用于定時(shí)觸發(fā)度量模塊執(zhí)行,并且為用戶主動(dòng)調(diào)用提供接口,當(dāng)收到用戶發(fā)送的命令時(shí)直接觸發(fā)度量模塊執(zhí)行。而且當(dāng)用戶長(zhǎng)時(shí)間不主動(dòng)觸發(fā)度量模塊時(shí),自身也會(huì)通過一個(gè)隨機(jī)時(shí)間進(jìn)行觸發(fā),這樣做主要是為了防止針對(duì)VMM的逃逸攻擊。
3.2 安全觸發(fā)
根據(jù)SMI觸發(fā)事件、UEFI的特性以及隱蔽觸發(fā)的需求,在HyperSpector的實(shí)現(xiàn)中使用了定時(shí)觸發(fā)和手動(dòng)觸發(fā)兩種方式來觸發(fā)SMI。
定時(shí)觸發(fā)使用了UEFI中對(duì)SMI handler基于時(shí)鐘調(diào)度的支持,利用EFI_SMM_PERIODIC_TIMER_DISPATCH2_PROTOCOL協(xié)議注冊(cè)定時(shí)度量SMI handler。定時(shí)觸發(fā)基于硬件定時(shí)時(shí)鐘且在UEFI中直接進(jìn)行調(diào)度,所以對(duì)上層VMM是隱蔽的,可以確保其不會(huì)被發(fā)現(xiàn)或干擾。手動(dòng)觸發(fā)定時(shí)觸發(fā)使用了UEFI中對(duì)SMI handler的基于0xB2端口的觸發(fā)支持,利用EFI_SMM_SW_DISPATCH2_PROTOCOL協(xié)議注冊(cè)手動(dòng)觸發(fā)SMI handler。
3.3 VMM核心模塊監(jiān)控
本模塊使用Xen作為VMM平臺(tái),而Xen屬于虛擬架構(gòu)中3種模式(獨(dú)立監(jiān)視器模式、主機(jī)模式和混合模式)中的混合模式,Xen直接運(yùn)行在裸機(jī)上,具有最高運(yùn)行權(quán)限,其上運(yùn)行虛擬機(jī)(又稱為域),Xen和特權(quán)域Domain 0一起組成了VMM。采用這種模式可以充分利用原操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)等功能,Xen就可以只提供如CPU和內(nèi)存虛擬化等功能,但利用原操作系統(tǒng),如Linux其設(shè)備驅(qū)動(dòng)等功能相當(dāng)于復(fù)用了Linux內(nèi)核相關(guān)模塊。
本文采用兩種方法來保護(hù)主內(nèi)核模塊的安全可信:首先通過實(shí)時(shí)檢測(cè)特權(quán)域Domain 0中內(nèi)核模塊加載,加載模塊之前先對(duì)要加載的模塊進(jìn)行度量,確保要加載的模塊是可信的;然后,在運(yùn)行過程中定時(shí)或隨機(jī)對(duì)內(nèi)核中運(yùn)行的模塊進(jìn)行度量,確保其運(yùn)行過程也是安全可信的。通過這兩種方法可以確保惡意的LKM即使隱藏進(jìn)程、端口和文件,也無法逃脫HyperSpector的檢測(cè)。
3.4 可信監(jiān)控基保護(hù)
HyperSpector以構(gòu)建VMM的動(dòng)態(tài)可信監(jiān)控基為目標(biāo),對(duì)處于運(yùn)行態(tài)的VMM進(jìn)行全方位安全監(jiān)控,確保其安全可信,且HyperSepctor作為運(yùn)行在比VMM更底層的可信監(jiān)控層,其自身的安全可信尤為重要。HyperSpector主要由基于UEFI的度量SMI handler以及處于Xen中的內(nèi)核模塊檢測(cè)代理組成。
根據(jù)Intel開發(fā)者手冊(cè),加入SMI handler后,同時(shí)要設(shè)置UEFI在初始化后設(shè)置D_LCK位,并清空D_OPEN位,以保護(hù)UEFI和SMRAM不受特權(quán)軟件訪問或篡改,從而可以確保UEFI和SMI handler安全可信。VMM內(nèi)核模塊檢測(cè)代理集成在Xen的內(nèi)核模塊中,而在運(yùn)行時(shí)Xen內(nèi)核是受SMI handler度量監(jiān)控的,所以信任可以由SMI handler傳遞給VMM內(nèi)核模塊檢測(cè)代理,由檢測(cè)代理對(duì)VMM內(nèi)核模塊進(jìn)行度量監(jiān)控。
4 測(cè)試評(píng)估
4.1 VMM攻擊測(cè)試
如前文所述,目前有許多針對(duì)Xen的攻擊方法,通過修改并重新編譯Xen內(nèi)核的方法模擬針對(duì)Xen內(nèi)核的攻擊測(cè)試,同時(shí)也通過刪除內(nèi)核模塊的方法模擬內(nèi)核模塊變動(dòng)的測(cè)試,本文主要?jiǎng)討B(tài)添加模塊vfs和tpm_tis模塊,測(cè)試結(jié)果表1所示。
測(cè)試表明,可以檢測(cè)到針對(duì)Xen內(nèi)核代碼及數(shù)據(jù)的篡改以及內(nèi)核模塊的變動(dòng)。SMI handler能夠?qū)en在內(nèi)存中的代碼區(qū)和數(shù)據(jù)區(qū)進(jìn)行動(dòng)態(tài)度量監(jiān)控,同時(shí)內(nèi)核模塊監(jiān)控代理也能成功對(duì)內(nèi)核中模塊的變動(dòng)進(jìn)行精確動(dòng)態(tài)度量監(jiān)控。因此,HyperSpector能夠?qū)MM的代碼和關(guān)鍵模塊進(jìn)行動(dòng)態(tài)監(jiān)控。
4.2 性能測(cè)試
性能測(cè)試主要是針對(duì)VMM度量模塊(SMI handler)和內(nèi)核模塊檢測(cè)代理的執(zhí)行時(shí)間進(jìn)行測(cè)度,通過多次執(zhí)行來判斷度量操作是否會(huì)顯著影響VMM的服務(wù)和用戶體驗(yàn)。性能測(cè)試本應(yīng)該包括CPU占用率測(cè)試,但根據(jù)SMI的特點(diǎn),當(dāng)SMI handler執(zhí)行時(shí)會(huì)暫停所有CPU的活動(dòng),而選擇其中一個(gè)CPU來單線程執(zhí)行SMI handler,其CPU占用率測(cè)試沒有意義。
實(shí)際測(cè)試時(shí),本文分為兩種情況進(jìn)行度量時(shí)間消耗測(cè)試(寫PCR和不寫PCR),測(cè)試結(jié)果如表2所示。其中,UEFI度量時(shí)間為SMI handler執(zhí)行時(shí)間;Host度量時(shí)間為SMI handler執(zhí)行時(shí)間+內(nèi)核模塊檢測(cè)代理執(zhí)行時(shí)間。
測(cè)試結(jié)果表明,大部分時(shí)間都是SMI handler消耗的,其主要原因可能是執(zhí)行最高權(quán)限的SMI中斷時(shí)會(huì)暫停所有CPU的執(zhí)行活動(dòng),并選出其中一個(gè)CPU單線程執(zhí)行SMI handler,所以其耗時(shí)較多;寫PCR時(shí)會(huì)占用大約50ms的時(shí)間,這可能是由于TPM芯片接在南橋的慢速端口上,所以讀寫速度比較慢;而內(nèi)核模塊檢測(cè)代理的執(zhí)行時(shí)間幾乎可以忽略不計(jì)。而且整個(gè)host度量時(shí)間不受VM運(yùn)行數(shù)據(jù)影響,不運(yùn)行VM和運(yùn)行24臺(tái)VM的度量執(zhí)行時(shí)間是一樣的。總體來說,100ms級(jí)別的時(shí)間消耗對(duì)整個(gè)VMM影響很小,用戶基本不會(huì)感受到。
4.3 測(cè)試總結(jié)
本次測(cè)試主要側(cè)重于Host動(dòng)態(tài)監(jiān)控模塊中的功能確認(rèn)測(cè)試和性能測(cè)試,從測(cè)試結(jié)果可以看出:本方法可以實(shí)現(xiàn)整個(gè)HyperSpector,HyperSpector能夠找到Xen的代碼段,實(shí)現(xiàn)CMOS、UEFI、Xen的交互通信,識(shí)別模塊和代碼的變動(dòng),整個(gè)度量過程功能完整實(shí)現(xiàn),且在寫PCR的情況下也能夠在100ms級(jí)的時(shí)間內(nèi)完成Host度量功能,性能影響較小,且能支持上層Xen同時(shí)運(yùn)行24臺(tái)VM。所以,HyperSpector實(shí)現(xiàn)了一個(gè)與現(xiàn)有商業(yè)系統(tǒng)兼容的具有實(shí)際可行性的動(dòng)態(tài)可信監(jiān)控基。
5 結(jié)語(yǔ)
本文提出了一種基于UEFI和SMM的VMM動(dòng)態(tài)可信監(jiān)控基:HyperSpector,該動(dòng)態(tài)可信監(jiān)控基以SMM的隱蔽性和UEFI固件鎖定特性為基礎(chǔ),利用VMM內(nèi)核的線性映射、穩(wěn)定性、持久性等特征,以及SMI自動(dòng)保存CPU狀態(tài)的特性,構(gòu)建了針對(duì)VMM內(nèi)核、CPU狀態(tài)和特權(quán)域關(guān)鍵內(nèi)核模塊的動(dòng)態(tài)可信監(jiān)控基,為VMM提供傳統(tǒng)可信技術(shù)和新的基于硬件的動(dòng)態(tài)安全保護(hù)。最后,本文構(gòu)建了一個(gè)HyperSpector原型,并通過測(cè)試證明其能夠有效對(duì)VMM進(jìn)行監(jiān)控,能夠發(fā)現(xiàn)任何VMM內(nèi)核、狀態(tài)和特權(quán)域的關(guān)鍵模塊的變動(dòng)。此外,HyperSpector也存在一些不足的地方,如通過軟中斷進(jìn)行隨機(jī)觸發(fā)的方式也可能會(huì)被VMM延遲或欺騙,后期需要尋找一種更安全的觸發(fā)方式;基于度量的判定方式有一定的局限性,不能判斷VMM可信或不可信,并非最優(yōu)化的設(shè)計(jì)方法。這些問題和不足正是后期研究的重點(diǎn)。
參考文獻(xiàn):
[1] HEINE D,KOUSKOULAS Y.N-force daemon prototype technical description[R].Technical Report VS-03-021,Laurel:The Johns Hopkins University Applied Physics Laboratory,2003.
[2] Pioneer:verifying code integrity and enforcing untampered code execution on legacy system[C].Proceedings of the 20th ACM Symposiumon Operating Systems Principles.New York: ACM,2005:1-16.
[3] PETRONI N L,F(xiàn)RASER JR T,WALTERS A, et al.An architecture for specification-based detection of semantic integrity violations in kernel dynamic data[C].Proceedings of the 15th USENIX Security Symposium.Berkeley: USENIX,2006:289-304.
[4] 周天陽(yáng),朱俊虎,王清賢,等.基于VMM的RootKit及其檢測(cè)技術(shù)研究[J].計(jì)算機(jī)科學(xué),2011,38(12):45-49.
[5] 唐文彬,陳熹,陳嘉勇,等. UEFI Bootkit模型與分析[J]. 計(jì)算機(jī)科學(xué) 2012,39(10):16-20.
[6] AZAB A M,NING PENG,SEZER E C,et al.HIMA:a hypervisor-based integrity measurement agent[C].Proceedings of the 25th Annual Computer Security Applications Conference(ACSAC09) .Los Alamitos: IEEE, 2009.
[7] PETRONI N L,F(xiàn)RASER JR T,WALTERS A,et al.An architecture for specification-based detection of semantic integrity violations in kernel dynamic data[C].Proceedings of the 15th USENIX Security Symposium.Berkeley: USENIX,2006.
[8] KIL C,SEZER E C,AZAB A M,et al.Remote attestation to dynamic system properties:towards providing complete system integrity evidence[C].Proceedings of the 39th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 2009).Los Alamitos: IEEE, 2009.
[9] 沈昌祥,張煥國(guó),馮登國(guó). 信息安全綜述[J]. 中國(guó)科學(xué),2007(2):25-28.
[10] 沈昌祥,張煥國(guó),王懷民. 可信計(jì)算的研究與發(fā)展[J]. 中國(guó)科學(xué),2010(2):32-36.
[11] 周新,陶露菁. 可信計(jì)算及其在信息系統(tǒng)中的應(yīng)用[J]. 指揮信息系統(tǒng)與技術(shù) 2011(6):56-61.
(責(zé)任編輯:陳福時(shí))