虚拟机监视器系统策略完整性安全机制

2014-11-30 05:32龚敏斌姚立红
计算机工程与设计 2014年1期
关键词:固件完整性校验

龚敏斌,潘 理,姚立红

(1.上海交通大学 电子信息与电气工程学院 电子工程系,上海200240;2.上海市信息安全综合管理技术研究重点实验室,上海200240)

0 引 言

随着虚拟化技术的推广应用,虚拟化系统的安全问题,尤其是其核心组件——虚拟机监视器[1](hypervisor or VMM,virtual machine monitor)的安全问题日益突出[2-4]。主流的开源 Hypervisor(如 XEN[5])和商用 Hypervisor(如 VMware ESX 3.x[6,7])均面临着日益严峻的安全问题,如隐蔽信道、显式信息流和单点失效等安全问题,其中,由Hypervisor运行时代码与完整性安全风险所引发的单点失效问题尤为突出。而目前可用于保护Hypervisor运行时代码完整性的方法主要有:①重新设计安全性更高的Hypervisor,如 NOVA[8],BitVisor[9]。由于 Terra等 Hypervisor为达到更高的安全性设置了严格的代码实现限制,导致其功能较少,接口简单,只适用于特定的应用环境下,不能广泛应用于当前的虚拟化系统;②增加额外的系统校验软件进行代码完整性校验,如HyperCheck[10],HyperG-uard[11],HyperSentry[12]。由于 HyperCheck等均缺少保障校验软件自身代码完整性的方法,导致其安全性不高,因此不适用于安全需求较高的虚拟化系统;③对Hypervisor运行时代码采用形式化方法进行校验,如文献[13,14]等均提出了严格的形式化校验方法,有效地保障了Hypervisor运行时代码完整性安全。与代码完整性安全的保护方案不同,Hypervisor运行时数据的多样性和动态变化等特点,导致其完整性通常难以采用形式化方法进行校验。然而,Hypervisor安全机制的关键组成部分——系统策略文件,与其它Hypervisor的运行时数据不同。由于系统策略文件直接关系到Hypervisor安全机制是否发挥作用,而且系统策略文件在系统运行期间的变化较少,因此,Hypervisor可以且必须采用数据校验方法以保障策略文件的数据完整性安全。基于此,本文以基于内核的虚拟机系统[16](kernel-based virtual machine, 开 源 Hypervisor, 以 下 称KVM Hypervisor为Hypervisor)为基础,提出了一种改进的虚拟机监视器系统策略的完整性安全机制 (secure hypervisor policy integrity mechanism,称SHPI机制)。SHPI机制针对目前Hypervisor采用的传统文件安全机制[17]在保护运行时策略文件方面存在的不足,采用了改进的策略文件存储方案,保障了存储策略文件的完整性安全,并通过采用完整性校验方法对动态策略文件进行完整性定时校验,保障了动态策略文件的完整性安全。

1 传统文件安全机制

目前,KVM虚拟化系统采用传统文件安全机制[18]保护系统策略文件的数据完整性安全。传统文件安全机制框架如图1所示。

图1 KVM传统文件安全机制

如图1所示,系统策略文件存储于普通用户进程空间的系统策略文件库。该策略文件库通过普通用户进程空间的策略管理模块向Hypervisor访问控制机制提供系统策略文件查询服务。同时策略管理模块负责系统策略文件的管理与维护工作。但是,该文件安全机制存在两大不足:①Hypervisor在其系统的内核空间构建了动态策略文件库,这是为了提高Hypervisor访问控制机制获取系统策略文件的速度。然而,动态策略文件库的策略文件的完整性安全无法得到保障,即,如果恶意程序修改了动态策略文件,Hypervisor与普通用户进程空间中的策略管理模块均无法得知,这将导致Hypervisor使用非法的系统策略文件,甚至导致Hypervisor访问控制机制失效。②Hypervisor无法保障普通用户进程空间所存储策略文件的完整性安全。即,系统管理员、安全管理员或其他非法用户均可以修改存储于用户空间的策略文件,而Hypervisor无法判断此类行为的合法性。此时,Hypervisor若使用已被非法修改的策略文件更新动态策略文件库,将导致Hypervisor访问控制机制使用非法的策略文件处理系统安全事件,从而产生Hypervisor系统安全问题。

