欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    一种新的恶意软件行为分析系统的设计与实现.doc

    • 资源ID:5236436       资源大小:379.02KB        全文页数:13页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    一种新的恶意软件行为分析系统的设计与实现.doc

    一种新的恶意软件行为分析系统的设计与实现凌冲 余忠慧 孙乐昌 刘京菊 张亮(解放军电子工程学院 合肥 230037)摘要:基于虚拟化技术的恶意软件行为分析是近年来出现的分析恶意软件的方法。该方法利用虚拟化平台良好的隔离性和控制力对恶意软件的运行时行为进行分析,但存在两方面的不足:一方面,现有虚拟机监视器(Virtual Machine Monitor,VMM)的设计初衷是提高虚拟化系统的通用性和高效性,并没有充分考虑虚拟化系统的透明性,导致现有的VMM很容易被恶意软件的环境感知测试所发现;另一方面,源代码较为庞大和复杂,提供了很多恶意软件行为分析不需要的功能,带来了更多的“边缘效应”和漏洞。为此,提出一种基于硬件辅助虚拟化技术的恶意软件行为分析系统THVA。THVA是一个利用了安全虚拟机(SVM)、二级页表(NPT)、外部设备访问保护(EAP)和虚拟机自省等多种虚拟化技术完成的、专门针对恶意软件行为分析的微型VMM。实验结果表明,THVA在虚拟机自省、行为监控和反恶意软件检测方面表现良好,并通过安全模式转换技术将自身性能提高了18.2%左右。关键词:硬件辅助虚拟化;恶意软件行为分析;虚拟机自省;二级页表;外部设备访问保护中图法分类号:TP309.5 文献标识码:ADesign and achievement of malware analysis system based on Hardware-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 and 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 environment 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 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 utilizes 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 引言恶意软件行为分析是指计算机安全研究人员分析恶意软件在操作系统中的执行流程,及其对操作系统资源的影响。通过对恶意软件的行为分析,安全研究人员可以找出针对性的方法修复和保护操作系统。目前,恶意软件行为分析系统主要分为两种:一种是传统的恶意软件行为分析系统,即行为分析系统与恶意软件运行于同一操作系统中,不仅无法确保所提取恶意软件信息的可靠性,其自身也容易受到恶意软件的攻击;另一种是基于虚拟化技术的恶意软件行为分析系统,目前的XEN和VMware等商用虚拟机软件已经被运用到这一领域1。但是,这种行为分析系统也同样存在问题商业虚拟机的设计初衷与恶意软件行为分析系统的设计要求相违背,严重影响了基于虚拟化技术的恶意软件行为分析系统的安全性。本文第二节详细叙述了当前主流恶意软件行为分析技术的缺点。在此基础之上,在第三节提出了一种基于硬件辅助虚拟化技术的恶意软件行为分析系统THVA,并在第四节完成了THVA的原始实现。最后,通过实验结果证明了THVA较之当前大多数恶意软件行为分析系统,具有更好的可靠性、可信性和高效性。2 当前恶意软件行为分析技术及其缺点当前恶意软件分析技术包括了传统恶意软件行为分析技术和基于虚拟化技术的恶意软件行为分析技术。传统的恶意软件行为分析技术包括:反汇编技术、调试技术和黑盒测试技术。其中,反汇编技术是一种代码静态分析技术,它对于现在恶意软件常用到的封包技术和动态代码转译技术是失效的。调试技术可以用来分析恶意软件的每一条指令,但在分析恶意软件的同时容易被恶意软件所感知,恶意软件可以在感知后采用if/then分支选择技术执行虚假行为,使得调试技术对于恶意软件行为分析的结果变得毫无意义。黑盒测试技术并不存在上述缺点,但是这种技术所提供的恶意软件行为分析结果往往是不完整的,影响了恶意软件分析的可信性。基于虚拟化技术的恶意软件行为分析技术利用虚拟机监视器(VMM)和虚拟机(VM)之间强大的隔离性作为安全保证,通过VMM对于VM的系统控制权优势对运行在VM中的恶意软件行为进行监控。这种方法比传统恶意软件行为分析技术更加可靠和可信。现在的商用虚拟机软件XEN和VMware等已经被用来进行相关实验和应用。但是,随着恶意软件的不断发展,该技术遇到了很多问题。针对基于虚拟化技术的恶意软件行为分析技术的出现,目前的很多恶意软件被加入了环境感知功能2。环境感知功能是指恶意软件在运行核心代码前会进行一系列的操作系统环境测试,通过测试结果决定其下一步行为。如果恶意软件发现自己处于虚拟化环境中,会选择终止运行、主动攻击VMM甚至利用计算机网络逃离VM。由于商业虚拟机软件(即商用VMM)的设计目的是解决如何在同一物理硬件上运行多个操作系统和如何最大化硬件资源使用效率,并没有充分考虑虚拟机软件的透明性,所以导致现在的商用虚拟机软件很容易被恶意软件的环境感知测试所发现。例如,XEN-PV采用的是软件虚拟化技术,它必须对中断描述表(IDT)进行重定位。恶意软件执行SIDT指令从中断描述表寄存器(IDTR)中获得当前操作系统IDT的内存地址,通过检查该内存地址是否高于一定的地址值来判断自己是否处于虚拟化环境。VMware和Virtual PC同样可以通过这种方法被检测到。XEN-HVM虚拟机软件采用的是硬件辅助虚拟化技术,这种技术相比软件虚拟化技术具有更好的透明性。但是,为了提高处理器的效率,XEN引进了一种被修改过的软件内存管理单元框架,恶意软件可以通过扫描CPUID 空间中XEN的特征值来判断自己是否处于虚拟化环境中3。另外,商用虚拟机软件需要保证软件功能的完整性和通用性,直接导致了其源代码非常庞大和复杂。仅仅设备虚拟化模块的代码就达数百万行之多。但是,恶意软件行为分析系统并不需要所有的虚拟化功能,过多不必要的虚拟化功能所产生的“边缘效应”2只能为恶意软件感知虚拟化环境提供更多的机会。商用虚拟机软件庞大而复杂的代码带来的另一个不利因素是增加了软件漏洞的出现机率,根据文献4所述,每1000行软件源代码大约会出现6到16个漏洞。恶意软件利用这些漏洞不仅可以攻击VMM,甚至可以获得VMM的权限直接控制VM。通过分析可以看到,当前恶意软件分析技术主要存在三个缺点:(1)透明性较差,容易被恶意软件所发现;(2)代码不够精简,提供的功能很多是恶意软件行为分析系统不需要的,容易引发“边缘效应”和出现软件漏洞;(3)部分分析方法对恶意软件失效,这一点主要针对传统恶意软件行为分析技术。为此,提出了一种新的基于硬件辅助虚拟化技术的恶意软件行为分析系统THVA。THVA克服了上述恶意软件行为分析技术中的缺点,完成了以下功能:(1)THVA使用虚拟机自省技术定位行为分析目标,通过提取操作系统资源的不同级别的语义对目标进行不同粒度的行为监视,并采用当前最先进的硬件辅助内存虚拟化技术保护THVA在物理内存中的可执行文件;(2)THVA是一个微型的VMM,去掉了商用虚拟机软件中不必要的功能(如设备虚拟化等),大大精简了源代码。THVA的实现主要集中在处理器虚拟化、内存虚拟化和虚拟机自省三个方面,源代码不足6000行,从而有效降低了出现软件漏洞的可能性,同时减少了“边缘效应”,提高了自身透明性;(3)THVA使用一种安全模式转换技术提高了虚拟机的性能。实验表明,该技术可以将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、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实现内存虚拟化,后者是为了控制外部设备的DMA(Direct Memory Access)访问。3.2 系统设计THVA的设计目的是构造一个透明的、精简的和安全的恶意软件行为分析系统。出于这些考虑,在设计和实现过程中并没有选择XEN、VMware和Virtual PC等商用软件,而是选择SVM作为基础平台重新构造了一个专门针对恶意软件分析的微型VMM。THVA由五个模块组成:初始化模块、内存保护模块、虚拟机自省模块、THVA行为监视模块和模式转换模块。如图1所示。图1 THVA的系统设计示意图初始化模块:完成THVA加载到操作系统之前准备工作,包括判断处理器是否支持SVM技术,设置与开启SVM技术相关的寄存器,填充VMCB、初始化主机模式的状态等。初始化模块的最后一项任务是执行VMRUN指令,使得操作系统进入客户机模式成为Guest OS。内存保护模块:为了保护THVA的可执行文件的映像在内存中不受到恶意软件或恶意操作的威胁,THVA对其实行了内存保护。THVA的内存保护技术使用了SVM最先进的NPT技术和EAP技术,从Guest OS内部和物理设备外部分别对THVA所占物理内存进行了保护。虚拟机自省模块:虚拟机自省技术是指VMM通过某种方法监控Guest OS内部活动进程的方法。本文提出一种通过FS寄存器的方法来获取Guest OS内部活动进程的映像文件名。THVA行为监视模块:THVA行为监视模块分为粗粒度行为监视模块和细粒度行为监视模块。粗粒度行为监视是指THVA监视Guest OS中目标进程的系统调用。细粒度行为监视是指THVA监视Guest OS中程序运行时的指令及其访问的操作系统资源。在Windows 2000以后的操作系统中,完成系统调用的方法有两种:执行int 0x2e指令和执行sysenter快速调用指令,返回系统调用的指令分别是iret指令和sysexit指令6。THVA截获了所有四条指令,并提取了每一次系统调用的系统调用号、函数调用参数和输出缓冲区,很好的完成了粗粒度行为监视。对于细粒度行为监视,THVA通过对RFLAGS寄存器中TF(Trap Flag)比特位的循环设置来截获和记录每一条指令及其所访问的系统资源。安全模式转换模块:普通虚拟机软件只包括了主机模式和客户机模式。与其不同,THVA将客户机模式细分为客户机精简模式和客户机监视模式。实验结果证明这种方法可以有效提高VM的性能。本节主要介绍了THVA的总体设计和组成模块,明确了THVA所需要做的工作。下一节将详细介绍THVA各个模块的原始实现。4 系统原始实现计算机的虚拟化技术包括处理器虚拟化、内存虚拟化和设备虚拟化三个部分7。THVA是一个针对恶意软件行为分析的微型VMM,完成的是处理器虚拟化和内存虚拟化两个部分。删去设备虚拟化的原因是设备虚拟化的用途与THVA的使用目的无关,以及设备虚拟化的代码过于庞大和复杂,容易引发“边缘效应”和出现软件漏洞。另外,THVA实现了恶意软件行为分析的功能。这些功能包括虚拟机自省、恶意软件行为监视和安全模式转换。特别的,THVA为了防止恶意软件从外部设备直接修改和破坏THVA所占的物理内存,使用了EAP技术拒绝外部设备以DMA的方式对THVA所占物理内存的访问。4.1 THVA的初始化THVA的初始化是指操作系统在被THVA托入虚拟机前的准备工作。在初始化之后,THVA执行VMRUN指令将操作系统托入虚拟机。首先,THVA需要使用CPUID指令判断处理器是否属于AMD,如果是则继续使用CPUID指令判断此AMD处理器是否支持SVM技术。接下来,THVA需要设置EFER 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必须设置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。此时,THVA会重新获得处理器控制权。4.2 THVA的内存保护THVA通过实现内存虚拟化保护自己所占内存空间不会受到恶意软件的攻击。在NPT技术没有出现之前,内存虚拟化通常是用影子页表方法实现的。这种方法不仅严重影响了虚拟机的性能,而且实现起来非常复杂。THVA引入了NPT技术解决内存虚拟化的问题。NPT技术是指二级页表技术,不仅实现简单,还可以有效的降低了影子页表给系统带来的负载。图2 一级页表和二级页表寻址机制如图2所示,左边表示的是x86架构下操作系统所使用的一级页表寻址机制,右边表示的是THVA为操作系统添加了二级页表后的寻址机制。在一级页表寻址机制中,操作系统通过客户机页表将线性地址转换为机器物理地址:线性地址>机器物理地址。与此不同,THVA在客户机页表和机器物理内存之间插入了一套自己建立的二级页表,支持NPT技术的内存管理单元(MMU)对二级页表是可以辨认的8。此时,MMU通过客户机页表转换的出来的不再是机器物理地址,而是客户机物理地址。MMU通过二级页表将客户机物理地址转换为机器物理地址:线性地址>客户机物理地址>机器物理地址。另外,客户机页表的分页模式可以与二级页表的分页模式不一样。THVA可以支持客户机页表4KB分页模式和4MB分页模式,而二级页表使用的是4MB分页模式,主要是为了增加快表(TLB)的命中率,提高寻址的效率,从而加强系统整体的性能。THVA采用二级页表技术完成了内存虚拟化。THVA可以使用内存虚拟化完全控制Guest OS中进程对物理地址的访问,从而阻止恶意软件对THVA所占物理内存的攻击。实际上, 4.1节THVA的初始化提到的所有与THVA相关的内存区域(存储主机模式状态的物理地址、VMCB的物理地址和THVA可执行文件的映像的物理地址等)在二级页表中对应的页表项已经被设置为不可访问(not present)。如果这些区域被Guest OS中的进程访问,处理器将产生#NPF异常,导致发生#VM Exit处理器控制权交由THVA,THVA会将该访问重定位到一块与THVA无关的内存区域。特别的,处理器在发生#VM Exit后,MMU会加载二级页表,THVA自身是利用二级页表完成寻址的。这种方法既保证了THVA的代码地址能够被MMU正确寻址,又保证了THVA的代码对Guest OS是不可见的。内存虚拟化可以使得THVA阻止恶意软件对THVA占内存的访问。但是,恶意软件还有一种访问内存的方法通过DMA技术从操作系统外部访问物理内存。为此,本文采用了一种新的内存保护技术: EAP技术。EAP技术是指在支持SVM的处理器上启动设备保护域,限制外部设备对物理内存直接访问时的地址范围。提供EAP技术的芯片被安装在北桥中,这种芯片可以对北桥中的外部访问保护域的进行逻辑控制。每一个外部访问保护域与一个设备除权向量表(DEV)对应。DEV包含了对应外部访问保护域中的设备对物理内存中每一个物理页的访问权限:如果DVE中的某个向量为1,则表示禁止对应的物理页被访问;反之,则表示可以访问。HyperTransport总线给每一个外部设备都分配了一个设备ID号,并将每一个设备ID号都映射到一个外部访问保护域中。一个外部设备访问保护域包含一个或多个设备ID号映射。THVA首先通过PCI配置空间查找DEV功能控制块,DEV功能控制块中包含了DEV_OP寄存器和DEV_DATA寄存器。THVA通过这两个寄存器可以间接寻址到装有DEV物理地址基址的DEVBASE寄存器,从而找到DEV的内存区域。DEV的内存区域存放的是一个比特位数组,每一个比特位代表4KB物理内存。THVA遍历此数组找到与THVA所占物理内存对应的所有比特位并将其设置为1,即不可访问。通过这种方法,THVA可以保护所占物理内存不会受到恶意软件的DMA攻击。可以看出,THVA使用了硬件辅助内存虚拟化技术和EAP技术从操作系统内部和物理设备外部分别对THVA所占内存进行了保护,而且THVA在实现内存虚拟化时采用的是NPT技术,因此大大降低了此前影子页表技术在实现内存虚拟化时给系统带来的负载。4.3 THVA的虚拟机自省虚拟机自省技术是指VMM通过某种方法监控Guest OS内部活动进程的方法9。为了能够完整的监控恶意软件执行进程(即恶意进程)的全部行为,THVA必须从恶意进程刚开始执行时就获得它的信息,直到该恶意进程终止自己的运行。THVA的虚拟机自省技术需要从虚拟机中提取恶意进程执行的起始点和终止点。本文提出一种通过访问FS寄存器的方法来获取恶意进程的起始点和终止点。注意,THVA的操作系统平台是Windows XP操作系统,下面的Windows XP指Windows XP SP3操作系统。在Windows XP中,当需要进行进程切换时,会进行如下步骤:(1)操作系统将要运行的进程的线程信息放入到处理器控制块(Prcb)中:Prcb->KThread = KThreadNext; (2)调用切换函数完成线程上下文切换:KiSwapContext(KThreadNext); (3)在进入(2)中的切换函数之后把将要运行的进程的页目录基址物理地址(PDBR)装入CR3,完成页表切换:mov eax,ebp+KPROC_DIR_TABLE_BASEmov cr3,eax以上均为伪代码。如果THVA在初始化时将VMCBCR_ INTERCEPTS中的写CR3(mov to cr3)比特位设为1,那么处理器会在Guest OS访问CR3时产生#VMEXIT事件,将处理器控制权交给THVA。进程的PDBR对于当前操作系统中的每个活动进程都是唯一的,即CR3中的值与进程是一一对应的关系。在获得了进程的PDBR之后,下面的工作是如何获取进程的执行体进程块(EPROCESS),以便从中找到该切换进程的信息。提出一种访问FS寄存器的方法解决这个问题,步骤如下:(1)从内核态访问FS寄存器,FS寄存器中存放的是指向处理器控制区(KPCR)的基址指针。通过KPCR基址指针访问KPCR数据结构;(2)在KPCR中存放有处理器控制块(Prcb)数据结构, Prcb中包含了当前进程的KTHREAD数据结构;(3)KTHREAD包含了当前线程所属进程的KPROCESS数据结构。KPROCESS位于EPROCESS的基址。由上述伪代码可以得知,系统把将要运行的线程信息放入Prcb中的动作是在线程上下文切换之前进行的,所以通过这种方法找到的EPROCESS和THVA截获的PDBR对应于同一个进程。在EPROCESS的0x1f4偏移处是进程的32字节映像文件名,它可以标识此时准备运行的进程(例如进程A的映像文件名可以表示为“DeviceHarddiskVolume1WIND-OWSsystem32进程B的映像名称.exe”)。THVA获得了进程的映像文件名,并将其与进程的PDBR映射到一张查询表中。以后再出现进程切换时,THVA直接通过在该查询表中遍历相应的PDBR获取准备运行的进程的映像文件名。如果THVA发现该进程的映像文件名与恶意进程的一致,则开始对恶意进程进行行为监视,直到再次发生进程切换为止。4.4 THVA的粗粒度行为监视THVA通过截获int 0x2e指令、sysenter指令、iret指令和sysexit指令对恶意软件进程粗粒度行为监视,从而分析恶意软件在函数调用方面的特征,为反Rootkit软件和反病毒软件的研究提供信息和依据。在Windows 2000以前的操作系统版本中,系统调用是通过int 0x2e指令和iret指令完成的。为了实现比较轻便和高效的系统调用,Windows XP以后的操作系统版本添加了用sysenter指令和sysexit指令完成快速系统调用。出于系统向前兼容考虑,THVA同时实现了对上述两种系统调用过程的监视。如图3所示。图3 THVA监视系统调用示意图THVA将VMCBINTn和VMCBIRET两个比特位设置为1,从而截获int n指令和iret指令。以ReadFile函数为例,当恶意软件调用ReadFile函数时,系统会通过int 0x2e指令由用户态切换到内核态调用内核函数NtReadFile。此时,处理器会因为系统执行了int n指令而发生#VM Exit,将处理器控制权交给THVA。THVA通过VMCBexitcode查明退出原因交由处理句柄进行处理。需要注意的是,VMCBexitcode只会说明Guest OS是因为执行int n指令触发#VM Exit的,但不会说明是否是int 0x2e。因此,THVA需要查明进一步的退出原因。THVA首先将发生退出后的VMCBCS:VMCBEIP通过全局描述表(GDT)转换为线性地址,然后通过页表将其转换为机器物理地址,最后从该机器物理地址中得到触发#VM Exit的指令。如果是int 0x2e指令,THVA将交由截获int 0x2e指令的处理句柄处理。截获int 0x2e指令的处理句柄从VMCBEAX中获取系统调用号(ReadFile是152)并进行相关记录。特别的,THVA会根据访问FS寄存器的方法获取执行ReadFile函数的线程ID号(TID),并将其与ReadFile函数进行映射,存储到一张查询表当中。THVA维护上述查询表是为了以后截获iret指令时可以查询与该iret指令对应的系统调用指令。例如,出现ReadFile函数调用时THVA会记录TID1,之后若出现iret指令,THVA会查询此时的TID2。接下来THVA会遍历上述映射表找到TID1=TID2表项,该表项中TID1对应的调用函数是ReadFile。这样,一个完成的系统调用和系统返回就形成了。当调用函数与访问文件或网络有关时(ReadFile、 OpenFile或Socket等),THVA的处理句柄还会根据调用函数系统空间堆栈上的输出参数指针找到返回的输出缓冲区,记录输出缓冲区中的内容,从而监视恶意软件访问系统资源的行为。THVA在处理快速系统调用时的方法与处理int 0x2e系统调用的方法基本一致:当截获sysenter指令时,记录从VMCBEAX中获取的系统调用号,以及维护系统调用函数与TID的映射;当截获sysexit指令时,从查询表中查找对应的系统调用函数,以及返回的输出缓冲区。但是也有不同SVM并没有在VMCB中提供截获sysenter指令和sysexit指令的比特位,直接导致THVA无法直接截获这两条指令。根据这种情况,THVA采用了文献12中Azure的方法。Azure是一个基于Intel VT技术的虚拟机监视器,它提供了一种在Intel VT平台下间接截获sysenter指令和sysexit指令的方法。虽然平台不同,但THVA可以借鉴其方法,将其运用到SVM平台下。快速系统调用的实现依赖于两条指令(sysenter指令和sysexit指令)和三个MSR寄存器(SYSENTER_CS_MSR寄存器、SYSENTER_EIP_MSR寄存器和SYSENTER_ESP_MSR寄存器)。这三个寄存器在操作系统内核初始化的时候就已经被赋值,其中SYSENTER_EIP_MSR寄存器中的内容指向的是快速系统调用的入口点地址。THVA将该入口点地址保存起来,向SYSENTER_EIP_MSR寄存器重新填入地址,该地址指向一个页表项被表示为不存的物理页。当执行快速系统调用时,操作系统从SYSENTER_EIP_MSR寄存器中取走被修改后入口点地址并访问该地址,这样会产生一个#NPF异常。接下来,THVA会检查VMCBECX。若VMCBECX的值为0x176(表示访问SYSENTER_EIP_MSR出错),则说明发生了操作系统执行了快速系统调用。最后,THVA记录此次快速系统调用的相关信息并将保存的原入口点地址填入SYSENTER_EIP_MSR寄存器中,恢复快速系统调用的执行。4.5 THVA的细粒度行为监视THVA通过监视恶意软件执行的每一条指令及其访问的资源完成对恶意软件指令级别的行为监视,为反Rootkit软件和反病毒软件提供更深入和更全面的信息和依据。THVA通过设置RFLAGS寄存器中的TF(Trap Flag)比特位使得指令执行进入单步模式,从而对恶意软件进行细粒度的行为监视。步骤如下:(1)当需要监视的恶意进程被切换为活动进程后,THVA设置TF为1,第一条指令执行后会产生#DB异常;(2) THVA截获这个异常并记录这条指令,再次设置TF并执行VMRUN指令重新进入Guest OS继续执行第二条指令。(3)重复执行步骤(2),直到进程再次发生切换。这种循环操作使得THVA可以记录恶意进程运行时执行的所有指令和访问的所有系统资源。THVA将恶意进程运行时的行为记录在自己分配的一块物理内存中,形成一个日志。该日志所包含的内容有:eax、ebx、ecx、edx、esi、edi、cs:ip、ss:sp、ds:bp和指令内容等。4.6 THVA的安全模式转换如果THVA对Guest OS一直采取行为监视和记录,那么会Guest OS每一次指令的执行和每一次系统调用都会引发#VM Exit,这样做给系统带来的开销是非常大的。THVA采用了安全模式转换技术降低了这种开销。THVA将客户机模式分为客户机精简模式和客户机监视模式。在客户机精简模式下,THVA需要为Guest OS提供安全服务,保证Guest OS在运行恶意软件之前是干净的;在客户机监视模式下,THVA再对恶意软件进行监视,见4.5节和4.6节。需要注意的是,THVA是通过截获Guest OS中的客户机监视开启程序(Guest OS Trace Turn-On,GOTTO)发出的VMMCALL指令来完成模式转换的。当截获VMMCALL指令时,THVA会查找ebx寄存器和ecx寄存器中的内容。如果ebx寄存器中显示的是Enable,ecx寄存器中显示的是恶意软件进程的识别信息,则表示GOTTO需要THVA对某个进程进行行为监视。此时,THVA需要重新填充VMCB的内容,对与系统调用截获和单步指令截获相关的比特位进行设置,完成从客户机精简模式到客户机监控模式的转换。如果在THVA还没有进行恶意软件行为之前Guest OS就已经被其它恶意软件修改或破坏了,会导致之后THVA对恶意软件行为监视的结果不可信。THVA需要保证客户机精简模式下Guest OS的安全。提出一种基于硬件辅助虚拟化的交叉视图进程检测方法,帮助THVA有效保护Guest OS的安全。恶意软件入侵操作系统之后首先需要做的是利用隐藏技术抹除自己在操作系统中的痕迹。其中最为重要的就是隐藏自身进程。随着进程隐藏技术的发展,很多恶意软件已经可以利用内联挂钩(Inline Hook)技术和直接内核对象操作(DKOM)技术躲过安全软件的检测。主要原因是:检测技术与隐藏技术的实现环境相同。系统资源是检测技术和隐藏技术共同享有的,检测技术无法保证获得的资源是否已被篡改,也无法阻止检测软件自身受到攻击。THVA利用虚拟机自省技术和交叉视图检测技术13,提出了一种基于硬件辅助虚拟化技术的交叉视图进程检测方法。这种方法首先通过虚拟机自省技术提取Guest OS内部的一张可信进程链表视图(TPV),然后使用NtQuerySystemInformation函数获取一张不可信进程链表视图(UTPV),最后通过对比两张视图之间的集合差异判断Guest OS中是否存在被隐藏的进程。THVA获取TPV采用的是虚拟机自省技术,其方法与4.3节所使用的方法是一样的。但是,THVA在获取TPV之后还需要动态的维护和管理TPV,从而保证TPV的可靠性和可信性。步骤如下:(1)当进程切换被截获时,THVA遍历TPV(TPV初始化时为空链表),根据进程的PDBR判断是否已存在此进程。如果不存在此进程,则视为新进程,将其相应的进程信息加入TPV;(2)如果存在此进程,则视为是进程之间的切换行为,对TPV不做更新;(3)在每次进行(1)和(2)时,THVA需要遍历TPV中每个进程对应的ExitTime值(EPROCESS基址+0x078),ExitTime是一个表示进程是否结束的值。当ExitTime->QuadPart不等于0时,表示进程已经结束。这时,THVA需要将结束的进程从TPV中删除。5 实验实验的平台:主板是GA-M52S-S3P,处理器是AMD Barcelona 2350,内存为2G,操作系统为Windows XP SP3。THVA的编写语言是C语言和汇编语言,编译工具是WDK 6001.18001,调试工具为WinDbg,调试信息输出工具为Dbgview。实验主要对THVA的虚拟机自省功能、行为监视功能、反检测能力和性能四个方面进行测试。5.1 THVA的自省虚拟机的自省技术在THVA的实现过程中多次被用到,所以首先需要测试THVA的虚拟机自省功能。本文编写了一个进程监视程序ProcessTest用于检验THVA的虚拟机自省功能。ProcessTest的功能是记录操作系统中进程的创建和终止。ProcessTest使用PsSetCreateThreadNotifyRoutine内核函数向系统注册一个回调例程获取进程创建和终止的信息。利用DeviceIoControl函数保证ProcessTest与应用层程序的通信。同时,使用CreateProcess函数和TerminateProcess函数创建1000个进程并随后终止进程。实验结果如表1所示。通过对比ProcessTest应用层程序中输出的进程动态信息以及THVA中TPV模块输出的调试信息可以看到,THVA的虚拟机自省功能具有很好的准确性和完整性。表1 THVA的虚拟机自省实验结果统计信息ProcessTestTPV进程创建次数10001000进程终止次数100010005.2 THVA的行为监视THVA的行为监视测试分为两个部分:粗粒度行为监视和细粒度行为监视。首先利用一个读文件测试程序RFTest验证了THVA粗粒度行为监视的有效性,然后通过对Autorun.exe恶意软件进行指令级别的监视验证了THVA细粒度行为监视的有效性。RFTest是一个读取文件信息的测试程序。为了监视RFTest的系统调用情况,通过在Guest OS中运行VMMCALL指令,命令THVA启动客户机监视模式并将监控进程的名称(RFTest)传给THVA,THVA利用自省技术找到RFTest.exe,对其进行行为监视。图4记录了THVA部分输出信息,从中可以看到RFTest的系统函数调用、寄存

    注意事项

    本文(一种新的恶意软件行为分析系统的设计与实现.doc)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开