记录文件执行行为的方法及装置与流程

文档序号:12064178阅读:589来源:国知局
记录文件执行行为的方法及装置与流程

本发明涉及计算机安全技术领域,特别涉及一种记录文件执行行为的方法及装置。



背景技术:

在计算机文件安全测试中,如何在第一操作系统中同时检测第一操作系统和第二操作系统中的可执行文件的安全性,一直是业内研究重点的问题之一。

在现有技术中,主要通过对可执行文件的执行行为进行分析,以确定其安全性。当在第一操作系统中执行第二操作系统的可执行文件时,需要在第一操作系统中运行一个对应第二操作系统的虚拟机,在该虚拟机中运行第二操作系统的可执行文件,同时,在该虚拟机上部署一套针对第二操作系统的可执行文件的第一安全检测程序,以在虚拟机中执行第二操作系统的可执行文件时,根据可执行文件的执行行为,对该可执行文件进行安全检测,并将检测结果传递给设置在第一操作系统下,并用于检测第一操作系统的可执行文件的第二安全检测程序,由第二安全检测程序对检测结果进行汇总。

在实现本发明的过程中,申请人发现现有技术存在如下问题:

现有技术需要在虚拟机和第一操作系统中分别部署独立的安全检测程序,导致系统中用于对可执行文件安全性检测的程序代码结构较为复杂,维护成本高,且资源占用较高。



技术实现要素:

为了解决现有技术中用于对可执行文件安全性检测的程序代码结构较为复杂,维护成本高,且资源占用较高的问题,本发明实施例提供了一种记录文件执行行为的方法及装置,技术方案如下:

第一方面,提供了一种记录文件执行行为的方法,应用于运行第一操作系统的计算设备中,所述第一操作系统支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件,所述方法包括:

监控指定函数;

确定调用所述指定函数的进程;

确定所述进程对应的目标可执行文件的类型,所述目标可执行文件的类型用于指示所述目标可执行文件是所述第一操作系统对应的可执行文件或所述第二操作系统对应的可执行文件;

根据所述目标可执行文件的类型和所述目标可执行文件执行时所述进程的调用行为标识,确定所述目标可执行文件的执行行为;

记录所述目标可执行文件的执行行为。

第二方面,提供了一种记录文件执行行为的装置,应用于运行第一操作系统的计算设备中,所述第一操作系统支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件,所述装置包括:

监控模块,用于监控指定函数;

第一确定模块,用于确定调用所述指定函数的进程;

第二确定模块,用于确定所述进程对应的目标可执行文件的类型,所述目标可执行文件的类型用于指示所述目标可执行文件是所述第一操作系统对应的可执行文件或所述第二操作系统对应的可执行文件;

第三确定模块,用于根据所述目标可执行文件的类型和所述目标可执行文件执行时所述进程的调用行为标识,确定所述目标可执行文件的执行行为;

记录模块,用于记录所述目标可执行文件的执行行为。

本发明实施例提供的技术方案可以包括以下有益效果:

通过监控指定函数,确定调用所述指定函数的进程,确定所述进程对应的可执行文件的类型,根据所述可执行文件的类型和调用行为标识确定所述可执行文件的执行行为,记录所述可执行文件的执行行为,即在支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件的第一操作系统中,只需要设置一套安全检测程序,该安全检测程序结合可执行文件的类型来确定并记录可执行文件的执行行为,以便进一步判断可执行文件的安全性,不需要分别设置针对不同类型可执行文件的程序代码,从而达到简化代码复杂度,降低维护成本和资源占用率的效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种记录文件执行行为的方法的流程图;

图2是根据一示例性实施例示出的另一种记录文件执行行为的方法的流程图;

图3是根据一示例性实施例示出的又一种记录文件执行行为的方法的流程图

图4是基于图3所示实施例示出的一种执行行为的参数的展示示意图;

图5根据一示例性实施例示出的一种的记录文件执行行为的装置的结构方框图;

图6根据一示例性实施例示出的另一种的记录文件执行行为的装置的结构方框图;

图7是根据一示例性实施例示出的一种设备的结构示意图;

图8是根据一示例性实施例示出的另一种设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

