CN112712125B - 事件流的模式匹配方法、装置、存储介质及处理器 - Google Patents
事件流的模式匹配方法、装置、存储介质及处理器 Download PDFInfo
- Publication number
- CN112712125B CN112712125B CN202011644912.4A CN202011644912A CN112712125B CN 112712125 B CN112712125 B CN 112712125B CN 202011644912 A CN202011644912 A CN 202011644912A CN 112712125 B CN112712125 B CN 112712125B
- Authority
- CN
- China
- Prior art keywords
- event
- state
- events
- condition
- transition condition
- 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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Abstract
本申请公开了一种事件流的模式匹配方法、装置、存储介质及处理器。该方法包括:由多个事件的特征以及多个事件的顺序关系确定目标匹配模式;根据目标匹配模式构建第一有穷状态机;为第一有穷状态机中指向第一事件对应的状态节点的连接边设置第一状态迁移条件,并为指向第二事件对应的状态节点的连接边设置第二状态迁移条件,得到第二有穷状态机;基于第二有穷状态机,从预设时间段内的事件流中获取与目标匹配模式匹配的事件序列。通过本申请,解决了相关技术中需要采用多个NFA结构以及多个共享缓存表示顺序不确定的事件序列时,造成数据冗余以及占用较多存储资源多的问题。
Description
技术领域
本申请涉及事件流模式匹配技术领域,具体而言,涉及一种事件流的模式匹配方法、装置、存储介质及处理器。
背景技术
事件流模式匹配是一种新型的数据处理方式,持续到达的事件通过复杂的模式匹配到一起,匹配的事件最终转化为新的事件输出,近年来,事件流模式匹配4越来越多的被引入到金融服务、资产管理和客户分析等应用中。
事件流模式匹配分为编译和运行两个阶段,在编译阶段,需要先定义需要匹配的模式,再根据模式构建出对应的NFA(non-determinism finite automate,非确定型有穷自动机)的结构,以及确定状态之间的边对应的状态迁移条件。在运行阶段,根据当前事件检查状态迁移条件是否成立,在成立的情况下将事件写入共享缓存中对应当前状态的缓存页中,进行状态迁移并在当前状态为匹配成功的情况下找到组成该匹配的所有事件。
但是,相关技术中的模式中的所有事件都具有明确的先后顺序,无法通过单一的NFA表示不确定顺序的事件序列。如果需要表示顺序不确定的事件序列,需要多个NFA和多个共享缓存,同时会造成多个共享缓存的数据冗余和计算冗余。
针对相关技术中需要采用多个NFA结构以及多个共享缓存表示顺序不确定的事件序列时,造成数据冗余以及占用较多存储资源多的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供一种事件流的模式匹配方法、装置、存储介质及处理器,以解决相关技术中需要采用多个NFA结构以及多个共享缓存表示顺序不确定的事件序列时,造成数据冗余以及占用较多存储资源多的问题。
根据本申请的一个方面,提供了一种事件流的模式匹配方法。该方法包括:由多个事件的特征以及多个事件的顺序关系确定目标匹配模式,其中,多个事件中包括至少一组第一事件,第一事件为目标匹配模式下执行顺序不确定的事件;根据目标匹配模式构建第一有穷状态机,其中,第一有穷状态机包括初始状态节点、多个事件对应的状态节点以及多个事件对应的状态节点之间的连接边;为第一有穷状态机中指向第一事件对应的状态节点的连接边设置第一状态迁移条件,并为指向第二事件对应的状态节点的连接边设置第二状态迁移条件,得到第二有穷状态机,其中,第二事件为目标匹配模式下执行顺序确定的事件,第二状态迁移条件用于判断事件流中的事件是否满足第一事件的第一判定条件;基于第二有穷状态机,从预设时间段内的事件流中获取与目标匹配模式匹配的事件序列。
可选地,根据目标匹配模式构建第一有穷状态机包括:确定初始状态节点;构建第一事件对应的状态节点,并构建第二事件对应的状态节点,得到多个事件对应的状态节点;根据多个事件的顺序关系,确定多个事件对应的状态节点之间的连接边;由初始状态节点、多个事件对应的状态节点以及多个事件对应的状态节点之间的连接边,构成第一有穷状态机。
可选地,在为第一有穷状态机中指向第一事件对应的状态节点的连接边设置第一状态迁移条件之前,该方法还包括:基于第二有穷状态机包含的第一状态节点的个数确定初始掩码值;基于目标第一事件的特征对应预设映射表中的数值,确定待匹配事件的特征满足目标第一事件的特征的条件函数,其中,目标第一事件为多个事件中的第一事件之一的事件;根据初始掩码值以及条件函数之间的逻辑运算式确定第一判定条件,其中,第一判定条件用于判定待匹配事件是否满足目标第一事件;基于第一判定条件,确定目标第一事件对应的状态节点对应的第一状态迁移条件。
可选地,在为指向第二事件对应的状态节点的连接边设置第二状态迁移条件之前,该方法还包括:确定待匹配事件的特征是否满足第二事件的特征的第二判定条件,并基于第二判定条件确定第二状态迁移条件。
可选地,基于第二有穷状态机,从预设时间段内的事件流中获取与目标匹配模式匹配的事件序列包括:确定初始状态节点,并创建初始状态节点对应的中间状态;获取事件流中的当前事件,并根据当前事件的特征判断当前事件是否满足初始状态节点指向下一状态节点的状态迁移条件,其中,在下一状态节点为第一事件对应的状态节点时,状态迁移条件为第一状态迁移条件,在下一状态节点为第二事件对应的状态节点时,状态迁移条件为第二状态迁移条件;在当前事件满足初始状态节点指向下一状态节点的状态迁移条件的情况下,进行状态迁移,并将当前事件写入缓存中;创建下一状态节点对应的中间状态,获取事件流中更新后的当前事件,并根据当前事件的特征判断当前事件是否满足下一状态节点指向再下一状态节点的状态迁移条件,直至事件流中的更新后的当前事件满足指向最后一个状态节点的状态迁移条件,进行状态迁移,将当前事件写入缓存中,其中,中间状态至少包含当前事件的特征以及当前事件对应预设映射表的数值;获取缓存中写入的事件序列,并将事件序列确定为与目标匹配模式匹配的事件序列。
可选地,在下一状态节点为第一事件对应的状态节点时,创建下一状态节点对应的中间状态,获取事件流中更新后的当前事件,并根据当前事件的特征判断当前事件是否满足下一状态节点指向再下一状态节点的状态迁移条件包括:根据中间状态中包含的信息以及当前事件的特征,计算条件函数的值,并计算条件函数的值与初始掩码值的逻辑运算结果;基于逻辑运算结果判断当前事件是否满足第一判定条件,在满足第一判定条件的情况下,基于初始掩码值以及逻辑运算结果确定更新后的掩码值,并进行状态迁移。
可选地,多个事件为预设网络攻击行为的多个网络操作,第一事件为预设网络攻击行为中顺序不确定的网络操作,第二事件为预设网络攻击行为中顺序确定的网络操作。
根据本申请的另一方面,提供了一种事件流的模式匹配装置。该装置包括:第一确定单元,用于由多个事件的特征以及多个事件的顺序关系确定目标匹配模式,其中,多个事件中包括至少一组第一事件,第一事件为目标匹配模式下执行顺序不确定的事件;第一构建单元,用于根据目标匹配模式构建第一有穷状态机,其中,第一有穷状态机包括初始状态节点、多个事件对应的状态节点以及多个事件对应的状态节点之间的连接边;第一设置单元,用于为第一有穷状态机中指向第一事件对应的状态节点的连接边设置第一状态迁移条件,并为指向第二事件对应的状态节点的连接边设置第二状态迁移条件,得到第二有穷状态机,其中,第二事件为目标匹配模式下执行顺序确定的事件,第二状态迁移条件用于判断事件流中的事件是否满足第一事件的第一判定条件;第一获取单元,用于基于第二有穷状态机,从预设时间段内的事件流中获取与目标匹配模式匹配的事件序列。
根据本发明实施例的另一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,程序运行时控制非易失性存储介质所在的设备执行一种事件流的模式匹配方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种事件流的模式匹配方法。
通过本申请,采用以下步骤:由多个事件的特征以及多个事件的顺序关系确定目标匹配模式,其中,多个事件中包括至少一组第一事件,第一事件为目标匹配模式下执行顺序不确定的事件;根据目标匹配模式构建第一有穷状态机,其中,第一有穷状态机包括初始状态节点、多个事件对应的状态节点以及多个事件对应的状态节点之间的连接边;为第一有穷状态机中指向第一事件对应的状态节点的连接边设置第一状态迁移条件,并为指向第二事件对应的状态节点的连接边设置第二状态迁移条件,得到第二有穷状态机,其中,第二事件为目标匹配模式下执行顺序确定的事件,第二状态迁移条件用于判断事件流中的事件是否满足第一事件的第一判定条件;基于第二有穷状态机,从预设时间段内的事件流中获取与目标匹配模式匹配的事件序列。解决了相关技术中需要采用多个NFA结构以及多个共享缓存表示顺序不确定的事件序列时,造成数据冗余以及占用较多存储资源多的问题。采用同一个NFA结构表示顺序不确定的事件序列,减少数据冗余的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的事件流的模式匹配方法的流程图;
图2是根据相关技术提供的事件流的模式匹配方法的NFA示意图;
图3是根据相关技术提供的可选的事件流的模式匹配方法中的NFA示意图;
图4是根据本申请实施例提供的事件流的模式匹配方法的NFA示意图;以及
图5是根据本申请实施例提供的事件流的模式匹配装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
NFA:non-determinism finite automate,非确定型有穷自动机。
根据本申请的实施例,提供了一种事件流的模式匹配方法。
图1是根据本申请实施例的事件流的模式匹配方法的流程图。如图1所示,该方法包括以下步骤:
步骤S101,由多个事件的特征以及多个事件的顺序关系确定目标匹配模式,其中,多个事件中包括至少一组第一事件,第一事件为目标匹配模式下执行顺序不确定的事件。
具体地,多个事件除了包括第一事件,还包括第二事件,第二事件为目标匹配模式下执行顺序确定的事件,事件的特征可以为事件名称。
例如,4个事件构成顺序不确定事件序列,其中,事件A最先发生,事件D在事件B,C之后发生,事件B,C发生先后顺序不确定,为第一事件,事件A和事件D为第二事件。
需要说明的是,网络安全领域,通常网络攻击包含多个动作,其中有些动作有确定的先后顺序,例如先连接恶意网站,从网站下载病毒文件,也有一些动作没有确定的先后顺序,例如加密文件和删除文件,通过收集威胁数据流,可选地,在本申请实施例提供的事件流的模式匹配方法中,多个事件为预设网络攻击行为的多个网络操作,第一事件为预设网络攻击行为中顺序不确定的网络操作,第二事件为预设网络攻击行为中顺序确定的网络操作。
通过本实施例,确定顺序不确定的网络操作构成的网络攻击行为对应的目标匹配模式,为更方便高效的找出可能存在的网络攻击行为奠定数据基础。
步骤S102,根据目标匹配模式构建第一有穷状态机,其中,第一有穷状态机包括初始状态节点、多个事件对应的状态节点以及多个事件对应的状态节点之间的连接边。
可选地,在本申请实施例提供的事件流的模式匹配方法中,根据目标匹配模式构建第一有穷状态机包括:确定初始状态节点;构建第一事件对应的状态节点,并构建第二事件对应的状态节点,得到多个事件对应的状态节点;根据多个事件的顺序关系,确定多个事件对应的状态节点之间的连接边;由初始状态节点、多个事件对应的状态节点以及多个事件对应的状态节点之间的连接边,构成第一有穷状态机。
具体地,先确定多个事件对应的状态节点,再根据多个事件之间的关系构建连接边,从而得到目标匹配模式对应的第一有穷状态机,由于目标匹配模式中包含不确定顺序事件,第一有穷状态机为NFA,也即,不确定有穷状态机。
步骤S103,为第一有穷状态机中指向第一事件对应的状态节点的连接边设置第一状态迁移条件,并为指向第二事件对应的状态节点的连接边设置第二状态迁移条件,得到第二有穷状态机,其中,第二事件为目标匹配模式下执行顺序确定的事件,第二状态迁移条件用于判断事件流中的事件是否满足第一事件的第一判定条件。
可选地,在本申请实施例提供的事件流的模式匹配方法中,在为第一有穷状态机中指向第一事件对应的状态节点的连接边设置第一状态迁移条件之前,该方法还包括:基于第二有穷状态机包含的第一状态节点的个数确定初始掩码值;基于目标第一事件的特征对应预设映射表中的数值,确定待匹配事件的特征满足目标第一事件的特征的条件函数,其中,目标第一事件为多个事件中的第一事件之一的事件;根据初始掩码值以及条件函数之间的逻辑运算式确定第一判定条件,其中,第一判定条件用于判定待匹配事件是否满足目标第一事件;基于第一判定条件,确定目标第一事件对应的状态节点对应的第一状态迁移条件。
具体地,状态节点的连接边包括接受迁移条件的边(take边)和不接收迁移条件的边(ignore边),为指向第一事件对应的状态节点的连接边设置第一状态迁移条件,得到接受第一迁移条件的边(take边)和不接收第一迁移条件的边(ignore边)。
其中,在确定第一判定条件时,对于n个不确定顺序状态确定初始掩码值mask=2n-1;定义条件函数f(e)=21-1,表征事件e的特征满足第i个不确定事件顺序事件的条件,若F(e)=0,说明事件e不满足任何不确定事件顺序事件的条件;确定判决条件,C(e,mask)=F(e)&mask,其中,对于指向不确定顺序事件状态的take边添加判定条件F(e)&mask!=0,其中e为当前事件。
可选地,在本申请实施例提供的事件流的模式匹配方法中,在为指向第二事件对应的状态节点的连接边设置第二状态迁移条件之前,该方法还包括:确定待匹配事件的特征是否满足第二事件的特征的第二判定条件,并基于第二判定条件确定第二状态迁移条件。
具体地,待匹配事件的特征与第二事件的特征是否相同,即为待匹配事件的特征是否满足第二事件的特征的第二判定条件,第二状态迁移条件包括满足第二判定条件进行迁移,不满足第二判定条件保持当前状态,状态节点的连接边包括接受迁移条件的边(take边)和不接收迁移条件的边(ignore边),为指向第二事件对应的状态节点的连接边设置第二状态迁移条件,得到接受第二迁移条件的边(take边)和不接收第二迁移条件的边(ignore边)。
步骤S104,基于第二有穷状态机,从预设时间段内的事件流中获取与目标匹配模式匹配的事件序列。
可选地,在本申请实施例提供的事件流的模式匹配方法中,基于第二有穷状态机,从预设时间段内的事件流中获取与目标匹配模式匹配的事件序列包括:确定初始状态节点,并创建初始状态节点对应的中间状态;获取事件流中的当前事件,并根据当前事件的特征判断当前事件是否满足初始状态节点指向下一状态节点的状态迁移条件,其中,在下一状态节点为第一事件对应的状态节点时,状态迁移条件为第一状态迁移条件,在下一状态节点为第二事件对应的状态节点时,状态迁移条件为第二状态迁移条件;在当前事件满足初始状态节点指向下一状态节点的状态迁移条件的情况下,进行状态迁移,并将当前事件写入缓存中;创建下一状态节点对应的中间状态,获取事件流中更新后的当前事件,并根据当前事件的特征判断当前事件是否满足下一状态节点指向再下一状态节点的状态迁移条件,直至事件流中的更新后的当前事件满足指向最后一个状态节点的状态迁移条件,进行状态迁移,将当前事件写入缓存中,其中,中间状态至少包含当前事件的特征以及当前事件对应预设映射表的数值;获取缓存中写入的事件序列,并将事件序列确定为与目标匹配模式匹配的事件序列。
需要说明的是,NFAb算法的运行依赖于共享缓存和中间状态,中间状态表示某个NFA实例的中间状态,包含下一次运算的必要信息,至少包括当前状态,当前版本,开始时间,前一个事件的索引等。当下一个事件来临时,根据当前中间状态,可以确定状态如何迁移,本实施例为中间状态添加mask字段,mask字段保存当前状态下的mask值。
可选地,在本申请实施例提供的事件流的模式匹配方法中,在下一状态节点为第一事件对应的状态节点时,创建下一状态节点对应的中间状态,获取事件流中更新后的当前事件,并根据当前事件的特征判断当前事件是否满足下一状态节点指向再下一状态节点的状态迁移条件包括:根据中间状态中包含的信息以及当前事件的特征,计算条件函数的值,并计算条件函数的值与初始掩码值的逻辑运算结果;基于逻辑运算结果判断当前事件是否满足第一判定条件,在满足第一判定条件的情况下,基于初始掩码值以及逻辑运算结果确定更新后的掩码值,并进行状态迁移。
具体地,开始运行时初始mask为编译时确定的初始mask,当前状态不涉及不确定顺序事件时,忽略mask,仅根据当前事件进行状态迁移;当进入不确定顺序事件状态时,根据中间状态,和当前事件e计算F(e)&mask,判断是否为0;如果F(e)&mask!=0,则创建新的中间状态,mask修改为当前mask-F(e)&mask,状态迁移到下一个;否则mask不变,状态不变;继续下一次计算,直到到达最终状态。
本申请实施例提供的事件流的模式匹配方法,通过由多个事件的特征以及多个事件的顺序关系确定目标匹配模式,其中,多个事件中包括至少一组第一事件,第一事件为目标匹配模式下执行顺序不确定的事件;根据目标匹配模式构建第一有穷状态机,其中,第一有穷状态机包括初始状态节点、多个事件对应的状态节点以及多个事件对应的状态节点之间的连接边;为第一有穷状态机中指向第一事件对应的状态节点的连接边设置第一状态迁移条件,并为指向第二事件对应的状态节点的连接边设置第二状态迁移条件,得到第二有穷状态机,其中,第二事件为目标匹配模式下执行顺序确定的事件,第二状态迁移条件用于判断事件流中的事件是否满足第一事件的第一判定条件;基于第二有穷状态机,从预设时间段内的事件流中获取与目标匹配模式匹配的事件序列。解决了相关技术中需要采用多个NFA结构以及多个共享缓存表示顺序不确定的事件序列时,造成数据冗余以及占用较多存储资源多的问题。进而达到了采用同一个NFA结构表示顺序不确定的事件序列,减少数据冗余的效果。
在一种可选的实施例中:假设需要从事件流中找出如下所述的事件序列,事件A:Name=A,事件B:Name=B,事件C:Name=C,事件D:Name=D。
其中,事件A最先发生,事件D在事件B,C之后发生,事件B,C发生先后顺序不确定,由于存在事件B,C发生先后顺序不确定,该序列称为顺序不确定事件序列。按照相关技术设置有穷状态机时,如图2、图3所示。
具体地,当存在2个事件顺序不确定时,需要2个NFA,分别对应与事件序列A->B->C->D和事件序列A->C->B->D两个序列匹配的并集即为该模式的匹配集合。然而由于存在两个NFA,根据NFAb算法,在运行期间需要有两个独立的共享缓存来配合这两个NFA计算匹配。两个NFA中的状态A的条件完全相同,满足第一个NFA中状态A的条件的事件,必定满足第二个NFA中状态A的条件,因此这些事件会同时被写入两个NFA对应的共享缓存中。这就造成了缓存数据的冗余。在序列中如果存在n个不确定顺序的事件,那么表示该序列需要n!个NFA,发生在这些事件之前的事件在缓存中会有n!-1倍的数据冗余。
本实施例针对顺序不确定事件序列,对NFAb算法作了增强,使得能够以更简单高效的方式处理顺序不确定模式序列的匹配,对应的NFA如图4所示,首先增加一种表示事件之间先后顺序的选项“不确定”,在例1中事件B和事件C的顺序定义为不确定;为模式中的每个不确定顺序的事件在NFA中添加一个对应的状态,如图4中的状态B1,B2;再为每个不确定顺序事件对应状态添加take边和ignore边。
进一步的,在编译阶段,对于2个不确定顺序状态确定初始的mask=22-1=3,定义函数f(e)=2i-1,也即,初始mask=3,F(B)=1,F(C)=2;对于指向不确定顺序事件状态的take边添加判定条件为C(e,mask)=F(e)&mask!=0,其中e为当前事件。再进一步的,通过确定好的NFA,在运行阶段,按照上述实施例的具体运行方式进行运行,从待测事件流中获取A、B、C、D事件序列,以及A、C、B、D事件序列。
通过本实施例,显著提升了事件流匹配模式的表达能力,可以促进事件流上的模式匹配应用到更多场景中。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种事件流的模式匹配装置,需要说明的是,本申请实施例的事件流的模式匹配装置可以用于执行本申请实施例所提供的用于事件流的模式匹配方法。以下对本申请实施例提供的事件流的模式匹配装置进行介绍。
图5是根据本申请实施例的事件流的模式匹配装置的示意图。如图5所示,该装置包括:第一确定单元501、第一构建单元502、第一设置单元503、第一获取单元504。
具体的,第一确定单元501,用于由多个事件的特征以及多个事件的顺序关系确定目标匹配模式,其中,多个事件中包括至少一组第一事件,第一事件为目标匹配模式下执行顺序不确定的事件。
第一构建单元502,用于根据目标匹配模式构建第一有穷状态机,其中,第一有穷状态机包括初始状态节点、多个事件对应的状态节点以及多个事件对应的状态节点之间的连接边。
第一设置单元503,用于为第一有穷状态机中指向第一事件对应的状态节点的连接边设置第一状态迁移条件,并为指向第二事件对应的状态节点的连接边设置第二状态迁移条件,得到第二有穷状态机,其中,第二事件为目标匹配模式下执行顺序确定的事件,第二状态迁移条件用于判断事件流中的事件是否满足第一事件的第一判定条件。
第一获取单元504,用于基于第二有穷状态机,从预设时间段内的事件流中获取与目标匹配模式匹配的事件序列。
综上,本申请实施例提供的事件流的模式匹配装置,通过第一确定单元501,用于由多个事件的特征以及多个事件的顺序关系确定目标匹配模式,其中,多个事件中包括至少一组第一事件,第一事件为目标匹配模式下执行顺序不确定的事件;第一构建单元502,用于根据目标匹配模式构建第一有穷状态机,其中,第一有穷状态机包括初始状态节点、多个事件对应的状态节点以及多个事件对应的状态节点之间的连接边;第一设置单元503,用于为第一有穷状态机中指向第一事件对应的状态节点的连接边设置第一状态迁移条件,并为指向第二事件对应的状态节点的连接边设置第二状态迁移条件,得到第二有穷状态机,其中,第二事件为目标匹配模式下执行顺序确定的事件,第二状态迁移条件用于判断事件流中的事件是否满足第一事件的第一判定条件;第一获取单元504,用于基于第二有穷状态机,从预设时间段内的事件流中获取与目标匹配模式匹配的事件序列。解决了相关技术中需要采用多个NFA结构以及多个共享缓存表示顺序不确定的事件序列时,造成数据冗余以及占用较多存储资源多的问题,进而达到了采用同一个NFA结构表示顺序不确定的事件序列,减少数据冗余的效果。
可选地,在本申请实施例提供的事件流的模式匹配装置中,第一构建单元502还包括:第一确定模块,用于确定初始状态节点;第一构建模块,用于构建第一事件对应的状态节点,并构建第二事件对应的状态节点,得到多个事件对应的状态节点;第二确定模块,用于根据多个事件的顺序关系,确定多个事件对应的状态节点之间的连接边;第二构建模块,用于由初始状态节点、多个事件对应的状态节点以及多个事件对应的状态节点之间的连接边,构成第一有穷状态机。
可选地,在本申请实施例提供的事件流的模式匹配装置中,该装置还包括:第二确定单元,用于在为第一有穷状态机中指向第一事件对应的状态节点的连接边设置第一状态迁移条件之前,基于第二有穷状态机包含的第一状态节点的个数确定初始掩码值;第三确定单元,用于基于目标第一事件的特征对应预设映射表中的数值,确定待匹配事件的特征满足目标第一事件的特征的条件函数,其中,目标第一事件为多个事件中的第一事件之一的事件;第四确定单元,用于根据初始掩码值以及条件函数之间的逻辑运算式确定第一判定条件,其中,第一判定条件用于判定待匹配事件是否满足目标第一事件;第五确定单元,用于基于第一判定条件,确定目标第一事件对应的状态节点对应的第一状态迁移条件。
可选地,在本申请实施例提供的事件流的模式匹配装置中,该装置还包括:第六确定单元,用于在为指向第二事件对应的状态节点的连接边设置第二状态迁移条件之前,确定待匹配事件的特征是否满足第二事件的特征的第二判定条件,并基于第二判定条件确定第二状态迁移条件。
可选地,在本申请实施例提供的事件流的模式匹配装置中,第一获取单元504还包括:第一创建模块,用于确定初始状态节点,并创建初始状态节点对应的中间状态;第一判断模块,用于获取事件流中的当前事件,并根据当前事件的特征判断当前事件是否满足初始状态节点指向下一状态节点的状态迁移条件,其中,在下一状态节点为第一事件对应的状态节点时,状态迁移条件为第一状态迁移条件,在下一状态节点为第二事件对应的状态节点时,状态迁移条件为第二状态迁移条件;第一迁移模块,用于在当前事件满足初始状态节点指向下一状态节点的状态迁移条件的情况下,进行状态迁移,并将当前事件写入缓存中;第一处理模块,用于创建下一状态节点对应的中间状态,获取事件流中更新后的当前事件,并根据当前事件的特征判断当前事件是否满足下一状态节点指向再下一状态节点的状态迁移条件,直至事件流中的更新后的当前事件满足指向最后一个状态节点的状态迁移条件,进行状态迁移,将当前事件写入缓存中,其中,中间状态至少包含当前事件的特征以及当前事件对应预设映射表的数值;第三确定模块,用于获取缓存中写入的事件序列,并将事件序列确定为与目标匹配模式匹配的事件序列。
可选地,在本申请实施例提供的事件流的模式匹配装置中,在下一状态节点为第一事件对应的状态节点时,第一处理模块还包括:第一计算子模块,用于根据中间状态中包含的信息以及当前事件的特征,计算条件函数的值,并计算条件函数的值与初始掩码值的逻辑运算结果;第一确定子模块,用于基于逻辑运算结果判断当前事件是否满足第一判定条件,在满足第一判定条件的情况下,基于初始掩码值以及逻辑运算结果确定更新后的掩码值,并进行状态迁移。
可选地,在本申请实施例提供的事件流的模式匹配装置中,多个事件为预设网络攻击行为的多个网络操作,第一事件为预设网络攻击行为中顺序不确定的网络操作,第二事件为预设网络攻击行为中顺序确定的网络操作。
事件流的模式匹配装置包括处理器和存储器,上述的第一确定单元501、第一构建单元502、第一设置单元503、第一获取单元504等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来进行事件流的模式匹配。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,程序运行时控制非易失性存储介质所在的设备执行一种事件流的模式匹配方法。
本申请实施例还提供了一种电子装置,包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种事件流的模式匹配方法。本文中的电子装置可以是服务器、PC、PAD、手机等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种事件流的模式匹配方法,其特征在于,包括:
由多个事件的特征以及所述多个事件的顺序关系确定目标匹配模式,其中,所述多个事件中包括至少一组第一事件,其中,所述第一事件为所述目标匹配模式下执行顺序不确定的事件;
根据所述目标匹配模式构建第一有穷状态机,其中,所述第一有穷状态机包括初始状态节点、所述多个事件对应的状态节点以及所述多个事件对应的状态节点之间的连接边;
为所述第一有穷状态机中指向所述第一事件对应的状态节点的连接边设置第一状态迁移条件,并为指向第二事件对应的状态节点的连接边设置第二状态迁移条件,得到第二有穷状态机,其中,所述第二事件为所述目标匹配模式下执行顺序确定的事件,所述第二状态迁移条件用于判断事件流中的事件是否满足第一事件的第一判定条件;
基于所述第二有穷状态机,从预设时间段内的事件流中获取与所述目标匹配模式匹配的事件序列。
2.根据权利要求1所述的方法,其特征在于,根据所述目标匹配模式构建第一有穷状态机包括:
确定所述初始状态节点;
构建所述第一事件对应的状态节点,并构建所述第二事件对应的状态节点,得到所述多个事件对应的状态节点;
根据所述多个事件的顺序关系,确定所述多个事件对应的状态节点之间的连接边;
由所述初始状态节点、所述多个事件对应的状态节点以及所述多个事件对应的状态节点之间的连接边,构成所述第一有穷状态机。
3.根据权利要求1所述的方法,其特征在于,在为所述第一有穷状态机中指向所述第一事件对应的状态节点的连接边设置第一状态迁移条件之前,所述方法还包括:
基于所述第二有穷状态机包含的第一状态节点的个数确定初始掩码值;
基于目标第一事件的特征对应预设映射表中的数值,确定待匹配事件的特征满足目标第一事件的特征的条件函数,其中,所述目标第一事件为所述多个事件中的所述第一事件之一的事件;
根据所述初始掩码值以及所述条件函数之间的逻辑运算式确定第一判定条件,其中,所述第一判定条件用于判定所述待匹配事件是否满足所述目标第一事件;
基于所述第一判定条件,确定所述目标第一事件对应的状态节点对应的第一状态迁移条件。
4.根据权利要求1所述的方法,其特征在于,在为指向第二事件对应的状态节点的连接边设置第二状态迁移条件之前,所述方法还包括:
确定待匹配事件的特征是否满足所述第二事件的特征的第二判定条件,并基于所述第二判定条件确定所述第二状态迁移条件。
5.根据权利要求3所述的方法,其特征在于,基于所述第二有穷状态机,从预设时间段内的事件流中获取与所述目标匹配模式匹配的事件序列包括:
确定所述初始状态节点,并创建所述初始状态节点对应的中间状态;
获取所述事件流中的当前事件,并根据所述当前事件的特征判断所述当前事件是否满足所述初始状态节点指向下一状态节点的状态迁移条件,其中,在所述下一状态节点为所述第一事件对应的状态节点时,所述状态迁移条件为第一状态迁移条件,在所述下一状态节点为第二事件对应的状态节点时,所述状态迁移条件为所述第二状态迁移条件;
在所述当前事件满足所述初始状态节点指向下一状态节点的状态迁移条件的情况下,进行状态迁移,并将所述当前事件写入缓存中;
创建所述下一状态节点对应的中间状态,获取所述事件流中更新后的当前事件,并根据所述当前事件的特征判断所述当前事件是否满足所述下一状态节点指向再下一状态节点的状态迁移条件,直至所述事件流中的更新后的当前事件满足指向最后一个状态节点的状态迁移条件,进行状态迁移,将所述当前事件写入所述缓存中,其中,所述中间状态至少包含所述当前事件的特征以及所述当前事件对应所述预设映射表的数值;
获取所述缓存中写入的事件序列,并将所述事件序列确定为与所述目标匹配模式匹配的事件序列。
6.根据权利要求5所述的方法,其特征在于,在所述下一状态节点为第一事件对应的状态节点时,创建所述下一状态节点对应的中间状态,获取所述事件流中更新后的当前事件,并根据所述当前事件的特征判断所述当前事件是否满足所述下一状态节点指向再下一状态节点的状态迁移条件包括:
根据所述中间状态中包含的信息以及所述当前事件的特征,计算所述条件函数的值,并计算所述条件函数的值与所述初始掩码值的逻辑运算结果;
基于所述逻辑运算结果判断所述当前事件是否满足所述第一判定条件,在满足所述第一判定条件的情况下,基于所述初始掩码值以及所述逻辑运算结果确定更新后的掩码值,并进行状态迁移。
7.根据权利要求1所述的方法,其特征在于,所述多个事件为预设网络攻击行为的多个网络操作,所述第一事件为所述预设网络攻击行为中顺序不确定的网络操作,所述第二事件为所述预设网络攻击行为中顺序确定的网络操作。
8.一种事件流的模式匹配装置,其特征在于,包括:
第一确定单元,用于由多个事件的特征以及所述多个事件的顺序关系确定目标匹配模式,其中,所述多个事件中包括至少一组第一事件,其中,所述第一事件为所述目标匹配模式下执行顺序不确定的事件;
第一构建单元,用于根据所述目标匹配模式构建第一有穷状态机,其中,所述第一有穷状态机包括初始状态节点、所述多个事件对应的状态节点以及所述多个事件对应的状态节点之间的连接边;
第一设置单元,用于为所述第一有穷状态机中指向所述第一事件对应的状态节点的连接边设置第一状态迁移条件,并为指向第二事件对应的状态节点的连接边设置第二状态迁移条件,得到第二有穷状态机,其中,所述第二事件为所述目标匹配模式下执行顺序确定的事件,所述第二状态迁移条件用于判断事件流中的事件是否满足第一事件的第一判定条件;
第一获取单元,用于基于所述第二有穷状态机,从预设时间段内的事件流中获取与所述目标匹配模式匹配的事件序列。
9.一种非易失性存储介质,其特征在于,所非易失性存储介质包括存储的程序,其中,所述程序运行时控制所述非易失性存储介质所在的设备执行权利要求1至7中任意一项所述的事件流的模式匹配方法。
10.一种电子装置,其特征在于,包含处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器用于运行所述计算机可读指令,其中,所述计算机可读指令运行时执行权利要求1至7中任意一项所述的事件流的模式匹配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011644912.4A CN112712125B (zh) | 2020-12-31 | 2020-12-31 | 事件流的模式匹配方法、装置、存储介质及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011644912.4A CN112712125B (zh) | 2020-12-31 | 2020-12-31 | 事件流的模式匹配方法、装置、存储介质及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112712125A CN112712125A (zh) | 2021-04-27 |
CN112712125B true CN112712125B (zh) | 2022-09-06 |
Family
ID=75548091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011644912.4A Active CN112712125B (zh) | 2020-12-31 | 2020-12-31 | 事件流的模式匹配方法、装置、存储介质及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112712125B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259364B (zh) * | 2021-05-27 | 2021-10-22 | 长扬科技(北京)有限公司 | 一种网络事件关联分析方法及装置、计算机设备 |
CN115729642B (zh) * | 2022-11-16 | 2023-09-19 | 北京志凌海纳科技有限公司 | 基于状态机处理用户行为的方法、系统、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958897A (zh) * | 2010-09-27 | 2011-01-26 | 北京系统工程研究所 | 一种安全事件关联分析方法及系统 |
CN102096658A (zh) * | 2011-02-21 | 2011-06-15 | 北京航空航天大学 | 一种基于树形复杂事件处理过程中算子内部处理系统 |
US20110227925A1 (en) * | 2010-03-16 | 2011-09-22 | Imb Corporation | Displaying a visualization of event instances and common event sequences |
CN102214187A (zh) * | 2010-04-12 | 2011-10-12 | 阿里巴巴集团控股有限公司 | 复合事件处理方法及装置 |
CN102347851A (zh) * | 2010-07-29 | 2012-02-08 | 阿里巴巴集团控股有限公司 | 事件处理方法及服务器 |
CN111222022A (zh) * | 2020-01-15 | 2020-06-02 | 奇安信科技集团股份有限公司 | 一种基于正则表达式的匹配方法及装置 |
-
2020
- 2020-12-31 CN CN202011644912.4A patent/CN112712125B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110227925A1 (en) * | 2010-03-16 | 2011-09-22 | Imb Corporation | Displaying a visualization of event instances and common event sequences |
CN102214187A (zh) * | 2010-04-12 | 2011-10-12 | 阿里巴巴集团控股有限公司 | 复合事件处理方法及装置 |
CN102347851A (zh) * | 2010-07-29 | 2012-02-08 | 阿里巴巴集团控股有限公司 | 事件处理方法及服务器 |
CN101958897A (zh) * | 2010-09-27 | 2011-01-26 | 北京系统工程研究所 | 一种安全事件关联分析方法及系统 |
CN102096658A (zh) * | 2011-02-21 | 2011-06-15 | 北京航空航天大学 | 一种基于树形复杂事件处理过程中算子内部处理系统 |
CN111222022A (zh) * | 2020-01-15 | 2020-06-02 | 奇安信科技集团股份有限公司 | 一种基于正则表达式的匹配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112712125A (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
CN107015853B (zh) | 多阶段任务的实现方法和装置 | |
CN109829096B (zh) | 一种数据采集方法、装置、电子设备及存储介质 | |
CN112712125B (zh) | 事件流的模式匹配方法、装置、存储介质及处理器 | |
CN111080304A (zh) | 一种可信关系识别方法、装置及设备 | |
CN111899008B (zh) | 资源转移方法、装置、设备及系统 | |
CN107578338B (zh) | 一种业务发布方法、装置及设备 | |
CN110780870A (zh) | 一种业务执行方法、装置、设备及存储介质 | |
CN110032568B (zh) | 数据结构的读取及更新方法、装置、电子设备 | |
CN112037061A (zh) | 区块链中交易的处理方法、装置、电子设备及存储介质 | |
CN111984264B (zh) | 一种静态库的生成方法和装置 | |
CN111966334A (zh) | 一种业务处理方法、装置及设备 | |
CN109376988B (zh) | 一种业务数据的处理方法和装置 | |
CN117376092A (zh) | 故障根因定位方法、装置、设备及存储介质 | |
CN113850675A (zh) | 用于企业交易关系数据的信息处理方法和装置 | |
CN110928941A (zh) | 一种数据分片抽取方法及装置 | |
CN115827028A (zh) | 系统的升级方法、装置、存储介质以及电子设备 | |
CN115934161A (zh) | 一种代码变更的影响分析方法、装置以及设备 | |
JP6880962B2 (ja) | プログラム分析装置、プログラム分析方法および分析プログラム | |
CN114581241A (zh) | 智能合约的处理方法和装置、处理器及电子设备 | |
CN115048083A (zh) | 组件的可视化方法、装置、存储介质及电子设备 | |
CN111459474B (zh) | 一种模板化的数据处理方法及装置 | |
CN109150993B (zh) | 一种获取网络请求切面的方法、终端装置及存储介质 | |
US10990887B1 (en) | Anything-but matching using finite-state machines | |
CN111738864A (zh) | 一种经营实体所属集团的识别方法、装置及设备 |
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 |