CN108334773A - 一种执行文件检测行为的不同分支的方法和装置 - Google Patents

一种执行文件检测行为的不同分支的方法和装置 Download PDF

Info

Publication number
CN108334773A
CN108334773A CN201710813649.9A CN201710813649A CN108334773A CN 108334773 A CN108334773 A CN 108334773A CN 201710813649 A CN201710813649 A CN 201710813649A CN 108334773 A CN108334773 A CN 108334773A
Authority
CN
China
Prior art keywords
virtual machine
sample program
status information
file
behavior
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.)
Pending
Application number
CN201710813649.9A
Other languages
English (en)
Inventor
王永亮
关墨辰
王小丰
肖新光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ahtech Network Safe Technology Ltd
Original Assignee
Beijing Ahtech Network Safe Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Ahtech Network Safe Technology Ltd filed Critical Beijing Ahtech Network Safe Technology Ltd
Priority to CN201710813649.9A priority Critical patent/CN108334773A/zh
Publication of CN108334773A publication Critical patent/CN108334773A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种执行文件检测行为的不同分支的方法、装置和存储设备,用以提高沙箱系统的分析效率。该方法包括:从在沙箱中执行样本程序的起始时刻,到所述样本程序执行过程中遇到一个文件检测行为之间的任一时刻,保存执行沙箱系统的虚拟机的状态信息;在文件检测的一种可能的情况下,继续执行样本程序直至样本程序执行完毕;根据保存的虚拟机的状态信息,将所述虚拟机恢复到所述保存的虚拟机的状态信息所指示的状态;在文件检测的另一种可能的情况下,执行样本程序直至样本程序执行完毕。

Description

