CN102779250B - 文件可控执行的检测方法及虚拟机 - Google Patents
文件可控执行的检测方法及虚拟机 Download PDFInfo
- Publication number
- CN102779250B CN102779250B CN201210222810.2A CN201210222810A CN102779250B CN 102779250 B CN102779250 B CN 102779250B CN 201210222810 A CN201210222810 A CN 201210222810A CN 102779250 B CN102779250 B CN 102779250B
- Authority
- CN
- China
- Prior art keywords
- file
- sample file
- initialization
- call
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明揭示了一种文件可控执行的检测方法及虚拟机。该检测方法可包括:建立虚拟操作***环境;在初始化后,将样本文件的执行切换至建立的虚拟操作***环境;调用处理器在设定范围内执行所述样本文件的指令,并记录所述样本文件的行为。本发明通过建立虚拟的操作***环境供样本文件运行,使用物理处理器执行样本文件的指令,并预先设置硬件设备的指令执行范围,使得该样本文件的运行安全可控;同时,消耗较少资源,具有较高执行效率。<!--1-->
Description
技术领域
本发明涉及到文件可控执行的检测技术,特别涉及到一种文件可控执行的检测方法及虚拟机。
背景技术
针对文件(比如病毒等恶意文件)的可控执行,现有技术中主要使用以下几种方法实现:虚拟机方式、沙箱方式、模拟器方式以及HOOK(编程接口API调用技术)方式等。
上述虚拟机方式,是将被执行文件放到虚拟机中执行,通过监控工具或调试器监控文件的执行行为。其最大的问题是虚拟机对外部软硬件环境要求较多。例如一般PC机只能运行一个Vmware(虚拟机软件)实例,且VMware运行时对内存,硬盘的消耗很大;虚拟机里需要安装完整操作***,且如果被执行文件为病毒,运行后会破坏虚拟机内操作***,则虚拟机每次运行完病毒样本后都需要恢复快照,因此需要大量磁盘操作,比较耗时。
上述沙箱方式,是在沙箱中运行被执行文件,其主要的问题是沙箱不是一个可靠的隔离环境,存在恶意代码逃出模拟环境,破坏真实操作***的风险。
上述虚拟器方式,也是虚拟化的一种实现。其在环境隔离上很可靠,所执行的文件样本不会破坏真实***。同时对外部软硬件环境要求不高,可以多实例,多进程运行。模拟器里构建的运行环境全部模拟,所以也不需要安装操作***,不需要恢复快照。但其问题在于指令全部基于模拟,物理处理器(CPU)一秒内可以完成的计算模拟器需要几十秒甚至上百秒,在速度上和物理处理器相比差距较大,执行效率太低。
上述HOOK方式,一般情况下可以截获和控制病毒的API调用。但是HOOK容易被检测出来,以及被破坏掉。
发明内容
本发明的主要目的为提供一种文件可控执行的检测方法,可提升文件检测的效率以及稳定性。
本发明提出一种文件可控执行的检测方法,包括:
建立虚拟操作***环境;
在初始化后,将样本文件的执行切换至建立的虚拟操作***环境;
调用处理器在设定范围内执行所述样本文件的指令,并记录所述样本文件的行为。
优选地,所述初始化包括:
虚拟操作***环境的初始化、将样本文件初始化和/或样本文件的进程初始化。
优选地,所述建立虚拟操作***环境的步骤包括:
初始化虚拟环境的全局描述符表或中断描述表、调试寄存器、控制寄存器、段寄存器以及快速***调用相关的模式寄存器。
优选地,所述设定范围包括:
处理器的指令执行权限和/或主存储器或外存储器的读写范围。
优选地,所述通过处理器在设定范围内执行所述样本文件的指令的步骤之前还包括:
设定物理处理器的指令执行权限,以及,创建内存的分级页表管理机制。
优选地,所述调用包括:
抓取样本文件的***调用指令,并记录该次调用;在执行所述***调用指令时,根据预设策略修改API的调用参数和返回值,控制API的执行。
本发明还提出一种文件可控执行的虚拟机,包括:
控制调用模块,用于建立虚拟操作***环境;
执行切换模块,用于在初始化后,将样本文件的执行切换至建立的虚拟操作***环境;
执行记录模块,用于调用处理器在设定范围内执行所述样本文件的指令,并记录所述样本文件的行为。
优选地,所述初始化包括:
虚拟操作***环境的初始化、将样本文件初始化和/或样本文件的进程初始化。
优选地,所述控制调用模块还用于:
初始化虚拟环境的全局描述符表或中断描述表、调试寄存器、控制寄存器、段寄存器以及快速***调用相关的模式寄存器。
优选地,所述设定范围包括:
处理器的指令执行权限和/或主存储器或外存储器的读写范围。
优选地,所述虚拟机还包括:
权限设定模块,用于设定物理处理器的指令执行权限,以及,创建内存的分级页表管理机制。
优选地,所述调用包括:
抓取样本文件的***调用指令,并记录该次调用;在执行所述***调用指令时,根据预设策略修改API的调用参数和返回值,控制API的执行。
本发明通过建立虚拟的操作***环境供样本文件运行,使用物理处理器执行样本文件的指令,并预先设置硬件设备的指令执行范围,使得该样本文件的运行安全可控;同时,消耗较少资源,具有较高执行效率。
附图说明
图1是本发明文件可控执行的检测方法一实施例中的步骤流程示意图;
图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(ApplicationProgrammingInterface,应用程序编程接口)可使用模板来实现,每个API都对应一个***调用。例如INT0X80,此中断会被微型内核模块抓到,并可将该调用信息提交到控制调用模块;该控制调用模块即可记录该次API调用。另外,该控制调用模块可以根据策略,修改API的调用参数和返回值,从而控制API的执行。
上述虚拟机中运行样本文件时,样本文件使用的DLL(DynamicLinkLibrary,动态链接库)模块都由虚拟机生成,代码可见,从本质上解决了调用截获的问题;生成的模拟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都对应一个***调用。例如INT0X80,此中断会被微型内核模块抓到,并可将该调用信息提交到控制调用模块21;该控制调用模块21即可记录该次API调用。另外,该控制调用模块21可以根据策略,修改API的调用参数和返回值,从而控制API的执行。
上述虚拟机20中运行样本文件时,样本文件使用的DLL模块都由虚拟机20生成,代码可见,从本质上解决了调用截获的问题;生成的模拟API函数入口代码和真实API入口代码一致,从而解决了被检测的问题。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种文件可控执行的检测方法,其特征在于,包括:
建立虚拟操作***环境;
在初始化后,将样本文件的执行切换至建立的虚拟操作***环境;
调用处理器在设定范围内执行所述样本文件的指令,以为所述样本文件提供隔离的运行环境,并记录所述样本文件的行为;
所述设定范围包括:
处理器的指令执行权限和/或主存储器或外存储器的读写范围;
所述通过处理器在设定范围内执行所述样本文件的指令的步骤之前还包括:
设定物理处理器的指令执行权限,以及创建内存的分级页表管理机制。
2.根据权利要求1所述的文件可控执行的检测方法,其特征在于,所述初始化包括:
虚拟操作***环境的初始化、将样本文件初始化和/或样本文件的进程初始化。
3.根据权利要求1或2所述的文件可控执行的检测方法,其特征在于,所述建立虚拟操作***环境的步骤包括:
初始化虚拟环境的全局描述符表或中断描述表、调试寄存器、控制寄存器、段寄存器以及快速***调用相关的模式寄存器。
4.根据权利要求1或2所述的文件可控执行的检测方法,其特征在于,所述调用包括:
抓取样本文件的***调用指令,并记录该次调用;在执行所述***调用指令时,根据预设策略修改API的调用参数和返回值,控制API的执行。
5.一种文件可控执行的虚拟机,其特征在于,包括:
控制调用模块,用于建立虚拟操作***环境;
执行切换模块,用于在初始化后,将样本文件的执行切换至建立的虚拟操作***环境;
执行记录模块,用于调用处理器在设定范围内执行所述样本文件的指令,以为所述样本文件提供隔离的运行环境,并记录所述样本文件的行为;
所述设定范围包括:
处理器的指令执行权限和/或主存储器或外存储器的读写范围。
所述虚拟机还包括:
权限设定模块,用于设定物理处理器的指令执行权限,以及创建内存的分级页表管理机制。
6.根据权利要求5所述的文件可控执行的虚拟机,其特征在于,所述初始化包括:
虚拟操作***环境的初始化、将样本文件初始化和/或样本文件的进程初始化。
7.根据权利要求5或6所述的文件可控执行的虚拟机,其特征在于,所述控制调用模块还用于:
初始化虚拟环境的全局描述符表或中断描述表、调试寄存器、控制寄存器、段寄存器以及快速***调用相关的模式寄存器。
8.根据权利要求5或6所述的文件可控执行的虚拟机,其特征在于,所述调用包括:
抓取样本文件的***调用指令,并记录该次调用;在执行所述***调用指令时,根据预设策略修改API的调用参数和返回值,控制API的执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210222810.2A CN102779250B (zh) | 2012-06-29 | 2012-06-29 | 文件可控执行的检测方法及虚拟机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210222810.2A CN102779250B (zh) | 2012-06-29 | 2012-06-29 | 文件可控执行的检测方法及虚拟机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102779250A CN102779250A (zh) | 2012-11-14 |
CN102779250B true CN102779250B (zh) | 2016-04-13 |
Family
ID=47124160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210222810.2A Active CN102779250B (zh) | 2012-06-29 | 2012-06-29 | 文件可控执行的检测方法及虚拟机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102779250B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778368A (zh) * | 2014-01-23 | 2014-05-07 | 重庆邮电大学 | 一种基于***虚拟化技术的进程安全隔离方法 |
CN106682513A (zh) * | 2016-11-28 | 2017-05-17 | 北京奇虎科技有限公司 | 一种目标样本文件的检测方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101589365A (zh) * | 2007-01-25 | 2009-11-25 | 微软公司 | 保护操作***资源 |
CN101645119A (zh) * | 2008-08-07 | 2010-02-10 | 中国科学院软件研究所 | 一种基于虚拟硬件环境的恶意代码自动分析方法及*** |
CN101923482A (zh) * | 2009-06-17 | 2010-12-22 | 北京瑞星信息技术有限公司 | 实现用户态代码的虚拟执行的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007050797A2 (en) * | 2005-10-25 | 2007-05-03 | Secure64 Software Corporation | Secure virtual-machine monitor |
-
2012
- 2012-06-29 CN CN201210222810.2A patent/CN102779250B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101589365A (zh) * | 2007-01-25 | 2009-11-25 | 微软公司 | 保护操作***资源 |
CN101645119A (zh) * | 2008-08-07 | 2010-02-10 | 中国科学院软件研究所 | 一种基于虚拟硬件环境的恶意代码自动分析方法及*** |
CN101923482A (zh) * | 2009-06-17 | 2010-12-22 | 北京瑞星信息技术有限公司 | 实现用户态代码的虚拟执行的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102779250A (zh) | 2012-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102255767B1 (ko) | 가상 머신 감사를 위한 시스템 및 방법들 | |
US9619346B2 (en) | Virtual machine introspection facilities | |
Srinivasan et al. | Process out-grafting: an efficient" out-of-vm" approach for fine-grained process execution monitoring | |
US9507939B1 (en) | Systems and methods for batch processing of samples using a bare-metal computer security appliance | |
Hebbal et al. | Virtual machine introspection: Techniques and applications | |
EP1939754B1 (en) | Providing protected access to critical memory regions | |
Hizver et al. | Real-time deep virtual machine introspection and its applications | |
JP4406627B2 (ja) | 仮想マシンまたは強化オペレーティングシステムなどにおけるコンピュータのセキュリティ管理 | |
CN102147763B (zh) | 一种网络日志的记录方法、***及计算机 | |
EP2864876A2 (en) | Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features | |
CN103310152A (zh) | 基于***虚拟化技术的内核态Rootkit检测方法 | |
CN107368739B (zh) | 一种内核驱动的监视方法和装置 | |
Maier et al. | Bsod: Binary-only scalable fuzzing of device drivers | |
CN102779250B (zh) | 文件可控执行的检测方法及虚拟机 | |
CN103425563A (zh) | 基于虚拟化技术的在线i/o电子取证***及其取证方法 | |
CN107608756B (zh) | 一种基于cpu硬件特性的虚拟机自省触发方法及*** | |
Chen et al. | Duvisor: a user-level hypervisor through delegated virtualization | |
Wei et al. | Mose: Live migration based on-the-fly software emulation | |
Okuda et al. | Implementation and evaluation of communication-hiding method by system call proxy | |
Selis et al. | MEDA: A machine emulation detection algorithm | |
Ding et al. | A high-efficiency and comprehensive dynamic behavior analysis system for Malware based on hardware virtualization | |
Lee et al. | Hypervisor-assisted application checkpointing in virtualized environments | |
Shen et al. | TinyVisor: An extensible secure framework on android platforms | |
Zhan et al. | Protecting critical files using target-based virtual machine introspection approach | |
Xu et al. | Research on semantic gap problem of virtual machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230913 Address after: 100090 Beijing Haidian District Zhichun Road 49 No. 3 West 309 Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2, 518044, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |