2 背景
传统的杀毒软件曾经也使用过一些简单的虚拟技术(如API虚拟化)应用在它们的杀毒引擎中。基于虚拟化技术的恶意软件行为分析检测系统在某种程度上,可以记录恶意软件的执行序列,并给予一定层次的重建功能,而且,使用虚拟技术的好处是,恶意软件对虚拟运行环境造成的任何伤害都不会影响到研究者的真实操作系统。同时,研究者也可以很方便的恢复虚拟系统到某个初始状态,这样,比起采用真实系统来说,虚拟化的系统更为便利和高效。诸多的采用虚拟技术的恶意软件分析工具都没有充分的利用硬件层的虚拟化技术,而仅仅使用操作系统提供的一套指令来模拟出一个虚拟运行环境,这也使得恶意软件制造者可以通过对这些分析工具的分析,相应的给出对抗的技术。一些常见的诸如查找特定的硬件设备、指令执行耗时比对、系统驱动列举等方法,都可以躲避大多数分析工具的行为检测。
3 Intel VT技术
Intel在其最新的CPU产品中加入了一套指令,用于增强其CPU对x86系统指令集合虚拟化的支持,将这种技术称为Virtualization Technology,简称VT。这些新指令加入了两种处理器模式,称为VMX-root模式和VMX-non-root模式。通常在研究者的真实操作系统(称为Host)中运行VMX-root模式,则虚拟出来的用于运行恶意软件的操作系统(称为Guset)中则运行VMX-non-root模式。这两种模式的转变则通过两个新的指令VMEntry和VMExit来实现。VMEntry使得VMX-root模式切换到VMX-non-root模式,VMExit则反之。同时,在VMX-non-root模式下,一些关键的CPU指令如CPUID、读写MSR、操作CR3寄存器、内存页错误等操作都会触发VMExit,使得其退出VMX-non-root模式,回到VMX-root模式。访问CR3寄存器相关代码如下:
hvm_op.domain = (domid_t)dom;
hvm_op.cmd = XEN_DOMCTL;
hvm_op.u.command_code=XEN_DOMCTL _ADD_CR3;
hvm_op.u.cr3_value = cr3;
result = xc_domctl(xc_iface, &hvm_op);
|