本发明可应用在运行第一操作系统的计算设备中,该计算设备可以是部署在网络云端的服务器、服务器群、云服务器,当该计算设备是部署在网络云端的设备时,本发明可应用于运行在云端的文件安全性检测系统中,用户可以通过上传可执行文件到云端进行检测,云端将检测日志或者报告显示给用户或者发送给用户;也可以是工作站、工程机、局域网主机;也可以是个人使用的PC(Personal Computer,个人电脑)、膝上型电脑、平板电脑;还可以是硬件条件支持的手机、车载电脑、可穿戴设备等计算设备,当该计算设备是用户使用的终端时,本发明可以是终端安装的安全检测系统。并且,此处展示的计算设备仅为示例性说明,不对能够应用本发明的其它计算设备形成排除性限定。凡可执行本发明提供的方案的计算设备,均在本发明的保护范围之内。

图1是根据一示例性实施例示出的一种记录文件执行行为的方法的流程图。该记录文件执行行为的方法应用于运行第一操作系统的计算设备中,该第一操作系统支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件。如图1所示,该记录文件执行行为的方法可以包括如下几个步骤:

步骤101,监控指定函数。

步骤102,确定调用该指定函数的进程。

步骤103,确定该进程对应的目标可执行文件的类型。

该目标可执行文件的类型用于指示该目标可执行文件是该第一操作系统对应的可执行文件或该第二操作系统对应的可执行文件。

步骤104,根据该目标可执行文件的类型和该目标可执行文件执行时该进程的调用行为标识,确定该目标可执行文件的执行行为。

步骤105,记录该目标可执行文件的执行行为。

综上所述,本发明实施例提供的一种记录文件执行行为的方法,通过监控指定函数,确定调用该指定函数的进程,确定该进程对应的可执行文件的类型,根据该可执行文件的类型和调用行为标识确定该可执行文件的执行行为,记录该可执行文件的执行行为,即在支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件的第一操作系统中,只需要设置一套安全检测程序,该安全检测程序结合可执行文件的类型来确定并记录可执行文件的执行行为,以便进一步判断可执行文件的安全性,不需要分别设置针对不同类型可执行文件的程序代码,从而达到简化代码复杂度,降低维护成本和资源占用率的效果。

图2是根据一示例性实施例示出的另一种记录文件执行行为的方法的流程图,该记录文件执行行为的方法应用于运行第一操作系统的计算设备中,该第一操作系统支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件,如图2所示,该记录文件执行行为的方法可以包括如下几个步骤:

步骤201,获取指定函数在第一操作系统的内核文件中的地址。

具体的,在本发明实施例中,可以采用逆向分析技术,分析出指定函数在第一操作系统的内核文件中的地址。

其中,该指定函数可以是第一操作系统对应的可执行文件和第二操作系统对应的可执行文件在执行时都可能调用的函数,该指定函数可以由开发人员预先设置。

可选的,该指定函数可以是第一操作系统的内核入口函数。例如,当第一操作系统是Windows系统,第二操作系统是Linux,且内核文件是ntoskrnl.exe时,指定函数可以是kisystemcall64函数。

步骤202,根据该指定函数在该第一操作系统的内核文件中的地址和该内核文件的加载地址,计算该指定函数在内存中的地址。

基于前述步骤中例子,当获取到指定函数kisystemcall64在内核文件ntoskrnl.exe中的位置后,结合内核文件ntoskrnl.exe在内存中的加载地址,按照预定的计算方法,即可得到指定函数kisystemcall64当前在内存中的地址。

获取到指定函数的当前的内存地址的目的在于对该指定函数进行监控,通过监控该指定函数,从而间接的得到想要得到的目标可执行文件的执行行为。

步骤203,通过该指定函数在内存中的地址对该指定函数进行挂钩监控。

在获得指定函数当前在内存中的地址后,即可找到该指定函数并对其进行相关设置。其中一种设置的方法是使用挂钩监控,挂钩监控(也称HOOK监控或钩子监控),该挂钩监控是Windows系统中消息处理机制的一个平台,通过挂钩监控,可以监视该指定函数的被调用的情况。

步骤204,确定调用该指定函数的进程。

当该指定函数被调用时,通过挂钩监控可以获取调用的信息,之后在获取到的调用信息中查询得到调用该指定函数的进程,确定该进程的名称及在内存中的地址等信息,以达到后续步骤获取到该进程,对该进程进行进一步的分析。

