CN110493167B - 一种高效能深度威胁识别引擎的实现方法及系统 - Google Patents
一种高效能深度威胁识别引擎的实现方法及系统 Download PDFInfo
- Publication number
- CN110493167B CN110493167B CN201810772805.6A CN201810772805A CN110493167B CN 110493167 B CN110493167 B CN 110493167B CN 201810772805 A CN201810772805 A CN 201810772805A CN 110493167 B CN110493167 B CN 110493167B
- Authority
- CN
- China
- Prior art keywords
- value
- leaf node
- calculating
- variable
- cached
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种高效能深度威胁识别引擎的实现方法及系统,此方法包括:解析业务规则,业务规则为一中缀表达式;将中缀表达式转换成组成元素为比较表达式和逻辑运算符的逆波兰式;根据逆波兰式构建抽象语法树,抽象语法树的非叶子节点为逆波兰式中的逻辑运算符,叶子节点为逆波兰式中的比较表达式;根据待处理的特征向量中各变量的具体值计算抽象语法树的值,其中:计算叶子节点的值时,判断叶子节点的组成元素是否已缓存,如果叶子节点的组成元素已缓存,使用已缓存的叶子节点的组成元素计算叶子节点的值,如果叶子节点的组成元素未缓存,确定叶子节点的组成元素的值并缓存。本发明通过缓存的方式可以有效提高规则引擎的处理效率。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种高效能深度威胁识别引擎的实现方法及系统。
背景技术
深度威胁识别系统-实时引擎(advanced threat detection–real time engine,简称Atd-rte)的主要工作有两方面,第一方面是特征向量计算,主要是根据输入日志来计算特征向量,此特征向量一般为用户特征向量。第二方面是规则引擎,通过业务规则判断一个客户(可以用一个IP地址标识一个客户)是否有威胁行为。
例如,一个IP的特征向量如下:
{"domain.pv":1.3461538461538463,"clientIP.pv":120.0,"clientIP.uriStaticCount":0.0,"clientIP.requestPath.most":0.175,"clientIP.requestPath.uniq":100.0,"clientIP.requestPath.mrr":0.2857142857142857,"clientIP.requestPath.mstr":"/hehetest","clientIP":"220.8.2.1"}
业务规则如下:
clientIP.pv>100and clientIP.pv>domain.pv*2and(clientIP.uriStaticCount/clientIP.pv<0.4 or clientIP.requestPath.uniq<domain.requestPath.uniq)
通过规则引擎可以通过上述业务规则和上述IP的特征向量判断出这个IP是否执行危险行为。
现有的规则引擎使用以下方法进行处理:解析业务规则,将业务规则中的变量替换为所述IP特征向量中此变量对应的具体值,获得一个不含有变量的中缀表达式,计算这个中缀表达式的值,将计算得到的中缀表达式的值作为计算结果。规则引擎一般由较多的规则组成。多条规则中会用到相同的变量、计算表达式或者比较表达式,对每一个重复的变量、计算表达式或者比较表达式进行计算,会造成计算资源的浪费。
如何提高规则引擎的处理效率是需要解决的技术问题。
发明内容
为了解决上述技术问题,本发明提供了高效能深度威胁识别引擎的实现方法及系统。
本发明提供的高效能深度威胁识别引擎的实现方法,包括:
解析业务规则,所述业务规则为一中缀表达式;
将所述中缀表达式转换成组成元素为比较表达式和逻辑运算符的逆波兰式;
根据所述逆波兰式构建抽象语法树,所述抽象语法树的非叶子节点为所述逆波兰式中的逻辑运算符,叶子节点为所述逆波兰式中的比较表达式;
根据待处理的特征向量中各变量的具体值计算所述抽象语法树的值,其中:计算叶子节点的值时,判断所述叶子节点的组成元素是否已缓存,如果所述叶子节点的组成元素已缓存,使用已缓存的所述叶子节点的组成元素计算所述叶子节点的值,如果所述叶子节点的组成元素未缓存,确定所述叶子节点的组成元素的值并缓存;
所述叶子节点的组成元素包括以下参数中的至少一种:变量、算术表达式、比较表达式。
上述高效能深度威胁识别引擎的实现方法还具有以下特点:
所述将所述逆波兰式转换为抽象语法树还包括:将所述抽象语法树的叶子节点转换成组成元素为变量、计算符和比较运算符的逆波兰式。
上述高效能深度威胁识别引擎的实现方法还具有以下特点:
如果所述叶子节点的组成元素未缓存,确定所述叶子节点的组成元素的值包括:
所述参数为变量时,从所述特征向量中查找所述变量的值;
所述参数为算术表达式时,计算所述算术表达式的值,其中,所述计算所述算术表达式的值包括:确定所述算术表达式包含的各变量,判断变量的值已缓存时,从缓存中加载所述变量的值,判断变量的值未缓存时,从所述特征向量中查找所述变量的值,根据所述算术表达式包含的各变量的值计算算术表达式的值;
所述参数为比较表达式时,计算比较表达式的值,其中,所述计算比较表达式的值包括:确定所述比较表达式包含的各算术表达式和各变量,判断变量的值已缓存时,从缓存中加载所述变量的值,判断变量的值未缓存时,从所述特征向量中查找所述变量的值,判断算术表达式的值已缓存时,从缓存中加载所述算术表达式的值,判断算术表达式的值未缓存时,计算算术表达式的值,根据所述比较表达式包含的各算术表达式和各变量的值计算所述比较表达式的值。
上述高效能深度威胁识别引擎的实现方法还具有以下特点:
所述根据待处理的特征向量中各变量的具体值计算所述抽象语法树的值包括计算非叶子节点的值,所述计算非叶子节点的值包括:所述非叶子节点为和运算符时,计算所述非叶子节点的一子树的值,此子树的值为否时,确定所述非叶子节点的值为否,此子树的值为是时,计算另一子树的值,将此子树的值作为所述非叶子节点的值。
上述高效能深度威胁识别引擎的实现方法还具有以下特点:
所述根据待处理的特征向量中各变量的具体值计算所述抽象语法树的值包括计算非叶子节点的值,所述计算非叶子节点的值包括:所述非叶子节点为或运算符时,计算所述非叶子节点的一子树的值,此子树的值为是时,确定所述非叶子节点的值为是,此子树的值为否时,计算另一子树的值,将此子树的值作为所述非叶子节点的值。
本发明提供的高效能深度威胁识别引擎的系统,包括:
解析模块,用于解析业务规则,所述业务规则为一中缀表达式;
转换模块,用于将所述中缀表达式转换成组成元素为比较表达式和逻辑运算符的逆波兰式;
构建模块,根据所述逆波兰式构建抽象语法树,所述抽象语法树的非叶子节点为所述逆波兰式中的逻辑运算符,叶子节点为所述逆波兰式中的比较表达式;
处理模块,用于根据待处理的特征向量中各变量的具体值计算所述抽象语法树的值;所述处理模块包括判断单元、叶子节点值计算单元、缓存单元;
所述判断单元,用于判断所述叶子节点的组成元素是否已缓存;
所述叶子节点值计算单元,用于在所述叶子节点的组成元素已缓存时,使用已缓存的所述叶子节点的组成元素计算叶子节点的值;在所述叶子节点的组成元素未缓存时,确定所述叶子节点的组成元素的值;
所述缓存单元,用于缓存所述叶子节点值计算单元确定的所述叶子节点的组成元素的值;
所述叶子节点的组成元素包括以下参数中的至少一种:变量、算术表达式、比较表达式。
上述高效能深度威胁识别引擎的实现系统还具有以下特点:
所述构建模块,还用于将所述抽象语法树的叶子节点转换成组成元素为变量、计算符和比较运算符的逆波兰式。
上述高效能深度威胁识别引擎的实现系统还具有以下特点:
所述叶子节点值计算单元还用于使用以下方法确定所述叶子节点的组成元素的值:
所述参数为变量时,从所述特征向量中查找所述变量的值;
所述参数为算术表达式时,计算所述算术表达式的值,其中,所述计算所述算术表达式的值的方法包括:确定所述算术表达式包含的各变量,判断变量的值已缓存时,从缓存中加载所述变量的值,判断变量的值未缓存时,从所述特征向量中查找所述变量的值,根据所述算术表达式包含的各变量的值计算算术表达式的值;
所述参数为比较表达式时,计算比较表达式的值,其中,所述计算比较表达式的值包括:确定所述比较表达式包含的各算术表达式和各变量,判断变量的值已缓存时,从缓存中加载所述变量的值,判断变量的值未缓存时,从所述特征向量中查找所述变量的值,判断算术表达式的值已缓存时,从缓存中加载所述算术表达式的值,判断算术表达式的值未缓存时,计算算术表达式的值,根据所述比较表达式包含的各算术表达式和各变量的值计算所述比较表达式的值。
上述高效能深度威胁识别引擎的实现系统还具有以下特点:
所述处理模块还包括非叶子节点值计算单元,用于在所述非叶子节点为和运算符时,计算所述非叶子节点的一子树的值,此子树的值为否时,确定所述非叶子节点的值为否,此子树的值为是时,计算另一子树的值,将此子树的值作为所述非叶子节点的值。
上述高效能深度威胁识别引擎的实现系统还具有以下特点:
所述处理模块还包括非叶子节点值计算单元,用于在所述非叶子节点为或运算符时,计算所述非叶子节点的一子树的值,此子树的值为是时,确定所述非叶子节点的值为是,此子树的值为否时,计算另一子树的值,将此子树的值作为所述非叶子节点的值。
本发明通过缓存的方式可以有效提高规则引擎的处理效率,尤其适用于需处理的特征向量为大型数据的场景,并且在计算节点值时,采用省略非必要计算的方式进一步提高处理效率。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是实施例中高效能深度威胁识别引擎的实现方法的流程图;
图2是实施例中高效能深度威胁识别引擎的实现系统的结构图;
图3是具体实施例中构建出的抽象语法树的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征向量可以相互任意组合。
业务规则包括逻辑表达式,此逻辑表达式包括逻辑运算符和比较表达式,比较表达式中包括计算表达式,计算表达式中包括至少一变量。
例如:
业务规则为:
clientIP.pv>100 and clientIP.pv>domain.pv*2 and(clientIP.uriStaticCount/clientIP.pv<0.4 or clientIP.requestPath.uniq<domain.requestPath.uniq)
其中,and表示逻辑与,or表示逻辑或,clientIP.pv>100、clientIP.pv>domain.pv*2、clientIP.uriStaticCount/clientIP.pv<0.4、clientIP.requestPath.uniq<domain.requestPath.uniq为比较表达式。
如图1所示,高效能深度威胁识别引擎的实现方法,包括:
步骤101,解析业务规则,此业务规则为一中缀表达式;
步骤102,将中缀表达式转换成组成元素为比较表达式和逻辑运算符的逆波兰式;
步骤103,根据上述逆波兰式构建抽象语法树,此抽象语法树的非叶子节点为上述逆波兰式中的逻辑运算符,叶子节点为上述逆波兰式中的比较表达式;
步骤104,根据待处理的特征向量中各变量的具体值计算抽象语法树的值,其中:计算叶子节点的值时,判断叶子节点的组成元素是否已缓存,如果叶子节点的组成元素已缓存,使用已缓存的叶子节点的组成元素计算叶子节点的值,如果叶子节点的组成元素未缓存,确定叶子节点的组成元素的值并缓存。其中,叶子节点的组成元素包括以下参数中的至少一种:变量、算术表达式、比较表达式。
步骤103和步骤104之间还包括:将抽象语法树的叶子节点转换成组成元素包括变量、计算符和比较运算符的逆波兰式。具体的:先将叶子节点解析成组成元素包括算术表达式和比较运算符的逆波兰式,再将组成元素包括算术表达式的逆波兰式中的算术表达式进一步转换为组成元素包括参量和计算符的逆波兰式,其中,参量是变量、或者是常量、或者同时包括变量和常量。
步骤104中,如果叶子节点的组成元素未缓存,确定叶子节点的组成元素的值包括:
参数为变量时,从特征向量中查找变量的值;
参数为算术表达式时,计算算术表达式的值,其中,计算算术表达式的值的方法包括:确定算术表达式包含的各变量,判断变量的值已缓存时,从缓存中加载变量的值,判断变量的值未缓存时,从特征向量中查找变量的值,根据算术表达式包含的各变量的值计算算术表达式的值;
参数为比较表达式时,计算比较表达式的值,其中,计算比较表达式的值包括:确定比较表达式包含的各算术表达式和各变量,判断变量的值已缓存时,从缓存中加载变量的值,判断变量的值未缓存时,从特征向量中查找变量的值,判断算术表达式的值已缓存时,从缓存中加载算术表达式的值,判断算术表达式的值未缓存时,计算算术表达式的值,根据比较表达式包含的各算术表达式和各变量的值计算比较表达式的值。其中,计算算术表达式的值的方法与上述描述的计算算术表达式的值的方法相同,具体为:确定算术表达式包含的各变量,判断变量的值已缓存时,从缓存中加载变量的值,判断变量的值未缓存时,从特征向量中查找变量的值,根据算术表达式包含的各变量的值计算算术表达式的值。
为了节省计算步骤,可以省略非必要的计算步骤,例如:
根据待处理的特征向量中各变量的具体值计算抽象语法树的值包括计算非叶子节点的值,计算非叶子节点的值包括:非叶子节点为和运算符时,计算非叶子节点的一子树的值,此子树的值为否时,确定非叶子节点的值为否,此子树的值为是时,计算另一子树的值,将此子树的值作为非叶子节点的值。其中,计算非叶子节点的一子树的值时,此子树可以是默认设置的左子树,或者默认设置的右子树,或者是两个子树中的任意一个。
根据待处理的特征向量中各变量的具体值计算抽象语法树的值包括计算非叶子节点的值,计算非叶子节点的值包括:非叶子节点为或运算符时,计算非叶子节点的一子树的值,此子树的值为是时,确定非叶子节点的值为是,此子树的值为否时,计算另一子树的值,将此子树的值作为非叶子节点的值。其中,计算非叶子节点的一子树的值时,此子树可以是默认设置的左子树,或者默认设置的右子树,或者是两个子树中的任意一个。
如图2所示,高效能深度威胁识别引擎的实现系统,包括:
解析模块,用于解析业务规则,业务规则为一中缀表达式;
转换模块,用于将中缀表达式转换成组成元素为比较表达式和逻辑运算符的逆波兰式;
构建模块,根据逆波兰式构建抽象语法树,抽象语法树的非叶子节点为逆波兰式中的逻辑运算符,叶子节点为逆波兰式中的比较表达式;
处理模块,用于根据待处理的特征向量中各变量的具体值计算抽象语法树的值;处理模块包括判断单元、叶子节点值计算单元、缓存单元;
判断单元,用于判断所述叶子节点的组成元素是否已缓存;
叶子节点值计算单元,用于在叶子节点的组成元素已缓存时,使用已缓存的叶子节点的组成元素计算叶子节点的值;在叶子节点的组成元素未缓存时,确定叶子节点的组成元素的值;
缓存单元,用于缓存叶子节点值计算单元确定的叶子节点的组成元素的值;
叶子节点的组成元素包括以下参数中的至少一种:变量、算术表达式、比较表达式。
其中,
构建模块,还用于将抽象语法树的叶子节点转换成组成元素为变量、计算符和比较运算符的逆波兰式。
叶子节点值计算单元还用于使用以下方法确定叶子节点的组成元素的值:
参数为变量时,从特征向量中查找上述变量的值;
参数为算术表达式时,计算算术表达式的值,其中,计算算术表达式的值的方法包括:确定算术表达式包含的各变量,判断变量的值已缓存时,从缓存中加载变量的值,判断变量的值未缓存时,从特征向量中查找变量的值,根据算术表达式包含的各变量的值计算算术表达式的值;
参数为比较表达式时,计算比较表达式的值,其中,计算比较表达式的值包括:确定比较表达式包含的各算术表达式和各变量,判断变量的值已缓存时,从缓存中加载变量的值,判断变量的值未缓存时,从特征向量中查找变量的值,判断算术表达式的值已缓存时,从缓存中加载算术表达式的值,判断算术表达式的值未缓存时,计算算术表达式的值,根据比较表达式包含的各算术表达式和各变量的值计算比较表达式的值。
处理模块还包括非叶子节点值计算单元,用于在非叶子节点为和运算符时,计算非叶子节点的一子树的值,此子树的值为否时,确定非叶子节点的值为否,此子树的值为是时,计算另一子树的值,将此子树的值作为非叶子节点的值。其中,计算非叶子节点的一子树的值时,此子树可以是默认设置的左子树,或者默认设置的右子树,或者是两个子树中的任意一个。
非叶子节点值计算单元,还用于在非叶子节点为或运算符时,计算非叶子节点的一子树的值,此子树的值为是时,确定非叶子节点的值为是,此子树的值为否时,计算另一子树的值,将此子树的值作为非叶子节点的值。其中,计算非叶子节点的一子树的值时,此子树可以是默认设置的左子树,或者默认设置的右子树,或者是两个子树中的任意一个。
下面通过具体实施例详细说明本方法。
具体实施例
业务规则为一中缀表达式:
clientIP.pv>100 and clientIP.pv>domain.pv*2 and(clientIP.uriStaticCount/clientIP.pv<0.4 or clientIP.requestPath.uniq<domain.requestPath.uniq)
将中缀表达式转换成组成元素为比较表达式和逻辑运算符的逆波兰式:
clientIP.pv>100、clientIP.pv>domain.pv*2、and、clientIP.uriStaticCount/clientIP.pv<0.4、clientIP.requestPath.uniq<domain.requestPath.uniq、or、and
然后基于这个逆波兰式生成一个抽象语法树即AST,如图3所示,此抽象语法树的叶子节点包括:
clientIP.pv>100、
clientIP.pv>domain.pv*2、
clientIP.uriStaticCount/clientIP.pv<0.4、
clientIP.requestPath.uniq<domain.requestPath.uniq。
每一个叶子节点其实是一个比较运算符,例如clientIP.uriStaticCount/clientIP.pv<0.4,将这个叶子节点解析成组成元素包括变量、计算符和比较运算符的逆波兰式;具体的,先将叶子节点解析成组成元素包括算术表达式和比较运算符的逆波兰式:clientIP.uriStaticCount/clientIP.pv、0.4、<。再将此逆波兰式中的算术表达式进一步转换为组成元素为组成元素包括变量和运算符的逆波兰式:clientIP.uriStaticCount、clientIP.pv、/。
用户特征向量为:
{"domain.pv":1.3461538461538463,"clientIP.pv":120.0,"clientIP.uriStaticCount":0.0,"clientIP.requestPath.most":0.175,"clientIP.requestPath.uniq":100.0,"clientIP.requestPath.mrr":0.2857142857142857,"clientIP.requestPath.mstr":"/hehetest","clientIP":"220.8.2.1"}
使用上述用户特征向量的值计算抽象语法树的值。
上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种高效能深度威胁识别引擎的实现方法,其特征在于,包括:
解析业务规则,所述业务规则为一中缀表达式;
将所述中缀表达式转换成组成元素为比较表达式和逻辑运算符的逆波兰式;
根据所述逆波兰式构建抽象语法树,所述抽象语法树的非叶子节点为所述逆波兰式中的逻辑运算符,叶子节点为所述逆波兰式中的比较表达式;
根据待处理的特征向量中各变量的具体值计算所述抽象语法树的值,其中:计算叶子节点的值时,判断所述叶子节点的组成元素是否已缓存,如果所述叶子节点的组成元素已缓存,使用已缓存的所述叶子节点的组成元素计算所述叶子节点的值,如果所述叶子节点的组成元素未缓存,确定所述叶子节点的组成元素的值并缓存;
所述叶子节点的组成元素包括以下参数中的至少一种:变量、算术表达式、比较表达式。
2.如权利要求1所述的高效能深度威胁识别引擎的实现方法,其特征在于,
所述将所述逆波兰式转换为抽象语法树还包括:将所述抽象语法树的叶子节点转换成组成元素为变量、计算符和比较运算符的逆波兰式。
3.如权利要求1所述的高效能深度威胁识别引擎的实现方法,其特征在于,
如果所述叶子节点的组成元素未缓存,确定所述叶子节点的组成元素的值包括:
所述参数为变量时,从所述特征向量中查找所述变量的值;
所述参数为算术表达式时,计算所述算术表达式的值,其中,所述计算所述算术表达式的值包括:确定所述算术表达式包含的各变量,判断变量的值已缓存时,从缓存中加载所述变量的值,判断变量的值未缓存时,从所述特征向量中查找所述变量的值,根据所述算术表达式包含的各变量的值计算算术表达式的值;
所述参数为比较表达式时,计算比较表达式的值,其中,所述计算比较表达式的值包括:确定所述比较表达式包含的各算术表达式和各变量,判断变量的值已缓存时,从缓存中加载所述变量的值,判断变量的值未缓存时,从所述特征向量中查找所述变量的值,判断算术表达式的值已缓存时,从缓存中加载所述算术表达式的值,判断算术表达式的值未缓存时,计算算术表达式的值,根据所述比较表达式包含的各算术表达式和各变量的值计算所述比较表达式的值。
4.如权利要求1所述的高效能深度威胁识别引擎的实现方法,其特征在于,
所述根据待处理的特征向量中各变量的具体值计算所述抽象语法树的值包括计算非叶子节点的值,所述计算非叶子节点的值包括:所述非叶子节点为和运算符时,计算所述非叶子节点的一子树的值,此子树的值为否时,确定所述非叶子节点的值为否,此子树的值为是时,计算另一子树的值,将此子树的值作为所述非叶子节点的值。
5.如权利要求1所述的高效能深度威胁识别引擎的实现方法,其特征在于,
所述根据待处理的特征向量中各变量的具体值计算所述抽象语法树的值包括计算非叶子节点的值,所述计算非叶子节点的值包括:所述非叶子节点为或运算符时,计算所述非叶子节点的一子树的值,此子树的值为是时,确定所述非叶子节点的值为是,此子树的值为否时,计算另一子树的值,将此子树的值作为所述非叶子节点的值。
6.一种高效能深度威胁识别引擎的实现系统,其特征在于,包括:
解析模块,用于解析业务规则,所述业务规则为一中缀表达式;
转换模块,用于将所述中缀表达式转换成组成元素为比较表达式和逻辑运算符的逆波兰式;
构建模块,根据所述逆波兰式构建抽象语法树,所述抽象语法树的非叶子节点为所述逆波兰式中的逻辑运算符,叶子节点为所述逆波兰式中的比较表达式;
处理模块,用于根据待处理的特征向量中各变量的具体值计算所述抽象语法树的值;所述处理模块包括判断单元、叶子节点值计算单元、缓存单元;
所述判断单元,用于判断所述叶子节点的组成元素是否已缓存;
所述叶子节点值计算单元,用于在所述叶子节点的组成元素已缓存时,使用已缓存的所述叶子节点的组成元素计算叶子节点的值;在所述叶子节点的组成元素未缓存时,确定所述叶子节点的组成元素的值;
所述缓存单元,用于缓存所述叶子节点值计算单元确定的所述叶子节点的组成元素的值;
所述叶子节点的组成元素包括以下参数中的至少一种:变量、算术表达式、比较表达式。
7.如权利要求6所述的高效能深度威胁识别引擎的实现系统,其特征在于,
所述构建模块,还用于将所述抽象语法树的叶子节点转换成组成元素为变量、计算符和比较运算符的逆波兰式。
8.如权利要求6所述的高效能深度威胁识别引擎的实现系统,其特征在于,
所述叶子节点值计算单元还用于使用以下方法确定所述叶子节点的组成元素的值:
所述参数为变量时,从所述特征向量中查找所述变量的值;
所述参数为算术表达式时,计算所述算术表达式的值,其中,所述计算所述算术表达式的值的方法包括:确定所述算术表达式包含的各变量,判断变量的值已缓存时,从缓存中加载所述变量的值,判断变量的值未缓存时,从所述特征向量中查找所述变量的值,根据所述算术表达式包含的各变量的值计算算术表达式的值;
所述参数为比较表达式时,计算比较表达式的值,其中,所述计算比较表达式的值包括:确定所述比较表达式包含的各算术表达式和各变量,判断变量的值已缓存时,从缓存中加载所述变量的值,判断变量的值未缓存时,从所述特征向量中查找所述变量的值,判断算术表达式的值已缓存时,从缓存中加载所述算术表达式的值,判断算术表达式的值未缓存时,计算算术表达式的值,根据所述比较表达式包含的各算术表达式和各变量的值计算所述比较表达式的值。
9.如权利要求6所述的高效能深度威胁识别引擎的实现系统,其特征在于,
所述处理模块还包括非叶子节点值计算单元,用于在所述非叶子节点为和运算符时,计算所述非叶子节点的一子树的值,此子树的值为否时,确定所述非叶子节点的值为否,此子树的值为是时,计算另一子树的值,将此子树的值作为所述非叶子节点的值。
10.如权利要求6所述的高效能深度威胁识别引擎的实现系统,其特征在于,
所述处理模块还包括非叶子节点值计算单元,用于在所述非叶子节点为或运算符时,计算所述非叶子节点的一子树的值,此子树的值为是时,确定所述非叶子节点的值为是,此子树的值为否时,计算另一子树的值,将此子树的值作为所述非叶子节点的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810772805.6A CN110493167B (zh) | 2018-07-14 | 2018-07-14 | 一种高效能深度威胁识别引擎的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810772805.6A CN110493167B (zh) | 2018-07-14 | 2018-07-14 | 一种高效能深度威胁识别引擎的实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110493167A CN110493167A (zh) | 2019-11-22 |
CN110493167B true CN110493167B (zh) | 2021-06-29 |
Family
ID=68545423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810772805.6A Active CN110493167B (zh) | 2018-07-14 | 2018-07-14 | 一种高效能深度威胁识别引擎的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110493167B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102983866A (zh) * | 2012-11-14 | 2013-03-20 | 无锡芯响电子科技有限公司 | 一种动态Huffman编码硬件实现系统及其实现方法 |
CN103440331A (zh) * | 2013-09-05 | 2013-12-11 | 五八同城信息技术有限公司 | 基于逆波兰和多叉树的搜索引擎查询语句解析方法 |
CN104484311A (zh) * | 2014-12-15 | 2015-04-01 | 北京国双科技有限公司 | 用于公式的数据处理方法和装置 |
CN104915194A (zh) * | 2015-05-11 | 2015-09-16 | 南京国电南自美卓控制系统有限公司 | 基于算术逆波兰算法的电力故障数据分析公式编辑器 |
CN105022920A (zh) * | 2015-07-07 | 2015-11-04 | 南京国电南自美卓控制系统有限公司 | 基于逆波兰算法公式编辑器的故障录波数据分析系统 |
CN106648753A (zh) * | 2016-11-23 | 2017-05-10 | 北京航天自动控制研究所 | 一种基于逆波兰式算法的判据自动解析方法 |
CN107203500A (zh) * | 2017-01-10 | 2017-09-26 | 大连交通大学 | 基于递归替换展开回溯的excel公式面向对象语言的自动转换方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2909720A1 (en) * | 2014-01-13 | 2015-08-26 | Huawei Technologies Co., Ltd. | Method for pattern processing |
-
2018
- 2018-07-14 CN CN201810772805.6A patent/CN110493167B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102983866A (zh) * | 2012-11-14 | 2013-03-20 | 无锡芯响电子科技有限公司 | 一种动态Huffman编码硬件实现系统及其实现方法 |
CN103440331A (zh) * | 2013-09-05 | 2013-12-11 | 五八同城信息技术有限公司 | 基于逆波兰和多叉树的搜索引擎查询语句解析方法 |
CN104484311A (zh) * | 2014-12-15 | 2015-04-01 | 北京国双科技有限公司 | 用于公式的数据处理方法和装置 |
CN104915194A (zh) * | 2015-05-11 | 2015-09-16 | 南京国电南自美卓控制系统有限公司 | 基于算术逆波兰算法的电力故障数据分析公式编辑器 |
CN105022920A (zh) * | 2015-07-07 | 2015-11-04 | 南京国电南自美卓控制系统有限公司 | 基于逆波兰算法公式编辑器的故障录波数据分析系统 |
CN106648753A (zh) * | 2016-11-23 | 2017-05-10 | 北京航天自动控制研究所 | 一种基于逆波兰式算法的判据自动解析方法 |
CN107203500A (zh) * | 2017-01-10 | 2017-09-26 | 大连交通大学 | 基于递归替换展开回溯的excel公式面向对象语言的自动转换方法 |
Non-Patent Citations (2)
Title |
---|
中缀式到逆波兰式的转换及求值;敬茂华等;《电脑编程技巧与维护》;20100403;全文 * |
基于逆波兰算法实现的电力故障数据分析公式编辑器;曾水根等;《电气应用》;20160720;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110493167A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992935B (zh) | 一种源代码保护方法及装置 | |
US9514286B2 (en) | Context-based security policy evaluation using weighted search trees | |
CN110704518B (zh) | 基于Flink引擎的业务数据处理方法及装置 | |
US9811321B1 (en) | Script compilation | |
KR102018445B1 (ko) | 캐스캐이딩 스타일 시트 파일들의 압축 | |
CN112241439B (zh) | 一种攻击组织发现方法、装置、介质和设备 | |
CN111611152B (zh) | 测试用例生成方法、装置、电子设备及可读存储介质 | |
CN109561163B (zh) | 统一资源定位符重写规则的生成方法及装置 | |
CN111104214B (zh) | 一种工作流应用方法及装置 | |
CN114598597B (zh) | 多源日志解析方法、装置、计算机设备及介质 | |
CN117032668A (zh) | 可视化规则引擎的处理方法、装置、系统及平台 | |
CN108446300A (zh) | 数据信息的扫描方法及装置 | |
CN110493167B (zh) | 一种高效能深度威胁识别引擎的实现方法及系统 | |
CN113885880A (zh) | 一种多规则匹配方法、装置及设备 | |
US9996619B2 (en) | Optimizing web crawling through web page pruning | |
CN112883088B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114697066A (zh) | 网络威胁检测方法和装置 | |
CN110489965B (zh) | 一种深度威胁识别实时引擎的实现方法及系统 | |
CN110022343B (zh) | 自适应事件聚合 | |
CN107493315B (zh) | 一种行为数据的收集方法、资源服务器及存储介质 | |
CN114070844B (zh) | 一种文件下载方法、装置、计算设备及存储介质 | |
CN111144086B (zh) | 一种日志格式化方法及装置、电子设备、存储介质 | |
US9235382B2 (en) | Input filters and filter-driven input processing | |
KR101921123B1 (ko) | 메시지의 필드 인덱싱 방법 | |
KR101770271B1 (ko) | 메시지의 필드 인덱싱 방법 |
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 |