基于虚拟机的Rootkit技术研究

  • 格式:pdf
  • 大小:395.50 KB
  • 文档页数:2

科技信息1引言Rootkit是用来隐藏自身踪迹和保留系统访问权限的工具集。

当前的Rootkit受限于两个方面:首先,Rootkit较于入侵检测系统在系统的控制程度上没有明显的优势。

如果进攻者与防御者都运行在最高权限下,他们彼此之间没有优势可言,先感知到对方存在的一方将会获胜。

其次,当前的Rootkit在功能性与隐蔽性上无法兼得。

功能强大的恶意程序较简单的程序会留下更多的痕迹,容易被安全工具检测到。

一种名为虚拟机Rootkit(VMBR,virtual-machinebasedrootkit)的恶意程序,利用虚拟机技术突破了当前恶意程序的局限。

VMBR对系统具有更高的控制程度,能提供多方面的功能,并且其状态和活动对运行在目标系统中的安全检测程序来说是不可见的。

VMBR在正在运行的操作系统下安装一个虚拟机监视器(VMM,virtualmachinemonitor),并将这个原有操作系统迁移到虚拟机里,而目标系统中的软件无法访问到他们的状态,因此VMBR很难被检测和移除。

2虚拟机原理VMM是运行在硬件之上或运行在操作系统之中的软件层次。

VMM为使用仿真硬件的客户软件提供硬件抽象,VMM将捕获对硬件设备的访问,并利用软件方式进行仿真,使得客户操作系统与虚拟硬件的交互如同与真正的硬件交互一样。

VMM通过复用计算机的硬件以支持多个操作系统运行在同一个主机上,这些操作系统相互隔离,并拥有各自的应用程序。

VMM管理底层硬件的资源以及对一个或多个虚拟机进行抽象。

每一个虚拟机都能运行完整的客户操作系统和客户应用程序。

虚拟机(VM,virtualmachine)可分为两种类型,如图1。

图1虚拟机的两种类型类型I中VMM直接运行在硬件层之上,控制着物理硬件资源,为运行在VMs中的操作系统提供虚拟接口。

类型II中的虚拟化软件(如VMware)作为一个应用程序运行在操作系统中,这个操作系统被称作主机操作系统。

而运行在VM中的操作系统则被称为客户操作系统。

VMware作为主机系统的进程而运行并且为客户系统的I/O请求提供服务。

3虚拟机RootKit的实现VMM为恶意程序提供了一个强大的平台。

一个VMBR将目标系统迁移到虚拟机中,然后在VMM或另一个虚拟机中运行恶意程序,VMM将恶意程序与目标系统隔离开,这样目标系统上的安全检测软件就无法发现和修改恶意程序。

同时,VMM能够掌握目标系统上的所有事件和状态,当VMBR修改这些事件和状态时,由于它完全控制了面向目标操作系统和应用程序的虚拟硬件,目标系统将无法发现这些改动。

3.1软件虚拟化环境下的VMBRSubVirt是由微软和密歇根大学的研究人员开发的概念验证型VMBR,它依赖于商用的虚拟机软件(VMware或VirtualPC)来构建虚拟化环境,并且需要供其自身运行的主机操作系统。

3.1.1SubVirt的装载SubVirt需要运行在目标操作系统及其应用程序之下,并且将目标系统作为客户系统运行。

为了达到这个目的,SubVirt必须篡改系统启动顺序,以确保SubVirt先于目标操作系统装载。

如图2所示,SubVirt在注入前后的对比,灰色部分为VMBR的组件。

图2VMBR注入前后的对比攻击者在安装这个VMBR之前,必须先获得目标系统足够的访问权限,这样才能更改系统的启动顺序。

当目标系统是Windowsxp时,SubVirt存储在第一个活动分区的开始部分,并将该区域上的原有数据重定位到磁盘的其他空闲区,然后通过修改引导记录来更改系统启动顺序。

为了避免被检测磁盘引导扇区的安全软件检测到,SubVirt在系统关闭期间,大多数进程和内核子系统退出后才修改引导扇区,并且使用底层的磁盘驱动进行VMBR启动代码的复制,这样可以绕过文件系统层上的检测软件。

SubVirt利用内核组件注册了一个LastChanceShutdownNotification事件处理程序,它会在系统关闭时被调用,当调用发生时,SubVirt的启动代码将被拷贝到磁盘的活动分区中。

在下一次系统启动时,SubVirt将会先于目标系统载入,并安装主机系统和VMM,构建虚拟环境,然后载入目标系统,此时的目标系统已成为VM下的客户系统,处于Sub-Virt的控制之下。

在SubVirt安装之后,由VMM控制最底层,把目标系统对虚拟磁盘的访问转换为对应的物理磁盘的访问。

由于VMBR使用了与目标系统相隔离的主机系统,在此之上安装的任何恶意程序对目标系统来说都是不可见的。

而恶意程序则可以对目标系统进行攻击。

基于虚拟机的Rootkit技术研究沈阳工业大学孙迪杨大全[摘要]随着安全检测软件深入到系统内核,传统的内核级Rootkit逐渐丧失了隐藏自身和控制系统的优势。

但是一种利用虚拟机技术的虚拟机Rootkit又一次打破了平衡,它试图在虚拟化环境下躲避检测,并控制目标系统。

本文将介绍两种在不同虚拟化环境下的Roorkit的实现方式。