可选的,在Windows操作系统中运行可执行文件时,Windows操作系统将通过原生支持的bash(Bourne-Again Shell)系统来直接在Windows系统中运行Linux系统中的可执行文件。因此,在本实施例中,Linux系统对应的可执行文件可以直接在Windows系统环境中执行,不需要额外设置虚拟机来运行Linux系统。

在Windows系统中,Linux对应的可执行文件在执行时会产生一个宿主进程Pico Process,该宿主进程Pico Process是用于实现监控文件执行行为的一种容器(Container)。该宿主进程Pico Process的创建由PspCreatePicoProcess来进行监控的,而PspCreatePicoProcess是一个Windows系统的内核API。具体用于创建该宿主进程PicoProcess的函数是PsCreateMinimalProcess,该函数不仅用于创建该宿主进程PicoProcess,同时也确定了创建的该宿主进程Pico Process是一个精简进程。其中,PsCreateMinimalProcess在实现时会调用PspAllocateProcess函数,而PspAllocateProcess函数的功能是创建一个进程结构对象EPROCESS对象、创建进程的地址空间、创建PEB信息等。

在该宿主进程PicoProcess执行时,会使用一个Provider对象。该Provider对象由Windows内核文件ntoskrnl.exe导出的函数PsRegisterPicoProvider进行注册。在确定要执行Linux系统对应的可执行文件时,Windows系统会通过一个作为boot start driver(引导启动驱动)的驱动lxss.sys在初始化时调用另一个驱动lxcore.sys,之后该驱动lxcore.sys调用函数PsRegisterPicoProvider,注册出该Provider对象。当初始化过程结束后,Windows系统的内核文件ntoskrnl.exe会将函数PsRegisterPicoProvider的值设为True(真),借此禁止了对该函数PsRegisterPicoProvider的调用,使得当前Windows系统中只存在一个Provider对象。

另外,驱动Lxss.sys会通过函数PsRegisterPicoProvider向Windows系统的内核文件ntoskrnl.exe提供一组PICO操作接口,其中PICO操作接口用于处理Linux系统中的文字。在Windows系统的内核文件ntoskrnl.exe获得该PICO操作接口后,驱动Lxss.sys将获取Windows系统的调用分发、进线程退出、异常访问等消息,并且驱动Lxss.sys将获取Windows系统的内核文件ntoskrnl.exe的一组进线程操作接口,使驱动Lxss.sys能够进线程进行操作。

在该PICO操作接口(Interface)中,PicoSystemCallDispatch用于连接该宿主进程PicoProcess和Provider对象,使该宿主进程PicoProcess和Provider对象能够进行通信。可选的,在该宿主进程PicoProcess的一次系统调用中,当Windows系统中的ring3级别代码在进行sysenter(快速系统调用,使得ring3级别代码能够调用ring0级别代码)后,且当前thread->_DISPATCHER_HEADER中设置了Minimal标志位,则该指定函数(可以是KiSystemCall64)会调用nt!PsPicoSystemCallDispatch进行pico相关分发,不走原始的sdt分发表。另外,Lxcore!LxpSyscalls保存这个分发表的地址。本次该宿主进程PicoProcess的一次系统调用过程可参见下述过程:

步骤205,获取该进程中当前运行的线程对象体的flags标志位。

在该进程中可以运行有至少一个线程对象体,该至少一个线程对象体共同使用进程获取的内存资源和计算资源。在确定调用指定函数的该进程后,即可以确定该进程中的用于执行调用动作中的线程对象体,即获取当前运行的线程对象体的flags标志位。

步骤206,根据该线程对象体的flags标志位确定该进程对应的目标可执行文件的类型。

在获取到该线程对象体的flags标志位后,通过该线程对象体的flags标志位即可判断该进程对应的目标可执行文件的类型。此处目标可执行文件的类型为第一操作系统对应的可执行文件的类型或者第二操作系统对应的可执行文件的类型。

步骤207,根据该目标可执行文件的类型和该目标可执行文件执行时该进程的调用行为标识,确定该目标可执行文件的执行行为。

在该指定函数被调用时,可以通过调用的信息确定调用该指定函数的进程,进而获取该进程的调用行为标识。