一种执行文件检测行为的不同分支的方法和装置
技术领域
本发明涉及网络安全技术领域,尤其涉及一种执行文件检测行为的不同分支的方法、装置和存储设备。
背景技术
现在的恶意软件会使用一些技巧,例如插入垃圾代码,代码位置互换,寄存器重新分配、等价代码替换等方式来躲避传统的基于签名的反恶意软件的检测,为了解决这类问题,众多厂商采用沙箱的方式来增强对恶意代码攻击行为的检测能力。
在使用沙箱做文件分析的过程中,对于文件检测行为的不同分支做到完全覆盖的传统的方法是,分别设定文件检测的结果的不同情况(一种为存在,一种为不存在),根据设定的结果依次执行两次样本程序。其中,文件检测行为是检测某个或者某些文件是否存在,然后根据检测结果,选择执行文件存在的分支或者文件不存在的分支的行为。
但是这样样本在每次执行时都会从头开始运行,由于我们关心的只是从文件检测行为开始的后续的分支情况,因此这会造成大量的代码逻辑的重复执行,从而浪费了从开始点到文件检测行为点的这些时间,那么当有多种或多个文件检测行为时,则需要的时间将成2的指数倍增加,特别是对于运行时间较长的样本程序来说,花费的时间将比较长,而这则会大大影响沙箱系统的分析效率。而在实际中沙箱系统往往会被用来大批量的去分析样本,因此分析效率则至关重要。
综上所述,目前在使用沙箱做文件分析时,如果需要对文件检测行为的不同分支做到完全覆盖,这会大大降低沙箱系统的分析效率。
发明内容
本发明实施例提供了一种执行文件检测行为的不同分支的方法、装置和存储设备,用以提高沙箱系统的分析效率。
基于上述问题,本发明实施例提供的一种执行文件检测行为的不同分支的方法,包括:
从在沙箱中执行样本程序的起始时刻,到所述样本程序执行过程中遇到一个文件检测行为之间的任一时刻,保存执行沙箱系统的虚拟机的状态信息;
在文件检测的一种可能的情况下,继续执行样本程序直至样本程序执行完毕;
根据保存的虚拟机的状态信息,将所述虚拟机恢复到所述保存的虚拟机的状态信息所指示的状态;
在文件检测的另一种可能的情况下,执行样本程序直至样本程序执行完毕。
本发明实施例提供的一种执行文件检测行为的不同分支的装置,包括存储器和处理器,所述存储器用于存储多条指令,所述处理器用于加载所述存储器中存储的指令以执行:
从在沙箱中执行样本程序的起始时刻,到所述样本程序执行过程中遇到一个文件检测行为之间的任一时刻,保存执行沙箱系统的虚拟机的状态信息;
在文件检测的一种可能的情况下,继续执行样本程序直至样本程序执行完毕;
根据保存的虚拟机的状态信息,将所述虚拟机恢复到所述保存的虚拟机的状态信息所指示的状态;
在文件检测的另一种可能的情况下,执行样本程序直至样本程序执行完毕。
本发明实施例提供的一种存储设备,其中存储有多条指令,所述指令适于由处理器加载并执行本发明实施例提供的一种执行文件检测行为的不同分支的方法的步骤。
本发明实施例的有益效果包括:
本发明实施例提供了一种执行文件检测行为的不同分支的方法、装置和存储设备,从在沙箱中执行样本程序的起始时刻,到所述样本程序执行过程中遇到一个文件检测行为之间的任一时刻,保存执行沙箱系统的虚拟机的状态信息,然后在文件检测的一种可能的情况下,继续执行样本程序直至样本程序执行完毕;然后根据保存的虚拟机的状态信息,将虚拟机恢复到保存的虚拟机的状态信息所指示的状态,再在文件检测的另一种可能的情况下,执行样本程序直至样本程序执行完毕。由于在文件检测的另一种可能的情况下,执行样本程序之前,已经将虚拟机恢复到保存的虚拟机的状态信息所指示的状态,因此,在文件检测的另一种可能的情况下,执行样本程序是从执行样本程序的起始时刻之后开始执行的,从而避免了重复执行样本程序中自样本程序的起始时刻至虚拟机状态信息保存时刻之间的代码,进而提高了沙箱系统的分析效率。
附图说明
图1为本发明实施例提供的执行文件检测行为的不同分支的方法在执行时所参与的各程序之间的关系图;
图2为本发明实施例提供的一种执行文件检测行为的不同分支的方法的流程图;
图3为样本程序中有多个文件检测行为时多个文件检测行为构成的树状结构图;
图4为本发明实施例提供的另一种执行文件检测行为的不同分支的方法的流程图;
图5为本发明实施例提供的一种执行文件检测行为的不同分支的装置的结构图。
具体实施方式
本发明实施例提供的一种执行文件检测行为的不同分支的方法、装置和存储设备,该方法通过在沙箱中执行样本程序的过程中,从在沙箱中执行样本程序的起始时刻,到所述样本程序执行过程中遇到一个文件检测行为之间的任一时刻,保存执行沙箱系统的虚拟机的状态信息,然后执行文件检测的一个分支(即在文件检测的一种可能的情况下,继续执行样本程序),并在该分支执行完毕后,将虚拟机恢复至保存的虚拟机状态信息所指示的状态,执行文件检测的另一个分支(即在文件检测的另一种可能的情况下,执行样本程序),从而避免了重复执行样本程序中自样本程序的起始时刻至虚拟机状态信息保存时刻之间的代码,提高了沙箱系统的分析效率。
下面结合说明书附图,对本发明实施例提供的一种执行文件检测行为的不同分支的方法、装置和存储设备的具体实施方式进行说明。
本发明实施例提供的执行文件检测行为的不同分支的方法和装置,在执行时可以有以下程序参与:
1)虚拟机管理软件:该程序管理虚拟机的工作状态,负责沙箱系统的实际执行,能实现对虚拟机进行暂停,状态保存,状态恢复。
2)沙箱系统:被虚拟化方式执行的系统,包括操作系统软件(如windows 7 ,linux)、在虚拟化环境内部执行的监控软件(例如,用于设置hook钩子的程序,cuckoo等)、沙箱系统环境构造软件(例如:Microsoft Office等,用于打开office文件;或某些游戏程序,用于诱发盗号木马发作等)。其分析流程,一般包括操作系统引导阶段、沙箱内部监控软件执行环境初始化阶段、任务读取阶段、执行阶段、分析阶段。
3)样本监控程序:运行在沙箱内部,负责执行样本程序,获取样本执行数据,设定文件检测的不同分支情况。
4)通信调度程序:运行在沙箱内部,负责接收用户或样本监控程序发出的对沙箱系统处理的请求,实现沙箱系统与虚拟机管理软件交互,使得虚拟机管理软件执行相关指令,完成对虚拟机的控制。
上述参与的程序之间的关系如图1所示,各个参与的程序均在宿主机上运行。
本发明实施例提供的一种执行文件检测行为的不同分支的方法,如图2所示,具体包括以下步骤:
S201、从在沙箱中执行样本程序的起始时刻,到所述样本程序执行过程中遇到一个文件检测行为之间的任一时刻,保存执行沙箱系统的虚拟机的状态信息;
S202、在文件检测的一种可能的情况下,继续执行样本程序直至样本程序执行完毕;
S203、根据保存的虚拟机的状态信息,将所述虚拟机恢复到所述保存的虚拟机的状态信息所表示的状态;
S204、在文件检测的另一种可能的情况下,执行样本程序直至样本程序执行完毕。
其中,文件检测的一种可能的情况和另一种可能的情况是指文件存在的情况和文件不存在的情况。
较佳地,S201中的任一时刻为所述样本程序执行过程中遇到一个文件检测行为的时刻,这样,避免重复执行了样本程序的起始代码至产生文件检测行为的代码之间的代码,从而尽量多的避免重复执行的代码,进一步提高了沙箱系统的分析效率。
进一步地,图2所示的方法包括两个情况,第一种情况是,在执行样本程序直至样本程序执行完毕的过程中,没有再遇到文件检测行为;第二种情况是,在执行样本程序直至样本程序执行完毕的过程中,遇到了至少一个文件检测行为。下面我们分别就这两种情况进行说明。
在第一种情况下,也就是说在执行样本程序的过程中只会遇到一次文件检测行为,这种情况最简单,只需要保存一次虚拟机的状态信息,然后假定文件存在执行样本程序至样本程序执行完毕,并在执行完文件检测行为的这一分支后,根据保存的虚拟机的状态信息将虚拟机恢复至保存的虚拟机的状态信息所指示的状态,然后假定文件不存在执行样本程序至样本程序执行完毕,这样在文件检测行为的这一分支结束后,文件检测行为的所有分支全部覆盖,对样本程序的分析结束。
在第二种情况下,也就是说在执行样本程序的过程中会遇到至少两次文件检测行为。下面以图3所示的树状结构图来描述本发明实施例提供的执行文件检测行为的不同分支的方法在样本程序中有多个文件检测行为时的执行过程。
在图3中,①~⑦分别表示在执行样本程序的过程中遇到的7个文件检测行为,这时需要保存虚拟机状态信息的时刻有7个。在遇到第一个文件检测行为,即文件检测行为①时,保存虚拟机状态1的信息,然后假定文件存在,即沿着Y分支继续执行样本程序,当遇到第二个文件检测行为,即文件检测行为②时,保存虚拟机状态2的信息,继续假定文件存在,即继续沿着Y分支执行样本程序,当遇到第三个文件检测行为,即文件检测行为③时,保存虚拟机状态3的信息,继续假定文件存在,即继续沿着Y分支执行样本程序直至样本程序执行完毕,在保存虚拟机状态3的信息之后到继续沿着Y分支执行样本程序直至样本程序执行完毕之前不会再遇到文件检测行为。因此,在保存虚拟机状态3的信息之后继续沿着Y分支执行样本程序直至样本程序执行完毕时,该样本程序的第一个分支执行完毕(即①-Y-②-Y-③-Y分支执行完毕),然后根据保存的虚拟机状态3的信息将虚拟机恢复到虚拟机状态3,假定文件不存在,沿着N分支执行样本程序直至样本程序执行完毕,在恢复虚拟机至虚拟机状态3之后到沿着N分支执行样本程序直至样本程序执行完毕之前不会再遇到文件检测行为。因此,在恢复虚拟机至虚拟机状态3之后到沿着N分支执行样本程序直至样本程序执行完毕时,该样本程序的第二个分支执行完毕(即①-Y-②-Y-③-N分支执行完毕),此时,由于文件检测行为③的所有分支都已经执行完毕,保存的虚拟机状态3的信息不再需要,因此,可以将保存的虚拟机状态3的信息删除。
然后,根据保存的虚拟机状态2的信息,将虚拟机恢复至虚拟机状态2的信息所表示的状态,假定文件不存在,沿着N分支执行样本程序直至遇到第四个文件检测行为,即文件检测行为④,保存虚拟机状态4的信息,继续假定文件存在,即继续沿着Y分支执行样本程序直至样本程序执行完毕,在保存虚拟机状态4的信息之后到继续沿着Y分支执行样本程序直至样本程序执行完毕之前不会再遇到文件检测行为。因此,在保存虚拟机状态4的信息之后继续沿着Y分支执行样本程序直至样本程序执行完毕时,该样本程序的第三个分支执行完毕(即①-Y-②-N-④-Y分支执行完毕),然后根据保存的虚拟机状态4的信息将虚拟机恢复到虚拟机状态4,假定文件不存在,沿着N分支执行样本程序直至样本程序执行完毕,在恢复虚拟机至虚拟机状态4之后到沿着N分支执行样本程序直至样本程序执行完毕之前不会再遇到文件检测行为。因此,在恢复虚拟机至虚拟机状态4之后到沿着N分支执行样本程序直至样本程序执行完毕时,该样本程序的第四个分支执行完毕(即①-Y-②-N-④-N分支执行完毕),此时,由于文件检测行为④的所有分支都已经执行完毕,保存的虚拟机状态4的信息不再需要,因此,可以将保存的虚拟机状态4的信息删除。另外,由于文件检测行为②的所有分支都已经执行完毕,因此,保存的虚拟机状态2的信息不再需要,因此,可以将保存的虚拟机状态2的信息删除。
然后,根据保存的虚拟机状态1的信息,将虚拟机恢复至虚拟机状态1的信息所表示的状态,假定文件不存在,沿着N分支执行样本程序直至遇到第五个文件检测行为,即文件检测行为⑤,保存虚拟机状态5的信息,继续假定文件存在,即沿着Y分支继续执行样本程序直至遇到第6个文件检测行为,即文件检测行为⑥,保存虚拟机状态6的信息,继续假定文件存在,即沿着Y分支继续执行样本程序直至样本程序执行完毕。在保存虚拟机状态6的信息之后到继续沿着Y分支执行样本程序直至样本程序执行完毕之前不会再遇到文件检测行为。因此,在保存虚拟机状态6的信息之后继续沿着Y分支执行样本程序直至样本程序执行完毕时,该样本程序的第五个分支执行完毕(即①-N-⑤-Y-⑥-Y分支执行完毕),然后根据保存的虚拟机状态6的信息将虚拟机恢复到虚拟机状态6,假定文件不存在,沿着N分支执行样本程序直至样本程序执行完毕,在恢复虚拟机至虚拟机状态6之后到沿着N分支执行样本程序直至样本程序执行完毕之前不会再遇到文件检测行为。因此,在恢复虚拟机至虚拟机状态6之后到沿着N分支执行样本程序直至样本程序执行完毕时,该样本程序的第六个分支执行完毕(即①-N-⑤-Y-⑥-N分支执行完毕),此时,由于文件检测行为⑥的所有分支都已经执行完毕,保存的虚拟机状态6的信息不再需要,因此,可以将保存的虚拟机状态6的信息删除。
然后,根据保存的虚拟机状态5的信息,将虚拟机恢复至虚拟机状态5的信息所表示的状态,假定文件不存在,沿着N分支执行样本程序直至遇到第七个文件检测行为,即文件检测行为⑦,保存虚拟机状态7的信息,继续假定文件存在,即继续沿着Y分支执行样本程序直至样本程序执行完毕,在保存虚拟机状态7的信息之后到继续沿着Y分支执行样本程序直至样本程序执行完毕之前不会再遇到文件检测行为。因此,在保存虚拟机状态7的信息之后继续沿着Y分支执行样本程序直至样本程序执行完毕时,该样本程序的第七个分支执行完毕(即①-N-⑤-N-⑦-Y分支执行完毕),然后根据保存的虚拟机状态7的信息将虚拟机恢复到虚拟机状态7,假定文件不存在,沿着N分支执行样本程序直至样本程序执行完毕,在恢复虚拟机至虚拟机状态7之后到沿着N分支执行样本程序直至样本程序执行完毕之前不会再遇到文件检测行为。因此,在恢复虚拟机至虚拟机状态7之后到沿着N分支执行样本程序直至样本程序执行完毕时,该样本程序的第八个分支执行完毕(即①-N-⑤-N-⑦-N分支执行完毕),此时,由于文件检测行为⑦的所有分支都已经执行完毕,保存的虚拟机状态7的信息不再需要,因此,可以将保存的虚拟机状态7的信息删除。另外,由于文件检测行为⑤的所有分支都已经执行完毕,因此,保存的虚拟机状态5的信息不再需要,因此,可以将保存的虚拟机状态5的信息删除。上述一个文件检测行为的Y分支是假定文件存在的情况下执行样本程序,N分支是假定文件不存在的情况下执行样本程序。
当然,样本程序分析过程中的八个分支不限于按照上述顺序执行,也可以按照其他的顺序执行。
可选地,由于文件检测行为①的所有分支都已经执行完毕,因此,保存的虚拟机状态1的信息不再需要,因此,可以将保存的虚拟机状态1的信息删除。
其中,在样本程序执行过程中有多个文件检测行为时,本发明实施例提供的一种执行文件检测行为的不同分支的方法,如图4所示,包括:
S401、开始分析样本程序;
S402、遇到一个文件检测行为;
S403、保存遇到文件检测行为时的虚拟机的状态信息;
S404、在文件检测的一种可能的情况下,继续执行样本程序;
S405、在继续执行样本程序的过程中,判断是否遇到文件检测行为;若是,执行S403;否则,执行S406;
S406、在样本程序执行完毕时,判断是否执行完最后遇到的文件检测行为的所有分支;若是,执行S407;否则,执行S408;
S407、删除最后保存的虚拟机的状态信息;在S407之后,执行S410;
S408、根据最后保存的虚拟机的状态信息,将虚拟机恢复至最后保存的虚拟机的状态信息所表示的状态;
S409、在文件检测的另一种可能的情况下,执行样本程序;在S409之后,执行S405;
S410、确定保存的虚拟机的状态信息中,与所有分支已经执行完毕的文件检测行为所对应的虚拟机的状态信息;其中,一个文件检测行为有两个分支,一个分支是假定文件存在的情况,另一个分支是假定文件不存在的情况;例如,图3中的文件检测行为①的N分支和Y分支
S411、删除确定的虚拟机的状态信息;
S412、判断是否还有保存的虚拟机的状态信息;若是,执行S408;否则,执行S413;
S413、样本程序分析结束。
可选地,在每一次遇到文件检测行为之后,保存虚拟机的状态信息之前,宿主机控制虚拟机暂停,而在保存虚拟机的状态信息之后,继续执行样本程序之前,宿主机恢复虚拟机的运行。
其中,每一次遇到文件检测行为之后,保存的虚拟机的状态信息包括运行虚拟机的宿主机的内存状态信息、硬盘状态信息、寄存器状态信息等。
在运行本发明实施例提供的执行文件检测行为的不同分支的方法之前,宿主机首先启动图1所示的参与的各个程序,使各个程序都处于运行状态;然后在分析样本程序时,首先将待分析的样本程序送入到沙箱系统中,由样本监控程序,根据输入的样本程序配置运行前的环境;在样本程序开始执行后,当宿主机拦截到样本程序中有文件检测行为时,样本监控程序向通信调度程序发送请求,通信调度程序指示虚拟机管理软件暂停虚拟机,通信调度程序将虚拟机此时的状态信息写入寄存器中。
在保存完虚拟即的状态信息后,恢复虚拟机,恢复样本监控程序的运行,并在文件检测的一种可能的情况下,执行样本程序直至样本程序执行完毕,保存执行结果至一个不能被恢复的介质上,此时样本监控程序再次向通信调度程序发出请求,请求将虚拟机恢复至最后保存的虚拟机的状态信息,然后在文件检测的另一种可能的情况下,继续执行样本程序直至样本程序执行完毕,并将结果追加到之前保存的结果中。
基于同一发明构思,本发明实施例还提供了一种执行文件检测行为的不同分支的装置及存储设备,由于该装置和存储设备所解决问题的原理与前述执行文件检测行为的不同分支的方法相似,因此该装置和存储设备的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供的一种执行文件检测行为的不同分支的装置,如图5所示,包括存储器51和处理器52,存储器51用于存储多条指令,处理器52用于加载存储器51中存储的指令以执行:
从在沙箱中执行样本程序的起始时刻,到所述样本程序执行过程中遇到一个文件检测行为之间的任一时刻,保存执行沙箱系统的虚拟机的状态信息;
在文件检测的一种可能的情况下,继续执行样本程序直至样本程序执行完毕;
根据保存的虚拟机的状态信息,将所述虚拟机恢复到所述保存的虚拟机的状态信息所指示的状态;
在文件检测的另一种可能的情况下,执行样本程序直至样本程序执行完毕。
较佳地,任一时刻是所述样本程序执行过程中遇到一个文件检测行为的时刻。这样,避免重复执行了样本程序的起始代码至产生文件检测行为的代码之间的代码,从而尽量多的避免重复执行的代码,进一步提高了沙箱系统的分析效率。
进一步地,处理器52用于加载存储器51中存储的指令以执行:
在执行样本程序直至样本程序执行完毕的过程中,若遇到至少一个文件检测行为,则执行样本程序直至样本程序执行完毕包括:
遇到一个文件检测行为;
保存遇到该文件检测行为时所述虚拟机的状态信息;
在文件检测的一种可能的情况下,继续所述执行样本程序;
在执行所述样本程序的过程中,判断是否遇到文件检测行为;
若是,回到保存遇到该文件检测行为时所述虚拟机的状态信息的步骤;
否则,在样本程序执行完毕时,判断是否执行完最后保存的所述虚拟机的状态信息所对应的文件检测行为的所有分支;
若是,删除最后保存的虚拟机的状态信息;确定保存的虚拟机的状态信息中,与所有分支已经执行完毕的文件检测行为所对应的虚拟机的状态信息;删除确定的虚拟机的状态信息;判断是否还有多于一个保存的虚拟机的状态信息;若是,回到根据最后保存的虚拟机的状态信息将虚拟机恢复至最后保存的虚拟机的状态信息所表示的状态的步骤;否则,样本程序执行完毕;
否则,根据最后保存的虚拟机的状态信息,将虚拟机恢复至最后保存的虚拟机的状态信息所表示的状态;在文件检测的另一种可能的情况下,执行样本程序;并回到在执行所述样本程序的过程中判断是否遇到文件检测行为的步骤。
进一步地,处理器52还用于加载存储器51中存储的指令以执行:删除保存的虚拟机的状态信息。
进一步地,处理器52还用于加载存储器51中存储的指令以执行:在遇到一个文件检测行为之后,保存虚拟机的状态信息之前,控制虚拟机暂停;在保存虚拟机的状态信息之后,继续执行样本程序之前,恢复虚拟机的运行。
本发明实施例提供的一种存储设备,其中存储有多条指令,所述指令适于由处理器加载并执行本发明实施例提供的一种执行文件检测行为的不同分支的方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (11)

