CN110414220B - 沙箱内程序动态执行过程中的操作文件提取方法及装置 - Google Patents

沙箱内程序动态执行过程中的操作文件提取方法及装置 Download PDF

Info

Publication number
CN110414220B
CN110414220B CN201910577131.9A CN201910577131A CN110414220B CN 110414220 B CN110414220 B CN 110414220B CN 201910577131 A CN201910577131 A CN 201910577131A CN 110414220 B CN110414220 B CN 110414220B
Authority
CN
China
Prior art keywords
program
file
malicious code
code sample
target malicious
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
Application number
CN201910577131.9A
Other languages
English (en)
Other versions
CN110414220A (zh
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.)
Qianxin Technology Group Co Ltd
Original Assignee
Qianxin Technology Group Co 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 Qianxin Technology Group Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN201910577131.9A priority Critical patent/CN110414220B/zh
Publication of CN110414220A publication Critical patent/CN110414220A/zh
Application granted granted Critical
Publication of CN110414220B publication Critical patent/CN110414220B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/562Static detection

Abstract

本发明实施例提供一种沙箱内程序动态执行过程中的操作文件提取方法及装置,方法包括:在沙箱的虚拟操作系统层设置待分析的目标恶意代码样本程序;在沙箱的虚拟硬件层设置分析程序;在检测到目标恶意代码样本程序在虚拟操作系统层运行时,利用分析程序分析样本程序对虚拟磁盘的读写操作,并根据样本程序对虚拟磁盘的读写操作,提取样本程序操作的文件。相比于现有技术中分析程序和目标恶意代码样本程序均设置在虚拟操作系统层的方式,本发明实施例这种将分析程序设置在虚拟硬件层的方式,可以避免样本程序对操作文件提取过程的干扰,本发明实施例可以准确、完整地提取样本程序操作的文件。

Description