比如,以可执行文件为Linux对应的可执行文件为例。在Windows系统中,通过挂钩监控指定函数,可以获得该Linux对应的可执行文件执行时,该可执行文件对应的进程调用的所用API(Application Programming Interface,应用程序编程接口)的信息,从中获取到该进程的调用行为标识。

该目标可执行文件执行时表现在该进程的调用,即获取该进程的调用行为标识,同时结合该目标可执行文件的类型可以获知该目标可执行文件进行了哪一种行为。例如对应于创建文件、删除文件及访问一个网站这三个行为,在Windows系统中的进程的调用行为标识是A1、A2和A3,在Linux系统中的进程的调用行为标识是B1、B2和B3,之后,根据该进程的调用行为标识能够唯一确定出该可执行文件的执行行为。

步骤208,记录该目标可执行文件的执行行为。

可以通过日志的形式记录该目标可执行文件的执行行为,该日志可以直接存储在该运行第一操作系统的计算设备上,该日志也可以不在该计算设备中存储,而是通过网络传输到专门存储该日志的存储设备中。

其中,将日志通过网络传输并存储到专用的存储设备中的方式,可以保护日志信息的安全,降低了存在危险的可执行文件篡改日志的风险。

本发明实施例上述方案以指定函数为KiSystemCall64函数为例进行说明,在实际应用中,监控的指定函数不仅限于KiSystemCall64,无论是监控PsPicoSystemCallDispatch,或者监控LxpSyscalls,还是监控其他的从pico process中ring3到内核逻辑实现之前的系统调用路径上的任何函数,都属于本方案的保护范围之内。

综上所述,本发明实施例提供的记录文件执行行为的方法,通过获取指定函数在该第一操作系统的内核文件中的地址,根据该指定函数在该第一操作系统的内核文件中的地址和该内核文件的加载地址,计算该指定函数在内存中的地址,通过该指定函数在内存中的地址对该指定函数进行挂钩监控,确定调用该指定函数的进程,获取该进程中当前运行的线程对象体的flags标志位,根据该线程对象体的flags标志位确定该进程对应的目标可执行文件的类型,根据该目标可执行文件的类型和该目标可执行文件执行时该进程的调用行为标识,确定该目标可执行文件的执行行为,记录该目标可执行文件的执行行为,即在支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件的第一操作系统中,只需要设置一套安全检测程序,该安全检测程序结合可执行文件的类型来确定并记录可执行文件的执行行为,以便进一步判断可执行文件的安全性,不需要分别设置针对不同类型可执行文件的程序代码,从而达到简化代码复杂度,降低维护成本和资源占用率的效果。

图3是根据一示例性实施例示出的又一种记录文件执行行为的方法的流程图,该记录文件执行行为的方法应用于运行第一操作系统的计算设备中,该第一操作系统支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件,如图3所示,该记录文件执行行为的方法可以包括如下几个步骤:

步骤301,获取指定函数在第一操作系统的内核文件中的地址。

可选的,该指定函数可以是第一操作系统的内核的入口函数。

步骤302,根据该指定函数在该第一操作系统的内核文件中的地址和该内核文件的加载地址,计算该指定函数在内存中的地址。

步骤303,通过该指定函数在内存中的地址对该指定函数进行挂钩监控。

步骤304,确定调用该指定函数的进程。

步骤305,获取该进程中当前运行的线程对象体的flags标志位。

步骤306,根据该线程对象体的flags标志位确定该进程对应的目标可执行文件的类型。

步骤307,根据该目标可执行文件的类型和该目标可执行文件执行时该进程的调用行为标识,确定该目标可执行文件的执行行为。

上述步骤301-步骤307执行的过程及其对应的具体执行方式可对应参照步骤201-步骤207中的内容,此处不再赘述。

步骤308,获取该可执行文件的执行行为包含的参数个数和参数类型。

其中该可执行文件的执行行为包括文件执行行为、网络执行行为、进程执行行为等各种可执行文件可以执行的执行行为。各种不同的执行行为对应的参数个数和参数类型是不同的。以执行行为是文件执行行为为例,其对应的参数的个数是3,参数类型分别是文件路径、打开类型和权限。

步骤309,根据该参数个数和该参数类型获取该执行行为对应的参数。

在确定了该执行行为的参数个数和参数类型后,从该执行行为对应的进程中获取各个参数。

