鄢 斌
(海軍計(jì)算技術(shù)研究所 北京 100841)
?
一種可配置的虛擬機(jī)啟動(dòng)完整性維護(hù)的方法*
鄢 斌
(海軍計(jì)算技術(shù)研究所 北京 100841)
針對虛擬化環(huán)境自身體系結(jié)構(gòu)和虛擬機(jī)啟動(dòng)過程的特點(diǎn),提出一種用戶可配置的保護(hù)和恢復(fù)虛擬機(jī)啟動(dòng)過程中系統(tǒng)和用戶自定義程序/文件的方法,完成對這些程序/文件的完整性備份、檢測和恢復(fù),在保證虛擬機(jī)啟動(dòng)過程可靠性和安全性的同時(shí),增強(qiáng)虛擬機(jī)啟動(dòng)完整性管理的可維護(hù)性和可擴(kuò)展性。
虛擬計(jì)算平臺(tái); 可信計(jì)算; 可信平臺(tái)模塊; 虛擬機(jī)啟動(dòng); 完整性維護(hù)
Class Number TP309.1
隨著信息技術(shù)的發(fā)展和人們對計(jì)算機(jī)資源要求的不斷提高,云計(jì)算已經(jīng)成為當(dāng)前計(jì)算機(jī)技術(shù)研究的熱點(diǎn)。云計(jì)算使用虛擬化技術(shù)對底層計(jì)算、網(wǎng)絡(luò)和存儲(chǔ)資源進(jìn)行封裝,通過建立虛擬機(jī)并在其中運(yùn)行操作系統(tǒng)和應(yīng)用程序的形式,將這些資源提供給遠(yuǎn)程用戶。因此,虛擬機(jī)作為用戶直接使用的環(huán)境,其內(nèi)部的系統(tǒng)和用戶程序及文件容易受到來自網(wǎng)絡(luò)的攻擊和篡改。
在云計(jì)算虛擬化平臺(tái)上,虛擬機(jī)管理器(Virtual Machine Monitor,VMM)[1]是整個(gè)系統(tǒng)的核心部件。在通常情況下,VMM直接運(yùn)行在硬件平臺(tái)之上,以軟件方式模擬物理硬件的核心功能,建立多個(gè)虛擬機(jī),并且為運(yùn)行在這些虛擬機(jī)之上的操作系統(tǒng)和應(yīng)用程序提供與訪問物理硬件相同的訪問接口。與普通計(jì)算機(jī)相同,虛擬機(jī)提供服務(wù)需要經(jīng)歷啟動(dòng)和運(yùn)行兩個(gè)階段,其中虛擬機(jī)啟動(dòng)時(shí)加載的操作系統(tǒng)和應(yīng)用程序是虛擬機(jī)運(yùn)行時(shí)的基本環(huán)境。由此可見,如何確保虛擬機(jī)安全啟動(dòng)直接影響到虛擬機(jī)能否安全運(yùn)行。
為了解決虛擬機(jī)安全啟動(dòng)的問題,已有研究人員借鑒普通計(jì)算機(jī)基于可信計(jì)算技術(shù)[2~8]的啟動(dòng)過程,在虛擬環(huán)境[9~10]中引入可信計(jì)算體系結(jié)構(gòu)[11]。一方面,由可信平臺(tái)模塊(Trusted Platform Module,TPM)向虛擬計(jì)算平臺(tái)提供相關(guān)密碼功能的保障主要;另一方面,由VMM對虛擬機(jī)啟動(dòng)過程中依次運(yùn)行的部件進(jìn)行完整性度量,并將所有度量值依次存入TPM的平臺(tái)寄存器(Platform Configuration Register,PCR)當(dāng)中,在虛擬機(jī)運(yùn)行時(shí)PCR中存儲(chǔ)的這些度量值用于證明虛擬機(jī)啟動(dòng)過程的完整性。但是,傳統(tǒng)計(jì)算機(jī)的可信啟動(dòng)和證明過程往往只能說明虛擬機(jī)啟動(dòng)過程是否可信,不能有效地恢復(fù)被破壞的虛擬機(jī)啟動(dòng)過程中各個(gè)部件,也不能對系統(tǒng)中用戶自定義的程序和相關(guān)文件進(jìn)行有效地保護(hù)和恢復(fù)。
本文針對虛擬化環(huán)境自身體系結(jié)構(gòu)的特點(diǎn),結(jié)合虛擬機(jī)啟動(dòng)的過程,提供用戶配置的接口,完成虛擬機(jī)啟動(dòng)過程中重要程序和文件的完整性維護(hù),實(shí)現(xiàn)這些程序和文件的備份、度量和恢復(fù),從而保證虛擬機(jī)啟動(dòng)過程中重要系統(tǒng)程序/文件和用戶自定義文件的完整性。
本文實(shí)現(xiàn)的可配置的虛擬機(jī)啟動(dòng)完整性維護(hù)體系架構(gòu)如圖1所示。