沙箱内程序动态执行过程中的操作文件提取方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种沙箱内程序动态执行过程中的操作文件提取方法及装置。
背景技术
Sandbox(沙箱)是一个虚拟系统,允许在沙盘环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。其为一个独立的虚拟环境,可以用来测试不受信任的应用程序或上网行为。沙箱是一种按照安全策略限制程序行为的执行环境。早期主要用于测试可疑软件等,比如黑客们为了试用某种病毒或者不安全产品,往往可以将它们在沙箱环境中运行。经典的沙箱系统的实现途径一般是通过拦截系统调用,监视程序行为,然后依据用户定义的策略来控制和限制程序对计算机资源的使用。
现有技术中,沙箱在对样本程序操作的文件进行提取时,在虚拟操作系统层中设置分析程序,然后利用该分析程序对样本程序的文件操作过程进行分析,以提取样本程序操作的文件,这种文件提取方式存在如下问题:
文件提取过程容易被样本程序干扰,导致出现文件提取失败或提取不全的问题。例如,样本程序通过独占模式打开并读写某个文件时,分析程序就无法同时去读取这个文件,自然就提取不出这个文件中的内容。
发明内容
针对现有技术中的问题,本发明实施例提供一种沙箱内程序动态执行过程中的操作文件提取方法及装置。
第一方面,本发明实施例提供了一种沙箱内程序动态执行过程中的操作文件提取方法,包括:
在沙箱的虚拟操作系统层设置待分析的目标恶意代码样本程序;
在沙箱的虚拟硬件层设置分析程序;其中,所述分析程序用于在所述目标恶意代码样本程序运行过程中对所述目标恶意代码样本程序操作的文件进行分析;
在检测到所述目标恶意代码样本程序在所述虚拟操作系统层运行时,利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件。
进一步地,所述利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件,包括:
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第一底层API接口对虚拟磁盘进行读操作时,通过分析调用所述第一底层API接口的调用参数获取所述目标恶意代码样本程序读取的文件的第一文件路径信息和第一文件偏移信息,并根据所述第一文件路径信息将所述读取的文件数据转出存储以及根据所述第一文件偏移信息在宿主机上重组所述读取的文件;
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第二底层API接口对虚拟磁盘进行写操作时,通过分析调用所述第二底层API接口的调用参数获取所述目标恶意代码样本程序向所述虚拟磁盘写入的文件的第二文件路径信息和第二文件偏移信息,并根据所述第二文件路径信息将写入的文件数据转出存储以及根据所述第二文件偏移信息在宿主机上重组所述写入的文件。
进一步地,所述在沙箱的虚拟操作系统层设置待分析的目标恶意代码样本程序,包括:
将待分析的目标恶意代码样本程序预先安装在沙箱的虚拟操作系统中;
或,
在需要对待分析的目标恶意代码样本程序进行分析时,将所述目标恶意代码样本程序通过网络传输或物理介质传输的方式发送至所述虚拟操作系统中。
进一步地,所述在沙箱的虚拟硬件层设置分析程序,包括:
在沙箱的虚拟硬件层安装分析程序,用于拦截并提取被所述目标恶意代码样本程序操作的文件。
第二方面,本发明实施例还提供了一种沙箱内程序动态执行过程中的操作文件提取装置,包括:
第一设置模块,用于在沙箱的虚拟操作系统层设置待分析的目标恶意代码样本程序;
第二设置模块,用于在沙箱的虚拟硬件层设置分析程序;其中,所述分析程序用于在所述目标恶意代码样本程序运行过程中对所述目标恶意代码样本程序操作的文件进行分析;
提取模块,用于在检测到所述目标恶意代码样本程序在所述虚拟操作系统层运行时,利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件。
进一步地,所述提取模块在利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件时,具体用于:
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第一底层API接口对虚拟磁盘进行读操作时,通过分析调用所述第一底层API接口的调用参数获取所述目标恶意代码样本程序读取的文件的第一文件路径信息和第一文件偏移信息,并根据所述第一文件路径信息将所述读取的文件数据转出存储以及根据所述第一文件偏移信息在宿主机上重组所述读取的文件;
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第二底层API接口对虚拟磁盘进行写操作时,通过分析调用所述第二底层API接口的调用参数获取所述目标恶意代码样本程序向所述虚拟磁盘写入的文件的第二文件路径信息和第二文件偏移信息,并根据所述第二文件路径信息将写入的文件数据转出存储以及根据所述第二文件偏移信息在宿主机上重组所述写入的文件。
进一步地,所述第一设置模块,具体用于:
将待分析的目标恶意代码样本程序预先安装在沙箱的虚拟操作系统中;
或,
在需要对待分析的目标恶意代码样本程序进行分析时,将所述目标恶意代码样本程序通过网络传输或物理介质传输的方式发送至所述虚拟操作系统中。
进一步地,所述第二设置模块,具体用于:
在沙箱的虚拟硬件层安装分析程序,用于拦截并提取被所述目标恶意代码样本程序操作的文件。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述沙箱内程序动态执行过程中的操作文件提取方法的步骤。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述沙箱内程序动态执行过程中的操作文件提取方法的步骤。
由上面技术方案可知,本发明实施例提供的沙箱内程序动态执行过程中的操作文件提取方法及装置,通过在虚拟硬件层设置分析程序,利用设置在虚拟硬件层的分析程序分析位于虚拟操作系统层的目标恶意代码样本程序对虚拟磁盘的读写操作,进而提取目标恶意代码样本程序操作的文件,相比于现有技术中分析程序和目标恶意代码样本程序均设置在虚拟操作系统层的方式,本发明实施例这种将分析程序设置在虚拟硬件层的方式,可以避免目标恶意代码样本程序对操作文件提取过程的干扰,本发明实施例可以准确、完整地提取目标恶意代码样本程序操作的文件。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的沙箱内程序动态执行过程中的操作文件提取方法的流程图;
图2是本发明一实施例提供的沙箱(虚拟硬件层+虚拟操作系统层)的部署结构示意图;
图3为本发明一实施例提供的沙箱内程序动态执行过程中的操作文件提取装置的结构示意图;
图4为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明实施例提供的沙箱内程序动态执行过程中的操作文件提取方法的流程图。如图1所示,本发明实施例提供的沙箱内程序动态执行过程中的操作文件提取方法包括如下步骤:
步骤101:在沙箱的虚拟操作系统层设置待分析的目标恶意代码样本程序。
步骤102:在沙箱的虚拟硬件层设置分析程序;其中,所述分析程序用于在所述目标恶意代码样本程序运行过程中对所述目标恶意代码样本程序操作的文件进行分析。
步骤103:在检测到所述目标恶意代码样本程序在所述虚拟操作系统层运行时,利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件。
在本实施例中,结合图2对本发明实施例提供的沙箱内程序动态执行过程中的操作文件提取方法进行简单说明。如图2所示,在一个安装有沙箱的终端设备上,共设置有四层结构,分别为:物理硬件层、宿主机操作系统层、虚拟硬件层和虚拟操作系统层;其中:
物理硬件层:真正的硬件,即终端设备上插的CPU、内存、硬盘等等;
宿主机操作系统层:安装在终端设备上的操作系统。即按电源按钮后,终端设备启动进入的操作系统,如可以为Linux;
虚拟硬件层:在宿主机操作系统上运行的一个程序,这个程序会用纯软件的形式模拟出CPU、内存、硬盘等一系列硬件,即实现虚拟硬件层,也就是实现了虚拟机的功能。因为是纯软件模拟的,因此可以模拟出和真实物理硬件层完全不一样的虚拟硬件。例如在x86架构的CPU的终端设备上,其虚拟硬件层中的虚拟CPU可以是ARM架构的;
虚拟操作系统层:即虚拟机操作系统,直接安装在虚拟硬件层上,可以是linux、windows、android等等,取决于待分析的恶意代码样本程序希望运行在什么系统中。
在上面介绍完安装有沙箱的终端设备的结构后可知,一个终端设备上,设置有四层:物理硬件层、宿主机操作系统层、虚拟硬件层、虚拟操作系统层;也就是说,在宿主机操作系统层运行了一个程序,这个程序的作用就是用纯软件的形式模拟CPU、内存、硬盘等一系列硬件,即实现虚拟硬件层,也就是实现了虚拟机的功能。然后再在虚拟硬件层上安装虚拟操作系统,并把要分析的恶意代码样本程序放到虚拟操作系统中运行。但是在分析过程中,本发明实施例不在这个虚拟操作系统中安装任何工具来提取样本程序的文件操作,也就是说本发明实施例不对虚拟操作系统进行任何修改,保持虚拟操作系统的纯净状态。本发明实施例采取的方式是,在虚拟硬件层直接分析虚拟操作系统运行过程中对虚拟磁盘的读、写过程,相当于分析方法和虚拟磁盘位于同一层级(虚拟硬件层)。这样可以不关心位于虚拟操作系统层的恶意代码样本程序用了什么特殊技术或者对文件设置了什么权限(如恶意代码样本程序通过独占模式打开文件或为文件设置访问权限等),因为这些设置都是虚拟操作系统层的内容,不对虚拟硬件层具有约束力。正因为如此,本发明实施例是在虚拟硬件层实现的监控和分析,也就是说,只要恶意代码样本程序进行了文件操作,就一定会读写虚拟磁盘,因此本发明实施例也就一定能捕获到这个操作,并把恶意代码样本程序写入到虚拟磁盘中的数据提取出来(即提取样本运行过程中释放的文件)。同时这个过程对恶意代码样本程序来讲是无感知的,因为对恶意代码样本程序来讲,或者对整个虚拟操作系统来讲,该过程等价于由特殊硬件直接实现的。
在本实施例中,需要说明的是,在恶意代码分析领域,沙箱一般指“虚拟机”+“分析手段”。现有技术中的沙箱是在虚拟操作系统中运行恶意代码样本程序并在虚拟操作系统中安装分析程序进行分析,因此现有技术中的沙箱的层级关系是:虚拟机层(用于实现虚拟化)+虚拟操作系统层(用于运行恶意代码样本程序和分析);而本实施例中的沙箱是在虚拟操作系统中运行恶意代码样本程序而在硬件虚拟层安装分析程序进行分析。因此,本实施例中的沙箱的层级关系是:虚拟硬件层(用于实现虚拟化和分析)+虚拟操作系统层(用于运行恶意代码样本程序)。也就是说,本实施例把分析从虚拟操作系统层下移到了虚拟硬件层。
具体来说,对于现有技术中的沙箱,恶意代码样本程序和分析程序均处于虚拟操作系统层,由于在虚拟操作系统中读写文件需要调用虚拟操作系统中提供的各种API,也就是说,如果分析程序位于虚拟操作系统层,那它就跟恶意代码样本程序位于同一层级,由于它们都需要调用系统API来实现文件读写,即必须遵守相同的“规则”。相当于恶意代码样本程序通过API来释放文件,分析程序也要调用API来读取这个文件,这样的话恶意代码样本程序就完全有能力去干扰分析程序对文件的访问。例如恶意代码样本程序通过独占模式打开文件、为文件设置访问权限等,都可以导致分析程序没有权限读取这个文件。根据上面分析可知,当分析程序和恶意代码样本程序均运行在虚拟操作系统层时,由于分析程序提取文件需要依赖虚拟操作系统的相关接口(例如API等),因此这个过程容易被恶意代码样本程序干扰,导致文件提取失败。例如恶意代码样本程序通过独占模式打开并读写某个文件时,分析程序就无法同时去读取这个文件,自然就提取不出这个文件中的内容。
而对于本实施例中的沙箱,恶意代码样本程序运行在虚拟操作系统中,而分析程序安装在硬件虚拟层中。也就是说,本实施例将分析程序设置在虚拟硬件层中,分析过程直接在虚拟硬件层中实现,也即分析程序直接监控恶意代码样本程序对虚拟磁盘的读写操作,并把恶意代码样本程序对虚拟磁盘上写入的数据实时转出存储(转储出来),由于文件读写监控和文件数据获取都是在虚拟硬件层实现,不依赖于虚拟操作系统中的任何接口,因此也就不会受到恶意代码样本程序的干扰。
由上面技术方案可知,本发明实施例提供的沙箱内程序动态执行过程中的操作文件提取方法及装置,通过在虚拟硬件层设置分析程序,利用设置在虚拟硬件层的分析程序分析位于虚拟操作系统层的目标恶意代码样本程序对虚拟磁盘的读写操作,进而提取目标恶意代码样本程序操作的文件,相比于现有技术中,分析程序和目标恶意代码样本程序均设置在虚拟操作系统层的方式,本发明实施例这种将分析程序设置在虚拟硬件层的方式,可以避免目标恶意代码样本程序对操作文件提取过程的干扰,本发明实施例可以准确、完整地提取目标恶意代码样本程序操作的文件。
基于上述实施例的内容,在本实施例中,上述步骤103具体可通过如下方式实现:
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第一底层API接口对虚拟磁盘进行读操作时,通过分析调用所述第一底层API接口的调用参数获取所述目标恶意代码样本程序读取的文件的第一文件路径信息和第一文件偏移信息,并根据所述第一文件路径信息将所述读取的文件数据转出存储以及根据所述第一文件偏移信息在宿主机上重组所述读取的文件;
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第二底层API接口对虚拟磁盘进行写操作时,通过分析调用所述第二底层API接口的调用参数获取所述目标恶意代码样本程序向所述虚拟磁盘写入的文件的第二文件路径信息和第二文件偏移信息,并根据所述第二文件路径信息将写入的文件数据转出存储以及根据所述第二文件偏移信息在宿主机上重组所述写入的文件。
在本实施例中,分析程序在提取文件时,需要先获取恶意代码样本程序对文件的读写操作,然后根据恶意代码样本程序对文件的读写操作提取文件路径和文件内容两部分信息,具体方法如下:
A、沙箱检测到样本程序正在调用NtReadFile等底层API读取文件时,通过分析API参数可以获取第一文件路径和第一文件偏移信息,同时将该API从虚拟磁盘上读出的数据(即样本程序本次读取的文件内容)转储出来,根据第一文件偏移信息在宿主机上重组出该文件;
B、沙箱检测到样本程序正在调用NtWriteFile等底层API写入文件时,通过分析API参数可以获取第二文件路径和第二文件偏移信息,同时将该API向虚拟磁盘上写入的数据(即样本程序本次释放的文件内容)转储出来,根据第二文件偏移信息在宿主机上重组出该文件。
基于上述实施例的内容,在本实施例中,上述步骤101具体可通过如下方式实现:
将待分析的目标恶意代码样本程序预先安装在沙箱的虚拟操作系统中;
或,
在需要对待分析的目标恶意代码样本程序进行分析时,将所述目标恶意代码样本程序通过网络传输或物理介质传输的方式发送至所述虚拟操作系统中。
在本实施例中,待分析的目标恶意代码样本程序可以是预先安装在沙箱的虚拟操作系统中的,也可以是分析前按需放到沙箱的虚拟操作系统中的。这里,分析前按需放到沙箱的虚拟操作系统中是指,当需要分析某个恶意代码样本程序时,可以把这个恶意代码样本程序通过网络传输或物理介质传输(如U盘传输等其他物理介质传输)的等方式,放到虚拟操作系统中,然后执行起来。
基于上述实施例的内容,在本实施例中,上述步骤102具体可通过如下方式实现:
在沙箱的虚拟硬件层安装分析程序,用于拦截并提取被所述目标恶意代码样本程序操作的文件。
在本实施例中,通过在虚拟硬件层安装分析程序,直接监控目标恶意代码样本程序对虚拟磁盘的读写操作,拦截并提取被所述目标恶意代码样本程序操作的文件,可以避免目标恶意代码样本程序对文件提取过程的干扰,准确、完整得提取目标恶意代码样本程序操作的文件。这里的拦截是指有能力准确感知到目标恶意代码样本程序对虚拟磁盘的读写操作,提取是指在感知到目标恶意代码样本程序对虚拟磁盘的读写操作的同时,有能力提取出目标恶意代码样本程序在对虚拟磁盘进行读写操作时涉及的文件读取内容和文件写入内容。在实施例中“拦截并提取被所述目标恶意代码样本程序操作的文件”是指:1)当目标恶意代码样本程序采用一定技术手段读写文件时,本实施例能感知到这个事件,并给出完整的文件路径;2)当目标恶意代码样本程序对读写的文件设置访问权限时,本实施例能将这个文件的内容准确提取出来。
图3示出了本发明实施例提供的沙箱内程序动态执行过程中的操作文件提取装置的结构示意图。如图3所示,本发明实施例提供的沙箱内程序动态执行过程中的操作文件提取装置包括:
第一设置模块21,用于在沙箱的虚拟操作系统层设置待分析的目标恶意代码样本程序;
第二设置模块22,用于在沙箱的虚拟硬件层设置分析程序;其中,所述分析程序用于在所述目标恶意代码样本程序运行过程中对所述目标恶意代码样本程序操作的文件进行分析;
提取模块23,用于在检测到所述目标恶意代码样本程序在所述虚拟操作系统层运行时,利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件。
基于上述实施例的内容,在本实施例中,所述提取模块23在利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件时,具体用于:
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第一底层API接口对虚拟磁盘进行读操作时,通过分析调用所述第一底层API接口的调用参数获取所述目标恶意代码样本程序读取的文件的第一文件路径信息和第一文件偏移信息,并根据所述第一文件路径信息将所述读取的文件数据转出存储以及根据所述第一文件偏移信息在宿主机上重组所述读取的文件;
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第二底层API接口对虚拟磁盘进行写操作时,通过分析调用所述第二底层API接口的调用参数获取所述目标恶意代码样本程序向所述虚拟磁盘写入的文件的第二文件路径信息和第二文件偏移信息,并根据所述第二文件路径信息将写入的文件数据转出存储以及根据所述第二文件偏移信息在宿主机上重组所述写入的文件。
基于上述实施例的内容,在本实施例中,所述第一设置模块21,具体用于:
将待分析的目标恶意代码样本程序预先安装在沙箱的虚拟操作系统中;
或,
在需要对待分析的目标恶意代码样本程序进行分析时,将所述目标恶意代码样本程序通过网络传输或物理介质传输的方式发送至所述虚拟操作系统中。
基于上述实施例的内容,在本实施例中,所述第二设置模块22,具体用于:
在沙箱的虚拟硬件层安装分析程序,用于拦截并提取被所述目标恶意代码样本程序操作的文件。
由于本发明实施例提供的沙箱内程序动态执行过程中的操作文件提取装置,可以用于执行上述实施例所述的沙箱内程序动态执行过程中的操作文件提取方法,其工作原理和有益效果类似,故此处不再详述,具体内容可参见上述实施例的介绍。
基于相同的发明构思,本发明又一实施例提供了一种电子设备,参见图4,所述电子设备具体包括如下内容:处理器301、存储器302、通信接口303和通信总线304;
其中,所述处理器301、存储器302、通信接口303通过所述通信总线304完成相互间的通信;
所述处理器301用于调用所述存储器302中的计算机程序,所述处理器执行所述计算机程序时实现上述沙箱内程序动态执行过程中的操作文件提取方法全部步骤,例如,所述处理器执行所述计算机程序时实现下述过程:在沙箱的虚拟操作系统层设置待分析的目标恶意代码样本程序;在沙箱的虚拟硬件层设置分析程序;其中,所述分析程序用于在所述目标恶意代码样本程序运行过程中对所述目标恶意代码样本程序操作的文件进行分析;在检测到所述目标恶意代码样本程序在所述虚拟操作系统层运行时,利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件。
基于相同的发明构思,本发明又一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述沙箱内程序动态执行过程中的操作文件提取方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述过程:在沙箱的虚拟操作系统层设置待分析的目标恶意代码样本程序;在沙箱的虚拟硬件层设置分析程序;其中,所述分析程序用于在所述目标恶意代码样本程序运行过程中对所述目标恶意代码样本程序操作的文件进行分析;在检测到所述目标恶意代码样本程序在所述虚拟操作系统层运行时,利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的沙箱内程序动态执行过程中的操作文件提取方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种沙箱内程序动态执行过程中的操作文件提取方法,其特征在于,包括:
在沙箱的虚拟操作系统层设置待分析的目标恶意代码样本程序;
在沙箱的虚拟硬件层设置分析程序;其中,所述分析程序用于在所述目标恶意代码样本程序运行过程中对所述目标恶意代码样本程序操作的文件进行分析;
在检测到所述目标恶意代码样本程序在所述虚拟操作系统层运行时,利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件;
其中,所述利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件,包括:
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第一底层API接口对虚拟磁盘进行读操作时,通过分析调用所述第一底层API接口的调用参数获取所述目标恶意代码样本程序读取的文件的第一文件路径信息和第一文件偏移信息,并根据所述第一文件路径信息将所述读取的文件数据转出存储以及根据所述第一文件偏移信息在宿主机上重组所述读取的文件;
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第二底层API接口对虚拟磁盘进行写操作时,通过分析调用所述第二底层API接口的调用参数获取所述目标恶意代码样本程序向所述虚拟磁盘写入的文件的第二文件路径信息和第二文件偏移信息,并根据所述第二文件路径信息将写入的文件数据转出存储以及根据所述第二文件偏移信息在宿主机上重组所述写入的文件。
2.根据权利要求1所述的沙箱内程序动态执行过程中的操作文件提取方法,其特征在于,所述在沙箱的虚拟操作系统层设置待分析的目标恶意代码样本程序,包括:
将待分析的目标恶意代码样本程序预先安装在沙箱的虚拟操作系统中;
或,
在需要对待分析的目标恶意代码样本程序进行分析时,将所述目标恶意代码样本程序通过网络传输或物理介质传输的方式发送至所述虚拟操作系统中。
3.根据权利要求1所述的沙箱内程序动态执行过程中的操作文件提取方法,其特征在于,所述在沙箱的虚拟硬件层设置分析程序,包括:
在沙箱的虚拟硬件层安装分析程序,用于拦截并提取被所述目标恶意代码样本程序操作的文件。
4.一种沙箱内程序动态执行过程中的操作文件提取装置,其特征在于,包括:
第一设置模块,用于在沙箱的虚拟操作系统层设置待分析的目标恶意代码样本程序;
第二设置模块,用于在沙箱的虚拟硬件层设置分析程序;其中,所述分析程序用于在所述目标恶意代码样本程序运行过程中对所述目标恶意代码样本程序操作的文件进行分析;
提取模块,用于在检测到所述目标恶意代码样本程序在所述虚拟操作系统层运行时,利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件;
其中,所述提取模块在利用所述分析程序分析所述目标恶意代码样本程序对虚拟磁盘的读写操作,并根据所述目标恶意代码样本程序对虚拟磁盘的读写操作,提取所述目标恶意代码样本程序操作的文件时,具体用于:
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第一底层API接口对虚拟磁盘进行读操作时,通过分析调用所述第一底层API接口的调用参数获取所述目标恶意代码样本程序读取的文件的第一文件路径信息和第一文件偏移信息,并根据所述第一文件路径信息将所述读取的文件数据转出存储以及根据所述第一文件偏移信息在宿主机上重组所述读取的文件;
当所述分析程序经分析确认所述目标恶意代码样本程序通过调用第二底层API接口对虚拟磁盘进行写操作时,通过分析调用所述第二底层API接口的调用参数获取所述目标恶意代码样本程序向所述虚拟磁盘写入的文件的第二文件路径信息和第二文件偏移信息,并根据所述第二文件路径信息将写入的文件数据转出存储以及根据所述第二文件偏移信息在宿主机上重组所述写入的文件。
5.根据权利要求4所述的沙箱内程序动态执行过程中的操作文件提取装置,其特征在于,所述第一设置模块,具体用于:
将待分析的目标恶意代码样本程序预先安装在沙箱的虚拟操作系统中;
或,
在需要对待分析的目标恶意代码样本程序进行分析时,将所述目标恶意代码样本程序通过网络传输或物理介质传输的方式发送至所述虚拟操作系统中。
6.根据权利要求4所述的沙箱内程序动态执行过程中的操作文件提取装置,其特征在于,所述第二设置模块,具体用于:
在沙箱的虚拟硬件层安装分析程序,用于拦截并提取被所述目标恶意代码样本程序操作的文件。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至3任一项所述沙箱内程序动态执行过程中的操作文件提取方法的步骤。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至3任一项所述沙箱内程序动态执行过程中的操作文件提取方法的步骤。
CN201910577131.9A 2019-06-28 2019-06-28 沙箱内程序动态执行过程中的操作文件提取方法及装置 Active CN110414220B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910577131.9A CN110414220B (zh) 2019-06-28 2019-06-28 沙箱内程序动态执行过程中的操作文件提取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910577131.9A CN110414220B (zh) 2019-06-28 2019-06-28 沙箱内程序动态执行过程中的操作文件提取方法及装置