例如,请参见图4,图4是基于图3所示实施例示出的一种执行行为的参数的展示示意图。图中示出了作为执行行为的类型41a、42a和43a,以及各个执行行为对应的行为详情41b、42b和43b。

步骤310,记录该执行行为对应的参数。

步骤311,获取该执行行为对应的规则库。

该规则库中包含参数模型与安全信息之间的对应关系,该安全信息用于指示可执行文件是否安全,该可执行文件用于执行对应参数模型的行为。

另外,该执行行为的规则库可以是使用大量的执行行为及其对应的参数,通过机器学习而生成的规则库。

步骤312,在该规则库中查找与该执行行为对应的参数相匹配的参数模型的安全信息。

在该执行行为的规则库中,首先查找该执行行为。查找到该执行行为后,再查找与该执行行为对应的参数相匹配的参数模型的安全信息,当该执行行为的各个参数均查找到各自相匹配的参数模型后,即可确定与该执行行为对应的参数相匹配的参数模型的安全信息,该安全信息用于指示该可执行文件是否安全。可选的,还可以指示一个安全分数或者安全等级,用以指示该可执行文件的安全程度。安全分数或者安全等级越高,该可执行文件的安全程度越高;安全分数或者安全等级越低,该可执行文件的安全程度越低。

步骤313,根据查找到的该安全信息,确定该可执行文件是否安全。

根据获取到的安全信息直接确定该可执行文件是否安全,或者,还可以将该安全信息作为评价的一个参数,结合系统中对该可执行文件的其它检测结果一同确定该可执行文件是否安全。该其它检测包括漏洞检测、病毒检测或木马检测等检测结果。

综上所述,本发明实施例提供的记录文件执行行为的方法,通过获取指定函数在该第一操作系统的内核文件中的地址,根据该指定函数在该第一操作系统的内核文件中的地址和该内核文件的加载地址,计算该指定函数在内存中的地址,通过该指定函数在内存中的地址对该指定函数进行挂钩监控,确定调用该指定函数的进程,获取该进程中当前运行的线程对象体的flags标志位,根据该线程对象体的flags标志位确定该进程对应的目标可执行文件的类型,根据该目标可执行文件的类型和该目标可执行文件执行时该进程的调用行为标识,确定该目标可执行文件的执行行为,获取该可执行文件的执行行为包含的参数个数和参数类型,根据该参数个数和该参数类型获取该执行行为对应的参数,记录该执行行为对应的参数,获取该执行行为的规则库,该执行行为的规则库包括该执行行为的参数模型和与该执行行为的参数模型对应的安全信息,该安全信息用于指示该可执行文件是否安全,即在支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件的第一操作系统中,只需要设置一套安全检测程序,该安全检测程序结合可执行文件的类型来确定并记录可执行文件的执行行为,以便进一步判断可执行文件的安全性,不需要分别设置针对不同类型可执行文件的程序代码,从而达到简化代码复杂度,降低维护成本和资源占用率的效果。

下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。

请参考图5,图5根据一示例性实施例示出的一种的记录文件执行行为的装置的结构方框图,该装置可以以硬件电路或者软硬件结合的方式应用于运行第一操作系统的计算设备中,该第一操作系统支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件。该记录文件执行行为的装置可以包括:监控模块501、第一确定模块502、第二确定模块503、第三确定模块504和记录模块505。

监控模块501,用于监控指定函数。

第一确定模块502,用于确定调用该指定函数的进程。

第二确定模块503,用于确定该进程对应的目标可执行文件的类型,该目标可执行文件的类型用于指示该目标可执行文件是该第一操作系统对应的可执行文件或该第二操作系统对应的可执行文件。

第三确定模块504,用于根据该目标可执行文件的类型和该目标可执行文件执行时该进程的调用行为标识,确定该目标可执行文件的执行行为。

记录模块505,用于记录该目标可执行文件的执行行为。

综上所述,本发明实施例提供的一种记录文件执行行为的装置,通过监控指定函数,确定调用该指定函数的进程,确定该进程对应的可执行文件的类型,根据该可执行文件的类型和调用行为标识确定该可执行文件的执行行为,记录该可执行文件的执行行为,即在支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件的第一操作系统中,只需要设置一套安全检测程序,该安全检测程序结合可执行文件的类型来确定并记录可执行文件的执行行为,以便进一步判断可执行文件的安全性,不需要分别设置针对不同类型可执行文件的程序代码,从而达到简化代码复杂度,降低维护成本和资源占用率的效果。

