摘要: 虚拟化技术的发展和应用,给虚拟机的安全带来了新的威胁和挑战。本文深入研究和分析了针对虚拟机的rootkit攻击以及虚拟机监控软件(hypervisor)面临的安全风险,提出了检测和防范rookit攻击的方法。结合可信赖执行技术(TXT)的特点,给出了防范基于hypervisor的rootkit的方法和步骤。最后,文章探讨了虚拟机安全的发展趋势和进一步研究方向。
关键词: 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的极大兴趣,因而基于hypervisor的rootkits的检测和防范技术逐渐进入了研究人员的视野。
二、基于hypervisor的rootkit的检测技术
Hypervisor也称为虚拟化监视器,使计算机实现了虚拟化。Hypervisor是一个中间软件层,是一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。
然而,这种纯软件的“完全虚拟化”模式中,Hypervisor必须控制各种关键平台资源,然后将其分配给每个客户机操作系统,以避免发生冲突,以便处理与虚拟化相关的操作,虚拟计算机的层次结构如图1所示。Intel和AMD先后推出了各自硬件平台虚拟化的扩展技术:Intel的VMX和AMD的SVM。基于X86架构的虚拟机产品的推出,如Vmware、Virtual PC等,使虚拟计算机技术得到了前所未有的发展。如图1所示,虚拟化技术通过在现有平台上添加一层薄的虚拟机监控软件(hypervisor)而实现对系统的虚拟化,如虚拟处理器、虚拟内存管理器(MMU)和虚拟I/O系统等。
Rootkit是攻击者用来隐藏自己的踪迹,保留root访问权限,留下后门的程序集。内核rootkit技术的发展使传统rootkit检测技术愈来愈不可靠。最新的内核级rootkit,将多种类型的恶意代码包装在内,它可以跳转到处理器,在BIOS检测时,再跳转到系统内核,在计算机被清除和恢复后也难于彻底根除。这种永久性rootkit已经成为最危险的rootkit,rootkit可以从多个方面来利用固件的漏洞,如可借助于启动加载程序、设备驱动程序、闪速固件更新等。
传统rootkit检测的最好方法是关闭被怀疑感染rootkit的计算机,然后用另外一个干净的硬盘或其它媒体启动计算机,再用相关的检测软件实施检查。因为一个没有运行的rootkit是无法隐藏自己的,所以我们可以使用一些通用的反恶意软件工具配合专门的反rootkit工具来检查和清除rootkit。
利用传统的方法检测基于hypervisor的rootkit存在效率低、可靠性差等问题,但是也不是说这种基于虚拟技术的rootkit是完全不可检测的,其实针对它也有一些检测的方法。
(责任编辑:adminadmin2008)