Publications (2)

Publication Number Publication Date
CN110414220A CN110414220A (zh) 2019-11-05
CN110414220B true CN110414220B (zh) 2021-08-24

Family

ID=68358480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910577131.9A Active CN110414220B (zh) 2019-06-28 2019-06-28 沙箱内程序动态执行过程中的操作文件提取方法及装置

Country Status (1)

Country Link
CN (1) CN110414220B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111444144B (zh) * 2020-03-04 2023-07-25 奇安信科技集团股份有限公司 文件特征提取方法及装置
CN113935021B (zh) * 2021-10-29 2024-04-12 中金金融认证中心有限公司 用于运行恶意软件的方法及其相关产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645119A (zh) * 2008-08-07 2010-02-10 中国科学院软件研究所 一种基于虚拟硬件环境的恶意代码自动分析方法及系统
CN103150506A (zh) * 2013-02-17 2013-06-12 北京奇虎科技有限公司 一种恶意程序检测的方法和装置
CN103927484A (zh) * 2014-04-21 2014-07-16 西安电子科技大学宁波信息技术研究院 基于Qemu模拟器的恶意程序行为捕获方法
CN108717509A (zh) * 2018-06-05 2018-10-30 厦门安胜网络科技有限公司 一种在沙箱中提取程序衍生物的方法、装置、设备及可读介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645119A (zh) * 2008-08-07 2010-02-10 中国科学院软件研究所 一种基于虚拟硬件环境的恶意代码自动分析方法及系统
CN103150506A (zh) * 2013-02-17 2013-06-12 北京奇虎科技有限公司 一种恶意程序检测的方法和装置
CN103927484A (zh) * 2014-04-21 2014-07-16 西安电子科技大学宁波信息技术研究院 基于Qemu模拟器的恶意程序行为捕获方法
CN108717509A (zh) * 2018-06-05 2018-10-30 厦门安胜网络科技有限公司 一种在沙箱中提取程序衍生物的方法、装置、设备及可读介质