圖1 可配置的虛擬機(jī)啟動(dòng)完整性維護(hù)體系架構(gòu)
首先,虛擬機(jī)管理器通過虛擬機(jī)啟動(dòng)完整性配置顯示模塊(以下簡稱完整性配置顯示模塊)接收并存儲(chǔ)用戶自定義需要保護(hù)的程序/文件列表。
然后,完整性配置顯示模塊調(diào)用虛擬機(jī)啟動(dòng)完整性維護(hù)模塊(以下簡稱完整性維護(hù)模塊)完成對虛擬機(jī)啟動(dòng)過程中重要程序/文件和用戶指定程序/文件的備份,形成相關(guān)度量基準(zhǔn)值,并存儲(chǔ)在本地磁盤以供在虛擬機(jī)啟動(dòng)完整性檢測和恢復(fù)過程使用。
接下來,在每次虛擬機(jī)啟動(dòng)時(shí),完整性維護(hù)模塊根據(jù)相關(guān)用戶配置文件和度量基準(zhǔn)值對虛擬機(jī)啟動(dòng)過程相關(guān)文件進(jìn)行完整性檢測。
最后,當(dāng)完整性檢測出現(xiàn)問題時(shí),完整性維護(hù)模塊將相關(guān)信息顯示在完整性配置顯示模塊上,由用戶根據(jù)信息選擇是否進(jìn)行恢復(fù)操作。完整性配置顯示模塊將用戶選擇信息傳遞給完整性維護(hù)模塊,如果用戶選擇進(jìn)行恢復(fù)操作,完整性維護(hù)模塊調(diào)用存儲(chǔ)在本地磁盤上的備份,對相關(guān)程序/文件進(jìn)行恢復(fù)操作;如果用戶選擇不進(jìn)行恢復(fù)操作,則正常啟動(dòng)虛擬機(jī)。
基于圖1所示的體系架構(gòu),可配置的虛擬機(jī)啟動(dòng)完整性維護(hù)實(shí)現(xiàn)方法包括:在基于VMM架構(gòu)的虛擬計(jì)算平臺(tái)上,位于VMM內(nèi)的虛擬機(jī)啟動(dòng)完整性配置顯示模塊接收用戶的配置和操作信息,根據(jù)這些信息,位于VMM內(nèi)虛擬機(jī)啟動(dòng)完整性維護(hù)模塊實(shí)現(xiàn)對虛擬機(jī)啟動(dòng)過程中系統(tǒng)程序/文件和用戶指定程序/文件完整性的備份、檢測和恢復(fù)。本章分節(jié)介紹具體的配置、備份、檢測和恢復(fù)方法。
3.1 配置過程
如圖1所示,虛擬機(jī)完整性配置顯示模塊接收并存儲(chǔ)用戶自定義需要保護(hù)的程序/文件列表,具體實(shí)現(xiàn)方法如下。
1) 完整性配置顯示模塊以B/S模式提供界面和配置功能,界面提供可配置的選項(xiàng)包括:虛擬機(jī)啟動(dòng)完整性維護(hù)使能標(biāo)識(shí)(以下簡稱使能標(biāo)識(shí))和用戶指定程序/文件在虛擬機(jī)內(nèi)的路徑及文件名,其中使能標(biāo)識(shí)表示相應(yīng)虛擬機(jī)啟動(dòng)時(shí)VMM是否對其進(jìn)行完整性維護(hù);
2) 用戶通過網(wǎng)絡(luò)和瀏覽器連接并通過輸入用戶名和口令登錄完整性配置顯示模塊,進(jìn)行虛擬機(jī)啟動(dòng)完整性配置工作包括:標(biāo)記或取消標(biāo)記使能標(biāo)識(shí)、輸入用戶指定程序/文件的路徑和文件名;
3) 完整性配置顯示模塊在接收到用戶的配置信息后,形成相關(guān)虛擬機(jī)啟動(dòng)完整性維護(hù)的用戶配置文件(以下簡稱用戶配置文件),并存儲(chǔ)在本地磁盤上以供完整性維護(hù)模塊使用,用戶配置文件包括:用戶指定程序/文件的路徑及文件名列表和對應(yīng)虛擬機(jī)使能標(biāo)識(shí)。
3.2 備份過程
如圖2所示,虛擬機(jī)啟動(dòng)完整性維護(hù)分為備份、度量和恢復(fù)三個(gè)過程。其中,備份過程是由完整性維護(hù)模塊對虛擬機(jī)啟動(dòng)過程中系統(tǒng)程序/文件和用戶指定程序/文件進(jìn)行備份并形成相關(guān)度量基準(zhǔn)值,具體實(shí)現(xiàn)方法如下。