1.一种执行文件检测行为的不同分支的方法,其特征在于,包括:
从在沙箱中执行样本程序的起始时刻,到所述样本程序执行过程中遇到一个文件检测行为之间的任一时刻,保存执行沙箱系统的虚拟机的状态信息;
在文件检测的一种可能的情况下,继续执行样本程序直至样本程序执行完毕;
根据保存的虚拟机的状态信息,将所述虚拟机恢复到所述保存的虚拟机的状态信息所指示的状态;
在文件检测的另一种可能的情况下,执行样本程序直至样本程序执行完毕。
2.如权利要求1所述的方法,其特征在于,所述任一时刻为所述样本程序执行过程中遇到一个文件检测行为的时刻。
3.如权利要求1所述的方法,其特征在于,在执行样本程序直至样本程序执行完毕的过程中,若遇到至少一个文件检测行为,则执行样本程序直至样本程序执行完毕包括:
遇到一个文件检测行为;
保存遇到该文件检测行为时所述虚拟机的状态信息;
在文件检测的一种可能的情况下,继续所述执行样本程序;
在执行所述样本程序的过程中,判断是否遇到文件检测行为;
若是,回到保存遇到该文件检测行为时所述虚拟机的状态信息的步骤;
否则,在样本程序执行完毕时,判断是否执行完最后保存的所述虚拟机的状态信息所对应的文件检测行为的所有分支;
若是,删除最后保存的虚拟机的状态信息;确定保存的虚拟机的状态信息中,与所有分支已经执行完毕的文件检测行为所对应的虚拟机的状态信息;删除确定的虚拟机的状态信息;判断是否还有多于一个保存的虚拟机的状态信息;若是,回到根据最后保存的虚拟机的状态信息将虚拟机恢复至最后保存的虚拟机的状态信息所表示的状态的步骤;否则,样本程序执行完毕;
否则,根据最后保存的虚拟机的状态信息,将虚拟机恢复至最后保存的虚拟机的状态信息所表示的状态;在文件检测的另一种可能的情况下,执行样本程序;并回到在执行所述样本程序的过程中判断是否遇到文件检测行为的步骤。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
删除保存的虚拟机的状态信息。
5.如权利要求1-3任一所述的方法,其特征在于,所述方法还包括:
在遇到一个文件检测行为之后,保存虚拟机的状态信息之前,控制虚拟机暂停;
在保存虚拟机的状态信息之后,继续执行样本程序之前,恢复虚拟机的运行。
6.一种执行文件检测行为的不同分支的装置,其特征在于,所述装置包括存储器和处理器,所述存储器用于存储多条指令,所述处理器用于加载所述存储器中存储的指令以执行:
从在沙箱中执行样本程序的起始时刻,到所述样本程序执行过程中遇到一个文件检测行为之间的任一时刻,保存执行沙箱系统的虚拟机的状态信息;
在文件检测的一种可能的情况下,继续执行样本程序直至样本程序执行完毕;
根据保存的虚拟机的状态信息,将所述虚拟机恢复到所述保存的虚拟机的状态信息所指示的状态;
在文件检测的另一种可能的情况下,执行样本程序直至样本程序执行完毕。
7.如权利要求6所述的装置,其特征在于,所述任一时刻为所述样本程序执行过程中遇到一个文件检测行为的时刻。
8.如权利要求6所述的装置,其特征在于,所述处理器用于加载所述存储器中存储的指令以执行:
在执行样本程序直至样本程序执行完毕的过程中,若遇到至少一个文件检测行为,则执行样本程序直至样本程序执行完毕包括:
遇到一个文件检测行为;
保存遇到该文件检测行为时所述虚拟机的状态信息;
在文件检测的一种可能的情况下,继续所述执行样本程序;
在执行所述样本程序的过程中,判断是否遇到文件检测行为;
若是,回到保存遇到该文件检测行为时所述虚拟机的状态信息的步骤;
否则,在样本程序执行完毕时,判断是否执行完最后保存的所述虚拟机的状态信息所对应的文件检测行为的所有分支;
若是,删除最后保存的虚拟机的状态信息;确定保存的虚拟机的状态信息中,与所有分支已经执行完毕的文件检测行为所对应的虚拟机的状态信息;删除确定的虚拟机的状态信息;判断是否还有多于一个保存的虚拟机的状态信息;若是,回到根据最后保存的虚拟机的状态信息将虚拟机恢复至最后保存的虚拟机的状态信息所表示的状态的步骤;否则,样本程序执行完毕;
否则,根据最后保存的虚拟机的状态信息,将虚拟机恢复至最后保存的虚拟机的状态信息所表示的状态;在文件检测的另一种可能的情况下,执行样本程序;并回到在执行所述样本程序的过程中判断是否遇到文件检测行为的步骤。
9.如权利要求6所述的装置,其特征在于,所述处理器还用于加载所述存储器中存储的指令以执行:
删除保存的虚拟机的状态信息。
10.如权利要求6-8任一项所述的装置,其特征在于,所述处理器还用于加载所述存储器中存储的指令以执行:
在遇到一个文件检测行为之后,保存虚拟机的状态信息之前,控制虚拟机暂停;
在保存虚拟机的状态信息之后,继续执行样本程序之前,恢复虚拟机的运行。
11.一种存储设备,其特征在于,所述存储设备中存储有多条指令,所述指令适于由处理器加载并执行权1-5任一所述的方法的步骤。
CN201710813649.9A 2017-09-11 2017-09-11 一种执行文件检测行为的不同分支的方法和装置 Pending CN108334773A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710813649.9A CN108334773A (zh) 2017-09-11 2017-09-11 一种执行文件检测行为的不同分支的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710813649.9A CN108334773A (zh) 2017-09-11 2017-09-11 一种执行文件检测行为的不同分支的方法和装置

