网站首页 | 杂志首页 | 杂志简介 | 特别推荐 | 在线订阅 | 欢迎投稿 | 联系我们
 
  技术与应用
利用可信赖执行技术防范基于hypervisor的rootkit(2008年第3期)

(2009-07-28 11:12:00)

宋晓龙 张立航 陈大勇

        摘要: 虚拟化技术的发展和应用,给虚拟机的安全带来了新的威胁和挑战。本文深入研究和分析了针对虚拟机的rootkit攻击以及虚拟机监控软件(hypervisor)面临的安全风险,提出了检测和防范rookit攻击的方法。结合可信赖执行技术(TXT)的特点,给出了防范基于hypervisorrootkit的方法和步骤。最后,文章探讨了虚拟机安全的发展趋势和进一步研究方向。

 

        关键词: Rootkit    可信计算    Hypervisor    策略

 

        Preventing hypervisor-based rootkit with trusted execution technology

 

        SONG Xiao-Long1   ZHANG Li-Hang1   CHEN Da-Yong2

 

        (1:China Information Technology Security Evaluation Center, 100085, China; 2:Huazhong University of Science and Technology, Wuhan 430074, China);

 

        Abstract: Development and applications of Virtualization technology have brought new threats and challenges to virtual machine security. In this paper, the virtual machine rootkit attacks and security risks which challenge the hypervisor are in-depth studied and analyzed. Detecting and analyzing rookit attack method are proposed. Combined with Trusted Execution Technology (TXT) characteristics, methods and procedures preventing hypervisor-based rootkit are gived. Finally, we discuss the development trends of virtual machine security and its further research directions.

 

        Key words: Rootkit,    the Trusted Computing,    Hypervisor,    policy

                        

一、引言

   

        虚拟化技术的应用为数据中心、开发者和使用者提供了很多便利,它的产生及快速普及却带来了许多安全方面的隐患,基于虚拟计算机的病毒、恶意软件、rootkit也大量出现。从20世纪60年代虚拟化技术出现以来,其安全问题已成为一个热门的研究领域,安全网络扫描经常会错过不安全的虚拟服务器。Invisible Things公司的研究员Joanna Rutkowska在黑客大会上描述和证明了她研发的rootkit工具Blue Pill,并引发了大家对虚拟机下rootkit的极大兴趣,因而基于hypervisorrootkits的检测和防范技术逐渐进入了研究人员的视野。

                     

二、基于hypervisorrootkit的检测技术

   

        Hypervisor也称为虚拟化监视器,使计算机实现了虚拟化。Hypervisor是一个中间软件层,是一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。

   

        然而,这种纯软件的“完全虚拟化”模式中,Hypervisor必须控制各种关键平台资源,然后将其分配给每个客户机操作系统,以避免发生冲突,以便处理与虚拟化相关的操作,虚拟计算机的层次结构如图1所示。IntelAMD先后推出了各自硬件平台虚拟化的扩展技术:IntelVMXAMDSVM。基于X86架构的虚拟机产品的推出,如VmwareVirtual PC等,使虚拟计算机技术得到了前所未有的发展。如图1所示,虚拟化技术通过在现有平台上添加一层薄的虚拟机监控软件(hypervisor)而实现对系统的虚拟化,如虚拟处理器、虚拟内存管理器(MMU)和虚拟I/O系统等。

   

        Rootkit是攻击者用来隐藏自己的踪迹,保留root访问权限,留下后门的程序集。内核rootkit技术的发展使传统rootkit检测技术愈来愈不可靠。最新的内核级rootkit,将多种类型的恶意代码包装在内,它可以跳转到处理器,在BIOS检测时,再跳转到系统内核,在计算机被清除和恢复后也难于彻底根除。这种永久性rootkit已经成为最危险的rootkitrootkit可以从多个方面来利用固件的漏洞,如可借助于启动加载程序、设备驱动程序、闪速固件更新等。

   

        传统rootkit检测的最好方法是关闭被怀疑感染rootkit的计算机,然后用另外一个干净的硬盘或其它媒体启动计算机,再用相关的检测软件实施检查。因为一个没有运行的rootkit是无法隐藏自己的,所以我们可以使用一些通用的反恶意软件工具配合专门的反rootkit工具来检查和清除rootkit

   

        利用传统的方法检测基于hypervisorrootkit存在效率低、可靠性差等问题,但是也不是说这种基于虚拟技术的rootkit是完全不可检测的,其实针对它也有一些检测的方法。

 

        (1)最佳方法是用一个完全干净的系统来检测当前系统。

 

        (2)用另外一个原来完全相同的系统与当前系统进行对比,找出其差异。

 

        (3) 通过虚拟机嵌套的方法,在虚拟机里面再产生一个虚拟机,如果rootkit不支持嵌套的虚拟机模拟,就无法规避这种检测。还可以通过计时的方法,有一些指令的执行是通过虚拟出来的,所占用的CPU周期肯定会比真实的时间要长,可以通过这种方法来进行检测。当然还可以通过所谓的TLB勒谱,通过物理内存扫描,还有利用DMA进行攻击。

 

        (4) 还有一种方法是通过Chipset,北桥里面嵌入的一个微控制器来进行检测,其中AMT代码实际上并不是执行在CPU中,而是执行在北桥里,相当于在一个嵌入式控制器里。这种代码本身可以操纵微控制器的DMA功能,能够读写主存里任意的内存地址,包括系统管理模式内存。通过这种方法,可以在物理内存中来检测到rootkit

 

        传统检测基于hypervisorrootkit的方法并不完美,下面我们介绍利用可信执行技术检测基于hypervisorrootkit

                     

