具体实施方式
下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
目前,针对实体行为进行关联分析主要采用两种方式。
1、基于复杂事件处理(Complex Event Processing,CEP)的引擎接口或者配置功能。具体来说,就是预先确定某种恶意行为的属性信息,并作为两个实体行为存在关联的条件。然后,获取多个实体行为,并通过预先配置的属性信息判断这些实体行为之间是否存在关联关系。
2、基于关系型数据库的关联分析能力。具体来说,就是预先在数据库中建立多个数据表。然后,获取多个实体行为,并将这些实体行为按照类型存储在不同的数据表中。最后,通过预先编写好的结构化查询语言(Structured Query Language,SQL)分析这些数据表中的实体行为是否存在关联关系。
但是,采用上述第1种方式进行实体行为关联关系分析,只能够分析同一种类型中的实体行为之间是否存在关联关系,而无法针对不同类型的实体行为进行关联分析。虽然,采用上述第2种方式能够针对不同类型的实体行为进行关联分析,但是,实时性较差,无法实现恶意行为的实时发现。可见,寻找一种针对不同类型的实体行为实时进行关联分析的解决方案迫在眉睫。
有鉴于此,本申请实施例提供了一种实体行为关联分析方法,在接收到不同类型的实体行为后,先将这些实体行为与连通图中的节点进行匹配。在连通图中,包括多个节点和连接具有关联关系的节点的关联边。一个节点对应一种类型的实体行为。然后再基于连通图中的关联边对匹配后的实体行为进行关联分析。由于连通图中的节点能够表示一种类型的实体行为,而关联边能够表示其连接的两个节点,即两种不同类型的实体行为之间具有关联关系,因此,通过连通图还能够对不同类型的实体行为进行关联分析,进而提高实体行为关联分析的全面性以及有效性。
接下来,针对本申请实施例提供的实体行为关联分析方法的具体过程进行详细说明。
图1为本申请实施例中实体行为关联分析方法的流程示意图一,参见图1所示,该方法可以包括:
S101:接收不同类型的实体行为。
所谓不同类型的实体行为,可以是指网络中基于不同设备或者不同操作所产生的不同类型的行为。换句话说,不同类型的实体行为,就是进程、网络访问等从不同网络设备获取的信息。这里的网络设备可以包括终端、路由器、防火墙、服务器等。
举例来说,图2为本申请实施例中不同类型的实体行为的示意图,参见图2所示。对于钓鱼攻击这一恶意行为。首先,用户会接收到一封邮件。该邮件存在有附件。当用户打开邮件并下载附件时,用户这一打开邮件、下载附件的动作就可以认为是一种类型的实体行为,即实体行为1。然后,用户会通过双击等方式打开该附件,此时,用户所使用的终端内会启动一个相应的进程。打开附件、启动进程这一动作就可以认为是一种类型的实体行为,即实体行为2。接着,通过该进程会向外部服务器发送一个请求。发送请求这一动作就可以认为是一种类型的实体行为,即实体行为3。最后,接收外部服务器反馈的响应信息,并自动更新终端内的相关代码或者相关配置。接收响应信息、自动更新代码或配置这一动作就可以认为是一种类型的实体行为,即实体行为4。由此可见,上述钓鱼攻击中就对应有四种不同类型的实体行为。
当需要对不同类型的实体行为进行关联分析时,首先,需要获取不同类型的实体行为。在具体实施过程中,可以通过接收其它人员搜集好的不同类型的实体行为,然后作为本次进行关联分析的实体行为。也可以通过网路安全事件获取工具直接从网络中获取不同类型的实体行为。对于不同类型的实体行为的具体接收方式,此处不做限定。
而在获取实体行为的具体过程中,可以从各类安全产品或开源组件采集的操作系统日志、网络流量日志、应用日志等各种日志中获取实体行为。当然,还可以从其它文件中获取实体行为。例如:系统的配置文件。对于获取实体行为的具体途径,此处也不做限定。
S102:将不同类型的实体行为分别与连通图中的节点进行匹配。
其中,连通图中包括多个节点和连接具有关联关系的节点的关联边。一个节点对应一种类型的实体行为。
这里的关联边,实际上可以看作是关联条件。关联条件一般可以是指算子,即逻辑计算条件。例如:等于、大于、大于等于、小于、小于等于、正则关联、字符截取、为空、不为空等。当连通图中具有关联边的两个节点对应的实体行为满足逻辑计算条件时,就确定这两个实体行为之间存在关联关系。反之,则确定这两个实体行为之间不存在关联关系。
图3为本申请实施例中连通图的示意图,参见图3所示,在连通图中,包含有多个节点。例如:节点A、节点B、节点C和节点D。节点A与节点B之间连接有关联边1,节点B与节点C之间连接有关联边2,节点C与节点D之间连接有关联边3。节点A、节点B、节点C和节点D分别表示不同类型的实体行为。关联边1、关联边2和关联边3分别表示不同的关联条件。
继续图2中的举例,在图3中,节点A表示下载附件这一类的实体行为,节点B表示启动进程这一类的实体行为,节点C表示发送请求这一类的实体行为,节点D表示自动更新配置这一类的实体行为。而关联边1、关联边2和关联边3对应的关联条件均为实体行为对应的名称相同。
在采用连通图对不同类型的实体行为进行关联分析时,需要先将不同类型的实体行为与连通图中的节点进行匹配。继续图2、3中的举例,在获取到100个实体行为(其中,10个实体行为属于下载附件,20个实体行为属于启动进行,30个实体行为属于发送请求,40个实体行为属于自动更新配置)后,需要基于这100个实体行为的类型,将这100个实体行为分别与连通图中相应类型的节点对应。也就是说,将属于下载附件的10个实体行为与节点A匹配,将属于启动进程的20个实体行为与节点B匹配,将属于发送请求的30个实体行为与节点C匹配,将属于自动更新配置的40个实体行为与节点D匹配。
S103:基于连通图中的关联边对匹配后的实体行为进行关联分析。
在将不同类型的实体行为分别与连通图中的节点进行匹配后,继续基于连通图中的关联边,在两节点之间,对匹配后的实体行为两两进行关联计算。如果计算结果满足关联边所对应的关联条件,那么就确定相应的两个不同类型的实体行为之间存在关联关系;如果计算结果不满足关联边所对应的关联条件,那么就确定相应的两个不同类型的实体行为之间不存在关联关系。
继续图2、3中的举例,图4为本申请实施例中实体行为关联分析过程的示意图一,参见图4所示,当需要对四个不同类型的实体行为(实体行为1、实体行为2、实体行为3和实体行为4。其中,实体行为1为下载附件类的实体行为,实体行为2为启动进程类的实体行为,实体行为3为发送请求类的实体行为,实体行为4为自动更新配置类的实体行为)进行关联关系分析时,首先,将这四个不同类型的实体行为按照类型与连通图中的节点对应。即,实体行为1对应节点A,实体行为2对应节点B,实体行为3对应节点C,实体行为4对应节点D。然后,基于关联边1表征的关联条件,判断实体行为1与实体行为2对应文件名称是否相同。若相同,则确定实体行为1与实体行为2具有关联关系;若不同,则确定实体行为1与实体行为2不具有关联关系。实体行为2与实体行为3、实体行为3与实体行为4依此进行关联。最后,就能够确定实体行为1、实体行为2、实体行为3和实体行为4中的实体行为之间是否具有关联关系了。
这里需要说明的是,在一次关联关系的分析过程中,连通图中的一个节点可以对应多个实体行为。当具有关联边的两个节点中的至少一个节点对应有多个实体行为时,需要将该节点中的每一个实体行为与另一个节点中的实体行为进行关联计算。这样,能够实现更多数量的不同类型的实体行为的关联分析。
继续图2、3中的举例,图5为本申请实施例中实体行为分析过程的示意图二,参见图5所示,当需要对三个实体行为(实体行为1、实体行为2、实体行为5。其中,实体行为1为下载附件类的实体行为,实体行为2为启动进程类的实体行为,实体行为5为下载附件类的实体行为)进行关联关系分析时,实体行为1和实体行为5均对应节点A,实体行为2对应节点B。此时,就需要基于关联边1判断实体行为1与实体行为2对应的文件名称是否相同,以及判断实体行为5与实体行为2对应的文件名称是否相同。如果实体行为1与实体行为2对应的文件名称相同,而实体行为5与实体行为2对应的文件名称不同,那么就确定实体行为1与实体行为2存在关联关系,实体行为5与实体行为2不存在关联关系。
再有,一幅连通图一般对应一种恶意行为。例如:上述图3中的连通图对应的就是网络中的钓鱼攻击行为。本申请实施例中连通图对应的具体的恶意行为,此处不做限定。当需要进行何种恶意行为对应的实体行为的关联分析时,采用相应的连通图即可。当需要同时对多种恶意行为进行关联分析时,就采用多幅连通图分别对不同类型的实体行为进行关联分析即可。这样,能够实现多种恶意行为的关联分析。
继续图2、3中的举例,图6为本申请实施例中实体行为分析过程的示意图三,参见图6所示,连通图A为钓鱼攻击对应的连通图,连通图B为监听攻击对应的连通图。当需要对两个实体行为(实体行为1、实体行为2)进行关联关系分析时,不仅需要将实体行为1和实体行为2与连通图A中相应的节点进行对应,并进行关联计算,还需要将实体行为1和实体行为2与连通图B中相应的节点进行对应,并进行关联计算。
由上述内容可知,本申请实施例提供的实体行为关联分析方法,在获取到不同类型的实体行为后,先将不同类型的实体行为分别与连通图中的节点进行匹配。这里的连通图中包括多个节点和连接具有关联关系的节点的关联边,一个节点对应一种类型的实体行为。然后,再基于连通图中的关联边对匹配后的实体行为进行关联分析。由于连通图中的节点能够表示一种类型的实体行为,而关联边能够表示其连接的两个节点对应的实体行为具有关联关系,因此,通过连通图能够针对不同类型的实体行为进行关联分析,进而提高实体行为分析的全面性以及有效性。
进一步地,作为对图1所示方法的细化和扩展,在采用连通图对不同类型的实体行为进行关联分析之前,首先需要构建出连通图。这样后续才能够使用连通图对不同类型的实体行为进行关联分析,以实现针对不同类型的实体行为的关联分析。
图7为本申请实施例中实体行为关联分析系统的架构示意图,参见图7所示,实体行为关联分析系统主要由三个模块组成。
规则配置模块,用于构建连通图。也就是说,操作人员可以基于实际的分析需求,通过规则配置模块进行实体行为的相应关联分析规则的配置。换句话说,当需要针对某种恶意行为,对一些实体行为进行关联分析时,操作人员可以根据该恶意行为的特征,在规则配置模块的选项中选择相应的节点和关联边,进而构建出相应的连通图。
实时分析模块,用于采用规则配置模块中构建出的连通图,对不同类型的实体行为进行关联分析。进而将符合规则的实体行为发送给告警模块。
告警模块,用于将接收到的实体行为进行相应的告警通知,以便使得相应的人员能够获知哪些实体行为之间具有关联关系,进而能够更有针对性的进行网络安全防护。
图8为本申请实施例中连通图构建过程的示意图,参见图8所示,连通图的构建具体可以包括:
S801:基于第一指令,从预设配置表中调用出多个节点,并添加到图中。
其中,每个节点与恶意行为中一种类型的行为的属性信息对应。
这里的属性信息,可以是指日志中存储的不同信息字段。例如:事件发生时间、网际互联协议(Internet Protocol,IP)、端口等。对于属性信息的具体内容,只要能够表征出恶意行为的特点即可,此处不做具体限定。
在构建出连通图之前,界面中可以仅显示有一幅内容为空的图。而操作人员可以基于预先统计出的一次完整的恶意攻击行为的特征,在界面中触发第一指令,使得界面能够基于第一指令从预设配置表中调用出多个节点,并添加到图中。也就是说,操作人员可以根据以往总结出的恶意行为的特点,在界面的下拉菜单中选择与各恶意行为特点相对应的节点。例如:选择下载附件、启动进程等这些节点。此时用户的选择,就是第一指令。而下拉菜单就是预设配置表。
S802:基于第三指令,为图中的节点配置自计算方式。
其中,自计算方式用于对实体行为所属的日志进行预处理。
在图中加入节点后,由于各节点分别对应不同类型的实体行为,而不同类型的实体行为来自于各种日志。为了提高后续关联计算的效率,此时可以为图中节点配置自计算方式。通过自计算方式,能够对节点对应的日志进行预处理,即从日志中仅获取实体行为,而不再获取其它无关的信息。这样,后续进行关联计算时,能够避免对无关的信息进行关联计算,进而提高关联计算的效率和准确性。
在为节点配置自计算方式时,用户可以根据实际需求,直接为图中节点配置相应的自计算方式。也可以在界面的菜单中选择相应的自计算方式,分配给相应的节点。上述的用户配置或者用户选择,就是用户的第三指令。对于为图中节点配置自计算方式的具体方式,此处不做限定。
在实际应用中,自计算方式可以包括但不限于以下两种。
第一种:新属性计算。
所谓新属性计算,就是从日志原有属性中提取出特定值作为新的属性。
举例来说,假设需要进行关联计算的实体行为中包括一类事件为文件下载,另一类事件为命令打开文件。文件下载事件中存在一个属性为文件下载路径,其值为“D:\\Download\\Filed\\testfile.doc”。而命令打开文件事件中存在一个事件属性为执行命令为“word.exe–file testfile.doc”。当需要通过这两个属性将这两个事件进行关联时,可以通过新属性计算的方式提取相应事件属性中的特定的文件名“testfile.doc”作为两个事件的新属性,然后在关联计算时可使用此新属性进行关联。
第二种:过滤。
所谓过滤,就是根据指定条件从日志中选择符合条件的实体行为。
举例来说,假设需要进行关联计算的实体行为中存在一类行为是打开文件。根据安全研究人员分析确定该类行为中一般都是以word文件作为恶意攻击的载体。因此,从日志中众多类型的文件中仅选择word类型的文件,即过滤掉其它类型的文件,仅保留word类型的文件,进而仅针对word类型的文件进行关联计算,能够减少文件关联计算的计算量,进而提高关联计算的效率。
这里需要说明的是,在构建连通图的过程中,为节点配置自计算方式的这一步骤,即步骤S802,并不一定是必须执行的。因为有些日志并不需要进行预处理,可以直接参与到关联计算中。
S803:基于第二指令,连接图中具有关联关系的节点,得到关联边。
在图中加入节点后,由于有的节点之间存在关联关系,即,一个节点对应的实体行为执行完成后,必然会执行另一个节点对应的实体行为。而有的节点之间并不存在关联关系。此时,需要将存在关联关系的节点之间进行连接,连接的线,就是关联边。
在对节点进行连接的过程中,可以按照节点对应的实体行为发生的先后顺序进行连接。仍参见图3所示,在钓鱼攻击的过程中,节点A对应的下载附件事件先执行,节点B对应的启动进程事件再执行,节点C对应的发送请求事件再执行,节点D对应的自动更新配置事件最后执行。如此,就按照先将节点A与节点B连接,再将节点B与节点C连接,再将节点C与节点D连接的顺序将各节点连接。
S804:基于第三指令,为关联边配置条件,得到连通图。
其中,上述条件用于指示关联边两端的节点具有关联关系。
在将图中的节点连接完成后,由于具有同一关联边的两个节点之间存在关联关系,而两个节点之间是否存在关联关系需要使用相应的条件进行判定,这个条件就可以配置在相应的关联边中。
仍以图3中的连通图进行说明。对于下载附件对应的节点A和启动进程对应的节点B,其关联边1上配置的条件就可以是附件名与进程名相同,或者节点A对应的实体行为发生顺序在前,节点B对应的实体行为发生顺序在后,等等。相应的,对于启动进程对应的节点B和发送请求对应的节点C,其关联边2上配置的条件就可以是进程名与ID名相同,或者节点B对应的实体行为发生顺序在前,节点C对应的实体行为发生顺序在后,等等。对于发送请求对应的节点C和自动更新配置对应的节点D,其关联边3上配置的条件就可以是ID名与文件落盘名相同,或者节点C对应的实体行为发生顺序在前,节点D对应的实体行为发生顺序在后,等等。
当然,为关联边配置的条件还可以是其它条件。对于配置的条件的具体内容,需要根据实际中需要进行关联的实体行为的类型而定,此处不做具体限定。
上述的第一指令、第二指令以及第三指令,均是基于预先统计出的一次完整的恶意攻击行为的特征确定。也就是说,操作人员根据预先统计出的一次完整的恶意攻击行为的特征,在界面中分别进行操作。操作人员在界面中的不同操作,对于界面来说,就是不同的指令,即第一指令、第二指令和第三指令。
图9为本申请实施例中配置完成的连通图的示意图,参见图9所示,在连通图中,配置有四个节点,即节点1、节点2、节点3和节点4。对于四个节点中的至少一个节点,可以配置自计算规则。对于两个节点之间的关联边,配置了关联条件。通过该连通图,就能够实现对不同类型的实体行为的关联分析。
由上述内容可知,通过预先配置连通图,能够针对网络中不同的恶意行为进行实体行为的关联分析,提高了实体行为分析配置的便捷性。以及通过在连通图的节点中配置自计算方式,能够提高实体行为之间关联计算的效率和准确性,进而提高实体行为关联关系的效率和准确性。
进一步地,作为对图1所示方法的细化和扩展,为了实现对不同类型的实体行为的实时关联分析,在获取到不同类型的实体行为之后,可以将获取的不同类型的实体行为存储在内存中。
具体来说,在步骤S101之后,还可以包括:将不同类型的实体行为存储于内存中。
在获取到不同类型的实体行为后,可以先将这些实体行为存储于内存中。这里的内存一般是指执行本申请实施例中实体行为关联分析方法的设备的内存。当开始对实体行为进行关联分析时,再直接从内存中调用这些实体行为,从而进行关联关系分析。
相比于现有的将不同类型的实体行为存储于数据库中。由于数据库存储于设备的硬盘中,当获取到不同类型的实体行为时,设备的内存先接收这些网络安全数据,并暂时存储。然后内存再将这些网络安全数据发送至硬盘中存储,并清空内存中的这些实体行为。最后,当需要对这些实体行为进行关联分析时,再从硬盘中将这些实体行为调用出来,并存储在内存中进行关联分析。可见,本申请实施例中将实体行为存储于内存中,并直接从内存中调用实体行为进行关联分析,相比于现有的还需要再将实体行为存储于硬盘中,再从硬盘中提取出并暂存于内存中进行关联分析,能够提高实体行为关联分析的实时性。
图10为本申请实施例中实体行为分析的路径与现有的实体行为分析的路径对比的示意图,参见图10所示,在现有技术中,在获取到实体行为后,实体行为先暂存于设备的内存,然后存储于设备的硬盘中。当需要进行实体行为关联分析时,从硬盘中调用实体行为,并暂存于内存中进行关联分析。而在本申请实施例中,在接收到实体行为后,实体行为直接暂存于设备的内存。当需要进行实体行为关联分析时,直接从内存中调用实体行为进行关联分析。可见,本申请实施例在获取到不同类型的实体行为后,仅存储与内存中,并不落盘。这样,当需要对不同类型的实体行为进行关联分析时,就能够避免从硬盘中调用实体行为并存储于内存中的步骤,而可以直接对内存中存储的各实体行为进行关联分析,提高实体行为关联分析的实时性。
相应的,步骤S102就变为:从内存中将不同类型的实体行为分别与连通图中的每个节点进行匹配,以使一种类型的实体行为对应一个节点。
由上述可知,在获取到不同类型的实体行为后,将各实体行为存储于内存中,当需要对这些实体行为进行关联分析时,就可以直接对内存中存储的这些实体行为进行关联分析,避免从硬盘中调用实体行为并存储于内存中的步骤,进而提高实体行为关联分析的实时性。
进一步地,作为对图1所示方法的细化和扩展,为了能够更好的对不同类型的实体行为进行关联分析,由于不同类型的实体行为的格式存在差异,可以将不同类型的实体行为的格式进行统一。
具体来说,在步骤S101之后,还可以包括:将不同类型的实体行为分别转换成键值对集合。
其中,一个键值对集合对应一个实体行为。键值对集合中的键用于表示实体行为的名称,键值对集合中键对应的值用于表示相应名称对应的内容,该内容至少包括实体行为的类型。
由于不同类型的实体行为,其数据中字段的配置是不同的。为了实现数据的统一,进而便于后续对不同类型的实体行为进行关联计算,此时就需要将各个实体行为转换成相应的键值对集合。
所谓键值对,就是将数据的全部或部分表示为<name,value>。这样,每一个实体行为就都能够被传换成一个键值对集合,从而实现不同类型的实体行为在数据格式上的统一,进而便于后续针对不同类型的实体行为进行关联计算。
相应的,步骤S102就变为:将各键值对集合分别与连通图中的节点进行匹配。
这里需要说明的是,在接收到不同类型的实体行为之后,可以先将不同类型的实体行为存储于内存中,然后在内存中将不同类型的实体行为转换为各个键值对集合。当然,还可以将上述顺序进行变换。针对不同类型的实体行为的存储与格式转换的具体顺序,此处不做限定。
由上述内容可知,通过将不同类型的实体行为转换为相应的键值对集合,能够实现不同类型的实体行为在数据格式上的统一,以便于后续针对不同类型的实体行为进行关联计算,从而实现不同类型的实体行为之间的关联计算。
进一步地,作为对图1所示方法的细化和扩展,为了能够对网络中一起完整的恶意攻击所涉及的实体行为进行完整的关联分析,可以在接收一段时间不同类型的实体行为后,再开始对这些不同类型的实体行为进行关联分析。这样,能够实现实体行为的完整关联,进而提高实体行为关联分析的完整性。
具体来说,步骤S103可以包括:当获取的实体行为的时间窗口达到预设窗口阈值时,基于连通图中的关联边对匹配后的实体行为进行关联分析。
其中,连通图中的所有节点能够表征一次完整的恶意攻击。预设窗口阈值基于进行一次完整的恶意攻击所需要的时间确定。
在接收到不同类型的实体行为后,先将接收到的实体行为暂时存储起来。后续还会继续接收到不同类型的实体行为,继续将接收的实体行为暂时存储起来。从接收开始,经过一段时间后,即调用的实体行为的时间窗口达到预设窗口阈值时,就将暂存的这些实体行为调用出来,进而采用连通图对这些实体行为进行关联分析。在关联分析完成后,即可清空存储,从而能够继续存储新接收的实体行为。
在这里,预设窗口阈值,即,从开始接收实体行为到开始进行实体行为关联分析这段时间,需要根据进行一次完整的恶意攻击所需要的时间确定。一般来说,可以将窗口阈值设置的与进行一次完整的恶意攻击所需要的时间相同,也可以将窗口阈值设置的超出进行一次完整的恶意攻击所需要的时间一些。以便确保能够对网络安全行为进行完整的关联。对于预设窗口阈值的具体数值,需要根据具体的恶意攻击所需要的时间确定,此处不做具体限定。
并且,在连通图中,也需要确保其中的各节点能够表征一次完整的恶意攻击。这样,不同类型的实体行为之间才能够基于连通图中完整的恶意攻击对应的节点进行关联分析,进一步确保能够对网络安全时间进行完整的关联。
这里需要补充说明的是,在获取到不同类型的实体行为后,可以先将不同类型的实体行为与连通图中的节点进行匹配,当达到预设窗口阈值时,再基于连通图中的关联边对匹配后的实体行为进行关联分析。这样,能够提高关联分析的效率。当然,还可以是在到达预设窗口阈值后,再将不同类型的实体行为与连通图中的节点进行匹配,进而基于连通图中的关联边对匹配后的实体行为进行关联分析。对于采用连通图对不同类型的实体行为进行关联分析的具体执行顺序,此处不做限定。
由上述内容可知,通过预设窗口阈值,当获取不同类型的实体行为的时间积攒到一定程度时,再采用包含一次完整恶意攻击的连通图对这些不同类型的实体行为进行关联分析,能够实现实体行为的完整关联,进而提高实体行为关联分析的完整性。
进一步地,作为对图1所示方法的细化和扩展,为了提高通过连通图对实体行为进行关联计算的效率,进而提高实体行为的关联分析效率,可以仅选择节点中存在关联标识的实体行为与其连接的节点中的实体行为进行关联计算,以及可以优先选择对应的实体行为数量少的关联边进行关联计算。
图11为本申请实施例中采用连通图对实体行为进行关联分析的流程示意图,参见图11所示,步骤S103具体可以包括:
S1101:确定连通图中各关联边对应的行为数。
其中,行为数为关联边两端节点对应的实体行为的数量。
在连通图中,存在有多个节点,相应的两个节点之间还存在有关联边。在针对某一条关联边进行关联计算时,需要将其两端节点中每一个实体行为都与对应节点中的每一个实体行为进行计算。节点中实体行为的数量越多,相应的计算量就越大。因此,需要预先统计出各关联边对应的行为数,进而选择行为数最少的关联边开始计算,能够减小起始的计算量。
在确定各关联边对应的行为数时,可以将关联边对应的两个节点对应的实体行为的数量相乘,相乘后的结果就是相应的关联边的行为数。也可以将关联边对应的两个节点对应的实体行为的数量相加,相加后的结果就是相应的关联边的行为数。对于获取行为数的具体方式,此处不做限定。
举例来说,假设连通图中存在节点A、节点B、节点C和节点D。节点A与节点B连接,节点B与节点C连接,节点C与节点D连接,节点D与节点A连接。节点A对应有10个实体行为,节点B对应有20个实体行为,节点C对应有30个实体行为,节点D对应有40个实体行为。对于节点A与节点B之间的关联边1,其行为数为10×20=200。对于节点B与节点C之间的关联边2,其行为数为20×30=600。对于节点C与节点D之间的关联边3,其行为数为30×40=1200,对于节点D与节点A之间的关联边4,其行为数为40×10=400。
S1102:判断在先前关联边的计算中是否关联出实体行为;若否,则执行S1103;若是,则执行S1106。
也就是说,在当前进行关联计算的阶段,判断在先前关联边的计算中是否关联出实体行为。如果判断结果为还未关联出实体行为,说明当前可能为起始计算,或者可能是前面关联计算结果为不存在符合关联条件的实体行为。而如果判断结果为已关联出实体行为,说明当前并不是起始计算,并且从起始计算开始,已经关联出实体行为,那么,就从已关联出实体行为的节点(对于已关联的两个实体行为,相应节点中的实体行为上都会标记有关联标识)连接的未计算的关联边中选择行为数最少的关联边继续进行计算。
S1103:判断是否存在已计算的节点或者关联边;若否,则执行S1104;若是,则执行S1105。
在这里,判断是否存在已计算的节点或者关联边,同样是在当前进行关联计算的阶段,如果判断结果为不存在已计算的点或者关联边,说明当前为起始计算。而如果判断结果为存在已计算的节点或者关联边,说明当前不是起始计算,并且先前的关联计算中并未关联出符合条件的实体行为。
S1104:从连通图的关联边中选择行为数最少的关联边作为当前计算的目标关联边。
一般来说,目标关联边两端的节点对应的实体行为的数量为多个。
继续上述举例,关联边1的行为数200,关联边2的行为数为600,关联边3的行为数为1200,关联边4的行为数为400。当前计算为起始计算,行为数最少的为200,其对应的是关联边1,那么,可以首先选择关联边1作为起始边,开始进行关联计算。
S1105:退出当前计算。
这里的退出当前计算,是指退出当前阶段的关联计算,即退出起始关联边的计算。在退出当前计算之后,就可以继续选择下一个目标关联边,开始下一阶段的关联计算了。
在选择下一个目标关联边时,如果在起始计算阶段没有关联出实体行为,那么就从连通图未参与过关联计算的关联边中选择行为数最少的关联边作为下一阶段计算的目标关联边。
继续上述举例,在起始计算阶段,选择了关联边1作为起始关联边进行关联计算。当在关联边1的计算过程中没有关联出实体行为时,就从还未参与过关联计算的关联边2、3、4中选择行为数最少的关联边4作为下一个计算的目标关联边。
S1106:从已关联出实体行为的节点连接的未参与过关联计算的关联边中选择行为数最少的关联边作为当前计算的目标关联边。
继续上述举例,假设对关联边1进行计算后,节点A中的5个实体行为分别与节点B中的5个实体行为存在关联。那么,就从与节点A连接的未参与过关联计算的关联边4以及与节点B连接的未参与过关联计算的关联边2这两个关联边中选择行为数最少的关联边进行计算。关联边4对应的行为数可以为关联边1已关联成功的行为数乘以节点D的行为数(5×40=200),关联边2对应的行为数可以为关联边1已关联成功的行为数乘以节点C的行为数(5×30=150),因此,选择关联边2继续进行计算。
S1107:判断目标关联边连接的一个节点对应的实体行为是否存在关联标识;若是,则执行S1108;若否,则执行S1109。
其中,关联标识用于表征相应的两个实体行为先前经过关联计算后确定具有关联关系。
在确定出当前计算的关联边,即目标关联边后,如果目标关联边连接的一个节点已经参与了其它关联边中的关联计算,并且还成功关联出了实体行为(此时会为关联成功的实体行为添加关联标识),那么,在目标关联边的计算过程中,就可以只将该节点中存在关联标识的实体行为与目标关联边连接的另一个节点中所有的实体行为分别进行关联计算。因为该节点中未关联成功的实体行为(即不存在关联标识的实体行为)与另一个节点中的实体行为能够关联成功的概率较低。在一次关联中未成功,说明该节点中未关联成功的实体行为可能并不是连通图中所要寻找的实体行为。所以,只将该节点中已关联成功的实体行为与另一个节点中所有的实体行为进行两两关联计算,能够减少计算的次数,进而提高关联计算的效率。而如果目标关联边连接的一个节点已经参与了其它关联边中的关联计算,但是没有成功关联出实体行为,那么就将目标关联边两端的节点对应的实体行为两两关联进行计算。
S1108:将具有关联标识的实体行为与目标关联边连接的另一个节点对应的实体行为进行关联计算。
继续上述举例,在对关联边2进行关联计算的过程中,由于关联边2一端的节点B对应的实体行为已经进行过关联计算,并且与节点A中的实体行为已成功关联出5个实体行为,也就是节点B中有5个实体行为存在关联标识。而关联边2另一端的节点C对应的实体行为并没有进行过关联计算。因此,可以将节点B中这5个存在关联标识的实体行为与节点C中全部的30个实体行为进行关联计算。这样,计算的次数就会从原来的20×30=600次,变为5×30=150次,大大减少了关联的计算量。
S1109:将目标关联边一端的节点对应的实体行为分别与另一端节点对应的实体行为进行关联计算。
此计算情况一般存在于计算起始边的情况下,即为计算关联边1。当然,如果在先前的关联边计算中都没有成功关联出实体行为,那么此计算情况也可以存在于后续计算过程中。
继续上述举例,将节点A中全部的10实体行为与节点D中全部的40个实体行为进行关联计算。这样,计算的次数就是10×40=400。
按照上述方式继续进行计算,直到连通图中所有的关联边都计算完成。这样,不同类型的实体行为也就完成了关联分析。
这里需要说明的是,在关联计算开始前,可以将各节点对应的实体行为存储在不同的原始实体行为集合中。当某一节点中的一个或多个实体行为与其连接的节点中的一个或多个实体行为关联成功时,可以将各节点中关联成功的实体行为存储于已关联实体行为集合中。通过将实体行为按照处理情况存储于不同的集合中,能够便于实体行为的查找。
在对不同类型的实体行为完成关联分析后,如果没有发现存在关联关系的实体行为,说明这些实体行为并不属于该连通图中指示的恶意行为,那么就可以结束了。而如果发现存在关联关系的实体行为,说明这些存在关联关系的实体行为符合连通图中恶意行为的特征,那么,就需要基于这些存在关联关系的实体行为生成告警事件,以提醒相关人员及时进行处理以及防范。
由上述内容可知,通过在连通图中寻找行为数最少的关联边开始进行计算,并且在关联计算过程中,如果某一节点对应的实体行为存在关联标识,则只将该节点中存在关联标识的实体行为与另一节点中的实体行为进行两两关联计算。这样,能够减小关联的计算量,进而提高关联计算的效率,进一步提升网络实体行为关联分析的实时性。
最后,完整地对本申请实施例提供的实体行为关联分析方法进行说明。
图12为本申请实施例中实体行为关联分析方法的完整流程示意图,参见图12所示,该方法可以包括:
S1201:实时接收不同类型的实体行为,并转换成Map数据格式。
S1202:根据实体行为的类型进行分组。
S1203:根据关联分析规则计算出复杂度最小的边,并作为关联计算的起始边。
S1204:使用相应分组中的实体行为进行起始边的关联计算,并将已关联成功的实体行为存储于已关联实体行为集合中。
S1205:根据关联分析规则计算出复杂度次小的边,并作为下一步计算的关联边。
S1206:使用相应分组中的实体行为进行关联边的计算,并将已关联成功的实体行为存储于已关联实体行为集合中。
S1207:判断连通图中所有的节点和关联边是否已计算;若是,则执行S1208;若否,则继续执行S1205。
S1208:判断已关联实体行为集合是否为空;若是,则执行S1209:若否,则先执行S1210,再执行S1209。
S1209:结束并退出。
S1210:生成告警事件。
这里需要说明的是,上述的实体行为,与前述的实体行为所指的内容相同,均是从各种日志中获取的指定字段的数据。而上述的Map数据格式,就是前述的键值对集合。而上述的关联分析规则,就是图11中关联边的先后计算顺序。
基于同一发明构思,作为对上述方法的实现,本申请实施例还提供了一种实体行为关联分析装置。图13为本申请实施例中实体行为关联分析装置的结构示意图一,参见图13所示,该装置可以包括:
获取单元1301,用于获取不同类型的实体行为;
匹配单元1302,用于将所述不同类型的实体行为分别与连通图中的节点进行匹配,所述连通图中包括多个节点和连接具有关联关系的节点的关联边,一个节点对应一种类型的实体行为;
关联分析单元1303,用于基于所述连通图中的关联边对匹配后的实体行为进行关联分析。
进一步地,作为对图13所示装置的细化和扩展,本申请实施例还提供了一种实体行为关联分析装置。图14为本申请实施例中实体行为关联分析装置的结构示意图二,参见图14所示,该装置可以包括:
配置单元1401,包括:
第一配置子单元14011,用于基于第一指令,从预设配置表中调用出多个节点,并添加到图中,每个节点与恶意行为中一种类型的行为的属性信息对应。
第四配置子单元14012,用于基于所述第三指令,为所述图中的节点配置自计算方式,所述自计算方式用于对实体行为所属的日志进行预处理。
其中,所述自计算方式包括新属性计算、过滤中的至少一个;其中,所述新属性计算用于从日志原有属性中提取特定值作为新的属性,所述过滤用于根据指定条件从日志中选择符合条件的实体行为。
第二配置子单元14013,用于基于第二指令,连接所述图中具有关联关系的节点,得到关联边。
第三配置子单元14014,用于基于第三指令,为所述关联边配置条件,得到连通图,所述条件用于指示所述关联边两端的节点具有关联关系。
其中,所述第一指令、所述第二指令、所述第三指令基于预先统计出的一次完整的恶意攻击行为的特征确定。
获取单元1402,用于获取不同类型的实体行为。
转换单元1403,用将所述不同类型的实体行为分别转换成键值对集合,一个键值对集合对应一个实体行为,所述键值对集合中的键用于表示实体行为的名称,所述键值对集合中键对应的值用于表示相应名称对应的内容,所述内容至少包括实体行为的类型。
存储单元1404,用于将不同类型的实体行为对应的键值对集合存储于内存中。
在这里,连通图中的节点包括一次完整的恶意攻击。
匹配单元1405,用于从内存中将所述不同类型的实体行为对应的键值对集合分别与所述连通图中的每个节点进行匹配,以使一种类型的实体行为对应一个节点。
关联分析单元1406,用于当获取的实体行为的时间窗口达到预设窗口阈值时,基于所述连通图中的关联边对匹配后的实体行为进行关联分析;其中,所述预设窗口阈值基于进行一次所述完整的恶意攻击所需要的时间确定。
所述关联分析单元1406,包括:
选择子单元14061,用于在所述连通图中选择当前未参与过关联计算的目标关联边,所述目标关联边两端的节点对应的实体行为的数量为多个。
所述选择子单元14061,具体用于:确定所述连通图中各关联边对应的行为数,所述行为数为关联边两端节点对应的实体行为的数量;当在先前关联边的计算中未关联出实体行为时,从所述连通图未参与过关联计算的关联边中选择行为数最少的关联边作为所述目标关联边;或者,当在先前关联边的计算中已关联出实体行为时,从已关联出实体行为的节点连接的未参与过关联计算的关联边中选择行为数最少的关联边作为所述目标关联边。
关联子单元14062,用于当所述目标关联边连接的一个节点对应的实体行为存在关联标识时,将具有关联标识的实体行为与所述目标关联边连接的另一个节点对应的实体行为进行关联计算,所述关联标识用于表征相应的两个实体行为先前经过关联计算后确定具有关联关系。
关联子单元14062,还用于当所述目标关联边两端的节点对应的实体行为都不存在关联标识时,将所述目标关联边一端的节点对应的实体行为分别与另一端节点对应的实体行为进行关联计算。
这里需要指出的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
基于同一发明构思,本申请实施例还提供了一种电子设备。图15为本申请实施例中电子设备的结构示意图,参见图15所示,该电子设备可以包括:处理器1501、存储器1502、总线1503;其中,处理器1501、存储器1502通过总线1503完成相互间的通信;处理器1501用于调用存储器1502中的程序指令,以执行上述一个或多个实施例中的方法。
这里需要指出的是,以上电子设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请电子设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,该存储介质可以包括:存储的程序;其中,在程序运行时控制存储介质所在设备执行上述一个或多个实施例中的方法。
这里需要指出的是,以上存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。