Publications (1)

Publication Number Publication Date
CN108334773A true CN108334773A (zh) 2018-07-27

Family

ID=62923197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710813649.9A Pending CN108334773A (zh) 2017-09-11 2017-09-11 一种执行文件检测行为的不同分支的方法和装置

Country Status (1)

Country Link
CN (1) CN108334773A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271785A (zh) * 2018-10-11 2019-01-25 郑州云海信息技术有限公司 一种虚拟机文件的监控方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508780A (zh) * 2011-11-21 2012-06-20 电子科技大学 一种用于软件测试的交叉式动态法和装置
CN104462962A (zh) * 2013-09-13 2015-03-25 北京安赛创想科技有限公司 一种检测未知恶意代码和二进制漏洞的方法
CN104766007A (zh) * 2015-03-27 2015-07-08 杭州安恒信息技术有限公司 一种基于文件系统过滤驱动实现沙箱快速恢复的方法
CN106557355A (zh) * 2016-12-01 2017-04-05 北京奇虎科技有限公司 虚拟机镜像的生成方法及生成装置
US20170185778A1 (en) * 2015-12-24 2017-06-29 Mcafee, Inc. Executing full logical paths for malware detection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508780A (zh) * 2011-11-21 2012-06-20 电子科技大学 一种用于软件测试的交叉式动态法和装置
CN104462962A (zh) * 2013-09-13 2015-03-25 北京安赛创想科技有限公司 一种检测未知恶意代码和二进制漏洞的方法
CN104766007A (zh) * 2015-03-27 2015-07-08 杭州安恒信息技术有限公司 一种基于文件系统过滤驱动实现沙箱快速恢复的方法
US20170185778A1 (en) * 2015-12-24 2017-06-29 Mcafee, Inc. Executing full logical paths for malware detection
CN106557355A (zh) * 2016-12-01 2017-04-05 北京奇虎科技有限公司 虚拟机镜像的生成方法及生成装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271785A (zh) * 2018-10-11 2019-01-25 郑州云海信息技术有限公司 一种虚拟机文件的监控方法和装置

