文件可控执行的检测方法及虚拟机的制作方法

文档序号:6372425阅读:401来源:国知局
专利名称:文件可控执行的检测方法及虚拟机的制作方法
技术领域
本发明涉及到文件可控执行的检测技木,特别涉及到一种文件可控执行的检测方法及虚拟机。
背景技术
针对文件(比如病毒等恶意文件)的可控执行,现有技术中主要使用以下几种方法实现虚拟机方式、沙箱方式、模拟器方式以及HOOK (编程接ロ API调用技木)方式等。上述虚拟机方式,是将被执行文件放到虚拟机中执行,通过监控工具或调试器监控文件的执行行为。其最大的问题是虚拟机对外部软硬件环境要求较多。例如一般PC机只能运行ー个Vmware (虚拟机软件)实例,且VMware运行时对内存,硬盘的消耗很大;虚拟 机里需要安装完整操作系统,且如果被执行文件为病毒,运行后会破坏虚拟机内操作系统,则虚拟机毎次运行完病毒样本后都需要恢复快照,因此需要大量磁盘操作,比较耗吋。上述沙箱方式,是在沙箱中运行被执行文件,其主要的问题是沙箱不是ー个可靠的隔离环境,存在恶意代码逃出模拟环境,破坏真实操作系统的风险。上述虚拟器方式,也是虚拟化的一种实现。其在环境隔离上很可靠,所执行的文件样本不会破坏真实系统。同时对外部软硬件环境要求不高,可以多实例,多进程运行。模拟器里构建的运行环境全部模拟,所以也不需要安装操作系统,不需要恢复快照。但其问题在于指令全部基于模拟,物理处理器(CPU)—秒内可以完成的计算模拟器需要几十秒甚至上百秒,在速度上和物理处理器相比差距较大,执行效率太低。上述HOOK方式,一般情况下可以截获和控制病毒的API调用。但是HOOK容易被检测出来,以及被破坏掉。

发明内容
本发明的主要目的为提供一种文件可控执行的检测方法,可提升文件检测的效率以及稳定性。本发明提出一种文件可控执行的检测方法,包括建立虚拟操作系统环境;在初始化后,将样本文件的执行切换至建立的虚拟操作系统环境;调用处理器在设定范围内执行所述样本文件的指令,并记录所述样本文件的行为。优选地,所述初始化包括虚拟操作系统环境的初始化、将样本文件初始化和/或样本文件的进程初始化。优选地,所述建立虚拟操作系统环境的步骤包括初始化虚拟环境的全局描述符表或中断描述表、调试寄存器、控制寄存器、段寄存器以及快速系统调用相关的模式寄存器。优选地,所述设定范围包括
处理器的指令执行权限和/或主存储器或外存储器的读写范围。优选地,所述通过处理器在设定范围内执行所述样本文件的指令的步骤之前还包括设定物理处理器的指令执行权限,以及,创建内存的分级页表管理机制。优选地,所述调用包括抓取样本文件的系统调用指令,并记录该次调用;在执行所述系统调用指令时,根据预设策略修改API的调用參数和返回值,控制API的执行。本发明还提出一种文件可控执行的虚拟机,包括
控制调用模块,用于建立虚拟操作系统环境;执行切换模块,用于在初始化后,将样本文件的执行切换至建立的虚拟操作系统环境;执行记录模块,用于调用处理器在设定范围内执行所述样本文件的指令,并记录所述样本文件的行为。优选地,所述初始化包括虚拟操作系统环境的初始化、将样本文件初始化和/或样本文件的进程初始化。优选地,所述控制调用模块还用于初始化虚拟环境的全局描述符表或中断描述表、调试寄存器、控制寄存器、段寄存器以及快速系统调用相关的模式寄存器。优选地,所述设定范围包括处理器的指令执行权限和/或主存储器或外存储器的读写范围。优选地,所述虚拟机还包括权限设定模块,用于设定物理处理器的指令执行权限,以及,创建内存的分级页表
管理机制。优选地,所述调用包括抓取样本文件的系统调用指令,并记录该次调用;在执行所述系统调用指令时,根据预设策略修改API的调用參数和返回值,控制API的执行。本发明通过建立虚拟的操作系统环境供样本文件运行,使用物理处理器执行样本文件的指令,并预先设置硬件设备的指令执行范围,使得该样本文件的运行安全可控;同时,消耗较少资源,具有较高执行效率。