请参考图6,图6根据一示例性实施例示出的另一种的记录文件执行行为的装置的结构方框图,该装置可以以硬件电路或者软硬件结合的方式应用于运行第一操作系统的计算设备中,该第一操作系统支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件。该记录文件执行行为的装置可以包括:监控模块601、第一确定模块602、第二确定模块603、第三确定模块604和记录模块605。

监控模块601,用于监控指定函数。

第一确定模块602,用于确定调用该指定函数的进程。

第二确定模块603,用于确定该进程对应的目标可执行文件的类型,该目标可执行文件的类型用于指示该目标可执行文件是该第一操作系统对应的可执行文件或该第二操作系统对应的可执行文件。

第三确定模块604,用于根据该目标可执行文件的类型和该目标可执行文件执行时该进程的调用行为标识,确定该目标可执行文件的执行行为。

记录模块605,用于记录该目标可执行文件的执行行为。

在基于图6所示实施例提供的一个可选实施例中,该监控模块601,包括:获取单元601a、计算单元601b和监控单元601c。

第一获取单元601a,用于获取该指定函数在该第一操作系统的内核文件中的地址。

计算单元601b,用于根据该指定函数在该第一操作系统的内核文件中的地址和该内核文件的加载地址,计算该指定函数在内存中的地址。

监控单元601c,用于通过该指定函数在内存中的地址对该指定函数进行挂钩监控。

在基于图6所示实施例提供的另一个可选实施例中,该装置中的该指定函数是该第一操作系统的内核文件的入口函数。

在基于图6所示实施例提供的又一个可选实施例中,该第二确定模块603,包括:获取单元603a和确定单元603b。

第二获取单元603a,用于获取该进程中当前运行的线程对象体的flags标志位。

确定单元603b,用于根据该线程对象体的flags标志位确定该进程对应的目标可执行文件的类型。

在基于图6所示实施例提供的还一个可选实施例中,该记录模块605包括:第三获取单元605a、第四获取单元605b和记录单元605c。

第三获取单元605a,用于获取该可执行文件的执行行为包含的参数个数和参数类型。

第四获取单元605b,用于根据该参数个数和该参数类型获取该执行行为对应的参数。

记录单元605c,用于记录该执行行为对应的参数。

在基于图6所示实施例提供的一个可选实施例中,该装置还包括:获取模块606、查找模块607和第四确定模块608。

获取模块606,用于获取该执行行为对应的规则库,该规则库中包含参数模型与安全信息之间的对应关系,该安全信息用于指示执行对应参数模型的行为的可执行文件是否安全。

查找模块607,用于在该规则库中查找与该执行行为对应的参数相匹配的参数模型的安全信息。

第四确定模块608,用于根据查找到的该安全信息,确定该可执行文件是否安全。

在基于图6所示实施例提供的一个可选实施例中,在该装置中该第一操作系统是Windows操作系统,该第二操作系统是Linux操作系统。

综上所述,本发明实施例提供的记录文件执行行为的装置,通过获取指定函数在该第一操作系统的内核文件中的地址,根据该指定函数在该第一操作系统的内核文件中的地址和该内核文件的加载地址,计算该指定函数在内存中的地址,通过该指定函数在内存中的地址对该指定函数进行挂钩监控,确定调用该指定函数的进程,获取该进程中当前运行的线程对象体的flags标志位,根据该线程对象体的flags标志位确定该进程对应的目标可执行文件的类型,根据该目标可执行文件的类型和该目标可执行文件执行时该进程的调用行为标识,确定该目标可执行文件的执行行为,获取该可执行文件的执行行为包含的参数个数和参数类型,根据该参数个数和该参数类型获取该执行行为对应的参数,记录该执行行为对应的参数,获取该执行行为的规则库,该执行行为的规则库包括该执行行为的参数模型和与该执行行为的参数模型对应的安全信息,该安全信息用于指示该可执行文件是否安全,即在支持不依赖虚拟机而直接执行第二操作系统对应的可执行文件的第一操作系统中,只需要设置一套安全检测程序,该安全检测程序结合可执行文件的类型来确定并记录可执行文件的执行行为,以便进一步判断可执行文件的安全性,不需要分别设置针对不同类型可执行文件的程序代码,从而达到简化代码复杂度,降低维护成本和资源占用率的效果。