圖2 可配置的虛擬機(jī)啟動(dòng)完整性維護(hù)流程
1) 完整性配置顯示模塊調(diào)用完整性維護(hù)模塊,開始進(jìn)行虛擬機(jī)內(nèi)相關(guān)程序/文件的備份工作;
2) 完整性維護(hù)模塊讀取用戶配置文件中用戶指定文件列表,獲取用戶指定文件在虛擬機(jī)內(nèi)的路徑和文件名;
3) 完整性維護(hù)模塊解析虛擬機(jī)鏡像,從虛擬機(jī)鏡像中獲取虛擬機(jī)啟動(dòng)過程需要的系統(tǒng)程序/文件,包括MBR、系統(tǒng)引導(dǎo)程序和系統(tǒng)內(nèi)核文件。其中,MBR是虛擬機(jī)鏡像前512字節(jié);系統(tǒng)引導(dǎo)文件位于虛擬機(jī)MBR內(nèi)硬盤分區(qū)表所指向的虛擬機(jī)鏡像內(nèi)部地址,其程序?qū)嶓w因具體情況而異(例如:Grub程序和Windows自帶的Ntldr或bootmgr文件);系統(tǒng)內(nèi)核文件因具體操作系統(tǒng)而異(例如:Linux操作系統(tǒng)的內(nèi)核文件是initrd和vmlinuz文件,Windows操作系統(tǒng)的主要內(nèi)核文件包括系統(tǒng)分區(qū)WindowsSystem32路徑下的ntoskrnl.exe和hal.dll等文件)。除了系統(tǒng)程序/文件,完整性維護(hù)模塊根據(jù)用戶指定的虛擬機(jī)內(nèi)的路徑及文件名,獲取用戶指定需要進(jìn)行完整性維護(hù)的程序/文件;
4) 完整性維護(hù)模塊將獲取的系統(tǒng)程序/文件和用戶指定程序/文件發(fā)送至TPM,由TPM對這些程序/文件分別進(jìn)行哈希運(yùn)算,形成并將度量基準(zhǔn)值返回給完整性維護(hù)模塊;
5) 完整性維護(hù)模塊將度量基準(zhǔn)值存儲(chǔ)至本地磁盤;
6) 完整性維護(hù)模塊將相關(guān)系統(tǒng)程序/文件和用戶指定程序/文件拷貝備份至本地磁盤。
3.3 度量過程
如圖2所示,在度量過程中,每次虛擬機(jī)啟動(dòng)時(shí),完整性維護(hù)模塊根據(jù)相關(guān)用戶配置文件和度量基準(zhǔn)值對虛擬機(jī)啟動(dòng)過程相關(guān)文件進(jìn)行完整性檢測,具體實(shí)現(xiàn)方法如下。
1) 在每次虛擬機(jī)啟動(dòng)時(shí),完整性維護(hù)模塊讀取用戶配置文件中用戶指定文件列表,獲取用戶指定文件在虛擬機(jī)內(nèi)的路徑和文件名;
2) 完整性維護(hù)模塊解析虛擬機(jī)鏡像,依次獲取虛擬機(jī)鏡像內(nèi)的MBR、系統(tǒng)引導(dǎo)程序和系統(tǒng)內(nèi)核文件,并且根據(jù)虛擬機(jī)內(nèi)的路徑和文件名獲取用戶指定文件,具體獲取方法參照步驟3);
3) 完整性維護(hù)模塊將獲取的系統(tǒng)程序/文件和用戶指定程序/文件發(fā)送至TPM,由TPM對這些程序/文件分別進(jìn)行哈希運(yùn)算,形成并將實(shí)時(shí)度量值返回給完整性維護(hù)模塊;
4) 完整性維護(hù)模塊從本地磁盤讀取度量基準(zhǔn)值,并將實(shí)時(shí)度量值和度量基準(zhǔn)值進(jìn)行檢測,如果檢測一致則正常啟動(dòng)虛擬機(jī);如果檢測不一致則將檢測信息傳遞給完整性配置顯示模塊。
3.4 恢復(fù)過程
如圖2所示,在恢復(fù)過程中,完整性維護(hù)模塊將相關(guān)信息顯示在完整性配置顯示模塊上,由用戶根據(jù)信息選擇是否進(jìn)行恢復(fù)操作,具體實(shí)現(xiàn)方法如下。
1) 當(dāng)完整性檢測出現(xiàn)問題時(shí),完整性維護(hù)模塊將相關(guān)信息顯示在完整性配置顯示模塊上,顯示信息包括:完整性檢測出現(xiàn)問題的程序/文件和時(shí)間,由用戶根據(jù)顯示信息選擇是否進(jìn)行恢復(fù)操作;
2) 用戶通過操作界面選擇是否進(jìn)行完整性恢復(fù),完整性配置顯示模塊獲取用戶選擇信息;
3) 完整性配置顯示模塊將獲取的用戶選擇信息傳遞給完整性維護(hù)模塊,如果用戶選擇不進(jìn)行恢復(fù)操作,則正常啟動(dòng)虛擬機(jī)。如果用戶選擇進(jìn)行以下恢復(fù)操作;
4) 完整性維護(hù)模塊讀取存儲(chǔ)在本地磁盤上的相應(yīng)程序/文件備份;
5) 完整性維護(hù)模塊解析虛擬機(jī)鏡像,通過步驟3)的方法定位需要恢復(fù)的程序/文件,根據(jù)讀取的相應(yīng)程序/文件備份,對相關(guān)程序/文件進(jìn)行恢復(fù)。
基于Xen 4.2.2,建立Intel Xeon CPU-2650 v2 2.60GHz雙核CPU和2G內(nèi)存的虛擬機(jī)作為試驗(yàn)對象,虛擬機(jī)操作系統(tǒng)為中標(biāo)麒麟2.6.32和Windows Server 2008 R2。
分別在Windows Server 2008和中標(biāo)麒麟虛擬機(jī)中,安裝BootRacer.exe和BootChart測試虛擬機(jī)啟動(dòng)時(shí)間,虛擬機(jī)啟動(dòng)計(jì)時(shí)組成分為如下階段。
1) Pre-boot階段:系統(tǒng)BIOS啟動(dòng),可信度量、可信日志記錄和可信恢復(fù)階段;
2) System Boot階段:系統(tǒng)內(nèi)核及相關(guān)文件加載階段;
3) Password Timeout階段:輸入密碼時(shí)間,該時(shí)間不計(jì)算在虛擬機(jī)啟動(dòng)時(shí)間內(nèi);
4) Desktop階段:桌面應(yīng)用程序及服務(wù)啟動(dòng)階段。
測試結(jié)果如表1所示,可以看出在Windows和中標(biāo)麒麟虛擬機(jī)中,開啟可信度量之后,系統(tǒng)啟動(dòng)時(shí)間分別增加6.36%和4.11%,這表明開啟可信度量對虛擬機(jī)啟動(dòng)時(shí)間影響較小。

