鄢 斌
(海军计算技术研究所 北京 100841)
一种可配置的虚拟机启动完整性维护的方法*
鄢 斌
(海军计算技术研究所 北京 100841)
针对虚拟化环境自身体系结构和虚拟机启动过程的特点,提出一种用户可配置的保护和恢复虚拟机启动过程中系统和用户自定义程序/文件的方法,完成对这些程序/文件的完整性备份、检测和恢复,在保证虚拟机启动过程可靠性和安全性的同时,增强虚拟机启动完整性管理的可维护性和可扩展性。
虚拟计算平台; 可信计算; 可信平台模块; 虚拟机启动; 完整性维护
Class Number TP309.1
随着信息技术的发展和人们对计算机资源要求的不断提高,云计算已经成为当前计算机技术研究的热点。云计算使用虚拟化技术对底层计算、网络和存储资源进行封装,通过建立虚拟机并在其中运行操作系统和应用程序的形式,将这些资源提供给远程用户。因此,虚拟机作为用户直接使用的环境,其内部的系统和用户程序及文件容易受到来自网络的攻击和篡改。
在云计算虚拟化平台上,虚拟机管理器(Virtual Machine Monitor,VMM)[1]是整个系统的核心部件。在通常情况下,VMM直接运行在硬件平台之上,以软件方式模拟物理硬件的核心功能,建立多个虚拟机,并且为运行在这些虚拟机之上的操作系统和应用程序提供与访问物理硬件相同的访问接口。与普通计算机相同,虚拟机提供服务需要经历启动和运行两个阶段,其中虚拟机启动时加载的操作系统和应用程序是虚拟机运行时的基本环境。由此可见,如何确保虚拟机安全启动直接影响到虚拟机能否安全运行。
为了解决虚拟机安全启动的问题,已有研究人员借鉴普通计算机基于可信计算技术[2~8]的启动过程,在虚拟环境[9~10]中引入可信计算体系结构[11]。一方面,由可信平台模块(Trusted Platform Module,TPM)向虚拟计算平台提供相关密码功能的保障主要;另一方面,由VMM对虚拟机启动过程中依次运行的部件进行完整性度量,并将所有度量值依次存入TPM的平台寄存器(Platform Configuration Register,PCR)当中,在虚拟机运行时PCR中存储的这些度量值用于证明虚拟机启动过程的完整性。但是,传统计算机的可信启动和证明过程往往只能说明虚拟机启动过程是否可信,不能有效地恢复被破坏的虚拟机启动过程中各个部件,也不能对系统中用户自定义的程序和相关文件进行有效地保护和恢复。
本文针对虚拟化环境自身体系结构的特点,结合虚拟机启动的过程,提供用户配置的接口,完成虚拟机启动过程中重要程序和文件的完整性维护,实现这些程序和文件的备份、度量和恢复,从而保证虚拟机启动过程中重要系统程序/文件和用户自定义文件的完整性。
本文实现的可配置的虚拟机启动完整性维护体系架构如图1所示。
图1 可配置的虚拟机启动完整性维护体系架构
首先,虚拟机管理器通过虚拟机启动完整性配置显示模块(以下简称完整性配置显示模块)接收并存储用户自定义需要保护的程序/文件列表。
然后,完整性配置显示模块调用虚拟机启动完整性维护模块(以下简称完整性维护模块)完成对虚拟机启动过程中重要程序/文件和用户指定程序/文件的备份,形成相关度量基准值,并存储在本地磁盘以供在虚拟机启动完整性检测和恢复过程使用。
接下来,在每次虚拟机启动时,完整性维护模块根据相关用户配置文件和度量基准值对虚拟机启动过程相关文件进行完整性检测。
最后,当完整性检测出现问题时,完整性维护模块将相关信息显示在完整性配置显示模块上,由用户根据信息选择是否进行恢复操作。完整性配置显示模块将用户选择信息传递给完整性维护模块,如果用户选择进行恢复操作,完整性维护模块调用存储在本地磁盘上的备份,对相关程序/文件进行恢复操作;如果用户选择不进行恢复操作,则正常启动虚拟机。
基于图1所示的体系架构,可配置的虚拟机启动完整性维护实现方法包括:在基于VMM架构的虚拟计算平台上,位于VMM内的虚拟机启动完整性配置显示模块接收用户的配置和操作信息,根据这些信息,位于VMM内虚拟机启动完整性维护模块实现对虚拟机启动过程中系统程序/文件和用户指定程序/文件完整性的备份、检测和恢复。本章分节介绍具体的配置、备份、检测和恢复方法。
3.1 配置过程
如图1所示,虚拟机完整性配置显示模块接收并存储用户自定义需要保护的程序/文件列表,具体实现方法如下。
1) 完整性配置显示模块以B/S模式提供界面和配置功能,界面提供可配置的选项包括:虚拟机启动完整性维护使能标识(以下简称使能标识)和用户指定程序/文件在虚拟机内的路径及文件名,其中使能标识表示相应虚拟机启动时VMM是否对其进行完整性维护;
2) 用户通过网络和浏览器连接并通过输入用户名和口令登录完整性配置显示模块,进行虚拟机启动完整性配置工作包括:标记或取消标记使能标识、输入用户指定程序/文件的路径和文件名;
3) 完整性配置显示模块在接收到用户的配置信息后,形成相关虚拟机启动完整性维护的用户配置文件(以下简称用户配置文件),并存储在本地磁盘上以供完整性维护模块使用,用户配置文件包括:用户指定程序/文件的路径及文件名列表和对应虚拟机使能标识。
3.2 备份过程
如图2所示,虚拟机启动完整性维护分为备份、度量和恢复三个过程。其中,备份过程是由完整性维护模块对虚拟机启动过程中系统程序/文件和用户指定程序/文件进行备份并形成相关度量基准值,具体实现方法如下。
图2 可配置的虚拟机启动完整性维护流程
1) 完整性配置显示模块调用完整性维护模块,开始进行虚拟机内相关程序/文件的备份工作;
2) 完整性维护模块读取用户配置文件中用户指定文件列表,获取用户指定文件在虚拟机内的路径和文件名;
3) 完整性维护模块解析虚拟机镜像,从虚拟机镜像中获取虚拟机启动过程需要的系统程序/文件,包括MBR、系统引导程序和系统内核文件。其中,MBR是虚拟机镜像前512字节;系统引导文件位于虚拟机MBR内硬盘分区表所指向的虚拟机镜像内部地址,其程序实体因具体情况而异(例如:Grub程序和Windows自带的Ntldr或bootmgr文件);系统内核文件因具体操作系统而异(例如:Linux操作系统的内核文件是initrd和vmlinuz文件,Windows操作系统的主要内核文件包括系统分区WindowsSystem32路径下的ntoskrnl.exe和hal.dll等文件)。除了系统程序/文件,完整性维护模块根据用户指定的虚拟机内的路径及文件名,获取用户指定需要进行完整性维护的程序/文件;
4) 完整性维护模块将获取的系统程序/文件和用户指定程序/文件发送至TPM,由TPM对这些程序/文件分别进行哈希运算,形成并将度量基准值返回给完整性维护模块;
5) 完整性维护模块将度量基准值存储至本地磁盘;
6) 完整性维护模块将相关系统程序/文件和用户指定程序/文件拷贝备份至本地磁盘。
3.3 度量过程
如图2所示,在度量过程中,每次虚拟机启动时,完整性维护模块根据相关用户配置文件和度量基准值对虚拟机启动过程相关文件进行完整性检测,具体实现方法如下。
1) 在每次虚拟机启动时,完整性维护模块读取用户配置文件中用户指定文件列表,获取用户指定文件在虚拟机内的路径和文件名;
2) 完整性维护模块解析虚拟机镜像,依次获取虚拟机镜像内的MBR、系统引导程序和系统内核文件,并且根据虚拟机内的路径和文件名获取用户指定文件,具体获取方法参照步骤3);
3) 完整性维护模块将获取的系统程序/文件和用户指定程序/文件发送至TPM,由TPM对这些程序/文件分别进行哈希运算,形成并将实时度量值返回给完整性维护模块;
4) 完整性维护模块从本地磁盘读取度量基准值,并将实时度量值和度量基准值进行检测,如果检测一致则正常启动虚拟机;如果检测不一致则将检测信息传递给完整性配置显示模块。
3.4 恢复过程
如图2所示,在恢复过程中,完整性维护模块将相关信息显示在完整性配置显示模块上,由用户根据信息选择是否进行恢复操作,具体实现方法如下。
1) 当完整性检测出现问题时,完整性维护模块将相关信息显示在完整性配置显示模块上,显示信息包括:完整性检测出现问题的程序/文件和时间,由用户根据显示信息选择是否进行恢复操作;
2) 用户通过操作界面选择是否进行完整性恢复,完整性配置显示模块获取用户选择信息;
3) 完整性配置显示模块将获取的用户选择信息传递给完整性维护模块,如果用户选择不进行恢复操作,则正常启动虚拟机。如果用户选择进行以下恢复操作;
4) 完整性维护模块读取存储在本地磁盘上的相应程序/文件备份;
5) 完整性维护模块解析虚拟机镜像,通过步骤3)的方法定位需要恢复的程序/文件,根据读取的相应程序/文件备份,对相关程序/文件进行恢复。
基于Xen 4.2.2,建立Intel Xeon CPU-2650 v2 2.60GHz双核CPU和2G内存的虚拟机作为试验对象,虚拟机操作系统为中标麒麟2.6.32和Windows Server 2008 R2。
分别在Windows Server 2008和中标麒麟虚拟机中,安装BootRacer.exe和BootChart测试虚拟机启动时间,虚拟机启动计时组成分为如下阶段。
1) Pre-boot阶段:系统BIOS启动,可信度量、可信日志记录和可信恢复阶段;
2) System Boot阶段:系统内核及相关文件加载阶段;
3) Password Timeout阶段:输入密码时间,该时间不计算在虚拟机启动时间内;
4) Desktop阶段:桌面应用程序及服务启动阶段。
测试结果如表1所示,可以看出在Windows和中标麒麟虚拟机中,开启可信度量之后,系统启动时间分别增加6.36%和4.11%,这表明开启可信度量对虚拟机启动时间影响较小。
表1 虚拟机启动时间统计表(单位:s)
本文设计并实现了一种可配置的虚拟机启动完整性维护的方法,相比于传统的可信启动和证明过程仅仅记录和出示虚拟机启动过程的可信证据而言,虚拟机管理器能够接收用户对指定程序/文件的完整性维护配置,完成虚拟机启动过程中重要程序/文件和用户指定程序/文件的完整性备份、检测和恢复。一方面,对虚拟机启动过程中重要程序/文件的备份、度量和恢复保证启动过程的可靠性和安全性;另一方面,用户指定需要度量的程序/文件增强了虚拟机启动完整性管理的可维护性和可扩展性。
[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] 王丽娜,高汉军,等.基于信任扩展的可信虚拟执行环境构建方法研究[J].通信学报,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日
鄢斌,女,高级工程师,研究方向:信息安全。
TP309.1
10.3969/j.issn.1672-9730.2015.12.035