一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

异常行为检测的方法、装置、计算设备和存储介质与流程

2022-02-20 04:50:18 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别涉及一种异常行为检测的方法、装置、计算设备和存储介质。


背景技术:

2.随着互联网应用和技术发展,针对计算机的攻击方式越发隐蔽、多样和智能,攻击者入侵成功后可以利用计算机资源进行数据窃取、实现僵尸网络等恶意活动,所以计算机安全防护需要同时具备实时性和准确性,因此如何快速有效地识别异常行为是目前亟待解决的安全问题。
3.相关技术中,检测异常行为主要是基于特征规则匹配。具体的,用户创建特征规则库,特征规则库包括存在异常行为时日志文件的特征(如进程标识、脚本名称等),在主机生成进程日志后,用户比对每条进程日志与特征库的特征,若进程日志中的特征存在于特征库中,则用户确定存在异常行为。
4.在相关技术中,使用特征规则库的检测方法,不但需要用户预先创建特征规则库,而且需要用户浏览每条进程日志,确定异常行为花费的时间比较多,所以需要提供一种高效检测异常行为的方法。


技术实现要素:

5.本技术提供了一种异常行为检测的方法、装置及计算设备,用以高效的检测异常行为。
6.第一方面,本技术提供了一种异常行为检测的方法,该方法包括:获取计算设备的进程日志;提取进程日志的进程执行序列,其中,进行执行序列用于反映进程执行顺序;根据进程执行序列和计算设备的正常行为对应的进程执行转移信息,判断计算设备中的异常行为。
7.本技术所示的方案,该方法可以由异常检测装置执行,异常检测装置可以获取计算设备的进程日志,提取每条进程日志的进程执行序列。然后异常检测装置获取正常行为对应的进程执行转移信息,异常检测装置根据进程执行序列和该进程执行转移信息,判断计算设备中是否存在异常行为。这样,由于可以使用进程执行转移信息,自动判断计算设备中是否存在异常行为,所以可以高效的检测异常行为。
8.在一种可能的实现方式中,提取进程日志的进程执行序列,包括:根据进程日志的标识和时间信息,提取进程日志中的进程执行序列。这样,可以准确的提取到进程执行序列。
9.在一种可能的实现方式中,该方法还包括:提取进程日志的进程调用关系;根据进程执行序列和计算设备的正常行为对应的进程执行转移信息,判断计算设备中的异常行为,包括:根据正常行为对应的进程执行转移信息和进程执行序列,确定计算设备中的异常行为的第一检测结果;根据正常行为对应的进程调用关系和进程日志的进程调用关系,确
定计算设备中的异常行为的第二检测结果;根据第一检测结果和第二检测结果,判断计算设备中的异常行为。
10.本技术所示的方案,异常检测装置可以在每条进程日志中,提取每条进程日志的进程调用关系。异常检测装置根据正常行为对应的进程执行转移信息和进程执行序列,确定计算设备中的异常行为的第一检测结果,并且可以根据正常行为对应的进程调用关系,确定计算设备中的异常行为的第二检测结果。然后异常检测装置对第一检测结果和第二检测结果进行加权处理,基于加权处理的结果,判断计算设备中是否存在异常行为。这样,由于还结合了进程调用关系,所以可以更准确的判断计算设备中是否存在异常行为。
11.在一种可能的实现方式中,该方法还包括:提取进程日志的进程标识和脚本名;根据进程执行序列和计算设备的正常行为对应的进程执行转移信息,判断计算设备中的异常行为,包括:根据正常行为对应的进程执行转移信息和进程执行序列,确定计算设备中的异常行为的第一检测结果;根据正常行为对应的重构进程标识和脚本名的策略和进程日志的进程标识和脚本名,确定计算设备中的异常行为的第三检测结果;根据第一检测结果和第三检测结果,判断计算设备中的异常行为。
12.本技术所示的方案,异常检测装置可以在每条进程日志中,提取每条进程日志的进程标识和脚本名。异常检测装置根据正常行为对应的进程执行转移信息和进程执行序列,确定计算设备中的异常行为的第一检测结果,并且可以根据正常行为对应的重构进程标识和脚本名的策略和进程日志的进程标识和脚本名,确定计算设备中的异常行为的第三检测结果。异常检测装置对第一检测结果和第三检测结果进行加权处理,基于加权处理的结果,判断计算设备中是否存在异常行为。这样,由于还结合了进程标识和脚本名,所以可以更准确的判断计算设备中是否存在异常行为。
13.在一种可能的实现方式中,该方法还包括:提取进程日志的进程调用关系、进程标识和脚本名;根据进程执行序列和计算设备的正常行为对应的进程执行转移信息,判断计算设备中的异常行为,包括:根据正常行为对应的进程执行转移信息和进程执行序列,确定计算设备中的异常行为的第一检测结果;根据正常行为对应的进程调用关系和进程日志的进程调用关系,确定计算设备中的异常行为的第二检测结果;根据正常行为对应的重构进程标识和脚本名的策略和进程日志的进程标识和脚本名,确定计算设备中的异常行为的第三检测结果;根据第一检测结果、第二检测结果和第三检测结果,判断计算设备中的异常行为。这样,由于还结合了进程调用关系、进程标识和脚本名,所以可以更准确的判断计算设备中是否存在异常行为。
14.在一种可能的实现方式中,根据正常行为对应的进程执行转移信息和进程执行序列,确定计算设备中的异常行为的第一检测结果,包括:根据正常行为对应的进程执行转移信息中的隐马尔可夫模型(hidden markov model,hmm)参数,确定进程执行序列对应的进程执行转移概率;若进程执行转移概率大于或等于转移阈值,则确定计算设备中的异常行为的第一检测结果为存在异常行为。
15.本技术所示的方案,进程执行转移信息包括hmm参数,异常检测装置可以根据该hmm参数和进程日志的每条进程执行序列,确定每条进程执行序列对应的进程执行转移概率。异常检测装置判断每条进程执行序列的进程执行转移概率与转移阈值的大小关系,若至少一条进程执行序列的进程执行转移概率大于或等于转移阈值,则可以确定计算设备中
的第一检测结果为存在异常行为。这样,可以准确的确定出第一检测结果。
16.在一种可能的实现方式中,根据正常行为对应的进程调用关系和进程日志的进程调用关系,确定计算设备中的异常行为的第二检测结果,包括:若进程日志中的最后一个进程调用关系未存在于正常行为对应的进程调用关系中,则确定计算设备中的异常行为的第二检测结果为存在异常行为。这样,可以准确的确定出第二检测结果。
17.在一种可能的实现方式中,该方法还包括:提取正常行为对应的每条进程日志中的父进程和子进程对;根据正常行为对应的父进程的相似度,将正常行为对应的父进程划分为多个父进程组;根据多个父进程组的聚类结果、多个父进程组中每个父进程包括的子进程,确定正常行为对应的进程调用关系。
18.本技术所示的方案,异常检测装置可以提取正常行为对应的父进程和子进程对,在一个父进程和子进程对中包括一个父进程和一个子进程。异常检测装置可以确定父进程的相似度,根据父进程之间的相似度,将父进程划分成父进程组。然后异常检测装置将多个父进程组进行聚类,获得父进程组的聚类结果。异常检测装置确定同属于一个聚类结果的父进程组中的父进程对应的子进程。异常检测装置根据父进程组的聚类结果、同属于一个聚类结果的父进程组中的父进程、以及对应的子进程,确定进程调用关系。这样,可以准确的提取到进程调用关系。
19.在一种可能的实现方式中,根据正常行为对应的重构进程标识和脚本名的策略和进程日志的进程标识和脚本名,确定计算设备中的异常行为的第三检测结果,包括:根据策略中的进程标识的重构模型,对进程日志的最后一个进程标识进行重构处理,获得最后一个进程标识的重构结果,并且根据策略中的脚本名的重构模型,对进程日志的最后一个脚本名进行重构处理,获得最后一个脚本名的重构结果;根据最后一个进程标识的重构结果,确定最后一个进程标识的重构均方误差,并且根据最后一个脚本名的重构结果,确定最后一个脚本名的重构均方误差;若最后一个进程标识的重构均方误差大于策略中的进程标识的重构误差阈值,和/或最后一个脚本名的重构均方误差大于策略中的脚本名的重构误差阈值,则确定计算设备中的异常行为的第三检测结果为存在异常行为。
20.本技术所示的方案,异常检测装置可以分别基于进程标识的重构模型和脚本名的重构模型,对进程日志的最后一个进程标识和最后一个脚本名进行重构处理,获得最后一个进程标识的重构结果和最后一个脚本名的重构结果。异常检测装置使用最后一个进程标识的重构结果、进程标识,确定出最后一个进程标识的重构均方误差。异常检测装置使用最后一个脚本名的重构结果、脚本名,确定出最后一个脚本名的重构均方误差。异常检测装置判断最后一个进程标识的重构均方误差与进程标识的重构误差阈值的大小关系,并且判断最后一个脚本名的重构均方误差与脚本名的重构误差阈值的大小关系,若最后一个进程标识的重构均方误差大于进程标识的重构误差阈值,和/或最后一个脚本名的重构均方误差大于脚本名的重构误差阈值,则可以确定计算设备中的异常行为的第三检测结果为存在异常行为。这样,可以准确的确定计算设备中的异常行为的第三检测结果。
21.在一种可能的实现方式中,该方法还包括:提取正常行为对应的进程日志中的进程标识和脚本名;分别对正常行为对应的进程日志中的进程标识和脚本名,进行无监督训练,获得进程标识的重构模型和脚本名的重构模型;根据正常行为对应的进程日志中的进程标识的重构均方误差和脚本名的重构均方误差,分别确定进程标识的重构误差阈值和脚
本名的重构误差阈值;将进程标识的重构模型、脚本名的重构模型、进程标识的重构误差阈值和脚本名的重构误差阈值,确定为重构进程标识和脚本名的策略。这样可以获取到重构进程标识和脚本名的策略。
22.在一种可能的实现方式中,该方法还包括:将计算设备中的异常行为提供给管理设备;从管理设备获取计算设备中的异常行为中被标注为正常的异常行为;根据异常行为中被标注为正常的异常行为,对正常行为对应的进程执行转移信息、进程调用关系或重构进程标识和脚本名的策略的一种或多种进行更新处理。
23.本技术所示的方案,异常检测装置在确定出计算设备中的异常行为之后,可以将该异常行为提供给管理设备。用户可以通过管理设备对异常行为进行标注(标注是不是异常行为)。管理设备可以将用户标注为正常的异常行为,提供给异常检测装置。异常检测装置可以使用用户标注为正常的异常行为,对正常行为对应的进程执行转移信息、进程调用关系或重构进程标识和脚本名的策略的一种或多种进行更新处理。这样,由于可以使用正常的异常行为,反向更新正常行为对应的进程执行转移信息、进程调用关系或重构进程标识和脚本名的策略的一种或多种进行更新处理,所以可以自适应当前的场景,更准确的判断计算设备中是否存在异常行为。
24.在一种可能的实现方式中,将计算设备中的异常行为提供给管理设备之前,还包括:基于主动学习算法,对计算设备中的异常行为进行过滤;将计算设备中的异常行为提供给管理设备,包括:将过滤处理后的计算设备中的异常行为,提供给管理设备。
25.本技术所示的方案,异常检测装置将计算设备的异常行为提供给管理设备之前,异常检测装置可以基于主动学习算法,对计算设备中的异常行为进行过滤。然后异常检测装置将过滤处理后的异常行为提供给管理设备。这样,由于异常行为已经进行过滤,所以用户可以仅标注确认少许的异常行为,提升标注确认的效率。
26.第二方面,本技术提供了一种异常行为检测的装置,该装置包括多个模块,多个模块用于实现上述提到的异常行为检测方法。
27.第三方面,本技术提供了一种异常行为检测的计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以使所述计算设备实现第一方面及其可能的实现方式的方法。
28.第四方面,本技术提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令指示计算设备执行第一方面及其可能的实现方式的方法,或者指示计算设备实现上述第二方面及其可能的实现方式的装置的功能。
29.第五方面,本技术提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第一方面及其可能的实现方式的方法,或者使得计算设备实现上述第二方面及其可能的实现方式的装置的功能。
附图说明
30.图1是本技术一个示例性实施例提供的计算设备的结构示意图;
31.图2是本技术一个示例性实施例提供的异常行为检测的场景示意图;
32.图3是本技术一个示例性实施例提供的异常行为检测的方法的流程示意图;
33.图4是本技术一个示例性实施例提供的异常行为检测的方法的流程示意图;
34.图5是本技术一个示例性实施例提供的异常行为检测的方法的流程示意图;
35.图6是本技术一个示例性实施例提供的异常行为检测的装置的结构示意图;
36.图7是本技术一个示例性实施例提供的异常行为检测的装置的结构示意图。
具体实施方式
37.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
38.为了便于对本技术实施例的理解,下面首先介绍本技术实施例所涉及到的名词的概念:
39.1、进程日志,计算设备在进程的运行过程中,产生的日志记录。具体的,在执行一个完整命令时,可以产生的多条进程日志。例如,命令为“扫描”命令时,该“扫描”命令被执行时,运行了4个进程a、b、c、d,可以产生4条进程日志,即运行a时的进程日志、运行b时的进程日志、运行c时的进程日志以及运行d时的进程日志,其中,运行a时的进程日志中会包括a的运行信息,运行b时的进程日志中会包括a的运行信息和b的运行信息,运行c时的进程日志中会包括a的运行信息、b的运行信息和c的运行信息,运行d时的进程日志中会包括a的运行信息、b的运行信息、c的运行信息和d的运行信息。
40.2、无监督学习,样本数据集没有被标注,需要根据样本数据集中样本数据间的相似性对样本数据集中的样本数据进行分类,试图使类内差距最小化,类间差距最大化。
41.3、增量学习,每当新增数据时,基于新增的数据,对已有的模型进行更新的处理。
42.随着互联网应用和技术发展,针对计算机的攻击方式越发隐蔽、多样和智能,攻击者入侵成功后可以利用计算机资源进行数据窃取、实现僵尸网络等恶意活动,所以计算机安全防护需要同时具备实时性和准确性,因此如何快速有效地识别异常行为是目前亟待解决的安全问题。基于此,本技术提供了一种异常行为检测的方法,以检测计算设备中的异常行为。
43.异常行为检测的方法的执行主体可以是异常行为检测的装置(简称为异常检测装置)。异常检测装置既可以是一个硬件装置,如服务器、终端计算设备等,也可以是一个软件装置(如可以为运行在硬件装置上的一套软件程序)。示例性的,异常检测装置可以运行在云计算设备系统(可以包括至少一个云计算设备,如服务器等),也可以运行在边缘计算设备系统(可以包括至少一个边缘计算设备,如服务器、台式电脑等),还可以运行在各种终端计算设备上(如笔记本电脑、个人台式电脑等)。
44.异常检测装置在逻辑上也可以是由各个部分构成的装置,如异常检测装置可以包括获取模块、提取模块和确定模块。异常检测装置中的各个组成部分可以分别部署在不同的系统或者服务器中。异常检测装置的各个部分可以分别运行在云计算设备系统、边缘计算设备系统、终端计算设备中的任意两个中。云计算设备系统、边缘计算设备系统和终端计算设备之间由通信通路连接,可以互相进行通信和数据传输。
45.本技术实施例中还提供了一种异常行为检测的计算设备。图1示例性的提供了计算设备100的一种可能的架构图。
46.计算设备100包括存储器101、处理器102、通信接口103以及总线104。其中,存储器101、处理器102、通信接口103通过总线104实现彼此之间的通信连接。
47.存储器101可以是rom,静态存储设备,动态存储设备或者ram。存储器101可以存储程序,当存储器101中存储的程序被处理器102执行时,处理器102和通信接口103用于执行异常行为检测的方法。存储器101还可以正常行为对应的进程执行转移信息等。
48.处理器102可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路。
49.处理器102还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的异常行为检测的装置的部分或全部功能可以通过处理器102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器102还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术上述实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器102读取存储器101中的信息,结合其硬件完成本技术实施例的异常检测装置的部分功能。
50.通信接口103使用例如但不限于收发器一类的收发模块,来实现计算设备100与其他设备或通信网络之间的通信。例如,可以通过通信接口103获取进程日志等。
51.总线104可包括在计算设备100各个部件(例如,存储器101、处理器102、通信接口103)之间传送信息的通路。
52.上述异常行为检测的方法可以应用于多种应用场景,如下给出几种可能的应用场景:
53.场景一:异常行为检测的方法应用于个人计算设备(可以简称为计算设备)的异常行为检测。在场景一中,计算设备中部署异常行为检测系统,可以单独部署,也可以与杀毒软件并行使用,作为计算设备被异常入侵后的一道安全屏障,实时监控计算设备是否存在异常行为。在场景一中,上述的异常检测装置可以为计算设备或者异常行为检测系统。
54.场景二,异常行为检测的方法应用于企业内部对各办公的计算设备进行异常行为检测。具体的,可以与场景一中类似,每台计算设备上部署异常行为检测系统,也可以是所有计算设备共同对应有一个异常行为检测设备,该异常行为检测设备收集每台计算设备上的进程日志,确定各计算设备上是否存在异常行为。在场景二中,上述的异常检测装置可以为办公的计算设备,或者异常行为检测设备等。
55.场景三,异常行为检测的方法应用于企业对运行服务的业务计算设备进行异常行为检测。具体的,可以与场景一中类似,每台业务计算设备上部署异常行为检测系统,也可以是所有业务计算设备共同对应有一个异常行为检测设备,该异常行为检测设备收集每台业务计算设备上的进程日志,确定各业务计算设备上是否存在异常行为。在场景三中,上述的异常检测装置可以为业务计算设备,或者异常行为检测设备等。
56.场景四,异常行为检测的方法应用于云服务商对租户云服务器(可以认为是计算
设备)进行异常行为检测。具体的,所有租户云服务器共同对应有一个异常行为检测设备,该异常行为检测设备收集所有租户云服务器上的进程日志,确定各租户云服务器上是否存在异常行为。在场景四中,上述的异常检测装置可以为异常行为检测设备等。在场景四中,异常行为检测设备从租户云服务器上获取的进程日志是经过授权可以获取的进程日志。在场景四中,异常行为检测设备检测租户云服务器上的异常行为,可以提升租户云服务器的安全性,以及保证服务可用的同时监管租户是否存在违规操作。
57.在上述场景二至场景四中,异常行为检测设备收集所有计算设备的进程日志,可以是通过探针采集计算设备的进程日志。如图2所示,对应场景二和场景三,还提供了应用场景示意图。另外,在上述场景二至场景四中,在异常行为检测设备所负责监控的计算设备比较多时,可以部署多个异常行为检测设备,分别监控不同的检测设备。
58.对应于场景一,在提供异常行为检测的流程之前,首先描述计算设备的正常行为的相关内容,该相关内容包括正常行为对应的进程执行转移信息、正常行为对应的进程调用关系或正常行为对应的重构进程标识和脚本名的策略中的一种或多种。
59.异常检测装置可以获取计算设备预设时长内的进程日志(由于计算设备上的行为一般是正常行为,所以获取到的进程日志大部分为正常行为对应的进程日志),该预设时长可以为10天、30天等任意的一段时长。异常检测装置对进程日志进行数据预处理,过滤掉无关内容,该无关内容包括进程版本号等。
60.异常检测装置可以提取每条进程日志中进程标识和运行时间,使用进程标识和运行时间,确定出每条进程日志的父进程和子进程对,并且确定出进程执行序列。具体的,运行时间相邻的两个进程组成一个父进程和子进程对,且运行时间在前的进程为父进程,运行时间在后的进程为子进程。在一条进程日志中,按照运行时间的先后顺序,将进程进行排序,即获得该条进程日志的进程执行序列。
61.另外,为了规避常见进程和批量进程对确定计算设备的正常行为的相关内容可能产生的干扰,将bash、java、python、perl等脚本执行类进程的脚本名分别使用一个脚本名进行替换(如某个进程对应多个不同样式的脚本名,为了降低不同样式的脚本名对确定正常行为的相关内容的影响,将该进程的多个不同样式的脚本名对应为一个脚本名),并去掉进程路径中的数字和批量字符(如版本号、时间戳等)。
62.具体的,1、确定正常行为对应的进程调用关系的过程如下:
63.异常检测装置获取到每条进程日志中的父进程和子进程对后,可以对所有的父进程进行相似分析,将父进程划分为多个父进程组。然后异常检测装置对多个父进程组进行聚类处理,获得多个父进程组的聚类结果。异常检测装置将聚为一类的父进程组和该聚为一类的父进程组中父进程的子进程相对应,获得父进程聚类集合和子进程集合的对应关系,父进程聚类集合和子进程集合的对应关系,即构成了正常行为对应的进程调用关系。进程调用关系可以表示为{pp1,pp2,

,ppn}:{cp1,cp2,

,cpn}、、、,其中{pp1,pp2,

,ppn}表示一个父进程聚类集合,{cp1,cp2,

,cpn}表示{pp1,pp2,

,ppn}对应的子进程集合,ppi为父进程,cpi为子进程。
64.具体的,异常检测装置对所有的父进程进行相似分析时,可以采用编辑距离和/或最长公共子序列(the longest common subsequence,lcs),计算所有父进程的进程标识的字符串的相似度,将父进程的进程标识的字符串的相似度高于预设数值的父进程构成一个
父进程组。其中,字符串a和字符串b编辑距离指字符串a转换为字符串b所需要的最小操作次数,最小操作次数越小,说明字符串a和字符串b的相似度越高。字符串a和字符串b的lcs指出现在字符串a和字符串b中,且出现的顺序相同,但是不要求在字符串a和字符串b中连续的最长字符串s,字符串s的长度越大,说明字符串a与字符串b的相似度越高。在同时采用编辑距离和lcs时,可以采用加权的方式,确定字符串相似度。
65.具体的,异常检测装置对父进程组进行聚类处理,可以采用k均值(k-means)聚类算法,聚类结果中的父进程聚类集合数目可以为所有父进程数目的十分之一。异常检测装置将父进程组表示为特征向量,对于一个父进程组,该父进程组的特征向量的维度为m维,且每一维度表示一个子进程,m指的是正常行为对应的子进程的数目,该父进程组的特征向量的表示方式为:若该父进程组中对应某个子进程,则该子进程对应的位置表示为1,否则表示为0。例如,正常行为对应的子进程的数目为100,对于一个父进程组,该父进程组中包括10个子进程,那么该父进程组的特征向量中这10个子进程对应的位置处取值为1,且这10个子进程位置为第2至第11维,其余位置处取值为0,特征向量可以表示为{0,1,1,1,1,1,1,1,1,1,1,0,0,

,0}。
66.上述异常检测装置对父进程组的特征向量进行聚类的过程采用k-means聚类算法,当然也可以采用其他聚类算法,如密度聚类算法等,本技术实施例不做限定。
67.2、确定正常行为对应的进程执行转移信息的过程如下:
68.异常检测装置获取到每条进程日志的进程执行序列后,将每个进程执行序列中每个进程转换为预设数目(预设数目可以预设,如可以为10等)维特征向量v,预设数目维特征分别表示不同的含义,那么每条进程执行序列转换为向量序列o={v1,v2,

,vn},n表示进程执行序列中包括的进程的数目。这样,正常行为的进程执行序列的集合表示为o
set
={o1,o2,

,oi,

,o
t
},其中,oi表示正常行为对应的进程日志中的第i条进程执行序列,oi={v1,v2,

,vn},t表示正常行为对应的进程执行序列的数目。异常检测装置利用基于期望最大化算法(expectation maximization algorithm,em)的鲍姆-韦尔奇(baum-welch)算法,求解hmm参数λ=(a,b,∏),其中a为状态转移概率矩阵,b为观测状态概率矩阵,∏为初始状态概率分布。计算时异常检测装置先将o
set
中所有向量序列合并成一条观测序列o
train
={v
11
,v
12
,

,v
tn-1
,v
tn
},v
11
表示第条进程执行序列的第一个进程的特征,v
tn
表示第t条进程执行序列的第n个进程的特征。
69.异常检测装置将hmm参数确定为正常行为对应的进程执行转移信息。
70.可选的,上述预设数目取值可以为10,如表一所示,列出了预设数目维度的特征的含义和格式(在表一中序号表示特征的排序):
71.表一
[0072][0073]
在表一中,对于一个进程,该进程路径指进程实际存储路径,也可以认为是进程的目录,目录指进程的存储目录。进程路径目录层数指的是进程的存储目录中从根目录至最后的子目录的层数。进程路径总字符串长度指的是进程的存储目录中所有目录的字符数目之和。最长目录名长度指的是进程的存储目录中最长目录的字符数目,最小目标名长度指的是进程的存储目录中最短目录的字符数目。进程路径中特殊符号占比指的是进程的存储目录中特殊符号占总字符数目的比例。
[0074]
3、确定重构进程标识和脚本名的策略的过程如下:
[0075]
异常检测装置在正常行为的进程日志中,提取进程标识和脚本名,分别作为进程标识的样本集和脚本名的样本集。异常检测装置将进程标识的样本集中每个进程标识的字符串转化为二元语法(2-gram)特征向量,命名域共包括26个大写字母、26个小写字母、10个数字和
“-
_./”四个特殊字符共66个字符,每个进程标识和每个脚本名的经过2-gram转化后变为4356维特征向量。并且异常检测装置将脚本名的样本集中每个脚本名的字符串转化为2-gram特征向量,一共4356维特征向量。
[0076]
异常检测装置建立自动编码器(auto-encoder)深度神经网络。
[0077]
异常检测装置使用正常行为的每个进程标识的字符串的特征向量,进行无监督训练,获得最终的auto-encoder深度神经网络,即获得进程标识的重构模型。异常检测装置使用正常行为的每个脚本名的字符串的特征向量,进行无监督训练,获得最终的auto-encoder深度神经网络,即获得脚本名的重构模型。具体的,auto-encoder深度神经网络共包含5层:神经元个数为4356的输入层,神经元个数分别为128、64的编码层和神经元个数分别为64、4356的解码层(此仅是一种举例,也可以采用其他方式)。在进行无监督训练过程中,采用均方误差(meansquareerror,mse),mse=∑(y-fw
,b
(xi))2作为损失函数,其中w为权值矩阵,b为偏移量,xi为第i个输入值(即进程标识的特征向量、脚本名的特征向量),y为真实分类结果。优化算法采用基于小批量(mini-batch)的随机梯度下降法(stochastic gradient descent,sgd),参数更新过程为θ
i 1
=θi δθi,其中,θi为自动编码器深度神经网络中的参数,α为学习率,ρ为动量参数,j(θ)为损失函数。
[0078]
异常检测装置获得进程标识的重构模型和脚本名的重构模型后,记录样本集中各个进程标识的重构均方误差、各个脚本名的重构均方误差。异常检测装置计算进程标识的
重构均方误差的平均值mse
mean
和最大值mse
max
,取max(mse
max
,2
×
mse
mean
)(表示取mse
max
、2
×
mse
mean
中的最大值),作为进程标识的重构误差阈值。并且异常检测装置计算脚本名的重构均方误差的平均值mse
mean
和最大值mse
max
,取max(mse
max
,2
×
mse
mean
)(表示取mse
max
、2
×
mse
mean
中的最大值),作为脚本名的重构误差阈值。异常检测装置将两个重构误差阈值和两个重构模型,确定为重构进程标识和脚本名的策略。
[0079]
这样,异常行为检测的装置即获取到正常行为对应的重构进程标识和脚本名的策略、进程调用关系和进程执行转移信息。
[0080]
需要说明的是,上述过程是以异常检测装置确定正常行为的相关信息为例,当然也可以由其他设备确定,异常检测装置从该其他设备获取正常行为的相关信息,本技术实施例不做限定。还需要说明的是,对于一个进程,有可能存在脚本,也有可能不存在脚本。
[0081]
下面将结合图3对本技术实施例提供的异常行为检测的方法进行说明,该方法可以由异常检测装置执行,以异常行为检测的方法应用于场景一进行说明。如图3所示,该方法的处理流程如下:
[0082]
步骤301,异常检测装置获取计算设备的进程日志。
[0083]
其中,在场景一中,计算设备为个人计算设备。
[0084]
在本实施例中,异常检测装置可以按照预设周期,获取计算设备的进程日志,或者,异常检测装置可以每当计算设备生成一条进程日志,则获取一条进程日志。或者,异常检测装置接收到异常检测指令时,获取上一次进行异常检测时间点至当前时间点之间的进程日志,当然异常检测指令也可以包括所要检测的进程日志的时间范围,异常检测装置获取该时间范围内的进程日志。
[0085]
步骤302,异常检测装置提取进程日志的进程执行序列,进行执行序列用于反映进程执行顺序。
[0086]
在本实施例中,异常检测装置可以提取每条进程日志的进程执行序列,进程执行序列可以反映进程执行顺序,即每个进程执行列从标识为起始标识的祖先进程开始,到无子进程时结束。具体的,进程日志中包括进程运行时间和进程标识等,异常检测装置可以将进程运行时间按照先后顺序进行排序,进程标识按照该先后顺序进行排序,即获得进程执行序列。
[0087]
步骤303,异常检测装置根据进程执行序列和计算设备的正常行为对应的进程执行转移信息,判断计算设备中的异常行为。
[0088]
其中,进行执行转移信息可以用于检测进程执行过程是否被转移。
[0089]
在本实施例中,异常检测装置可以获取存储的计算设备的正常行为对应的进程执行转移信息,使用进程执行序列和计算设备的正常行为对应的进程执行转移信息,判断计算设备中是否存在异常行为。
[0090]
这样,由于可以使用正常行为对应的进程执行转移信息,自动判断计算设备中是否存在异常行为,所以可以高效的判断计算设备中是否存在异常行为。而且由于计算设备的正常行为比较容易获得,使用正常行为对应的进程执行转移信息来判断,可以更容易确定计算设备中的异常行为。
[0091]
在一种可能的实现方式中,步骤303中可以采用如下方式执行:
[0092]
异常检测装置根据正常行为对应的进程执行转移信息中的hmm参数,确定进程执
行序列对应的进程执行转移概率;若进程执行转移概率大于或等于转移阈值,则确定计算设备中的异常行为的第一检测结果为存在异常行为。
[0093]
其中,转移阈值为预设数值,如0.5等。
[0094]
本实施例中,异常检测装置将每条进程日志的进程执行序列中每个进程转换为预设数目维特征向量v。这样可以获得该进程执行序列对应的向量集合o={v1,v2,...,vn}。异常检测装置可以获取存储的正常行为对应的进程执行转移信息中的hmm参数,使用该hmm参数,计算该进程执行序列o所对应的观测序列概率p(o|λ)=∑
all q
p(o|q,λ)p(q,λ),其中q代表隐藏状态序列,all表示“所有”,λ与前文中的λ相同,p(o|q,λ)表示在条件q、λ下o的概率,p(q,λ)表示q,λ的联合概率,∑
all q
p(o|q,λ)p(q,λ)表示对所有的p(o|q,λ)p(q,λ)求和。异常检测装置判断进程执行转移概率(1减去观测序列概率)与转移阈值的大小关系,若至少一条进程日志的进程执行序列的进程执行转移概率大于或等于转移阈值,则确定计算设备中存在异常行为。若每条进程日志的进程执行序列的进程执行转移概率均小于转移阈值,则确定在进程执行转移的维度,计算设备中不存在异常行为。
[0095]
由于进程转移概率比较大,说明进程被转移执行的可能性较大,所以在进程执行转移概率大于或等于转移阈值时,确定计算设备中存在异常行为。
[0096]
在一种可能的实现方式中,在判断计算设备中的异常行为时,还考虑了进程调用关系的维度,步骤303中可以采用如下方式执行:
[0097]
异常检测装置根据正常行为对应的进程执行转移信息和进程执行序列,确定计算设备中的异常行为的第一检测结果;根据正常行为对应的进程调用关系和进程日志的进程调用关系,确定计算设备的异常行为的第二检测结果;根据第一检测结果和第二检测结果,判断计算设备中的异常行为。
[0098]
在本实施例中,异常检测装置确定计算设备中的异常行为的第一检测结果,异常检测装置在进程日志中,使用进程标识和运行时间,提取进程日志中的父进程和子进程对。然后异常检测装置使用父进程和子进程对,以及正常行为对应的进程调用关系,确定计算设备中的异常行为的第二检测结果。异常检测装置将第一检测结果和第二检测结果进行加权处理,获得加权值。异常行为确定加权值与目标数值的大小关系,若加权值大于或等于目标数值,则确定计算设备中存在异常行为,若加权值小于目标数值,则确定计算设备中不存在异常行为。具体的,若第一检测结果为存在异常行为,则取值为1,反之取值为0,同理若第二检测结果为存在异常行为,则取值为1,反之取值为0,第一检测结果对应的权重和第二检测结果对应的权重之和为1。目标数值取值可以为1。
[0099]
这样,由于考虑了进程调用关系和进程执行转移信息多个维度,所以可以更准确的判断计算设备中是否存在异常行为。
[0100]
在一种可能的实现方式中,在判断计算设备中的异常行为时,还考虑了重构进程标识和脚本名的维度,步骤303中可以采用如下方式执行:
[0101]
异常检测装置根据正常行为对应的进程执行转移信息和进程执行序列,确定计算设备中的异常行为的第一检测结果;根据正常行为对应的重构进程标识和脚本名的策略和进程日志的进程标识和脚本名,确定计算设备中的异常行为的第三检测结果;根据第一检测结果和第三检测结果,判断计算设备中的异常行为。
[0102]
在本实施例中,异常检测装置确定计算设备中的异常行为的第一检测结果,异常
检测装置在进程日志中,提取进程标识和脚本名,然后使用进程标识、脚本名和重构进程标识和脚本名的策略,确定计算设备中的异常行为的第三检测结果。异常检测装置将第一检测结果和第三检测结果进行加权处理,获得加权值。异常行为确定加权值与目标数值的大小关系,若加权值大于或等于目标数值,则确定计算设备中存在异常行为,若加权值小于目标数值,则确定计算设备中不存在异常行为。具体的,若第一检测结果为存在异常行为,则取值为1,反之取值为0,同理若第三检测结果为存在异常行为,则取值为1,反之取值为0,第一检测结果对应的权重和第三检测结果对应的权重之和为1。目标数值取值可以为1。
[0103]
这样,由于考虑了进程标识、脚本名和进程执行转移信息多个维度,所以可以更准确的判断计算设备中是否存在异常行为。
[0104]
在一种可能的实现方式中,在判断计算设备中的异常行为时,还考虑了重构进程标识和脚本名维度、进程调用关系维度,步骤303中可以采用如下方式执行:
[0105]
异常检测装置根据正常行为对应的进程执行转移信息和进程执行序列,确定计算设备中的异常行为的第一检测结果;根据正常行为对应的进程调用关系和进程日志的进程调用关系,确定计算设备的异常行为的第二检测结果;根据正常行为对应的重构进程标识和脚本名的策略和进程日志的进程标识和脚本名,确定计算设备中的异常行为的第三检测结果;根据第一检测结果、第二检测结果和第三检测结果,判断计算设备中的异常行为。
[0106]
在本实施例中,异常检测装置确定计算设备中的异常行为的第一检测结果,异常检测装置确定计算设备中的异常行为的第二检测结果,异常检测装置确定计算设备中的异常行为的第三检测结果。异常检测装置将第一检测结果、第二检测结果和第三检测结果进行加权处理,获得加权值。异常行为确定加权值与目标数值的大小关系,若加权值大于或等于目标数值,则确定计算设备中存在异常行为,若加权值小于目标数值,则确定计算设备中不存在异常行为。具体的,若第一检测结果为存在异常行为,则取值为1,反之取值为0,同理若第二检测结果为存在异常行为,则取值为1,反之取值为0,若第三检测结果为存在异常行为,则取值为1,反之取值为0,第一检测结果对应的权重、第二检测结果对应的权重和第三检测结果对应的权重之和为1。目标数值取值可以为1。第一检测结果、第二检测结果和第三检测结果为r
sequence
,r
relation
,r
name
,对应第一检测结果、第二检测结果和第三检测结果分别设置的权重为w
sequence
,w
relation
,w
name
,加权值为r=∑wi×ri
|i∈{relation,sequence,name}。
[0107]
这样,由于考虑了进程调用关系、进程标识、脚本名和进程执行转移信息多个维度,所以可以更准确的判断计算设备中是否存在异常行为。
[0108]
在一种可能的实现方式中,异常行为检测设备确定第二检测结果的处理如下:
[0109]
若进程日志中的最后一个进程调用关系未存在于正常行为对应的进程调用关系中,则异常行为检测设备确定计算设备中的异常行为的第二检测结果为存在异常行为。
[0110]
在本实施例中,异常行为检测设备确定每条进程日志中的最后一个进程调用关系,是否存在于正常行为对应的进程调用关系中。若对于每条进程日志中的最后一个进程调用关系,均存在于正常行为对应的进程调用关系中,则异常行为检测设备确定计算设备中的异常行为的第二检测结果为不存在异常行为。若某条进程日志中的最后一个进程调用关系,未存在于正常行为对应的进程调用关系中,则异常行为检测设备确定计算设备中的异常行为的第二检测结果为存在异常行为。由于正常行为的进程调用关系中的调用关系是
正确的,所以在当前进程调用关系不存在于正常行为的进程调用关系中时,可以确定当前进程调用存在异常。
[0111]
在一种可能的实现方式中,异常行为检测设备确定第三检测结果的处理如下:
[0112]
异常检测装置根据策略中的进程标识的重构模型,对进程日志的最后一个进程标识进行重构处理,获得最后一个进程标识的重构结果,并且根据策略中的脚本名的重构模型,对进程日志的最后一个脚本名进行重构处理,获得最后一个脚本名的重构结果;根据最后一个进程标识的重构结果,确定最后一个进程标识的重构均方误差,并且根据最后一个脚本名的重构结果,确定最后一个脚本名的重构均方误差;若最后一个进程标识的重构均方误差大于策略中的进程标识的重构误差阈值,和/或最后一个脚本名的重构均方误差大于策略中的脚本名的重构误差阈值,则确定计算设备中的异常行为的第三检测结果为存在异常行为。
[0113]
在本实施例中,异常检测装置将每条进程日志中的最后一个进程标识,输入至进程标识的重构模型中,获得最后一个进程标识对应的重构的进程标识。异常检测装置使用重构的进程标识和原来的进程标识,确定每条进程日志的最后一个进程标识的重构均方误差。
[0114]
异常检测装置将每条进程日志中的最后一个脚本名,输入至脚本名的重构模型中,获得最后一个脚本名对应的重构的脚本名。异常检测装置使用重构的脚本名和原来的脚本名,确定每条进程日志的最后一个脚本名的重构均方误差。
[0115]
异常检测装置判断最后一个进程标识的重构均方误差与进程标识的重构误差阈值之间的大小关系。并且异常检测装置判断最后一个脚本名的重构均方误差与脚本名的重构误差阈值之间的大小关系。
[0116]
若某条进程日志中最后一个进程标识的重构均方误差大于进程标识的重构误差阈值,和/或某条进程日志中最后一个脚本名的重构均方误差大于脚本名的重构误差阈值,则确定计算设备中的异常行为的第三检测结果为存在异常行为,反之则确定计算设备中的异常行为的第三检测结果为不存在异常行为。重构均方误差比较大,说明有可能存在异常进程标识或脚本名,所以在进程标识对应的重构均方误差大于重构误差阈值时,确定进程标识存在异常,在脚本名对应的重构均方误差大于重构误差阈值时,确定脚本名存在异常。
[0117]
此处需要说明的是,上述仅使用每条进程日志的最后一个进程调用关系的原因为:一个完整命令对应多条进程日志,每条进程日志中有重复的内容(如执行一个命令运行了4个进程a、b、c、d,可以产生4条进程日志,即a的进程日志、a和b的进程日志、a、b和c的进程日志、以及a、b、c和d的进程日志)。这样,在确定a和b的进程日志时,仅确定a和b的进程调用关系,在使用a、b和c的进程日志时,由于前面已经确定了a和b的进程调用关系,所以此处仅确定b和c的进程调用关系即可,同理在使用a、b和c的进程日志时,由于前面已经确定了a和b、以及b和c的进程调用关系,所以此处仅确定c和d的进程调用关系即可。同理,上述仅使用每条进程日志的最后一个脚本名和最后一个进程标识的原因也是由于前面的进程日志中已经判断了除最后一个进程之外的进程的脚本名和进程标识。
[0118]
在本技术实施例中,上述描述是基于每条进程日志,判断计算设备中是否存在异常行为,当然也可以仅使用一个完整命令对应的最后一条进程日志,判断计算设备中是否存在异常行为,那么步骤301中,就是每个完整命令对应一条进程日志,在判断计算设备中
是否存在异常行为时,使用的也是一条进程日志中各个进程调用关系、以及每个进程标识和脚本名,而不是最后一个进程标识和最后一个脚本名。
[0119]
在一种可能的实现方式中,在步骤303之后,为了更准确的确定计算设备中的异常行为,还可以对正常行为的相关内容进行更新处理,相应的处理为:
[0120]
异常检测装置将计算设备的异常行为提供给管理设备;从管理设备获取计算设备的异常行为中被标注为正常的异常行为;根据异常行为中被标注为正常的异常行为,对正常行为对应的进程执行转移信息、进程调用关系或重构进程标识和脚本名的策略的一种或多种进行更新处理。
[0121]
其中,在场景一中,管理设备可以是个人计算设备,也可以是与个人计算设备连接的管理设备等。
[0122]
在本实施例中,异常检测装置将计算设备的异常行为提供给管理设备,该异常行为包括确定出异常行为的进程日志以及包括存在异常行为的具体内容,如具体内容为存在异常的进程调用关系、存在异常的进程执行序列等。管理设备可以显示异常行为并对应显示确认按键和取消按键,若显示的异常行为确实是异常行为,则用户可以点击确认按键,触发管理设备记录该异常行为被标注为异常的异常行为。若显示的异常行为不是异常行为,则用户可以点击取消按键,触发管理设备记录该异常行为不是异常行为,即标注为正常的异常行为。在用户全部确认完异常行为后,管理设备向异常检测装置发送被标注为正常的异常行为。异常检测装置接收到被标注为正常的异常行为,在收集的用户标注的正常的异常行为达到一定数量时,对正常行为对应的进程执行转移信息、进程调用关系或重构进程标识和脚本名的策略的一种或多种进行更新处理。
[0123]
这样,可以及时的对正常行为对应的进程执行转移信息、进程调用关系或重构进程标识和脚本名的策略的一种或多种进行更新处理,在应对不断变化的异常行为时具有更强的适应能力。
[0124]
另外,在异常检测装置将计算设备提供的异常行为提供给管理设备之前,还可以对异常行为进行去重处理,例如,一个脚本在某个时间段出现的频次非常高,则该脚本不是一个恶意脚本,可以将针对该脚本的异常行为删除。并且异常检测装置将计算设备提供的异常行为提供给管理设备之前,还可以根据历史的异常行为和用户对异常行为的反馈,对低风险异常行为进行过滤。例如,异常检测装置将某个异常行为提供给管理设备,管理设备反馈的被标注为异常的异常行为中不包括该异常行为,则对该异常行为进行过滤处理。
[0125]
另外,异常检测装置将计算设备的异常行为提供给管理设备时,可以以告警形式反馈给管理设备。具体的告警内容除了包括上述提到的确定出异常行为的进程日志以及包括存在异常行为的具体内容,还可以包括建议处理方法等,如指示删除某个异常文件等。
[0126]
在一种可能的实现方式中,对正常行为对应的重构进程标识和脚本名的策略进行更新处理时,可以采用被动攻击学习算法其中,θ表示auto-encoder深度神经网络的所有参数,j表示前文中提到的损失函数j(θ),λ表示权重因子,表示当前的auto-encoder深度神经网络参数。
[0127]
在一种可能的实现方式中,对正常行为对应的进程调用关系进行更新时,可以在正常行为对应的进程调用关系中添加用户标注的正常的异常行为中的进程调用关系。
[0128]
在一种可能的实现方式中,对正常行为对应的进程执行转移信息进行更新时,可以基于用户标注的正常的异常行为的进程执行序列,重新确定hmm参数,确定方式参见前文中的描述。
[0129]
在一种可能的实现方式中,异常检测装置将计算设备的异常行为提供给管理设备之前,还可以对计算设备的异常行为进行过滤处理,过程如下:
[0130]
异常检测装置基于主动学习算法,对计算设备的异常行为进行过滤;将过滤处理后的计算设备的异常行为,提供给管理设备。
[0131]
在本实施例中,异常检测装置使用主动学习对计算设备的异常行为进行过滤处理。异常检测装置将过滤处理后的异常行为提供给管理设备,可以减少用户标注的代价。具体的,主动学习的算法可以是相对熵(kullback-leibler,kl)最大化方法等,主动学习的算法可以选择后验概率超过预设阈值时所对应的异常行为,并计算kl值。对于每个可以用于确定正常行为的相关内容的样本满足x
kl-max
=argmin{∑
w∈u
1/(u-1)
×
kl(p

(w|x)||p(w|x))p(y
*
=w|wxi)},其中,x
kl-max
表示样本x的相对熵最大,对于类别w,p