图I是本发明文件可控执行的检测方法一实施例中的步骤流程示意图;图2是本发明文件可控执行的检测方法一实施例中虚拟机的结构示意图;图3是本发明文件可控执行的检测方法一实施例中针对API的截获和处理的结构示意图;图4是本发明文件可控执行的虚拟机一实施例中的结构示意图;图5是本发明文件可控执行的虚拟机一实施例中的另ー结构示意图。本发明目的的实现、功能特点及优点将结合实施例,參照附图做进ー步说明。
具体实施例方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。參照图1,提出本发明ー种文件可控执行的检测方法ー实施例。该方法可包括步骤S11、建立虚拟操作系统环境;步骤S12、在初始化后,将样本文件的执行切换至建立的虚拟操作系统环境;步骤S13、调用处理器在设定范围内执行所述样本文件的指令,并记录所述样本文件的行为。鉴于现有技术文件可控执行中需安装完整操作系统消耗较大资源;或,创建软硬件模拟环境导致全部指令基于模拟,而使得执行效率低下;以及,在文件执行过程中出现
安全问题等。本发明通过建立虚拟的操作系统环境供样本文件运行,使用物理处理器(CPU)执行样本文件的指令,并预先设置硬件设备(比如CPU、主外存储器等)的指令执行范围,使得该样本文件的运行安全可控;同时,消耗较少资源,具有较高执行效率。本实施例中,虚拟机可通过控制调度模块创建虚拟的操作系统环境,为样本文件提供运行环境,方便对该样本文件的行为进行监控以及记录等。该控制调度模块还可控制微型内核模块进行初始化操作。该初始化可包括虚拟操作系统环境的初始化、将样本文件初始化和/或样本文件的进程初始化。上述微型内核模块可根据控制调度模块的控制,初始化虚拟环境的GDT (全局描述符表)/IDT (中断描述表)、调试寄存器、控制寄存器、段寄存器以及SYSENTER (快速系统调用)相关的模式寄存器等信息;还包括样本文件格式化解析以及样本文件进程初始化等。该虚拟机可在初始化吋,修改CPU的GDT/IDT/CR3等关键寄存器,实现执行环境的切換,使得样本文件可直接运行在物理处理器上,相较于在模拟器上运行,性能有很大改善。本实施例中的虚拟化的技术,实现了一个进程级虚拟机,不需要安装操作系统。该虚拟机只运行进程代码,对内存等资源的消耗很少,普通个人电脑(PC机)即可同时运行多个实例。样本文件(比如病毒等)执行时对虚拟机环境执行权限受限,比如只有读权限,而将可能造成破坏的写操作被模拟或者重定向,因此也不需要恢复快照。如此,虚拟机可以连续运行大量样本文件,处理能力提升很多。在初始化后,上述微型内核模块可将样本文件在虚拟操作系统环境中运行,并将将样本文件的指令在物理处理器上执行。并可在样本文件运行之前,设置硬件设备的指令执行范围,使得硬件设备只可在设置范围内执行样本文件的指令,为样本文件提供隔离的运行环境。本实施例中该虚拟机在运行样本文件时,对样本文件使用的CPU和内存都有效隔离,使得恶意行为和运行故障都只影响虚拟的环境,外部环境对病毒不可见,也不会造成破坏。上述设定范围可包括处理器的指令执行权限和/或主存储器或外存储器的读写范围等。比如,设定物理处理器的指令执行权限,使物理处理器不可执行可能危害硬件设备本身的指令;以及,创建内存的分级页表管理机制,使得只可在设定的内存区域内执行样本文件的读写指令等,为样本文件运行提供隔离的内存环境。上述调用可包括抓取样本文件的系统调用指令,并记录该次调用;在执行所述系统调用指令时,根据预设策略修改API的调用參数和返回值,控制API的执行。
參照图2,为本实施例虚拟机的结构示意图;该虚拟操作系统环境为控制调度模块所创建,样本文件可在该虚拟操作系统环境中运行,该虚拟操作系统环境与实际操作系统之间通过该微型内核模块进行通讯,该微型内核模块与虚拟操作系统环境之间通过中断调用通讯。參照图3,为本实施例虚拟机中针对API的截获和处理的结构示意图;本实施例虚拟机中,API (Application Programming Interface,应用程序编程接ロ)可使用模板来实现,每个API都对应ー个系统调用。例如INT 0X80,此中断会被微型内核模块抓到,并可将该调用信息提交到控制调用模块;该控制调用模块即可记录该次API调用。另外,该控制调用模块可以根据策略,修改API的调用參数和返回值,从而控制API的执行。上述虚拟机中运行样本文件时,样本文件使用的DLL(Dynamic Link Library ,云力态链接库)模块都由虚拟机生成,代码可见,从本质上解决了调用截获的问题;生成的模拟API函数入口代码和真实API入口代码一致,从而解决了被检测的问题。
參照图4,提出本发明ー种文件可控执行的虚拟机20—实施例。该虚拟机20可包括控制调用模块21、执行切换模块22以及执行记录模块23 ;该控制调用模块21,用于建立虚拟操作系统环境;该执行切换模块22,用于在初始化后,将样本文件的执行切换至建立的虚拟操作系统环境;该执行记录模块23,用于调用处理器在设定范围内执行所述样本文件的指令,并记录所述样本文件的行为。鉴于现有技术文件可控执行中需安装完整操作系统消耗较大资源;或,创建软硬件模拟环境导致全部指令基于模拟,而使得执行效率低下;以及,在文件执行过程中出现安全问题等。本发明通过建立虚拟的操作系统环境供样本文件运行,使用物理处理器(CPU)执行样本文件的指令,并预先设置硬件设备(比如CPU、主外存储器等)的指令执行范围,使得该样本文件的运行安全可控;同时,消耗较少资源,具有较高执行效率。本实施例中,虚拟机20可通过控制调度模块创建虚拟的操作系统环境,为样本文件提供运行环境,方便对该样本文件的行为进行监控以及记录等。该控制调度模块还可控制微型内核模块进行初始化操作。该初始化可包括虚拟操作系统环境的初始化、将样本文件初始化和/或样本文件的进程初始化。上述微型内核模块可根据控制调度模块的控制,初始化虚拟环境的GDT (全局描述符表)/IDT (中断描述表)、调试寄存器、控制寄存器、段寄存器以及SYSENTER (快速系统调用)相关的模式寄存器等信息;还包括样本文件格式化解析以及样本文件进程初始化等。该虚拟机20可在初始化吋,修改CPU的GDT/IDT/CR3等关键寄存器,实现执行环境的切換,使得样本文件可直接运行在物理处理器上,相较于在模拟器上运行,性能有很大改善。上述执行切换模块22以及执行记录模块23可设置于微型内核模块中。本实施例中的虚拟化的技术,实现了一个进程级虚拟机20,不需要安装操作系统。该虚拟机20只运行进程代码,对内存等资源的消耗很少,普通个人电脑(PC机)即可同时运行多个实例。样本文件(比如病毒等)执行时对虚拟机20环境执行权限受限,比如只有读权限,而将可能造成破坏的写操作被模拟或者重定向,因此也不需要恢复快照。如此,虚拟机20可以连续运行大量样本文件,处理能力提升很多。參照图5,上述虚拟机20还包括权限设定模块24,用于设定物理处理器的指令执行权限,以及,创建内存的分级页表管理机制。该权限设定模块24也可设置于微型内核模块中。在初始化后,上述微型内核模块可将样本文件在虚拟操作系统环境中运行,并将将样本文件的指令在物理处理器上执行。并可在样本文件运行之前,设置硬件设备的指令执行范围,使得硬件设备只可在设置范围内执行样本文件的指令,为样本文件提供隔离的运行环境。本实施例中该虚拟机20在运行样本文件时,对样本文件使用的CPU和内存都有效隔离,使得恶意行为和运行故障都只影响虚拟的环境,外部环境对病毒不可见,也不会造成破坏。
上述设定范围可包括处理器的指令执行权限和/或主存储器或外存储器的读写范围等。比如,设定物理处理器的指令执行权限,使物理处理器不可执行可能危害硬件设备本身的指令;以及,创建内存的分级页表管理机制,使得只可在设定的内存区域内执行样本文件的读写指令等,为样本文件运行提供隔离的内存环境。上述调用可包括抓取样本文件的系统调用指令,并记录该次调用;在执行所述系统调用指令时,根据预设策略修改API的调用參数和返回值,控制API的执行。參照图2,为本实施例虚拟机20的结构示意图;该虚拟操作系统环境为控制调度模块所创建,样本文件可在该虚拟操作系统环境中运行,该虚拟操作系统环境与实际操作系统之间通过该微型内核模块进行通讯,该微型内核模块与虚拟操作系统环境之间通过中断调用通讯。參照图3,为本实施例虚拟机20中针对API的截获和处理的结构示意图;本实施例虚拟机20中,API可使用模板来实现,每个API都对应ー个系统调用。例如INT 0X80,此中断会被微型内核模块抓到,并可将该调用信息提交到控制调用模块21 ;该控制调用模块21即可记录该次API调用。另外,该控制调用模块21可以根据策略,修改API的调用參数和返回值,从而控制API的执行。上述虚拟机20中运行样本文件时,样本文件使用的DLL模块都由虚拟机20生成,代码可见,从本质上解决了调用截获的问题;生成的模拟API函数入口代码和真实API入口代码一致,从而解决了被检测的问题。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种文件可控执行的检测方法,其特征在于,包括 建立虚拟操作系统环境; 在初始化后,将样本文件的执行切换至建立的虚拟操作系统环境; 调用处理器在设定范围内执行所述样本文件的指令,并记录所述样本文件的行为。
2.根据权利要求I所述的文件可控执行的检测方法,其特征在于,所述初始化包括 虚拟操作系统环境的初始化、将样本文件初始化和/或样本文件的进程初始化。
3.根据权利要求I或2所述的文件可控执行的检测方法,其特征在于,所述建立虚拟操作系统环境的步骤包括 初始化虚拟环境的全局描述符表或中断描述表、调试寄存器、控制寄存器、段寄存器以及快速系统调用相关的模式寄存器。
4.根据权利要求I或2所述的文件可控执行的检测方法,其特征在于,所述设定范围包括 处理器的指令执行权限和/或主存储器或外存储器的读写范围。
5.根据权利要求3所述的文件可控执行的检测方法,其特征在于,所述通过处理器在设定范围内执行所述样本文件的指令的步骤之前还包括 设定物理处理器的指令执行权限,以及创建内存的分级页表管理机制。
6.根据权利要求I或2所述的文件可控执行的检测方法,其特征在于,所述调用包括 抓取样本文件的系统调用指令,并记录该次调用;在执行所述系统调用指令吋,根据预设策略修改API的调用參数和返回值,控制API的执行。
7.一种文件可控执行的虚拟机,其特征在于,包括 控制调用模块,用于建立虚拟操作系统环境; 执行切换模块,用于在初始化后,将样本文件的执行切換至建立的虚拟操作系统环境; 执行记录模块,用于调用处理器在设定范围内执行所述样本文件的指令,并记录所述样本文件的行为。
8.根据权利要求7所述的文件可控执行的虚拟机,其特征在于,所述初始化包括 虚拟操作系统环境的初始化、将样本文件初始化和/或样本文件的进程初始化。
9.根据权利要求7或8所述的文件可控执行的虚拟机,其特征在于,所述控制调用模块还用于 初始化虚拟环境的全局描述符表或中断描述表、调试寄存器、控制寄存器、段寄存器以及快速系统调用相关的模式寄存器。
10.根据权利要求7或8所述的文件可控执行的虚拟机,其特征在于,所述设定范围包括 处理器的指令执行权限和/或主存储器或外存储器的读写范围。
11.根据权利要求10所述的文件可控执行的虚拟机,其特征在于,所述虚拟机还包括 权限设定模块,用于设定物理处理器的指令执行权限,以及创建内存的分级页表管理机制。
12.根据权利要求7或8所述的文件可控执行的虚拟机,其特征在于,所述调用包括 抓取样本文件的系统调用指令,并记录该次调用;在执行所述系统调用指令吋,根据预设策略修改API的调用參数和返回值,控制API的执行。
全文摘要
本发明揭示了一种文件可控执行的检测方法及虚拟机。该检测方法可包括建立虚拟操作系统环境;在初始化后,将样本文件的执行切换至建立的虚拟操作系统环境;调用处理器在设定范围内执行所述样本文件的指令,并记录所述样本文件的行为。本发明通过建立虚拟的操作系统环境供样本文件运行,使用物理处理器执行样本文件的指令,并预先设置硬件设备的指令执行范围,使得该样本文件的运行安全可控;同时,消耗较少资源,具有较高执行效率。
文档编号G06F21/00GK102779250SQ201210222810
公开日2012年11月14日 申请日期2012年6月29日 优先权日2012年6月29日
发明者曹亮, 谢飞, 高小明 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1