Also Published As

Publication number Publication date
CN110414220A (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
US20230281311A1 (en) Method of malware detection and system thereof
RU2653985C2 (ru) Способ и система обнаружения вредоносного программного обеспечения путем контроля исполнения программного обеспечения запущенного по сценарию
CN103500308B (zh) 用于对抗由恶意软件对仿真的检测的系统和方法
Spreitzenbarth et al. Mobile-sandbox: having a deeper look into android applications
CN106055385B (zh) 监控虚拟机进程的系统和方法、过滤page fault异常的方法
US9223964B2 (en) Detecting JAVA sandbox escaping attacks based on JAVA bytecode instrumentation and JAVA method hooking
EP3335146B1 (en) Systems and methods for detecting unknown vulnerabilities in computing processes
EP4095724B1 (en) Method of remediating operations performed by a program and system thereof
KR101740604B1 (ko) 멀웨어 검출을 위한 애플리케이션들의 제네릭 언패킹
US10013553B2 (en) Protecting software application
KR101290565B1 (ko) 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
US11568052B2 (en) Undetectable sandbox for malware
CN108595953A (zh) 对手机应用进行风险评估的方法
CN110414220B (zh) 沙箱内程序动态执行过程中的操作文件提取方法及装置
CN106156621A (zh) 一种检测虚拟机逃逸的方法及装置
CN111428240A (zh) 一种用于检测软件的内存违规访问的方法及装置
CN115455414A (zh) 一种安全检测方法和装置
CN114238943A (zh) 应用程序防护方法、装置、设备及存储介质
KR20180127612A (ko) 가상환경에서 악성코드의 분석회피 방지 시스템
CN111767548A (zh) 一种漏洞捕获方法、装置、设备及存储介质
RU2679783C2 (ru) Способ создания сценария популярных событий активации
CN115292708A (zh) 基于字节码的执行权限分析方法及装置
TW202319944A (zh) 用於資通安全防護機制的驗證方法及驗證系統
Rehida et al. Malware Detection Tool Based on Emulator State Analysis
Pinci Analysis, Detection and Exploitation of Exposed Components in Android Applications

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
GR01 Patent grant
GR01 Patent grant