[关键词]隐藏虚拟机RootKit控制虚拟化环境HardwareGuestOS1GuestOS2VirtualMachine(VMM)(a)TypeⅠ(b)TypeⅡGuestOS1GuestOS2VirtualMachine(VMM)HardwareHostOSBeforeinfectionAfterinfectiontargetapplicationtargetapplicationtargetoperatingsystemhosthardwaretargetapplicationtargetapplicationtargetoperatingsystemhosthardwarevirtual-machinemonitor(VMM)maliciousservicemaliciousservicehostoperatingsystem作者简介:孙迪(1981-),男,辽宁沈阳人,沈阳工业大学硕士研究生,主要研究方向:计算机网络;杨大全(1948-),男,辽宁沈阳人,硕士,沈阳工业大学教授,硕士研究生导师,主要研究方向:计算机网络。

博士・专家论坛336——科技信息(上接第335页)教学与科研相结合的模式,明确实习基地建设指导思想,通过实习基地的建设,构建创新人才培养的教学环境,确保实践教学质量。

学生实践能力的形成和综合素质的提高是一个循环渐进的过程,是在不断的实践过程中积累,并通过有意识、有计划的培养逐步形成实现的。

实践证明,我院通过实习基地对学生实践技能的培养,以及学生职业工种的考取,弥补了目前大多数本科高校学生只有理论知识的缺陷,使学习具有双重能力,为他们的就业打下深厚的基础,增强了就业竞争力。

参考文献[1]任洁梅,程冬梅.加强实习基地建设培养学生实践能力[J].实验室科学,2008,2:12-13[2]张天华.高职院校实习基地建设与校企合作探索[J].辽宁高职学报,2007,9(4):60-62[3]孟婷婷.对加强校外实习基地建设的几点认识[J].文教资料,2008,15(5):165-166[4]吴国栋.高校实习基地建设模式研究与实践[J].华东交通大学学报,2007,24(12):117-1183.1.2维持控制权为了避免自身被移除,VMBR必须维持对系统的控制。

只要VMBR控制着系统,它就能阻止任何修改其状态的企图。

VMBR对系统失去控制的唯一时机是系统加电到VMBR加载这段时间,任何在这段时间里运行的代码都能访问到VMBR的状态。

而在此时间段内运行的代码是系统的BIOS,由BIOS启动VMBR,然后VMBR取得系统控制权。

但是如果BIOS通过其他媒介启动(如CD-ROM),并运行一段程序,这个程序将能访问到VMBR。

因此VMBR需要减少系统电源关闭的情况,通常造成电力循环的原因是系统重启和关闭,VMBR通过重启虚拟硬件而不是底层的物理硬件来处理重启操作,这样VMBR可以保持对系统的控制权。

同样,VMBR也可以利用APCI的休眠功能仿真系统关机操作,这个功能可以使硬件处于低能耗状态,如同系统关机状态一样,而实际上内存仍处于加电状态,当用户按下电源按钮时,系统从APCI的休眠状态中恢复,内存中的VMBR也重新取得系统的控制权。

在以上两种情况下,即使BIOS通过其他媒介启动系统,都将处于VMBR的控制下。

3.1.3性能评估(1)由于SubVirt在引导目标系统之前需要加载供自己运行的主操作系统和VMM,因此开机启动的时间要比目标系统正常启动的时间要长,并增加了系统资源的额外开销。

(2)SubVirt提供给目标系统的虚拟硬件较之物理硬件有一定的性能损失,如虚拟显卡无法实现物理显卡的3D应用等。

(3)SubVirt运行在X86环境下,并依赖商用的VMM,虚拟化并不完全,VMM只能捕获处于特权级别的处理器指令,无法捕获仿真非特权敏感指令(Sensitiveinstructions),如SIDT指令,利用这样的指令可以用来检测SubVirt的存在。

3.2硬件辅助虚拟化环境下的VMBRINTELVT-X与AMD-V实现了处理器对虚拟化的支持,通过新增加的指令来构建和维护虚拟环境。

不同于SubVirt,硬件辅助虚拟化环境下的VMBR不需要修改引导记录更改系统的启动顺序来加载自身,得到系统的控制权,而是通过相关的CPU指令将正在运行的系统迁移到VM中,达到监视控制目标系统的目的。

3.2.1AMD虚拟化技术AMD-V定义了一些新的CPU指令如:(1)VMRUN:实现一个客户系统(2)VMSAVE和VMLOAD:管理客户状态信息(3)#VMEXIT:退出VM返回到主机模式(4)VMMCALL:允许客户系统与VM管理程序交互还定义了一个名为虚拟机控制块(VMCB)的数据结构,处理虚拟化管理功能,该结构由两个区域构成。

第一个区域为控制位区。

第二个区域用来维护客户的状态。

AMD-V功能启动后,具有两种模式:主机模式和客户模式。

VM管理程序(Hypervisor)在主机模式,客户系统运行在客户模式。

在主机模式下的Hypervisor利用VMRUN指令来实现初始化客户系统的操作,并构造相应的VMCB。

在此之后,客户系统进入执行状态,直到产生了#VMEXIT事件的中断,控制权又回到Hypervisor,并处理这个中断,然后再次调用VM-RUN指令回到客户模式。

客户的状态以及产生#VMEXIT事件的原因将被记录在VMCB中。

整个系统就处于VMRUN与#VMEXIT不断循环的过程中。

3.2.2VMBR的装载为了将正在运行的目标操作系统迁移到VM中转变成客户系统,VMBR必须负责初始化Hypervisor。

VMBR以某种方式侵入到目标系统,利用驱动程序方式加载到系统内核,该驱动程序分配一个不分页的内存区域来存储Hypervisor的代码,当Hypervisor安装完毕后,驱动程序的卸载例程将卸载这个驱动并删除磁盘上的驱动文件。