表1 虛擬機(jī)啟動(dòng)時(shí)間統(tǒng)計(jì)表(單位:s)
本文設(shè)計(jì)并實(shí)現(xiàn)了一種可配置的虛擬機(jī)啟動(dòng)完整性維護(hù)的方法,相比于傳統(tǒng)的可信啟動(dòng)和證明過程僅僅記錄和出示虛擬機(jī)啟動(dòng)過程的可信證據(jù)而言,虛擬機(jī)管理器能夠接收用戶對指定程序/文件的完整性維護(hù)配置,完成虛擬機(jī)啟動(dòng)過程中重要程序/文件和用戶指定程序/文件的完整性備份、檢測和恢復(fù)。一方面,對虛擬機(jī)啟動(dòng)過程中重要程序/文件的備份、度量和恢復(fù)保證啟動(dòng)過程的可靠性和安全性;另一方面,用戶指定需要度量的程序/文件增強(qiáng)了虛擬機(jī)啟動(dòng)完整性管理的可維護(hù)性和可擴(kuò)展性。
[1] Xen. Xen Virtualization[EB/OL]. 2014. [2014-09-01]. http://www.xen.org.
[2] Ahmad Ubaidah Omar. Trusted computer system: understanding and issues[EB/OL]. 2002. [2014-09-01]. http://www.ahmad_ubaidh_omar.net/trusted_computer_system_3819.html.
[3] Trusted Computing Group. TPM Main Part 1: Design Principles Specification Version 1.2[EB/OL]. 2006. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/tpm.
[4] Trusted Computing Group. TPM Main Part 2:TPM Structures Specification version l-2[EB/OL]. 2006. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/tpm.
[5] Trusted Computing Group. TPM Main Part 3: Commands Specification Version 1.2[EB/OL]. 2006. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/tpm.
[6] Trusted Computing Group. TCG Architecture Overview[EB/OL]. 2007. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/infrastructure.
[7] Trusted Computing Group. PC Client Work Group PC Client Specific TPM Interface Specification(TIS), Version 1.2[EB/OL]. 2007. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/pc_client.
[8] Trusted Computing Group. TCG PC Client Specific Implementation Specification For Conventional BIOS[EB/OL]. 2007. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/pc_client.
[9] Xen. Users Manual Xen v3.0[EB/OL]. 2008. [2014-09-01]. http://www.cl.cam.ac.uk/research/srg/netos/xen/readmes/user/user.html.
[10] Intel. Intel virtualization technology[EB/OL]. 2009. http://www.intel.com.
[11] 王麗娜,高漢軍,等.基于信任擴(kuò)展的可信虛擬執(zhí)行環(huán)境構(gòu)建方法研究[J].通信學(xué)報(bào),2011(9):1-8.
A Configurable Method for Virtual Machine Startup Integrity Maintenance
YAN Bin
(Computer Technology Institute of Navy, Beijing 100841)
Based on the virtualized environment architecture and the startup process of virtual machine, a configurable method for virtual machine startup integrity maintenance is proposed. In the method, important system and user-specific programs and files are prestored, measured and restored, which not only guarantees the integrity and reliability of the virtual machine startup process, but also enhances the configurability of virtual machine integrity maintenance.
virtual computing platform, trusted computing, trusted platform module, virtual machine startup, integrity maintenance
2015年6月1日,
2015年7月16日
鄢斌,女,高級(jí)工程師,研究方向:信息安全。
TP309.1
10.3969/j.issn.1672-9730.2015.12.035