请参考图7,其示出了本发明一个实施例提供的设备700的结构示意图。该设备700可以是图1、图2或图3中运行第一操作系统的计算设备。具体来讲:

设备700可以包括RF(Radio Frequency,射频)电路710、包括有一个或一个以上计算机可读存储介质的存储器720、输入单元730、显示单元740、传感器750、音频电路760、WiFi(wireless fidelity,无线保真)模块770、包括有一个或者一个以上处理核心的处理器780、以及电源790等部件。本领域技术人员可以理解,图7中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

RF电路710可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器780处理;另外,将涉及上行的数据发送给基站。通常,RF电路710包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路710还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。存储器720可用于存储软件程序以及模块。处理器780通过运行存储在存储器720的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据设备700的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器720还可以包括存储器控制器,以提供处理器780和输入单元730对存储器720的访问。

输入单元730可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元730可包括触敏表面731以及其他输入设备732。触敏表面731,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面731上或在触敏表面731附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器780,并能接收处理器780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面731。除了触敏表面731,输入单元730还可以包括其他输入设备732。具体地,其他输入设备732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元740可用于显示由用户输入的信息或提供给用户的信息以及设备100的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元740可包括显示面板741,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板741。进一步的,触敏表面731可覆盖在显示面板741之上,当触敏表面731检测到在其上或附近的触摸操作后,传送给处理器780以确定触摸事件的类型,随后处理器780根据触摸事件的类型在显示面板741上提供相应的视觉输出。虽然在图7中,触敏表面731与显示面板741是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面731与显示面板741集成而实现输入和输出功能。

设备700还可包括至少一种传感器750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在设备700移动到耳边时,关闭显示面板741和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于设备700还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路760、扬声器721,传声器722可提供用户与设备700之间的音频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器721,由扬声器721转换为声音信号输出;另一方面,传声器722将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经RF电路710以发送给另一设备,或者将音频数据输出至存储器720以便进一步处理。音频电路760还可能包括耳塞插孔,以提供外设耳机与设备700的通信。

WiFi属于短距离无线传输技术,设备700通过WiFi模块770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了WiFi模块770,但是可以理解的是,其并不属于设备700的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器780是设备700的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行设备700的各种功能和处理数据,从而对设备进行整体监控。可选的,处理器780可包括一个或多个处理核心;可选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。

设备700还包括给各个部件供电的电源790(比如电池),优选的,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源790还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,设备700还可以包括摄像头、蓝牙模块等,在此不再赘述。

设备700还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,使得设备700能够实现上述图1至图3任一所示的记录文件执行行为的方法的全部或者部分步骤。

图8是根据一示例性实施例示出的另一种设备800的结构示意图。该服务器可以是运行第一操作系统的服务器。具体来讲:

服务器800包括中央处理单元(CPU)801、包括随机存取存储器(RAM)802和只读存储器(ROM)803的系统存储器804,以及连接系统存储器804和中央处理单元801的系统总线805。服务器800还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)806,和用于存储操作系统813、应用程序814和其他程序模块815的大容量存储设备807。

基本输入/输出系统806包括有用于显示信息的显示器808和用于用户输入信息的诸如鼠标、键盘之类的输入设备809。其中显示器808和输入设备809都通过连接到系统总线805的输入输出控制器810连接到中央处理单元801。基本输入/输出系统806还可以包括输入输出控制器810以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器810还提供输出到显示屏、打印机或其他类型的输出设备。

大容量存储设备807通过连接到系统总线805的大容量存储控制器(未示出)连接到中央处理单元801。大容量存储设备807及其相关联的计算机可读介质为服务器800提供非易失性存储。也就是说,大容量存储设备807可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。

不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备807可以统称为存储器。

根据本发明的各种实施例,服务器800还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器800可以通过连接在系统总线805上的网络接口单元811连接到网络812,或者说,也可以使用网络接口单元811来连接到其他类型的网络或远程计算机系统(未示出)。

上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行,以使得设备800实现上述图1至图3任一所示的记录文件执行行为的方法的全部或者部分步骤。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1