一种新的恶意软件行为分析系统的设计与实现.doc
《一种新的恶意软件行为分析系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《一种新的恶意软件行为分析系统的设计与实现.doc(13页珍藏版)》请在三一办公上搜索。
1、一种新的恶意软件行为分析系统的设计与实现凌冲 余忠慧 孙乐昌 刘京菊 张亮(解放军电子工程学院 合肥 230037)摘要:基于虚拟化技术的恶意软件行为分析是近年来出现的分析恶意软件的方法。该方法利用虚拟化平台良好的隔离性和控制力对恶意软件的运行时行为进行分析,但存在两方面的不足:一方面,现有虚拟机监视器(Virtual Machine Monitor,VMM)的设计初衷是提高虚拟化系统的通用性和高效性,并没有充分考虑虚拟化系统的透明性,导致现有的VMM很容易被恶意软件的环境感知测试所发现;另一方面,源代码较为庞大和复杂,提供了很多恶意软件行为分析不需要的功能,带来了更多的“边缘效应”和漏洞。为
2、此,提出一种基于硬件辅助虚拟化技术的恶意软件行为分析系统THVA。THVA是一个利用了安全虚拟机(SVM)、二级页表(NPT)、外部设备访问保护(EAP)和虚拟机自省等多种虚拟化技术完成的、专门针对恶意软件行为分析的微型VMM。实验结果表明,THVA在虚拟机自省、行为监控和反恶意软件检测方面表现良好,并通过安全模式转换技术将自身性能提高了18.2%左右。关键词:硬件辅助虚拟化;恶意软件行为分析;虚拟机自省;二级页表;外部设备访问保护中图法分类号:TP309.5 文献标识码:ADesign and achievementof malware analysis system based on Ha
3、rdware-assisted Virtualization MonitorLING Chong YU Zhong-hui SUN Le-chang LIU Jing-ju ZHANG Liang(Electronic Engineering Institute, PLA, Hefei 230037, China)Abstract: Malware analysis based on Hardware-assisted Virtualization Monitor has been recently presently, which utilize the strong isolation a
4、nd the ability to control Guest OS of virtualization platform to analyze the malware runtime behavior. But there are two shortages: one is that the design motive of VMM is not for transparency but for functionality and performance, which induce VMM to be detected by malwares virtualization environme
5、nt detection; another is that VMMs code are too large and complex, and part of their function is unnecessary. These features bring more “side-effects” and vulnerabilities. Therefore, a malware analysis system based on Hardware-assisted Virtualization MonitorTHVA is presented. THVA is thin VMM, which
6、 only about 6000 lines code,utilizing the SVM, NPT, EAP and virtual machine introspection technologies to achieve, and special for malware analysis. The result of experiments shows that THVA is good for virtual machine introspection, behavior monitor and anti-detection, etc. In addition, THVA utiliz
7、es the Security Mode Transition technology to enhance the performance itself for about 18.2%.Key words: Hardware-assisted Virtualization Monitor; malware analysis; virtual machine introspection; NPT; EAP1 引言恶意软件行为分析是指计算机安全研究人员分析恶意软件在操作系统中的执行流程,及其对操作系统资源的影响。通过对恶意软件的行为分析,安全研究人员可以找出针对性的方法修复和保护操作系统。目前,恶
8、意软件行为分析系统主要分为两种:一种是传统的恶意软件行为分析系统,即行为分析系统与恶意软件运行于同一操作系统中,不仅无法确保所提取恶意软件信息的可靠性,其自身也容易受到恶意软件的攻击;另一种是基于虚拟化技术的恶意软件行为分析系统,目前的XEN和VMware等商用虚拟机软件已经被运用到这一领域1。但是,这种行为分析系统也同样存在问题商业虚拟机的设计初衷与恶意软件行为分析系统的设计要求相违背,严重影响了基于虚拟化技术的恶意软件行为分析系统的安全性。本文第二节详细叙述了当前主流恶意软件行为分析技术的缺点。在此基础之上,在第三节提出了一种基于硬件辅助虚拟化技术的恶意软件行为分析系统THVA,并在第四节
9、完成了THVA的原始实现。最后,通过实验结果证明了THVA较之当前大多数恶意软件行为分析系统,具有更好的可靠性、可信性和高效性。2 当前恶意软件行为分析技术及其缺点当前恶意软件分析技术包括了传统恶意软件行为分析技术和基于虚拟化技术的恶意软件行为分析技术。传统的恶意软件行为分析技术包括:反汇编技术、调试技术和黑盒测试技术。其中,反汇编技术是一种代码静态分析技术,它对于现在恶意软件常用到的封包技术和动态代码转译技术是失效的。调试技术可以用来分析恶意软件的每一条指令,但在分析恶意软件的同时容易被恶意软件所感知,恶意软件可以在感知后采用if/then分支选择技术执行虚假行为,使得调试技术对于恶意软件行
10、为分析的结果变得毫无意义。黑盒测试技术并不存在上述缺点,但是这种技术所提供的恶意软件行为分析结果往往是不完整的,影响了恶意软件分析的可信性。基于虚拟化技术的恶意软件行为分析技术利用虚拟机监视器(VMM)和虚拟机(VM)之间强大的隔离性作为安全保证,通过VMM对于VM的系统控制权优势对运行在VM中的恶意软件行为进行监控。这种方法比传统恶意软件行为分析技术更加可靠和可信。现在的商用虚拟机软件XEN和VMware等已经被用来进行相关实验和应用。但是,随着恶意软件的不断发展,该技术遇到了很多问题。针对基于虚拟化技术的恶意软件行为分析技术的出现,目前的很多恶意软件被加入了环境感知功能2。环境感知功能是指
11、恶意软件在运行核心代码前会进行一系列的操作系统环境测试,通过测试结果决定其下一步行为。如果恶意软件发现自己处于虚拟化环境中,会选择终止运行、主动攻击VMM甚至利用计算机网络逃离VM。由于商业虚拟机软件(即商用VMM)的设计目的是解决如何在同一物理硬件上运行多个操作系统和如何最大化硬件资源使用效率,并没有充分考虑虚拟机软件的透明性,所以导致现在的商用虚拟机软件很容易被恶意软件的环境感知测试所发现。例如,XEN-PV采用的是软件虚拟化技术,它必须对中断描述表(IDT)进行重定位。恶意软件执行SIDT指令从中断描述表寄存器(IDTR)中获得当前操作系统IDT的内存地址,通过检查该内存地址是否高于一定
12、的地址值来判断自己是否处于虚拟化环境。VMware和Virtual PC同样可以通过这种方法被检测到。XEN-HVM虚拟机软件采用的是硬件辅助虚拟化技术,这种技术相比软件虚拟化技术具有更好的透明性。但是,为了提高处理器的效率,XEN引进了一种被修改过的软件内存管理单元框架,恶意软件可以通过扫描CPUID 空间中XEN的特征值来判断自己是否处于虚拟化环境中3。另外,商用虚拟机软件需要保证软件功能的完整性和通用性,直接导致了其源代码非常庞大和复杂。仅仅设备虚拟化模块的代码就达数百万行之多。但是,恶意软件行为分析系统并不需要所有的虚拟化功能,过多不必要的虚拟化功能所产生的“边缘效应”2只能为恶意软件
13、感知虚拟化环境提供更多的机会。商用虚拟机软件庞大而复杂的代码带来的另一个不利因素是增加了软件漏洞的出现机率,根据文献4所述,每1000行软件源代码大约会出现6到16个漏洞。恶意软件利用这些漏洞不仅可以攻击VMM,甚至可以获得VMM的权限直接控制VM。通过分析可以看到,当前恶意软件分析技术主要存在三个缺点:(1)透明性较差,容易被恶意软件所发现;(2)代码不够精简,提供的功能很多是恶意软件行为分析系统不需要的,容易引发“边缘效应”和出现软件漏洞;(3)部分分析方法对恶意软件失效,这一点主要针对传统恶意软件行为分析技术。为此,提出了一种新的基于硬件辅助虚拟化技术的恶意软件行为分析系统THVA。TH
14、VA克服了上述恶意软件行为分析技术中的缺点,完成了以下功能:(1)THVA使用虚拟机自省技术定位行为分析目标,通过提取操作系统资源的不同级别的语义对目标进行不同粒度的行为监视,并采用当前最先进的硬件辅助内存虚拟化技术保护THVA在物理内存中的可执行文件;(2)THVA是一个微型的VMM,去掉了商用虚拟机软件中不必要的功能(如设备虚拟化等),大大精简了源代码。THVA的实现主要集中在处理器虚拟化、内存虚拟化和虚拟机自省三个方面,源代码不足6000行,从而有效降低了出现软件漏洞的可能性,同时减少了“边缘效应”,提高了自身透明性;(3)THVA使用一种安全模式转换技术提高了虚拟机的性能。实验表明,该
15、技术可以将THVA的性能提高大约18.2%。3 系统设计3.1 SVMTHVA是一个利用硬件辅助虚拟化技术开发的微型VMM。由于AMD硬件厂商在硬件辅助虚拟化技术领域一直处于领先地位,所以THVA采用的是AMD推出的硬件辅助虚拟化技术安全虚拟机(SVM)技术。SVM分为两种运行模式5:主机模式(CPU的控制权交给VMM)和客户机模式(CPU的控制权交给虚拟机中的操作系统)。运行在虚拟机中的操作系统也成为Guest OS。从主机模式到客户机模式的转换称为虚拟机迁入(VM Entry),从客户机模式到主机模式的转换称为虚拟机退出(#VM Exit)。SVM增加了新的指令集:VMRUN、VMSAVE
16、、VMLOAD、VMMCALL、INVLPGA 、SKINIT等。其中,VMRUN指令用来执行VM Entry工作,VMMCAL指令用来执行#VM Exit工作。SVM还增加了一个数据结构叫做VMCB(Virtual Machine Control Blocks),用来控制虚拟机中存储客户机模式下Guest OS的状态和控制操作系统的执行过程。VMSAVE指令和VMLOAD指令用来访问VMCB。2008年,SVM又加入了NPT(Nested Page Table)技术和EAP(External Access Protection)技术。前者是为了帮助VMM实现内存虚拟化,后者是为了控制外部设备
17、的DMA(Direct Memory Access)访问。3.2 系统设计THVA的设计目的是构造一个透明的、精简的和安全的恶意软件行为分析系统。出于这些考虑,在设计和实现过程中并没有选择XEN、VMware和Virtual PC等商用软件,而是选择SVM作为基础平台重新构造了一个专门针对恶意软件分析的微型VMM。THVA由五个模块组成:初始化模块、内存保护模块、虚拟机自省模块、THVA行为监视模块和模式转换模块。如图1所示。图1 THVA的系统设计示意图初始化模块:完成THVA加载到操作系统之前准备工作,包括判断处理器是否支持SVM技术,设置与开启SVM技术相关的寄存器,填充VMCB、初始化
18、主机模式的状态等。初始化模块的最后一项任务是执行VMRUN指令,使得操作系统进入客户机模式成为Guest OS。内存保护模块:为了保护THVA的可执行文件的映像在内存中不受到恶意软件或恶意操作的威胁,THVA对其实行了内存保护。THVA的内存保护技术使用了SVM最先进的NPT技术和EAP技术,从Guest OS内部和物理设备外部分别对THVA所占物理内存进行了保护。虚拟机自省模块:虚拟机自省技术是指VMM通过某种方法监控Guest OS内部活动进程的方法。本文提出一种通过FS寄存器的方法来获取Guest OS内部活动进程的映像文件名。THVA行为监视模块:THVA行为监视模块分为粗粒度行为监视
19、模块和细粒度行为监视模块。粗粒度行为监视是指THVA监视Guest OS中目标进程的系统调用。细粒度行为监视是指THVA监视Guest OS中程序运行时的指令及其访问的操作系统资源。在Windows 2000以后的操作系统中,完成系统调用的方法有两种:执行int 0x2e指令和执行sysenter快速调用指令,返回系统调用的指令分别是iret指令和sysexit指令6。THVA截获了所有四条指令,并提取了每一次系统调用的系统调用号、函数调用参数和输出缓冲区,很好的完成了粗粒度行为监视。对于细粒度行为监视,THVA通过对RFLAGS寄存器中TF(Trap Flag)比特位的循环设置来截获和记录每
20、一条指令及其所访问的系统资源。安全模式转换模块:普通虚拟机软件只包括了主机模式和客户机模式。与其不同,THVA将客户机模式细分为客户机精简模式和客户机监视模式。实验结果证明这种方法可以有效提高VM的性能。本节主要介绍了THVA的总体设计和组成模块,明确了THVA所需要做的工作。下一节将详细介绍THVA各个模块的原始实现。4 系统原始实现计算机的虚拟化技术包括处理器虚拟化、内存虚拟化和设备虚拟化三个部分7。THVA是一个针对恶意软件行为分析的微型VMM,完成的是处理器虚拟化和内存虚拟化两个部分。删去设备虚拟化的原因是设备虚拟化的用途与THVA的使用目的无关,以及设备虚拟化的代码过于庞大和复杂,容
21、易引发“边缘效应”和出现软件漏洞。另外,THVA实现了恶意软件行为分析的功能。这些功能包括虚拟机自省、恶意软件行为监视和安全模式转换。特别的,THVA为了防止恶意软件从外部设备直接修改和破坏THVA所占的物理内存,使用了EAP技术拒绝外部设备以DMA的方式对THVA所占物理内存的访问。4.1 THVA的初始化THVA的初始化是指操作系统在被THVA托入虚拟机前的准备工作。在初始化之后,THVA执行VMRUN指令将操作系统托入虚拟机。首先,THVA需要使用CPUID指令判断处理器是否属于AMD,如果是则继续使用CPUID指令判断此AMD处理器是否支持SVM技术。接下来,THVA需要设置EFER
22、MSR寄存器中的EFEFSVME为1,打开处理器的SVM功能。其次,THVA将会分配一块大小为4KB的物理内存用来存储主机模式状态,包括主机模式的段相关寄存器、控制寄存器和#VM Exit发生时程序入口点等。THVA将该内存的物理地址放入VM_HSAVE_PA MSR寄存器中,处理器会在主机/客户机模式转换时对VM_HSAVE_PA MSR寄存器进行读写操作。然后,THVA开始填充VMCB。THVA为VMCB分配一块大小为4KB的物理内存,并初始化为0。THVA对VMCB的填充包括两个内容,一个是VMCB默认需要填充的比特位,另一个是THVA需要截获的指令和事件的比特位。比较重要的是:THVA
23、必须设置VMCBnp_enable为1,表示打开处理器支持二级页表的功能;THVA在初始化阶段设置截获VMRUN指令和VMCALL指令,前者是必须要设置的,而THVA根据后者获得来自于客户机的指示,从而向VMCB中添加和删除需要截获的指令和事件;THVA还需要向VMCB填充I/O位图和MSR寄存器位图的物理地址,保证处理器能够寻址到这两张位图,处理器通过对照位图中设置的比特位可以产生相应的I/O访问异常和MSR寄存器访问异常。最后,THVA执行VMRUN指令。操作系统被THVA托起成为Guest OS,处理器把控制权交给Guest OS,Guest OS一直运行直到发生#VM Exit。此时,
24、THVA会重新获得处理器控制权。4.2 THVA的内存保护THVA通过实现内存虚拟化保护自己所占内存空间不会受到恶意软件的攻击。在NPT技术没有出现之前,内存虚拟化通常是用影子页表方法实现的。这种方法不仅严重影响了虚拟机的性能,而且实现起来非常复杂。THVA引入了NPT技术解决内存虚拟化的问题。NPT技术是指二级页表技术,不仅实现简单,还可以有效的降低了影子页表给系统带来的负载。图2 一级页表和二级页表寻址机制如图2所示,左边表示的是x86架构下操作系统所使用的一级页表寻址机制,右边表示的是THVA为操作系统添加了二级页表后的寻址机制。在一级页表寻址机制中,操作系统通过客户机页表将线性地址转换
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 恶意 软件 行为 分析 系统 设计 实现
链接地址:https://www.31ppt.com/p-5236436.html