进程行为分析方法及系统的制作方法

文档序号:6399405阅读:166来源:国知局
专利名称:进程行为分析方法及系统的制作方法
技术领域
本发明涉及计算机安全技术,尤其涉及一种进程行为分析方法及系统。
背景技术
计算机安全已成为人们日益关注的问题,进程行为分析是重要的计算机安全监控技术之一,其通过对程序代码运行中的行为进行分析确定相应程序的行为目的,使得计算机安全技术人员可以根据这些行为目的确定采取相应的安全防范措施。现有技术中,进程行为分析一般采用对计算机的一个进程的行为进行分析,判断出该进程执行的程序代码的行为功能。例如目前很多恶意进程都具有将自身代码注入到正常进程中的行为,以达到隐藏运行的目的,这些恶意进程仅仅是一个注入代码,目前对其进行进程行为分析,是对其注入行为进程进行分析或者对恶意进程本身进行分析,因此可以获取这些恶意进程的注入行为或者恶意进程自身的行为目的。然而这种方法对其注入到正常进程后的行为等是分析不到的,使得计算机安全技术人员对恶意进程的行为无法达到全面了解,从而影响进程行为分析的质量效率。

发明内容
本发明提供一种进程行为分析方法及系统,用以对与一个进程相关的所有进程的行为进行全面地分析,提高进程行为分析的质量效率。本发明的第一个方面是提供一种进程行为分析方法,包括:获取对预设的敏感进程进行监控的监控记录数据;根据所述监控记录数据模拟重现监控过程中的句柄、进程和线程,获取分别与所述句柄、进程和线程对应的虚拟表项,所述虚拟表项记录敏感进程创建的句柄、进程和线程及对应的属性;设定敏感进程的相关进程,根据所述虚拟表项将相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。本发明的第二个方面是提供一种进程行为分析系统,包括:监控模块,用于获取对预设的敏感进程进行监控的监控记录数据;分析模块,用于根据所述监控记录数据模拟重现监控过程中的句柄、进程和线程,获取分别与所述句柄、进程和线程对应的虚拟表项,所述虚拟表项记录敏感进程创建的句柄、进程和线程及对应的属性;关联模块,用于设定敏感进程的相关进程,根据所述虚拟表项将相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。本发明通过根据监控记录数据模拟重现监控过程中的句柄、进程和线程,获取记录敏感进程创建的句柄、进程和线程及对应的属性的虚拟表项,再根据所述虚拟表项将设定的相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中,使得对敏感进程的行为分析的更加完整充分,保证了进程行为分析的质量效率。


