一种深度威胁识别实时引擎的实现方法及系统与流程

文档序号:19219477发布日期:2019-11-26 02:00阅读:163来源:国知局
一种深度威胁识别实时引擎的实现方法及系统与流程

本发明涉及互联网技术领域,尤其涉及一种深度威胁识别实时引擎的实现方法及系统。



背景技术:

深度威胁识别系统-实时引擎(advancedthreatdetection–realtimeengine,简称atd-rte)

atd-rt的主要工作有两方面,第一是特征向量计算,主要是根据输入日志来计算特征向量,此特征向量一般为用户特征向量。第二是规则引擎,通过业务规则判断一个客户(可以用一个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>100andclientip.pv>domain.pv*2and(clientip.uristaticcount/clientip.pv<0.4orclientip.requestpath.uniq<domain.requestpath.uniq)

通过规则引擎可以通过上述业务规则和上述ip的特征向量判断出这个ip是否执行危险行为。

现有的规则引擎使用以下方法进行处理:解析业务规则,将业务规则中的变量替换为所述ip特征向量中此变量对应的具体值,获得一个不含有变量的中缀表达式,计算这个中缀表达式的值,将计算得到的中缀表达式的值作为计算结果。

上述使用中缀表达式的计算方式需要耗费较多的计算量,尤其是在业务规则较多并且需处理的ip特征向量为大型数据时,如何提高规则引擎的处理效率是需要解决的技术问题。



技术实现要素:

为了解决上述技术问题,本发明提供了一种深度威胁识别实时引擎的实现方法及系统。

本发明提供的一种深度威胁识别实时引擎的实现方法,包括:

解析业务规则,所述业务规则为一中缀表达式;

将所述中缀表达式转换为逆波兰式,将所述逆波兰式的元素存储于数组中;

接收待处理的特征向量,针对所述特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对所述特征向量的处理结果:从所述数据组中获取一元素,如果此元素为变量,从所述特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入所述堆栈,如果此元素为运算符,从所述堆栈弹出两个运算数据,对所述两个运算数据进行所述运算符对应的运算,将运算得到的结果压入所述堆栈。

本发明提供的另一种深度威胁识别实时引擎的实现方法,包括:

解析业务规则,所述业务规则为一中缀表达式;

将所述中缀表达式转换为逆波兰式,将所述逆波兰式的元素存储于数组中;

接收待处理的n个特征向量,n为大于1的整数;

针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对所述特征向量的处理结果:从所述数据组中获取一元素,如果此元素为变量,从所述特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入所述堆栈,如果此元素为运算符,从所述堆栈弹出两个运算数据,对所述两个运算数据进行所述运算符对应的运算,将运算得到的结果压入所述堆栈。

本发明提供的另一种深度威胁识别实时引擎的实现方法,包括:

接收待处理的n个特征向量,n为大于1的整数;

解析业务规则,所述业务规则为一中缀表达式;

将所述中缀表达式转换为逆波兰式,将所述逆波兰式的元素存储于数组中;

针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对所述特征向量的处理结果:从所述数据组中获取一元素,如果此元素为变量,从所述特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入所述堆栈,如果此元素为运算符,从所述堆栈弹出两个运算数据,对所述两个运算数据进行所述运算符对应的运算,将运算得到的结果压入所述堆栈。

本发明提供的另一种深度威胁识别实时引擎的实现方法,包括:

接收待处理的n个特征向量和一个业务规则,n为大于1的整数,所述业务规则为一中缀表达式;

解析所述业务规则;

将所述中缀表达式转换为逆波兰式,将所述逆波兰式的元素存储于数组中;

针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对所述特征向量的处理结果:从所述数据组中获取一元素,如果此元素为变量,从所述特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入所述堆栈,如果此元素为运算符,从所述堆栈弹出两个运算数据,对所述两个运算数据进行所述运算符对应的运算,将运算得到的结果压入所述堆栈。

本发明提供的另一种深度威胁识别实时引擎的实现方法,包括:

接收待处理的n个特征向量和m个业务规则,n和m均为大于1的整数,所述业务规则为一中缀表达式;

针对每个业务规则执行以下操作:

解析所述业务规则;

将所述中缀表达式转换为逆波兰式,将所述逆波兰式的元素存储于数组中;

针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为使用所述业务规则对所述特征向量的处理结果:从所述数据组中获取一元素,如果此元素为变量,从所述特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入所述堆栈,如果此元素为运算符,从所述堆栈弹出两个运算数据,对所述两个运算数据进行所述运算符对应的运算,将运算得到的结果压入所述堆栈。

本发明提供的一种深度威胁识别实时引擎的实现系统,包括:

解析模块,用于解析业务规则,所述业务规则为一中缀表达式;

转换模块,将所述中缀表达式转换为逆波兰式,将所述逆波兰式的元素存储于数组中;

接收模块,用于接收待处理的特征向量;

处理模块,针对所述特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对所述特征向量的处理结果:从所述数据组中获取一元素,如果此元素为变量,从所述特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入所述堆栈,如果此元素为运算符,从所述堆栈弹出两个运算数据,对所述两个运算数据进行所述运算符对应的运算,将运算得到的结果压入所述堆栈。

本发明提供的另一种深度威胁识别实时引擎的实现系统,包括:

解析模块,用于解析业务规则,所述业务规则为一中缀表达式;

转换模块,用于将所述中缀表达式转换为逆波兰式,将所述逆波兰式的元素存储于数组中;

接收模块,用于接收待处理的n个特征向量,n为大于1的整数;

处理模块,用于针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对所述特征向量的处理结果:从所述数据组中获取一元素,如果此元素为变量,从所述特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入所述堆栈,如果此元素为运算符,从所述堆栈弹出两个运算数据,对所述两个运算数据进行所述运算符对应的运算,将运算得到的结果压入所述堆栈。

本发明提供的另一种深度威胁识别实时引擎的实现系统,包括:

特征向量接收模块,用于接收待处理的n个特征向量,n为大于1的整数;

规则接收模块,用于接收m个业务规则,m为大于或等于1的整数;所述业务规则为一中缀表达式;

解析模块,用于解析所述业务规则;

转换模块,用于将所述中缀表达式转换为逆波兰式,将所述逆波兰式的元素存储于数组中;

处理模块,用于针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对所述特征向量的处理结果:从所述数据组中获取一元素,如果此元素为变量,从所述特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入所述堆栈,如果此元素为运算符,从所述堆栈弹出两个运算数据,对所述两个运算数据进行所述运算符对应的运算,将运算得到的结果压入所述堆栈。

本发明可以提高规则引擎的处理效率,尤其适用于需处理的特征向量为大型数据的场景,并且在使用同一业务规则处理多个特征向量时,只对业务规则进行一次解析,可以进一步提高处理效率。本发明典型适用于危险用户的识别,本发明中的特征向量典型的指用户ip的行为特征向量。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是实施例一中深度威胁识别实时引擎的实现方法的流程图;

图2是实施例一中深度威胁识别实时引擎的实现系统的结构图;

图3是实施例二中深度威胁识别实时引擎的实现方法的流程图;

图4是实施例三中深度威胁识别实时引擎的实现方法的流程图;

图5是实施例四中深度威胁识别实时引擎的实现方法的流程图;

图6是实施例四中深度威胁识别实时引擎的实现系统的结构图;

图7是实施例五中深度威胁识别实时引擎的实现方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征向量可以相互任意组合。

本发明典型适用于危险用户的识别,本发明中的特征向量典型的指用户ip的行为特征向量。

实施例一

实施例一适用于使用默认的业务规则处理一特征向量的应用场景,如图1所示,深度威胁识别实时引擎的实现方法包括:

步骤101,解析业务规则,业务规则为一中缀表达式;

步骤102,将中缀表达式转换为逆波兰式,将逆波兰式的元素存储于数组中;

步骤103,接收待处理的特征向量;

步骤104,针对特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对特征向量的处理结果:从数据组中获取一元素,如果此元素为变量,从特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入堆栈,如果此元素为运算符,从堆栈弹出两个运算数据,对两个运算数据进行运算符对应的运算,将运算得到的结果压入堆栈。

如图2所示,实施例一中深度威胁识别实时引擎的实现系统包括:

解析模块,用于解析业务规则,业务规则为一中缀表达式;

转换模块,将中缀表达式转换为逆波兰式,将逆波兰式的元素存储于数组中;

接收模块,用于接收待处理的特征向量;

处理模块,针对特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对特征向量的处理结果:从数据组中获取一元素,如果此元素为变量,从特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入堆栈,如果此元素为运算符,从堆栈弹出两个运算数据,对两个运算数据进行运算符对应的运算,将运算得到的结果压入堆栈。

本实施例一中使用相比于中缀表达式更适用计算机语言的数据结构的逆波兰式,可以提高数据处理效率。

实施例二

实施例二适用于使用默认的业务规则处理多个特征向量的应用场景,如图3所示,深度威胁识别实时引擎的实现方法包括:

步骤301,解析业务规则,业务规则为一中缀表达式;

步骤302,将中缀表达式转换为逆波兰式,将逆波兰式的元素存储于数组中;

步骤303,接收待处理的n个特征向量,n为大于1的整数;

步骤304,针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对特征向量的处理结果:从数据组中获取一元素,如果此元素为变量,从特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入堆栈,如果此元素为运算符,从堆栈弹出两个运算数据,对两个运算数据进行运算符对应的运算,将运算得到的结果压入堆栈。

实施例二中深度威胁识别实时引擎的实现系统的结构与实施例一中的结构相同,包括:

解析模块,用于解析业务规则,业务规则为一中缀表达式;

转换模块,用于将中缀表达式转换为逆波兰式,将逆波兰式的元素存储于数组中;

接收模块,用于接收待处理的n个特征向量,n为大于1的整数;

处理模块,用于针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对特征向量的处理结果:从数据组中获取一元素,如果此元素为变量,从特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入堆栈,如果此元素为运算符,从堆栈弹出两个运算数据,对两个运算数据进行运算符对应的运算,将运算得到的结果压入堆栈。

实施例三

实施例三同样适用于使用默认的业务规则处理多个特征向量的应用场景,如图4所示,深度威胁识别实时引擎的实现方法包括:

步骤401,接收待处理的n个特征向量,n为大于1的整数;

步骤402,解析业务规则,业务规则为一中缀表达式;

步骤403,将中缀表达式转换为逆波兰式,将逆波兰式的元素存储于数组中;

步骤404,针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对特征向量的处理结果:从数据组中获取一元素,如果此元素为变量,从特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入堆栈,如果此元素为运算符,从堆栈弹出两个运算数据,对两个运算数据进行运算符对应的运算,将运算得到的结果压入堆栈。

实施例三中深度威胁识别实时引擎的实现系统与实施例二中的相同。

实施例二和实施例三中,在处理多个特征向量时,对同一业务规则只解析一次,相比于现有技术中每处理一特征向量解析一次业务规则的方式,大大减少冗余处理,提高处理效率。

实施例四

实施例四适用于使用一个指定业务规则处理多个特征向量的应用场景,如图5所示,深度威胁识别实时引擎的实现方法包括:

步骤501,接收待处理的n个特征向量和一个业务规则,n为大于1的整数,业务规则为一中缀表达式;

步骤502,解析业务规则;

步骤503,将中缀表达式转换为逆波兰式,将逆波兰式的元素存储于数组中;

步骤504,针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对特征向量的处理结果:从数据组中获取一元素,如果此元素为变量,从特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入堆栈,如果此元素为运算符,从堆栈弹出两个运算数据,对两个运算数据进行运算符对应的运算,将运算得到的结果压入堆栈。

如图6所示,实施例四中深度威胁识别实时引擎的实现系统包括:

特征向量接收模块,用于接收待处理的n个特征向量,n为大于1的整数;

规则接收模块,用于接收m个业务规则,m为1;所述业务规则为一中缀表达式;

解析模块,用于解析业务规则;

转换模块,用于将中缀表达式转换为逆波兰式,将逆波兰式的元素存储于数组中;

处理模块,用于针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为对特征向量的处理结果:从数据组中获取一元素,如果此元素为变量,从特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入堆栈,如果此元素为运算符,从堆栈弹出两个运算数据,对两个运算数据进行运算符对应的运算,将运算得到的结果压入堆栈。

实施例五

实施例五适用于使用多个指定业务规则处理多个特征向量的应用场景,如图7所示,深度威胁识别实时引擎的实现方法包括:

步骤701,接收待处理的n个特征向量和m个业务规则,n和m均为大于1的整数,业务规则为一中缀表达式;

步骤702,针对每个业务规则执行以下操作:

解析业务规则;

将中缀表达式转换为逆波兰式,将逆波兰式的元素存储于数组中;

针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为使用业务规则对特征向量的处理结果:从数据组中获取一元素,如果此元素为变量,从特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入堆栈,如果此元素为运算符,从堆栈弹出两个运算数据,对两个运算数据进行运算符对应的运算,将运算得到的结果压入堆栈。

实施例五中深度威胁识别实时引擎的实现系统的结构与实施例四中的结构相同,包括:

特征向量接收模块,用于接收待处理的n个特征向量,n为大于1的整数;

规则接收模块,用于接收m个业务规则,m为大于1的整数;所述业务规则为一中缀表达式;

解析模块,用于解析每个业务规则;

转换模块,用于将中缀表达式转换为逆波兰式,将逆波兰式的元素存储于数组中;

处理模块,用于针对每个特征向量循环执行以下内容直至从堆栈中弹出最后一个数据并将此数据作为使用业务规则对特征向量的处理结果:从数据组中获取一元素,如果此元素为变量,从特征向量中查找到此变量的值,将此值压入堆栈,如果此元素为常量,将此常量压入堆栈,如果此元素为运算符,从堆栈弹出两个运算数据,对两个运算数据进行运算符对应的运算,将运算得到的结果压入堆栈。

下面通过具体实施例详细说明本方法。

具体实施例

业务规则为:

clientip.pv>100andclientip.pv>domain.pv*2and(clientip.uristaticcount/clientip.pv<0.4orclientip.requestpath.uniq<domain.requestpath.uniq)

将业务规则转为逆波兰式,存放到数组中,此数组为:

[clientip.pv,100.0,>,clientip.pv,domain.pv,2.0,*,>,and,clientip.uristaticcount,clientip.pv,/,0.4,<,clientip.requestpath.uniq,domain.requestpath.uniq,<,or,and]

用户特征向量为:

{"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":"220.8.2.1"}

规则引擎计算过程如下表所示:

上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。

以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1