正是由于传统文件安全机制存在着上述安全风险,即传统文件安全机制无法满足Hypervisor动态策略文件和存储策略文件的完整性安全需求,因此,设计新的可解决上述安全风险的策略完整性安全机制是有意义的。

2 SHPI机制

针对第1节所述安全风险,本文提出了SHPI机制。该机制针对Hypervisor无法保障动态策略文件的数据完整性的安全,采用数据校验算法对动态策略文件进行完整性校验,以保障动态策略文件的数据完整性。同时,该机制针对Hypervisor无法保障普通用户进程空间所存储策略文件的完整性安全,基于统一可扩展固件[19](unified extensible firmware interface,称UEFI固件),将系统策略文件存储于UEFI固件中,以实现系统策略文件的安全存储。

2.1 SHPI机制设计

如前所述,与传统文件安全机制所采用的策略文件存储方案不同,SHPI机制将策略文件存储于UEFI固件中,利用UEFI固件的安全特性[20]实现策略文件的安全存储,并基于UEFI运行时服务[20]实现 Hypervisor安全获取UEFI固件中策略文件的目标。同时,SHPI机制使用读写信号锁机制实现SHPI机制与Hypervisor访问控制机制之间相互独立运行,以增强Hypervisor的可靠性与可用性。另外,SHPI机制通过代理模块使用MD5消息摘要算法[20]对动态策略文件进行完整性定时校验,以保障动态策略文件的完整性安全。并当SHPI机制检测到动态策略文件被非法修改后,SHPI机制启动文件更新程序,以更新动态策略文件,保障Hypervisor访问控制机制使用可靠安全的策略文件。

SHPI机制的工作流程如图2所示。

(1)校验。SHPI代理模块定时校验动态策略文件的数据完整性。

(2)查询。若需要更新动态策略文件库,SHPI代理模块则查询系统策略文件库。

(3)获取。SHPI代理模块获取存储于UEFI固件的系统策略文件。

(4)更新。SHPI代理模块使用可信任的策略文件更新动态策略文件库。

图2 SHPI机制工作流程

2.2 SHPI机制实现

SHPI机制实现框架如图3所示。

图3 SHPI机制实现框架

SHPI机制由动态策略文件库、SHPI代理模块和钩子函数库等3部分组成。动态策略文件库通过钩子函数库为Hypervisor提供策略快速查询服务,SHPI代理模块用于保障动态策略文件的数据完整性安全,同时在需要更新动态策略文件库时获取UEFI固件中的系统策略文件,从而实现了固件级的策略存储安全方案。

(1)SHPI代理模块。SHPI代理模块的策略校验子模块 (图3所示)采用MD5消息摘要算法对策略文件进行完整性校验,即通过比较动态策略文件的MD5值与UEFI固件中策略文件的MD5值,判断策略文件的完整性。若该模块检测到策略文件的完整性已被破坏,即策略文件被非法修改了,则SHPI代理模块调用策略更新子模块 (图3所示)恢复动态策略文件库中的策略文件。同时,由于SHPI机制将策略文件以系统配置信息的形式存储于UEFI固件中,而不是用户空间,SHPI代理模块的策略查询子模块(图3所示)使用UEFI运行时服务安全地获取UEFI固件中的策略文件。

(2)动态策略文件库。该模块主要功能是提高Hypervisor访问控制机制获取策略文件的速度。SHPI机制修改并改进了Hypervisor原有动态策略文件库的实现,利用/proc文件系统建立动态策略文件库 (图3所示)。动态策略文件库的建立由SHPI代理模块的查询子模块负责构建 (图3所示)。系统启动初期,查询子模块调用UEFI运行时服务从UEFI固件中加载策略源文件,并负责构建一个/proc文件系统设备结点,用于存储所获取的策略源文件,形成动态策略文件库。

