CN109684828B - 一种文件检测方法和文件检测装置 - Google Patents
一种文件检测方法和文件检测装置 Download PDFInfo
- Publication number
- CN109684828B CN109684828B CN201810886064.4A CN201810886064A CN109684828B CN 109684828 B CN109684828 B CN 109684828B CN 201810886064 A CN201810886064 A CN 201810886064A CN 109684828 B CN109684828 B CN 109684828B
- Authority
- CN
- China
- Prior art keywords
- file
- sample
- execution
- module
- file sample
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种文件检测方法及文件检测装置,所述方法包括:启动进入沙箱模式;在所述沙箱模式下获取文件样本;对所述文件样本进行符号执行,同时监测所述符号执行中生成的输入数据以及对应的所述文件样本的路径约束;在根据所生成的输入数据确定遍历了所述文件样本的所有路径约束时,退出所述沙箱模式。根据本发明的实施例的文件检测方法,可以在遍历了文件样本的所有路径约束时退出沙箱模式,因此在最大化截获文件样本的行为的同时确保了沙箱结束的时机。
Description
技术领域
本申请实施例涉及智能设备领域,特别涉及一种文件检测方法和文件检测装置。
背景技术
Sandbox(沙箱技术)技术广泛应用于恶意代码分析、主动防御等领域,它的原理是通过Hook(截获)等手段虚拟一个完整的运行环境,供未知行为的可执行文件运行,其运行的行为不会对真实的操作系统产生任何改变。通常,沙箱技术的典型运行逻辑为:1)启动沙箱运行。2)启动样本运行,并设置一个定时器,沙箱开始截获样本的行为。3)定时器被触发,终止沙箱运行,并清理沙箱运行痕迹。
从上述的运行逻辑可知,一个样本运行的生命周期是固定的,沙箱在样本的运行过程中对样本本身进行的行为只是截获,而不会进行干预。因此这种沙箱运行模式会造成如下问题:1)如果沙箱提供的虚拟环境没有满足样本的某些运行要求,则该样本可能会终止某些功能的触发,甚至直接退出。2)如果预设的定时器被触发,而样本当前正在运行,则该样本会被强制终止运行,如此一来会使沙箱的截获行为不能完成。
申请内容
本申请提供了一种文件检测方法和文件检测装置,能够更有效地确保文件样本的检测及运行正常。
为了解决上述技术问题,本申请实施例提供了一种文件检测方法,包括:
启动进入沙箱模式;
在所述沙箱模式下获取文件样本;
对所述文件样本进行符号执行,同时监测所述符号执行操作中生成的输入数据及对应的所述文件样本的路径约束;
在根据所生成的所述输入数据确定遍历了所述文件样本的所有路径约束时,退出所述沙箱模式。
作为优选,所述监测所述符号执行中生成的输入数据以及对应的所述文件样本的路径约束,包括:
将所述符号执行中生成的输入数据以及对应的所述文件样本的路径约束存储在数据库中;
所述方法还包括:利用所述输入数据对所述数据库中存储的所述文件样本的所有路径约束进行反向求解。
作为优选,还包括:
将求解出的对应于网络应用程序接口的值输入到所述网络应用程序接口。
作为优选,所述监测对应的所述文件样本的路径约束,包括:
利用图形用户界面模块中的事件分发器监测交互记录;
所述方法还包括:根据所述交互记录进行反向求解。
作为优选,还包括:
响应所述文件样本的检测进程而进行模拟执行;
基于所述符号执行和所述模拟执行来确定所述文件样本所需的运行环境。
本申请实施例同时提供一种文件检测装置,包括:
沙箱模块,用于启动进入沙箱模式;
检测模块,用于在所述沙箱模式下获取文件样本;
符号执行模块,用于由所述检测模块调用而对所述文件样本进行符号执行,同时监测所述符号执行中生成的输入数据以及对应的所述文件样本的路径约束;
所述沙箱模块还用于在确定遍历了所述文件样本的所有路径约束时,退出所述沙箱模式。
作为优选,所述符号执行模块具体用于将所述符号执行中生成的输入数据以及对应的所述文件样本的路径约束存储在数据库中;并且利用所述输入数据对所述数据库中存储的所述文件样本的所有路径约束进行反向求解。
作为优选,所述符号执行模块还用于将求解出的对应于网络应用程序接口的值输入到所述网络应用程序接口。
作为优选,所述符号执行模块具体用于利用图形用户界面模块中的事件分发器监测交互记录;并且根据所述交互记录进行反向求解。
作为优选,还包括:
模拟执行模块,用于响应所述文件样本的检测进程而进行模拟执行;
所述检测模块还基于所述符号执行和所述模拟执行来确定所述文件样本所需的运行环境。
基于上述实施例的公开可以获知,本申请实施例具备如下的有益效果:
根据本发明的实施例的文件检测方法,可以在遍历了文件样本的所有路径约束时退出沙箱模式,因此在最大化截获文件样本的行为的同时确保了沙箱结束的时机,更有效地进行了文件样本的检测。
附图说明
图1为根据本发明的实施例的文件检测方法的示意流程图。
图2为根据本发明另一实施例的文件检测装置的示意框图。
图3为根据本发明另一实施例的文件检测方法的示意流程图。
图4为根据本发明另一实施例的文件检测方法的示意流程图。
图5为根据本发明另一实施例的文件检测方法的示意流程图。
具体实施方式
下面,结合附图对本申请的具体实施例进行详细的描述,但不作为本申请的限定。
应理解的是,可以对此处公开的实施例做出各种修改。因此,下述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本公开的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且与上面给出的对本公开的大致描述以及下面给出的对实施例的详细描述一起用于解释本公开的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本公开的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本公开的具体实施例;然而,应当理解,所公开的实施例仅仅是本公开的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本公开模糊不清。因此,本文所公开的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本公开。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本公开的相同或不同实施例中的一个或多个。
下面,结合附图详细的说明本申请实施例。图1示出了根据本发明的实施例的文件检测方法。图1的文件检测方法包括:
S101:启动进入沙箱模式;
S102:在沙箱模式下获取文件样本;
S103:对文件样本进行符号执行,同时监测符号执行中生成的输入数据以及对应的文件样本的路径约束;
S104:在根据所生成的输入数据确定遍历了文件样本的所有路径约束时,退出沙箱模式。
具体而言,在本实施例的文件检测方法中,沙箱模式可以为虚拟机的工作模式,也可以为开启了沙箱应用程序的模式。文件样本可以是与网络连接的文件,也可以是脱机的文件。在沙箱模式下获取文件样本,可以为沙箱模块将文件样本读取到数据库中,然后检测模块从数据库中获取文件样本进行检测。符号执行例如由检测模块进行,检测模块还可以同时进行诸如API HOOK的模拟执行,例如,将API HOOK与符号执行同时进行以最大可能地截获文件样本的行为;也可以单独地执行符号执行,本发明对此不作限定。
根据本发明的实施例的文件检测方法,可以在遍历了文件样本的所有路径约束时退出沙箱模式,因此在最大化截获文件样本的行为的同时确保了沙箱结束的时机,更有效地进行了文件样本的检测。换句话说,通过符号执行,该样本的所以路径都可以被覆盖,该样本的行为可以被最大化的截获。此外,符号执行是一种虚拟的执行,无需模拟特定的沙箱环境,减少了大量的配置操作,通过符号执行技术,沙箱可能得到该样本所需要的环境,并模拟提供。
在根据本发明的实施例的文件检测方法中,监测符号执行中生成的输入数据以及对应的文件样本的路径约束,包括:将符号执行中生成的输入数据以及对应的文件样本的路径约束存储在数据库中;该方法还包括:利用输入数据对数据库中存储的文件样本的所有路径约束进行反向求解。
根据本发明的实施例的文件检测方法还包括:将求解出的对应于网络应用程序接口的值输入到网络应用程序接口。
在根据本发明的实施例的文件检测方法中,监测对应的文件样本的路径约束,包括:利用图形用户界面模块中的事件分发器监测交互记录;该方法还包括:根据交互记录进行反向求解。换句话说,当某样本包含大量的GUI操作。虽然配合人机识别模块进行辅助可能解决部分问题,但更为复杂的交互,比如输入等仍然无法解决。采用本实施例的方法,无需模拟,通过符号执行,直接对GUI(Graphical User Interface,图形用户界面)模块的dispatcher(事件分发器中的模块,用户记录交互记录)进行反向求解,并根据求解来遍历dispatcher下的路径。
根据本发明的实施例的文件检测方法还包括:响应文件样本的检测进程而进行模拟执行;基于符号执行和模拟执行来确定文件样本所需的运行环境。例如,响应文件样本获取系统版本特征的进程时,利用API HOOK等同时输入不同符号执行输入数据,记录路径约束;通过反向求解所有的文件样本的获取进程,可以获得文件样本所需的运行环境。换句话说,在某样本检测了系统版本、是否虚拟机、典型沙箱特征的情况下,模拟执行可以监控这些检测行为,并根据路径跳转操作来求解得到该样本所需要的运行环境。
图2示出了根据本发明另一实施例的文件检测装置。图2的文件检测装置200包括:
沙箱模块201,用于启动进入沙箱模式;
检测模块202,用于在沙箱模式下获取文件样本;
符号执行模块203,用于由检测模块调用而对文件样本进行符号执行,同时监测符号执行中生成的输入数据以及对应的文件样本的路径约束;
沙箱模块202还用于在根据所生成的输入数据确定遍历了文件样本的所有路径约束时,退出沙箱模式。
在根据本发明的实施例的文件检测装置中,符号执行模块具体用于将符号执行中生成的输入数据以及对应的文件样本的路径约束存储在数据库中;并且利用输入数据对数据库中存储的文件样本的所有路径约束进行反向求解。
在根据本发明的实施例的文件检测装置中,符号执行模块还用于将求解出的对应于网络应用程序接口的值输入到网络应用程序接口。
在根据本发明的实施例的文件检测装置中,符号执行模块具体用于利用图形用户界面模块中的事件分发器监测交互记录;并且根据交互记录进行反向求解。
根据本发明的实施例的文件检测装置还包括:模拟执行模块,用于响应文件样本的检测进程而进行模拟执行;检测模块还基于符号执行和模拟执行来确定文件样本所需的运行环境。
图3为根据本发明另一实施例的文件检测方法的示意流程图。在图3的实施例中,文件样本已经与接收该文件样本时的服务器断开连接,可以采集如下步骤进行样本行为的反向求解:
S301:将符号执行中生成的输入数据以及对应的文件样本的路径约束存储在数据库中;
S302:利用输入数据对数据库中存储的文件样本的所有路径约束进行反向求解;
S303:将求解出的对应于网络应用程序接口的值输入到网络应用程序接口;
S304:接收从网络应用接口发送的值;
S305:将接收到的值输入到文件样本中进行模拟执行。
利用如上步骤,由于可以反向求解出网络应用程序接口的输入值并且根据该值获取到输入到文件样本的值,因此更加全面地求解和分析出该文件样本的行为。
图4为根据本发明另一实施例的文件检测方法的示意流程图。在图4的实施例中,文件样本中存在大量的图形用户界面的交互,可以利用如下步骤分析样本的行为:
S401:启动进入沙箱模式;
S402:在沙箱模式下获取文件样本;
S403:对文件样本进行符号执行,生成符号执行输入数据;
S404:将输入数据输入到文件样本中,同时利用图形用户界面模块中的事件分发器监测交互记录;
S405:根据交互记录进行反向求解;
S406:在确定遍历了文件样本的所有路径约束时,退出沙箱模式。
由于在图形用户界面模块中具有事件分发器的功能,因此无需数据库记录每个路径约束,可以直接利用事件分发器中的交互记录来进行反向求解,提高了计算效率同时节省了存储空间。也就是说,直接对GUI(Graphical User Interface,图形用户界面)模块的dispatcher(事件分发器中的模块,用户记录交互记录)进行反向求解,并根据求解来遍历dispatcher下的路径。
图5为根据本发明另一实施例的文件检测方法的示意流程图。在图5的实施例中,在文件样本检测系统版本、是否为虚拟机、典型沙箱特征的情况下,可以采用如下的步骤检测:
S501:启动进入沙箱模式;
S202:在沙箱模式下获取文件样本;
S503:对文件样本进行符号执行,同时监测符号执行中生成的输入数据以及对应的文件样本的路径约束;
S504:响应文件样本的检测进程而进行模拟执行;
S505:基于符号执行和模拟执行来确定文件样本所需的运行环境,例如响应文件样本获取系统版本特征的进程时,利用API HOOK等同时输入不同符号执行输入数据,记录路径约束;通过反向求解所有的文件样本的获取进程,可以获得文件样本所需的运行环境;具体地,例如检测模块调用API HOOK(应用程序接口劫持)模块注入到被检测文件的运行空间中,本发明中的APIHOOK模块运行在虚拟主机上,主要用于HOOK虚拟主机上的系统函数,包括但不限于创建进程函数、读写文件函数、删除文件函数、网络连接函数、访问注册表函数,并将记录的被检测文件的相关运行信息输出给检测模块。
S506:在确定遍历了文件样本的所有路径约束时,退出沙箱模式。
例如,在文件样本利用了反虚拟机技术而试图对系统版本、沙箱特征等进行检测时,需要执行模拟执行进行进一步分析,此时利用符号执行结合模拟执行可以最大限度地截获的文件样本的行为,从而得到最全面的样本行为的分析。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的数据处理方法所应用于的电子设备,可以参考前述产品实施例中的对应描述,在此不再赘述。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。
Claims (6)
1.一种文件检测方法,其特征在于,包括:
启动进入沙箱模式;
在所述沙箱模式下获取文件样本;
对所述文件样本进行符号执行,同时监测所述符号执行操作中获得的输入数据及生成的对应所述文件样本的路径约束;
在根据所获得的所述输入数据确定遍历了所述文件样本的所有路径约束时,退出所述沙箱模式;
其中,监测路径约束包括:
利用图形用户界面模块中的事件分发器监测交互记录;
所述方法还包括:
响应所述文件样本的检测进程而进行模拟执行;
基于所述符号执行和所述模拟执行来确定所述文件样本所需的运行环境,通过反向求解所有的文件样本的获取进程,可以获得文件样本所需的运行环境。
2.根据权利要求1所述的检测方法,其特征在于,还包括:
将所述符号执行中获得的输入数据以及对应的所述文件样本的路径约束存储在数据库中;
利用所述输入数据对所述数据库中存储的所述文件样本的所有路径约束进行反向求解。
3.根据权利要求2所述的检测方法,其特征在于,还包括:
将求解出的对应于网络应用程序接口的值输入到所述网络应用程序接口。
4.一种文件检测装置,其特征在于,包括:
沙箱模块,用于启动进入沙箱模式;
检测模块,用于在所述沙箱模式下获取文件样本;
符号执行模块,用于对所述文件样本进行符号执行,同时监测所述符号执行中获得的输入数据以及生成的对应所述文件样本的路径约束;
所述沙箱模块还用于在确定遍历了所述文件样本的所有路径约束时,退出所述沙箱模式;
其中,所述符号执行模块具体用于利用图形用户界面模块中的事件分发器监测交互记录;
所述文件检测装置还包括:
模拟执行模块,用于响应所述文件样本的检测进程而进行模拟执行;
基于所述符号执行和所述模拟执行来确定所述文件样本所需的运行环境,通过反向求解所有的文件样本的获取进程,可以获得文件样本所需的运行环境。
5.根据权利要求4所述的检测装置,其特征在于,所述符号执行模块具体用于将所述符号执行中获得的输入数据以及生成对应所述文件样本的路径约束存储在数据库中;并且利用所述输入数据对所述数据库中存储的所述文件样本的所有路径约束进行反向求解。
6.根据权利要求5所述的检测装置,其特征在于,所述符号执行模块还用于将求解出的对应于网络应用程序接口的值输入到所述网络应用程序接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810886064.4A CN109684828B (zh) | 2018-08-06 | 2018-08-06 | 一种文件检测方法和文件检测装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810886064.4A CN109684828B (zh) | 2018-08-06 | 2018-08-06 | 一种文件检测方法和文件检测装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684828A CN109684828A (zh) | 2019-04-26 |
CN109684828B true CN109684828B (zh) | 2021-03-02 |
Family
ID=66184437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810886064.4A Active CN109684828B (zh) | 2018-08-06 | 2018-08-06 | 一种文件检测方法和文件检测装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684828B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012988B (zh) * | 2010-12-02 | 2012-09-26 | 张平 | 自动二进制恶意代码行为分析方法 |
US9367681B1 (en) * | 2013-02-23 | 2016-06-14 | Fireeye, Inc. | Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application |
CN104375861B (zh) * | 2014-11-04 | 2017-06-09 | 北京奇虎科技有限公司 | 基于安卓平台的应用程序免安装运行的方法、装置及终端 |
CN104462984B (zh) * | 2014-11-27 | 2018-01-12 | 北京航空航天大学 | 基于逆向符号执行的应用权限泄漏检测方法及系统 |
-
2018
- 2018-08-06 CN CN201810886064.4A patent/CN109684828B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109684828A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9282112B2 (en) | System and method for determining category of trust of applications performing interface overlay | |
US8978141B2 (en) | System and method for detecting malicious software using malware trigger scenarios | |
US9230106B2 (en) | System and method for detecting malicious software using malware trigger scenarios in a modified computer environment | |
CN103500308A (zh) | 用于对抗由恶意软件对仿真的检测的系统和方法 | |
CN109471697B (zh) | 一种监控虚拟机中系统调用的方法、装置及存储介质 | |
CN109784062B (zh) | 漏洞检测方法及装置 | |
WO2015081841A1 (en) | Devices and methods for test scenario reproduction | |
CN100524241C (zh) | 多操作系统平台整合测试方法 | |
EP2891104B1 (en) | Detecting a malware process | |
WO2016203759A1 (ja) | 分析システム、分析方法、分析装置及び、コンピュータ・プログラムが記憶された記録媒体 | |
WO2017069876A1 (en) | Centralized and automated recovery | |
US11531748B2 (en) | Method and system for autonomous malware analysis | |
CN107292168A (zh) | 检测程序代码的方法及装置、服务器 | |
US9202053B1 (en) | MBR infection detection using emulation | |
CN110597597B (zh) | 硬件的虚拟化方法、系统、装置及存储介质 | |
CN107544902B (zh) | 程序测试方法、装置和设备 | |
CN111428240B (zh) | 一种用于检测软件的内存违规访问的方法及装置 | |
CN109684828B (zh) | 一种文件检测方法和文件检测装置 | |
US20160092313A1 (en) | Application Copy Counting Using Snapshot Backups For Licensing | |
CN106462704B (zh) | 动态读入代码分析装置和动态读入代码分析方法 | |
CN110209563A (zh) | 试题测评监管方法、电子设备及计算机存储介质 | |
CN107742080B (zh) | 针对虚拟化环境的漏洞挖掘方法及装置 | |
CN108009039A (zh) | 终端信息的记录方法、装置、存储介质及电子设备 | |
EP2819055A1 (en) | System and method for detecting malicious software using malware trigger scenarios | |
KR20220146076A (ko) | 캐시 부채널 공격 탐지 장치 및 방법 |
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 |