(w|x)指在增加样本x后的样本集上的后验概率。
[0132]
这样,在本技术中,采用无监督算法结构,无需事先定义入侵行为,通过学习正常行为的相关内容,实时对进程日志进行检测是否存在异常行为。而且加入了在线学习,实时对正常行为的相关内容进行优化更新,以应对不断变化的异常行为时,具备更强的适应能力。另外,本技术中的进程日志是系统进程信息,所以可以直接通过系统接口获取到进程日志,而且在本技术中人工仅需要标注少量的异常行为,而且本技术中仅需要计算设备的正常行为(一般计算设备的行为均是正常行为,所以容易获得),无需历史异常行为,所以实用性较好。
[0133]
上述是针对场景一进行描述,对于上述场景二至场景四中,与上述场景一的处理的区别为:
[0134]
异常检测装置获取的是异常检测装置所管理的所有计算设备一段时间内的进程日志,基于该一段时间内的进程日志确定出正常行为的相关内容。在后续异常检测装置检测的是所管理的所有计算设备的进程日志,其余处理与场景一的处理过程相同,此处不再赘述。另外,在场景二至场景四中,是以异常检测装置所管理的所有计算设备的正常行为和异常行为均具有相似性,所以可以以所管理的所有计算设备的进程日志作为基础,进而可以检测到各计算设备的异常行为。
[0135]
另外,本技术实施例中,在进程日志中,还可以获取到产生进程日志的计算设备的网络互联(internet protocol,ip)地址、用户名、主机名、命令内容、进程路径等。用户名可以为用户操作计算设备时登录系统的名称(如某个用户在a计算设备上登录自己的账户,即用户名为该账户),主机名可以是计算设备的标识,命令内容为产生进程日志所执行的命令的内容,进程路径指进程的存储路径。这样,在场景一中,异常检测装置还可以向管理设备提供产生异常行为的命令内容和进程路径等,以使用户更准确的定位异常行为。在场景二至场景四中,异常检测装置还可以向管理设备提供产生异常行为的计算设备的ip地址、用户名、主机名、命令内容和进程路径等,以使用户更准确的定位是哪一台计算设备产生异常行为以及产生异常行为时的操作计算设备的用户是谁,可以更准确的定位异常行为。
[0136]
在本技术中,为了更好的理解异常行为检测的流程,还提供了便于理解的框图:
[0137]
如图4所示,1、异常检测装置获取进程日志进行预处理,预处理可以包括过滤无关内容、提取进程调用关系和进程执行序列。
[0138]
2、异常检测装置对每条进程日志进行多维检测,具体的可以包括:进程调用关系、进程执行序列、进程标识和脚本名。
[0139]
3、异常检测装置确定每条进程日志中的异常行为。
[0140]
4、异常检测装置向用户反馈异常行为,基于用户对反馈的异常行为的标注,更新进行多维度异常检测时所使用的内容。
[0141]
在本技术中,为了更好的理解异常行为检测以及构建正常行为的相关内容的流程,还提供了便于理解的框图:
[0142]
如图5所示,流程主要包括构建正常行为的相关内容的流程、异常行为检测流程、更新流程和结果反馈流程等。
[0143]
在构建正常行为的相关内容的流程中:1、提取一段时间内的进程日志。2、对进程日志进行预处理。3、确定进程调用关系。4、确定重构进程标识和脚本名的策略。5、确定进程执行转移信息(3、4、5可以并行执行,也可以顺序执行,本技术实施例不做限定)。
[0144]
在进行异常行为检测的流程中:6、提取进程日志。7、对进程日志进行预处理。8、确定进程日志中的异常行为。
[0145]
在结果反馈流程中,9、对异常行为进行过滤处理。10、向管理设备反馈过滤后的异常行为。
[0146]
在更新流程中,11、获取用户标注的异常行为,返回执行构建正常行为的相关内容的流程的2的处理。
[0147]
图6是本技术实施例提供的异常行为检测的装置(即异常检测装置)的结构图。该装置可以通过软件、硬件或者两者的结合实现成为识别装置中的部分或者全部。本技术实施例提供的该装置可以实现本技术实施例图3所述的流程,该识别装置包括:获取模块610、提取模块620和确定模块630,其中:
[0148]
获取模块610,用于获取计算设备的进程日志,具体可以用于实现步骤301中的获取功能以及执行步骤301包含的隐含步骤;
[0149]
提取模块620,用于提取所述进程日志的进程执行序列,其中,所述进行执行序列用于反映进程执行顺序,具体可以用于实现步骤302中的提取功能以及执行步骤302包含的隐含步骤;
[0150]
确定模块630,用于根据所述进程执行序列和所述计算设备的正常行为对应的进程执行转移信息,判断所述计算设备中的异常行为,具体可以用于实现步骤303中的确定功能以及执行步骤303包含的隐含步骤。
[0151]
在一种可能的实现方式中,所述提取模块620,用于:
[0152]
根据所述进程日志的标识和时间信息,提取所述进程日志中的进程执行序列。
[0153]
在一种可能的实现方式中,所述提取模块620,还用于:
[0154]
提取所述进程日志的进程调用关系;
[0155]
所述确定模块630,用于:
[0156]
根据所述正常行为对应的进程执行转移信息和所述进程执行序列,确定所述计算设备中的异常行为的第一检测结果;
[0157]
根据所述正常行为对应的进程调用关系和所述进程日志的进程调用关系,确定所述计算设备中的异常行为的第二检测结果;
[0158]
根据所述第一检测结果和所述第二检测结果,判断所述计算设备中的异常行为。
[0159]
在一种可能的实现方式中,所述提取模块620,还用于:
[0160]
提取所述进程日志的进程标识和脚本名;
[0161]
所述确定模块630,用于:
[0162]
根据所述正常行为对应的进程执行转移信息和所述进程执行序列,确定所述计算设备中的异常行为的第一检测结果;
[0163]
根据所述正常行为对应的重构进程标识和脚本名的策略和所述进程日志的进程标识和脚本名,确定所述计算设备中的异常行为的第三检测结果;
[0164]
根据所述第一检测结果和所述第三检测结果,判断所述计算设备中的异常行为。
[0165]
在一种可能的实现方式中,所述提取模块620,还用于:
[0166]
提取所述进程日志的进程调用关系、进程标识和脚本名;
[0167]
所述确定模块630,用于:
[0168]
根据所述正常行为对应的进程执行转移信息和所述进程执行序列,确定所述计算设备中的异常行为的第一检测结果;
[0169]
根据所述正常行为对应的进程调用关系和所述进程日志的进程调用关系,确定所述计算设备中的异常行为的第二检测结果;
[0170]
根据所述正常行为对应的重构进程标识和脚本名的策略和所述进程日志的进程标识和脚本名,确定所述计算设备中的异常行为的第三检测结果;
[0171]
根据所述第一检测结果、所述第二检测结果和所述第三检测结果,判断所述计算设备中的异常行为。
[0172]
在一种可能的实现方式中,所述确定模块630,用于:
[0173]
根据所述正常行为对应的进程执行转移信息中的hmm参数,确定所述进程执行序列对应的进程执行转移概率;
[0174]
若所述进程执行转移概率大于或等于转移阈值,则确定所述计算设备中的异常行为的第一检测结果为存在异常行为。
[0175]
在一种可能的实现方式中,所述确定模块630,用于:
[0176]
若所述进程日志中的最后一个进程调用关系未存在于所述正常行为对应的进程调用关系中,则确定所述计算设备中的异常行为的第二检测结果为存在异常行为。
[0177]
在一种可能的实现方式中,所述提取模块620,还用于:
[0178]
提取所述正常行为对应的每条进程日志中的父进程和子进程对;
[0179]
所述确定模块630,还用于:
[0180]
根据所述正常行为对应的父进程的相似度,将所述正常行为对应的父进程划分为多个父进程组;
[0181]
根据所述多个父进程组的聚类结果、所述多个父进程组中每个父进程包括的子进程,确定所述正常行为对应的进程调用关系。
[0182]
在一种可能的实现方式中,所述确定模块630,用于:
[0183]
根据所述策略中的进程标识的重构模型,对所述进程日志的最后一个进程标识进
行重构处理,获得所述最后一个进程标识的重构结果,并且根据所述策略中的脚本名的重构模型,对所述进程日志的最后一个脚本名进行重构处理,获得所述最后一个脚本名的重构结果;
[0184]
根据所述最后一个进程标识的重构结果,确定所述最后一个进程标识的重构均方误差,并且根据所述最后一个脚本名的重构结果,确定所述最后一个脚本名的重构均方误差;
[0185]
若所述最后一个进程标识的重构均方误差大于所述策略中的进程标识的重构误差阈值,和/或所述最后一个脚本名的重构均方误差大于所述策略中的脚本名的重构误差阈值,则确定所述计算设备中的异常行为的第三检测结果为存在异常行为。
[0186]
在一种可能的实现方式中,所述提取模块620,还用于:
[0187]
提取所述正常行为对应的进程日志中的进程标识和脚本名;
[0188]
所述确定模块630,还用于:
[0189]
分别对所述正常行为对应的进程日志中的进程标识和脚本名,进行无监督训练,获得进程标识的重构模型和脚本名的重构模型;
[0190]
根据所述正常行为对应的进程日志中的进程标识的重构均方误差和脚本名的重构均方误差,分别确定进程标识的重构误差阈值和脚本名的重构误差阈值;
[0191]
将所述进程标识的重构模型、所述脚本名的重构模型、所述进程标识的重构误差阈值和所述脚本名的重构误差阈值,确定为所述重构进程标识和脚本名的策略。
[0192]
在一种可能的实现方式中,如图7所示,所述装置还包括提供模块640,用于将所述计算设备中的异常行为提供给管理设备;
[0193]
所述获取模块610,还用于从所述管理设备获取所述计算设备中的异常行为中被标注为正常的异常行为;
[0194]
所述装置还包括更新模块650,用于根据所述异常行为中被标注为正常的异常行为,对所述正常行为对应的进程执行转移信息、进程调用关系或重构进程标识和脚本名的策略的一种或多种进行更新处理。
[0195]
在一种可能的实现方式中,所述确定模块630,还用于:
[0196]
将所述计算设备中的异常行为提供给管理设备之前,基于主动学习算法,对所述计算设备中的异常行为进行过滤;
[0197]
所述提供模块620,用于:
[0198]
将过滤处理后的所述计算设备中的异常行为,提供给所述管理设备。
[0199]
本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时也可以有另外的划分方式,另外,在本技术各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成为一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0200]
上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
[0201]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在服务器或终端上加载和执行所述计算机程序指令时,
全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是服务器或终端能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(digital video disk,dvd)等),或者半导体介质(如固态硬盘等)。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献