(3)钩子函数库。由于SHPI机制将策略文件存储于UEFI固件中,因此Hypervisor需采用新的策略查询方法来查询与获取策略文件。SHPI机制修改了Hypervisor原有的策略查询函数 (图3所示),实现了Hypervisor访问控制机制查询并获取新的动态策略文件库中的策略文件等功能。

3 SHPI机制原型系统测试及应用分析

SHPI机制原型系统的性能测试硬件环境为Intel?CoreTM2Duo E6850 3.00GHZ,2GB RAM的工作站。软件环境为Linux操作系统,内核版本为v3.4.10(其中内核中与策略查询相关的钩子函数库模块已修改,如图3所示钩子函数库),并启动了SELinux安全服务和关闭了其它不相关的服务。同时,本文使用BluePill[21]程序攻击 Hypervisor,以测试SHPI机制的性能。

如图3所示,虚拟机n是一台已被成功攻击的虚拟机,且虚拟机n的虚拟网卡驱动程序中已被植入了BluePill攻击代码。当虚拟机n试图访问实际网卡设备时,虚拟网卡驱动程序被载入Hypervisor内核,导致BluePill程序获得Hypervisor内核空间的ring 0执行权限。BluePill程序运行后,使用非法的策略文件替换动态策略文件库中的策略文件。此时,校验子模块 (图3所示)将及时检测到动态策略文件已被修改,同时,通过获取UEFI固件中可信任的策略并调用策略文件更新子模块 (图3所示),更新动态策略文件库的动态策略文件。

如前所述,定时间隔是影响SHPI机制性能的主要因素,因此,本文测试了不同定时间隔下SHPI机制的性能指标。采用Matlab程序对测试数据进行多项式函数拟合后的结果如图4所示。随着定时间隔时间延长,SHPI机制运行开销 (图4所示虚线)逐步降低,系统性能 (图4所示实线)将显著提高。因此,定时间隔是影响SHPI机制的主要因素。虚拟化系统根据实际环境的安全需求,合理选择合适的定时间隔,以实现策略安全与系统性能之间的合理平衡。

图4 定时间隔、SHPI运行开销和系统性能之间的关系

实验结果表明,SHPI机制与现有的Hypervisor访问控制机制,如SELinux安全机制,之间仅存在的冲突是二者的策略查询函数获取策略路径不同。因此只需修改现有访问控制机制查询策略函数等相关模块,即可将SHPI机制作为现有访问控制机制的有效补充机制,并可实现存储策略文件及动态策略文件的完整性安全保障目标,以提高虚拟化系统的整体安全。

4 结束语

针对Hypervisor的传统文件安全机制无法保障系统所存储策略文件完整性安全及无法对动态策略文件进行完整性校验的不足,本文提出了SHPI机制。该机制基于UEFI固件,实现策略文件安全存储于UEFI固件中,并使用完整性校验方法实现动态策略文件完整性定时校验目标,保障了动态策略文件的完整性安全,提高了系统的安全性。下一步的工作重点是将SHPI机制应用于云计算系统中,并基于UEFI固件的TCP/IP网络协议栈,实现云计算系统服务器之间共享策略文件在云计算系统中的应用安全。

[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,Fraser 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.

猜你喜欢
固件完整性校验
石油化工企业设备完整性管理
炉温均匀性校验在铸锻企业的应用
基于SHA1的SCADA系统PLC固件完整性验证方法
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义
结合抓包实例分析校验和的计算
分析校验和的错误原因
基于UEFI固件的攻击验证技术研究*
基于固件的远程身份认证
精子DNA完整性损伤的发生机制及诊断治疗
提取ROM固件中的APP