图1为本发明进程行为分析方法实施例一的流程图;图2为图1中模拟重现监控过程中的句柄的原理图;图3为图1所示实施例中将相关进程的操作关联到敏感进程的原理图;图4为图1所示实施例的具体应用实例图;图5为本发明进程行为分析方法实施例二的流程图;图6为图5所示实施例中预定义的二进制文件结构示意图;图7为本发明进程行为分析系统实施例一的结构示意图;图8为本发明进程行为分析系统实施例二的结构示意图;图9为图8所示实施例的实际应用例的结构示意图。
具体实施例方式以下结合附图对本发明的实施例进行详细说明。图1为本发明进程行为分析方法实施例一的流程图,如图1所示,本实施例的方法包括:步骤101、获取对预设的敏感进程进行监控的监控记录数据。为对预设的敏感进程进行进程行为分析,首先要对敏感进程的进程行为进行监控,获取监控记录数据,以便于后续对进程行为分析时根据监控记录数据进行分析。本发明实施例中的敏感进程可以预设为与操作系统内的安全相关、系统关键数据操作相关的应用程序接口调用操作,当对敏感进程进行监控时,可以在对操作系统内的与安全相关、系统关键数据操作相关的应用程序接口(Application ProgrammingInterface,简称API)调用的头部和尾部设置监控断点;之后监控模块根据设置的监控断点触发监控,并将应用程序接口调用开始及返回处的参数值记录为监控记录数据,以作为后续分析模块进行进程行为分析时使用的原始数据,这里对进程行为的监控可以是现有的任一监控技术。步骤102、根据所述监控记录数据模拟重现监控过程中的句柄、进程和线程,获取分别与所述句柄、进程和线程对应的虚拟表项,所述虚拟表项记录敏感进程创建的句柄、进程和线程及对应的属性。当进程行为分析系统在上述步骤101获取监控记录数据后,按照时间顺序逐条对监控记录数据进行依次处理,即将监控记录数据中记录监控过程中的句柄、进程和线程等动态模拟重现,获取监控过程中的进程变化情况,从而得到进程行为分析中用到的句柄、进程和线程等所对应的具体对象,如操作对象、操作路径等相关联的属性,并将具体对象与句柄、进程和线程的对应关系存入相应的虚拟表项中,从而虚拟表项记录了敏感进程创建的句柄、进程和线程及对应的属性。图2为图1中模拟重现监控过程中的句柄的原理图,如图2所示,若真实系统中句柄操作为NtCreateFile, NtReadFile等,其对应的表项为图2中左边的句柄表,其对应着进程执行过程中各个句柄值对应的具体对象,由于监控模块在监控过程中记录的是NtCreateFile, NtReadFile等句柄操作函数及句柄值,但仅仅有这些参数操作并不能完整的解析出对象的完整属性,例如监控模块记录的一条数据为NtReadFile函数,但此函数中对分析有意义的是文件句柄参数,即NtReadFile函数,但是仅仅依靠文件句柄参数是不能分析出文件的路径的。本发明实施例中,分析模块根据这些句柄操作及句柄值可以模拟出对应的如图2中右边的虚拟句柄表,由于虚拟句柄表中记录了敏感进程创建的句柄、进程和线程及对应的属性,可以获取如对象路径等信息,从而使后续能够对与敏感进程相关的所有进程进行关联分析时,进程分析的结果更加详细可靠,保证了进程行为分析的质量效率。步骤103、设定敏感进程的相关进程,根据所述虚拟表项将相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。在动态模拟重现敏感进程创建的句柄、进程和线程及对应的属性后,本步骤采用进程关联方式将敏感进程的相关进程对应的句柄、进程和线程操作及相关属性都关联到当前敏感进程的进程行为分析中,从而保证了进程分析的完整性。具体应用中,对敏感进程进行进程分析时,可以根据分析需求设定敏感进程的相关进程,也可以根据设定的条件获取。例如可以根据应用程序接口调用函数及参数确定所述应用程序接口调用影响的进程是否为敏感进程的相关进程;若是,则以应用程序接口函数调用的标识号为关联点,根据虚拟表项将相关进程在所述关联点之后的所有句柄、进程和线程操作关联到敏感进程的进程行为分析结果中。具体来说,当应用程序接口调用函数及参数对应于创建进程操作、注入操作和本地进程调用时,可以将所述应用程序接口调用影响的进程设定为敏感进程的相关进程,如windows系统中,创建进程操作的应用程序接口调用包括:NtCreateProcess, NtCreateProcessEx, NtCreateUserProcess ;注入操作的应用程序接 口调用包括:NtUserSetWindowsHookEx, NtffriteVirtualMemory,NtCreateThread, NtCreateThreadEx, NtMapViewOfSection ;本地进程调用操作的应用程序接口调用包括:NtRequestWaitReplyPort, NtReplyWaitReceivePortEx。还可以直接将敏感进程进行的能够影响其他进程流程的操作,如创建子进程、注入进程、本地进程调用(localProcedure call,简称LPC)、远程COM调用和/或窗口消息操作的进程设定为敏感进程的相关进程。上述创建进程操作、注入操作和本地进程调用等当然也适用于其他操作系统,本发明对此不作限制。本实施例中通过API调用的参数来判断API影响的进程是否为被监控的敏感进程的相关进程,由于每一个API调用都对应唯一的ID,这个ID是按监控过程的函数调用依次递增的,当确定某个API调用影响的进程为相关进程时,将该API调用的ID作为关联点,并将相关进程在关联点之后的所有操作都关联到当前敏感进程的分析结果中。图3为图1所示实施例中将相关进程的操作关联到敏感进程的原理图,如图3所示,进程A为设定的恶意的敏感进程,进程B为正常进程,设进程B为进程A的相关进程,若在关联点,即在进程B的操作2之后,进程A对进程B进行了通信注入等操作,则进程A的操作会对正常进程B产生影响,现有技术中,由于进程B为正常进程,对进程A分析时是不对进程B进行分析的,因此,进程A对进程B产生了何种影响及注入进程A后,进程B发生了哪些变化,在进程A的进程行为分析中是得不到体现的,因此,这种进程分析方法存在不完善的地方,如图3所示,本发明实施例中在进程A的分析结果中包括了关联点之后的进程B的所有操作,从而根据这些操作及A进程的所有操作可以全面了解进程A的行为,这样就将恶意进程A所有的行为都完整的体现出来,保证了进程行为分析的完整性,使恶意进程的行为一目了然,大大提高了恶意软件分析技术人员的工作质量和效率。图4为图1所示实施例的具体应用实例图,如图4所示,当获取的监控记录数据存储于监控记录数据库中后,后续进程分析系统进行进程分析时,首先对系统进行初始化,初始化完成以后分析在数据库提取记录信息,并按时间排序,对每条记录进行依次处理,每条数据的处理是分为两层的,从上到下依次处理,即包括:第一层的句柄、进程、线程的重组,动态模拟系统表项;以及第二层的进程行为统计。在第一层分析模块根据数据库提供的监控数据来对监控过程中的句柄、进程、线程等虚拟表项来动态模拟回放监控过程中的变化情况,从而恢复第二层分析进程行为中的句柄、进程等所对应的具体的对象如路径等。本实施例通过动态模拟关键数据结构的管理机制来实现句柄等动态数据的还原,既记录与句柄管理相关的所有函数,包括添加、删除、复制等操作,又记录句柄和其相关联的属性,即按照这些函数记录的顺序来动态的模拟重现监控过程中真实系统对句柄表的管理,从而在后续对相关进程进行关联时,使用到此句柄的时候向模拟的虚拟句柄表进行查询即可,这种动态模拟方式同样适用于进程、线程等。本实施例通过根据监控记录数据模拟重现监控过程中的句柄、进程和线程,获取记录敏感进程创建的句柄、进程和线程及对应的属性的虚拟表项,再根据所述虚拟表项将设定的相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中,使得对敏感进程的行为分析的更加完整充分,保证了进程行为分析的质量效率。在实际应用中,进程分析过程比较耗时,而监控过程记录了大量数据,若不及时处理,将导致数据丢失或使虚拟机监控效率降低,因此,本发明还对监控过程中记录的数据进行了数据转换缓存,以便于后续使用时从转换缓存的数据库中获取。图5为本发明进程行为分析方法实施例二的流程图,图6为图5所示实施例中预定义的二进制文件结构示意图,如图5和图6所示,本实施例在上述图1所示实施例的基础上,进一步包括将监控记录中获取的数据进行缓存转换的过程,以提高虚拟机监控的效率。本实施例的方法包括:步骤201、获取对预设的敏感进程进行监控的监控记录数据。步骤202、将所述监控记录数据存入预定义的二进制文件中。步骤203、将所述二进制文件导入监控记录数据库中。操作系统的虚拟机监控中,由于存储记录数据中写数据库的操作比较耗时,本实施例中进一步将监控记录数据采集到自定义的二进制文件中,然后再将二进制文件记录的数据导入到数据库中,这样将虚拟机写数据的耗时转到后面耗时较长的进程分析上,大大提高了虚拟机的执行效率,同时也提高了用户接口的友好程度。当然记录文件也可以使用其他结构,图6仅为本发明实施例中使用的结构。步骤204、根据所述监控记录数据库中存储的二进制文件模拟重现监控过程中的句柄、进程和线程,获取分别与所述句柄、进程和线程对应的虚拟表项,所述虚拟表项记录敏感进程创建的句柄、进程和线程及对应的属性;步骤205、设定敏感进程的相关进程,根据所述虚拟表项将相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。本实施例在上述图1所示实施例达到的技术效果的基础上,进一步通过将所述监控记录数据存入预定义的二进制文件中,以及将所述二进制文件导入监控记录数据库中,使得监控记录过程中获取的数据能够及时地存储在数据库中,当后续使用时直接从数据库中获取即可,有利于提高虚拟机监控的效率,同时还有利于避免监控数据丢失。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。图7为本发明进程行为分析系统实施例一的结构示意图,如图7所示,本实施例的系统包括:监控模块10、分析模块20和关联模块30,其中,监控模块10,用于获取对预设的敏感进程进行监控的监控记录数据;分析模块20,用于根据所述监控记录数据模拟重现监控过程中的句柄、进程和线程,获取分别与所述句柄、进程和线程对应的虚拟表项,所述虚拟表项记录敏感进程创建的句柄、进程和线程及对应的属性;关联模块30,用于设定敏感进程的相关进程,根据所述虚拟表项将相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。本实施例中,监控模块10根据监控需求预设的敏感进程对敏感进程进行监控,并获取监控记录数据,分析模块20根据监控模块获取的监控记录数据动态模拟监控过程,获取监控过程相应的虚拟表项,从而恢复真实监控过程,关联模块30根据设定的相关进程及分析模块20获取的虚拟表项将相关进程的操作关联到敏感进程的进程行为分析结果中,从而保证了进程行为分析的完整性和有效性。所述敏感进程为与安全相关、系统关键数据操作相关的应用程序接口调用,实际应用中,监控模块10具体用于在对操作系统内的与安全相关、系统关键数据操作相关的应用程序接口调用的头部和尾部设置监控断点;以及根据设置的监控断点触发监控,并将应用程序接口调用开始及返回处的参数值记录为监控记录数据。在一种实现方式中,关联模块30可以包括确定单元和关联单元(未示出),确定单元,用于根据应用程序接口调用函数及参数确定所述应用程序接口调用影响的进程是否为敏感进程的相关进程;关联单元,用于以应用程序接口调用的标识号为关联点,根据虚拟表项将相关进程在所述关联点之后的所有句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。具体应用中,确定单元,可用于当应用程序接口调用的参数对应于创建进程操作、注入操作和本地进程调用时,将所述应用程序接口调用影响的进程确定为敏感进程的相关进程,如windows系统中,创建进程操作的应用程序接口调用包括:NtCreateProcess, NtCreateProcessEx, NtCreateUserProcess ;注入操作的应用程序接口调用包括:NtUserSetWindowsHookEx, NtffriteVirtualMemory, NtCreateThread,NtCreateThreadEx, NtMapViewOfSection ;本地进程调用操作的应用程序接口调用包括:NtRequestffaitReplyPort, NtRepIyffaitReceiVePortEx0 当然,上述创建进程操作、注入操作和本地进程调用等也适用于其他操作系统,本发明对此不作限制。在另一种实现方式中,关联模块30具体用于将敏感进程进行的创建子进程、注入进程、本地进程调用、远程COM调用和/或窗口消息操作的进程设定为敏感进程的相关进程,根据所述虚拟表项将相关进程对应的句柄、进程和线程操作及相关属性关联到敏感进程的进程行为分析结果中。
本实施例可用于执行上述图1所示方法实施例的操作,其工作原理及达到的技术效果类似,不再详细赘述。图8为本发明进程行为分析系统实施例二的结构示意图,如图8所示,在上述图7所示实施例的基础上,进一步还包括:转换模块40,用于将所述监控记录数据存入预定义的二进制文件中;以及将所述二进制文件导入监控记录数据库中;从而分析模块20,具体用于根据所述监控记录数据库中存储的二进制文件模拟重现监控过程中的句柄、进程和线程,获取分别与所述句柄、进程和线程对应的虚拟表项,所述虚拟表项记录敏感进程创建的句柄、进程和线程及对应的属性。本实施例在上述图7所示实施例达到的技术效果的基础上,进一步通过转换模块将监控获取的监控记录数据进行了转换缓存,保证了虚拟机的监控效率,避免了监控数据丢失。图9为图8所示实施例的实际应用例的结构示意图,如图9所示,监控模块获取监控记录数据后,将监控记录数据发送给转换模块并以二进制记录形式保存,之后再将该二进制记录转存入数据库中,当后续分析时,分析模块从数据库中获取相应的数据进行分析,获取分析结果。最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
权利要求
1.一种进程行为分析方法,其特征在于,包括: 获取对预设的敏感进程进行监控的监控记录数据; 根据所述监控记录数据模拟重现监控过程中的句柄、进程和线程,获取分别与所述句柄、进程和线程对应的虚拟表项,所述虚拟表项记录敏感进程创建的句柄、进程和线程及对应的属性; 设定敏感进程的相关进程,根据所述虚拟表项将相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。
2.根据权利要求1所述的方法,其特征在于,根据所述监控记录数据模拟重现监控过程中的句柄、进程和线程之前,还包括: 将所述监控记录数据存入预定义的二进制文件中; 将所述二进制文件导入监控记录数据库中; 相应地,根据所述监控记录数据模拟重现监控过程中的句柄、进程和线程,具体为: 根据所述监控记录数据库中存储的二进制文件模拟重现监控过程中的句柄、进程和线程。
3.根据权利要求1或2所述的方法,其特征在于,所述敏感进程为与安全相关、系统关键数据操作相关的应用程序接口调用, 相应地,获取对预设的敏 感进程进行监控的监控记录数据,包括: 在对操作系统内的与安全相关、系统关键数据操作相关的应用程序接口调用的头部和尾部设置监控断点; 根据设置的监控断点触发监控,并将应用程序接口调用开始及返回处的参数值记录为监控记录数据。
4.根据权利要求3所述的方法,其特征在于,设定敏感进程的相关进程,根据所述虚拟表项将相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中,包括: 根据应用程序接口调用函数及参数确定所述应用程序接口调用影响的进程是否为敏感进程的相关进程; 若是,则以应用程序接口调用的标识号为关联点,根据虚拟表项将相关进程在所述关联点之后的所有句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。
5.根据权利要求4所述的方法,其特征在于,当应用程序接口调用函数及参数对应于创建进程操作、注入操作和本地进程调用时,将所述应用程序接口调用影响的进程设定为敏感进程的相关进程。
6.根据权利要求1或2所述的方法,其特征在于,设定敏感进程的相关进程包括: 将敏感进程进行的创建子进程、注入进程、本地进程调用、远程COM调用和/或窗口消息操作的进程设定为敏感进程的相关进程。
7.—种进程行为分析系统,其特征在于,包括: 监控模块,用于获取对预设的敏感进程进行监控的监控记录数据; 分析模块,用于根据所述监控记录数据模拟重现监控过程中的句柄、进程和线程,获取分别与所述句柄、进程和线程对应的虚拟表项,所述虚拟表项记录敏感进程创建的句柄、进程和线程及对应的属性; 关联模块,用于设定敏感进程的相关进程,根据所述虚拟表项将相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。
8.根据权利要求7所述的系统,其特征在于,还包括: 转换模块,用于将所述监控记录数据存入预定义的二进制文件中;以及将所述二进制文件导入监控记录数据库中; 所述分析模块,具体用于根据所述监控记录数据库中存储的二进制文件模拟重现监控过程中的句柄、进程和线程,获取分别与所述句柄、进程和线程对应的虚拟表项,所述虚拟表项记录敏感进程创建的句柄、进程和线程及对应的属性。
9.根据权利要求7或8所述的系统,其特征在于,所述敏感进程为与安全相关、系统关键数据操作相关的应用程序接口调用, 所述监控模块,具体用于在对操作系统内的与安全相关、系统关键数据操作相关的应用程序接口调用的头部和尾部设置监控断点;以及根据设置的监控断点触发监控,并将应用程序接口调用开始及返回处的参数值记录为监控记录数据。
10.根据权利要求9所述的系统,其特征在于,所述关联模块包括: 确定单元,用于根据应用程序接口调用的参数确定所述应用程序接口调用影响的进程是否为敏感进程的相关进程; 关联单元,用于以应用程序接口调用的标识号为关联点,根据虚拟表项将相关进程在所述关联点之后的所有句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。
11.根据权利要求10所述的系统,其特征在于,所述确定单元,具体用于当应用程序接口调用函数及参数对应 于创建进程操作、注入操作和本地进程调用时,将所述应用程序接口调用影响的进程确定为敏感进程的相关进程。
12.根据权利要求7或8所述的系统,其特征在于,所述关联模块,具体用于将敏感进程进行的创建子进程、注入进程、本地进程调用、远程COM调用和/或窗口消息操作的进程设定为敏感进程的相关进程,根据所述虚拟表项将相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。
全文摘要
本发明公开了一种进程行为分析方法及系统,其中进程行为分析方法,包括获取对预设的敏感进程进行监控的监控记录数据;根据所述监控记录数据模拟重现监控过程中的句柄、进程和线程,获取分别与所述句柄、进程和线程对应的虚拟表项,所述虚拟表项记录敏感进程创建的句柄、进程和线程及对应的属性;设定敏感进程的相关进程,根据所述虚拟表项将相关进程对应的句柄、进程和线程操作及对应的属性关联到敏感进程的进程行为分析结果中。本发明对与一个进程相关的所有进程的行为进行全面地分析,提高进程行为分析的质量效率。
文档编号G06F21/50GK103164649SQ201310052560
公开日2013年6月19日 申请日期2013年2月18日 优先权日2013年2月18日
发明者刘业欣, 曲富平, 邱鹏 申请人:北京神州绿盟信息安全科技股份有限公司, 北京神州绿盟科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1