Similar Documents

Publication Publication Date Title
US8479294B1 (en) Anti-malware scan management in high-availability virtualization environments
EP3151151B1 (en) Systems and methods for detecting malicious executable files containing an interpreter by combining emulators
US10997291B2 (en) Extending dynamic detection of malware using static and dynamic malware analyses
US9117079B1 (en) Multiple application versions in a single virtual machine
JP5665188B2 (ja) ソフトウエア更新を適用した情報処理装置を検査するシステム
CN102339371B (zh) 一种检测恶意程序的方法、装置及虚拟机
US8839434B2 (en) Multi-nodal malware analysis
Bierma et al. Andlantis: Large-scale Android dynamic analysis
US8943596B2 (en) System and method for improving the efficiency of application emulation acceleration
US20220035905A1 (en) Malware analysis through virtual machine forking
KR101740604B1 (ko) 멀웨어 검출을 위한 애플리케이션들의 제네릭 언패킹
CN109471697A (zh) 一种监控虚拟机中系统调用的方法、装置及存储介质
JP2014508363A (ja) アンチマルウェアメタデータのルックアップを行うためのシステム及び方法
US20150120674A1 (en) Virtual program installation and state restoration
CN104899049B (zh) 一种文件删除方法及其装置
CN111783094A (zh) 一种数据分析方法、装置、服务器及可读存储介质
EP4109310B1 (en) Iterative memory analysis for malware detection
CN108334773A (zh) 一种执行文件检测行为的不同分支的方法和装置
CN106407751B (zh) 对可执行文件进行保护的方法和装置
US20100153053A1 (en) Stream Based Stimulus Definition and Delivery via Interworking
CN103617069B (zh) 恶意程序检测方法和虚拟机
CN103617391B (zh) 一种检测恶意程序的方法、装置及虚拟机
US20170177459A1 (en) Technique for inspecting a host computer
US20200364360A1 (en) System and method for determining permission profiles for computer executable functions
US10649888B2 (en) Parallelizable data-driven testing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180727