三、利用可信赖执行技术检测基于hypervisorrootkit

   

        hypervisor运行时,恶意软件隐藏于rootkit之中有两种截然不同的攻击方式,一种是在一个真实的虚拟机中嵌入一个虚拟机,一种是修改运行的虚拟机监控软件以植入恶意代码。为预防恶意虚拟机软件被加载而检查虚拟机的完整性是确保虚拟机成为可信平台的第一步,利用虚拟化、可信计算可确保一个特定的可信hypervisor被加载。可信计算组织(TCG)介绍的测试方法并不能完全满足虚拟化设备的要求。在运行着的操作系统上启动虚拟机是AMDINTEL的安全扩展部分,它们提供了新的特征,也为攻击者安装恶意软件进入虚拟机提供了一个新的机会。硬件许多部分的改变是在所难免的,如芯片和CPU的改变在保护模式下进入内存和I/O组件。

 

        1.可信赖执行技术(TXT

   

        可信赖执行技术的扩展是可信计算和虚拟化融合的结果,CPU和芯片支持的硬件虚拟化由可信平台模块扩展,以提供可信的封装存贮和报告平台认证。

可信赖执行技术平台通过动态测量根(DRTM)允许动态受保护虚拟内存系统创建,从而增强测量静态信任角色(SRTM)。并非从BIOS开始进行一系列测试,可信赖执行技术在平台启动后的任何时间里在一个能够测试的环境运行,这能够发生在系统运行的任何时间,因而能够将信任级别动态地融入硬件。程序的目的是在可测试启动环境(MLE)建立引导程序,从而为操作系统内核或者虚拟机软件运行提供可信的基础。更加广泛地讲,测试启动环境是一个利用Intel的安全模式扩展(SMX)的软件。

   

        采用启动控制策略(LCPs,平台能决定是否受测试的启动环境满足一组特定标准,这些标准可能由平台的所有者定义,或者由平台提供者定义为默认状态。SINIT认证模块加载并且执行这个存储在平台上的策略,策略保存在可信平台模块的常驻内存中,在电源开启之后避免非授权的角色进入。Intel的可信赖执行技术扩展定义了两套不同策略,一个是默认策略或者平台提供的策略(PD),另一个是特定用户策略(PO)。   如果策略没有被定义,SINIT AC模块准许受测试启动环境的任何配置。如果两套策略都经过定义,它们将被结合在一起。

  

        每种策略包含一组有效的测试启动环境方法(典型如SHA-1散列)和一组有效的平台配置方法。预先存储的受测试启动环境的方法与不确定的受测试启动环境的方法进行比较。另外,这个平台的配置值对照一个由策略定义的平台控制寄存器进行核查。平台控制寄存器(PCR)是包含在可信性平台模块(TPM)芯片当中的受到保护的特殊寄存器。因为平台控制寄存器的永久储存非常有限,所以策略仅包含一个累积计量。但是,这个计量同样可以成为外部计量储存列表的值。如果所有策略的要求全被满足,那么SINIT AC模块执行和启动这个受测试的启动环境。

 

        策略执行模块对任何平台提供者来说功能很强大,能够使它们定义默认的策略。然而,这个平台的所有者能够决定是否执行这个策略。保留可信环境列表并且在硬件中执行其策略意味着对潜在恶意软件试图进入虚拟机难上加难,这个启动控制策略流程如图2所示。

 

        2.检测方法与流程

 

        (1)将测试启动环境的代码和一个特定的认证模块(SINIT AC模块)加载到受保护的内存区。SINIT AC模块为一个平台,为一个处理器指定模块用来测试和执行测试启动环境的策略,SINIT AC模块被平台商加密签名过并且被平台CPU认证过。

 

        (2)这个环境广播由新的安全模式扩展(SMX)提供的SENTER指令。这初始化硬件程序能够使芯片和处理器在一个受保护的状态。

 

        (3)AC模块被认证和启动。AC模块测试并且检查内存中的测试启动环境,如果它满足平台策略,则启动测试启动环境。

 

        (4)测试启动环境负责处理每一个VMExit操作,以保持测试环境。VMExit指令通常由虚拟用户传送给虚拟机软件。

 

        (5)执行指令GETSEC[SEXIT]撤销测试启动环境。指令GETSEC[SEXIT]正好与指令GETSEC[SENTER]相反。所有进程是同步的,剩余密文被加密,可信的内存被檫除,在执行完指令GETSEC[SEXIT]之后,平台继续进行正常的操作。

以上执行步骤如图3所示。硬件扩展创造了特殊的保护环境,要求代码和策略验证在以后的阶段执行,系统能够决定环境是否满足预先定义的可信状态。

安装一个可信环境并且防范基于hypervisorrootkit还应该防止可信软件中的缺陷被利用,这说明了配置hypervisor的重要性。

  

        有硬件协助、基于签名的rootkit检测机制通过软件嵌入芯片的固件中,运行于虚拟机软件和潜在的rootkit里,能够扫描、检测和净化基于hypervisorrootkit。还要防止恶意软件通过修改其签名适应它,同时深度扫描不能监管系统的管理模式,因而完整执行和保护机制需完善为一个平台。

                                   

四、展望

   

        尽管基于hypervisorrootkit目前的危害程度还不是很大,但虚拟机必将融入未来的应用平台是当前的发展趋势,因此威胁依然是真实存在的。基于操作系统的经典检测机制,如基于内存的完整性扫描或者基于启发式的分析在较低的系统级上检测rootkit是不够的。因而,应用其他的保护机制如可信赖执行技术非常重要,而并非单独使用检测策略。

 

        恶意隐藏与防范不断深化,传统恶意软件的应用变得越来越容易。我们看到独立于操作系统的rootkit有不断增加的趋势,像系统管理级的rootkit或者基于hypervisorrootkit,这表明了攻击者已经适应这些新技术的变化,这使得攻击机制和防范措施变得异常复杂。

 

       hypervisor安全方面,平台以及芯片级是目前的新战场。可信赖执行技术的启动和策略执行过程能够证明hypervisor的完整性。因此,hypervisor的完整性监控是防范基于hypervisorrootkit的关键步骤。

 

        未来的芯片可能在启动期间和运行期间将永久完整性监控和执行功能融合在一起,以保证hypervisor的完整性。虚拟机控制结构(VMCS)存储并且管理主机系统和虚拟机的状态,这个控制结构被固化在硬件中,这可能是放置基于硬件的综合监控器的最佳位置。

 

参考文献

 

[1] Peter Ferrie, Attacks on virtual machine emulators.Tech. rep., Symantec Security Response, 2006.

 

[2] 怀进鹏 .基于虚拟机的虚拟计算环境研究与设计.软件学报,北京:Vol.18, No.8, August 2007, pp.2016?2026

 

[3] Tal Garfinkek, Ben Pfaff, Jim Chow, Mendel Rosenblum and Dan Boneh, Terra: a virtual machine-based platform for trusted computing.” SOSP03: Proceedings of 19th ACM Symposium on Operating Systems Principles. New York, NY, USA: ACM, 2003, 193-206.

 

[4] Rafal Wojtcauk, “Subverting the Xen hypervisor”, 2008. http://invisiblethingslab.com/bh08/papers/part1-subverting_xen.pdf

 

[5] Intel,”Intel trusted execution technology measured launched environment developer’s guide”, 2008. http://download.intel.com/technology/security/downloads/315168.pdf

 

[6] Yuriy Bulygin and David Samyde. ”Chipset based approach to detect virtualization malware a.k.a. DeepWatch.Black Hat USA, 2008 http://www.mnm-team.org/pub/Fopras/frit08/PDF-Version/frit08.pdf

 

作者简介

 

1. 宋晓龙(1970),男,硕士学位,副研究员,主要研究方向为网络安全。

 

2. 张立航(1977),男,硕士学位,助理研究员,主要研究方向为网络安全。

 

3. 陈大勇(1984),男,在读硕士研究生,华中科技大学电子科学与工程学院,主要研究方向为水下激光探测与图像处理。


 
 
  
 
版权所有 ©2002,中国信息安全测评中心
北京市海淀区上地西路8号院1号楼 Tel:010-82341391 或 010-82343092 Fax:010-82341100
测评服务直拨电话 Tel:010-82341579
E-mail:service@itsec.gov.cn