CN112994931B - 一种规则匹配的方法及其设备 - Google Patents

一种规则匹配的方法及其设备 Download PDF

Info

Publication number
CN112994931B
CN112994931B CN202110163017.9A CN202110163017A CN112994931B CN 112994931 B CN112994931 B CN 112994931B CN 202110163017 A CN202110163017 A CN 202110163017A CN 112994931 B CN112994931 B CN 112994931B
Authority
CN
China
Prior art keywords
rule
matching
pattern
pattern string
subsets
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
Application number
CN202110163017.9A
Other languages
English (en)
Other versions
CN112994931A (zh
Inventor
赵洪亮
谢正明
叶建伟
黄�俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nsfocus Technologies Inc, Nsfocus Technologies Group Co Ltd filed Critical Nsfocus Technologies Inc
Priority to CN202110163017.9A priority Critical patent/CN112994931B/zh
Publication of CN112994931A publication Critical patent/CN112994931A/zh
Application granted granted Critical
Publication of CN112994931B publication Critical patent/CN112994931B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/083Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Abstract

本发明公开了本发明提供一种规则匹配的方法及其设备,根据逻辑关系对规则集合进行拆分,以减小单个规则集合生成的状态机的规模,减少内存占用,提高规则匹配的性能和匹配速度。该方法包括:确定规则集合中至少一条规则包含的模式串;将所述规则集合拆分为多个子集合,其中至少一个子集合包括第一规则,所述第一规则为包括至少一个非逻辑与关系的模式串的规则;任意子集合包括第二规则,所述第二规则为包括至少一个逻辑与关系的模式串的规则;根据所述子集合包含的规则对获取的流量数据进行规则匹配。

Description

一种规则匹配的方法及其设备
技术领域
本发明涉及网络安全技术领域,特别涉及一种规则匹配的方法及其设备。
背景技术
规则系统在安全设备中广泛使用,提供威胁识别、应用识别、AV(Anti Virus,反病毒)检测、URL(uniform resource locator,统一资源定位系统)识别等多种功能。规则系统可分为规则集合和规则引擎两部分。
规则集合用于确定待识别目标(即网络流量)的特征,规则集合包含多条规则,每条规则包含多个识别特征,可以是端口特征、长度约束、偏移量约束、字符串特征等,其中每条规则内的识别特征之间存在一种或多种逻辑约束关系。
规则引擎用于实现具体的识别过程,可分为两种:AC(Aho-Corasick automaton,AC自动机)引擎和正则引擎。其中,AC引擎适合小规模规则匹配系统,若规则集合中的识别特征较多,则生成的状态机数量暴涨,导致内存占用较多的问题;正则引擎在工作时一般分为两个阶段:编译阶段和规则匹配阶段,其中编译阶段用于将规则集合编译为状态机,在编译阶段也存在规则集合中识别特征较多导致生成的状态机数量较多,最终导致内存占用较多的问题、匹配速度降低。
发明内容
本发明提供一种规则匹配的方法及其设备,根据逻辑关系对规则集合进行拆分,以减小单个规则集合生成的状态机的规模,减少内存占用,提高规则匹配的性能和匹配速度。
第一方面,本发明实施例提供的一种规则匹配的方法,包括:
确定规则集合中至少一条规则包含的模式串;
将所述规则集合拆分为多个子集合,其中至少一个子集合包括第一规则,所述第一规则为包括至少一个非逻辑与关系的模式串的规则;任意子集合包括第二规则,所述第二规则为包括至少一个逻辑与关系的模式串的规则;
根据所述子集合包含的规则对获取的流量数据进行规则匹配。
本发明实施例通过将规则集合中的模式串拆分到多个子集合中,以减少在进行模式串编译时生成的状态机规模,减少内存占用,提高规则匹配的性能和匹配速度。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则:
包括第一个第二规则的子集合中包括所有的第一规则;
其中,所述第一个第二规则为包括匹配顺序中第一个逻辑与关系的模式串的第二规则。
作为一种可选的实施方式,通过如下任一或任多种方式将所述规则集合拆分为多个子集合:
根据所述模式串的会话类型,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话类型的模式串的规则;
根据所述模式串的会话方向,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话方向的模式串的规则;
根据所述模式串的端口限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同端口限制的模式串的规则;
根据所述模式串的长度限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同长度限制的模式串的规则;
根据所述模式串的匹配周期,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同匹配周期的模式串的规则;
根据所述模式串是否限制匹配顺序,将所述规则集合拆分为多个子集合,其中所述多个子集合包括限制匹配顺序的模式串或不限制匹配顺序的模式串。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述根据所述子集合包含的规则对获取的流量数据进行规则匹配,包括:
根据所述逻辑与模式串的匹配顺序确定所述模式串所在的子集合的匹配顺序;
按所述匹配顺序,根据所述子集合包含的规则对获取的流量数据进行规则匹配。
作为一种可选的实施方式,所述将所述规则集合拆分为多个子集合之后,还包括:
对所述多个子集合进行去重处理;
若所述去重处理后的子集合中的模式串的数量超过阈值,则将所述超过阈值的子集合进行拆分。
第二方面,本发明实施例提供的一种规则匹配的设备,该设备包括处理器和存储器,所述存储器用于存储所述处理器可执行的程序,所述处理器用于读取所述存储器中的程序并执行如下步骤:
确定规则集合中至少一条规则包含的模式串;
将所述规则集合拆分为多个子集合,其中至少一个子集合包括第一规则,所述第一规则为包括至少一个非逻辑与关系的模式串的规则;任意子集合包括第二规则,所述第二规则为包括至少一个逻辑与关系的模式串的规则;
根据所述子集合包含的规则对获取的流量数据进行规则匹配。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述处理器具体被配置为执行:
包括第一个第二规则的子集合中包括所有的第一规则;
其中,所述第一个第二规则为包括匹配顺序中第一个逻辑与关系的模式串的第二规则。
作为一种可选的实施方式,所述处理器被配置为执行通过如下任一或任多种方式将所述规则集合拆分为多个子集合:
根据所述模式串的会话类型,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话类型的模式串的规则;
根据所述模式串的会话方向,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话方向的模式串的规则;
根据所述模式串的端口限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同端口限制的模式串的规则;
根据所述模式串的长度限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同长度限制的模式串的规则;
根据所述模式串的匹配周期,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同匹配周期的模式串的规则;
根据所述模式串是否限制匹配顺序,将所述规则集合拆分为多个子集合,其中所述多个子集合包括限制匹配顺序的模式串或不限制匹配顺序的模式串。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述处理器被配置为执行:
根据所述逻辑与模式串的匹配顺序确定所述模式串所在的子集合的匹配顺序;
按所述匹配顺序,根据所述子集合包含的规则对获取的流量数据进行规则匹配。
作为一种可选的实施方式,所述将所述规则集合拆分为多个子集合之后,所述处理器还被配置为执行:
对所述多个子集合进行去重处理;
若所述去重处理后的子集合中的模式串的数量超过阈值,则将所述超过阈值的子集合进行拆分。
第三方面,本发明实施例提供的一种规则匹配的装置,包括:
确定单元,用于确定规则集合中至少一条规则包含的模式串;
拆分单元,用于将所述规则集合拆分为多个子集合,其中至少一个子集合包括第一规则,所述第一规则为包括至少一个非逻辑与关系的模式串的规则;任意子集合包括第二规则,所述第二规则为包括至少一个逻辑与关系的模式串的规则;
匹配单元,用于根据所述子集合包含的规则对获取的流量数据进行规则匹配。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述拆分单元:
包括第一个第二规则的子集合中包括所有的第一规则;
其中,所述第一个第二规则为包括匹配顺序中第一个逻辑与关系的模式串的第二规则。
作为一种可选的实施方式,所述拆分单元具体用于通过如下任一或任多种方式将所述规则集合拆分为多个子集合:
根据所述模式串的会话类型,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话类型的模式串的规则;
根据所述模式串的会话方向,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话方向的模式串的规则;
根据所述模式串的端口限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同端口限制的模式串的规则;
根据所述模式串的长度限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同长度限制的模式串的规则;
根据所述模式串的匹配周期,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同匹配周期的模式串的规则;
根据所述模式串是否限制匹配顺序,将所述规则集合拆分为多个子集合,其中所述多个子集合包括限制匹配顺序的模式串或不限制匹配顺序的模式串。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述匹配单元具体用于:
根据所述逻辑与模式串的匹配顺序确定所述模式串所在的子集合的匹配顺序;
按所述匹配顺序,根据所述子集合包含的规则对获取的流量数据进行规则匹配。
作为一种可选的实施方式,所述将所述规则集合拆分为多个子集合之后,所述拆分单元还用于:
对所述多个子集合进行去重处理;
若所述去重处理后的子集合中的模式串的数量超过阈值,则将所述超过阈值的子集合进行拆分。
第四方面,本发明实施例还提供计算机存储介质,其上存储有计算机程序,该程序被处理器执行时用于实现上述第一方面所述方法的步骤。
本申请的这些方面或其他方面在以下的实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种规则匹配的方法实施流程图;
图2为本发明实施例提供的一种拆分规则集合的组合方式实施流程图;
图3为本发明实施例提供的一种规则匹配的方式实施流程图;
图4为本发明实施例提供的一种在规则编译阶段拆分规则集合的实施流程图;
图5为本发明实施例提供的一种对子集合E进行拆分的实施流程图;
图6为本发明实施例提供的一种对子集合F进行拆分的实施流程图;
图7为本发明实施例提供的一种基于模式串匹配链E的匹配方法实施流程图;
图8为本发明实施例提供的一种基于模式串匹配链F的匹配方法实施流程图;
图9为本发明实施例提供的一种规则匹配的具体实施流程图;
图10为本发明实施例提供的一种规则匹配的设备示意图;
图11为本发明实施例提供的一种规则匹配的装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
实施例1
规则系统可分为规则集合和规则引擎两部分。其中,规则集合包含多条规则,每条规则包含多个识别特征,每条规则内的识别特征之间允许存在一种或多种逻辑约束关系,尤其对于字符串特征,规则内的多个字符串之间可以存在逻辑与关系,用于表示多个字符串必须都匹配成功;也可以存在逻辑或关系,表示任意一个字符串匹配成功即可;也可以存在逻辑与和逻辑或的混合关系。其中,字符串特征从字符匹配的角度也可以称为模式串。
目前主流的规则系统,是把所有的模式串按照匹配规则定义的流方向(包括但不限于:消息请求方向req、消息响应方向rsp和会话类型(包括但不限于传输控制协议tcp、用户数据报协议udp)简单分为几个模式串集合,例如划分为如下四个模式串集合:tcp-req,tcp-rsp,udp-req,udp-rsp。在规则匹配过程中,依据会话方向和类型会选择对应的模式串集合,然后进行规则匹配。
现有方案的缺点是划分的模式串集合仍然较大,导致编译后的状态机数量偏多,影响规则匹配的性能和内存占用。为了解决现有技术问题,本发明实施例基于每条规则内模式串之间的逻辑关系,对较大规则集合进行拆分,拆分为多个较小规则,即将较大模式串集合进行拆分,拆分为多个较小的模式串集合,这样能够有效降低模式串集合生成的状态机的规模,减少内存占用,提高规则匹配性能。
下面通过一个具体的实施场景对本实施例中的规则匹配的过程进行说明,例如规则集合中包括规则A用于识别HTTP流量,则所述规则A包括如下特征:
模式串,“GET”或“POST”或“CONNECT”或“HEAD”或“PUT”或“DELETE”或“OPTIONS”或“TRACE”;
端口限制:80;
长度限制:[20,1500];
若有网络流量经过安全设备要匹配HTTP协议识别规则时,可以进行如下处理:
步骤00)匹配长度限制特征,即确定该网络流量是否在[20,1500]范围内,若是执行步骤01),否则结束匹配,无法确认是HTTP流量;
步骤01)匹配端口限制特征,即确定该网络流量的端口是否为80,若是执行步骤02),否则结束匹配,无法确认是HTTP流量;
步骤02)匹配模式串,即将网络流量视为待匹配模式串利用模式串进行匹配,若匹配成功,则确认是HTTP流量,否则结束匹配,无法确认是HTTP流量。
其中,规则匹配成功或失败一般都会记录匹配结果,以供其他更高级的逻辑处理。
如图1所示,本发明实施例提供一种规则匹配的方法,该方法的具体实施流程如下所示:
步骤100、确定规则集合中至少一条规则包含的模式串;
本实施例中的模式串用于表征一条规则包含的字符串特征。
需要说明的是,本实施例中的规则集合包括多条规则,每条规则包括多个识别特征,所述识别特征包括但不限于字符串特征(模式串)、端口限制特征、长度限制特征、偏移量约束特征等。
容易理解的是,从规则本身层面而言,规则是由专业人士开发出来的;从安全设备层面而言,获取规则方式有多种途径,包括但不限于在线下载,离线打升级包。对于模式串的编译阶段,既可以在使用规则的安全设备上实现,也可以在安全设备使用规则之前预编译好,安全设备直接使用编译好的结果,即直接进入规则匹配阶段。
本实施例中的规则指的是网络安全设备中的安全监测规则,用于对网络流量中的规则进行匹配,包括但不限于如下任一或任多种:
01)应用识别规则,用于提供应用流量识别能力;
02)IPS(Intrusion Prevension System,入侵预防系统)规则,用于漏洞攻击检测;
03)DLP(Data Loss Prevention,数据泄露防护)规则,用于数据防泄漏检测;
04)AV(antivirus,防病毒)规则,用于基于流式检测的AV检测。
实施中,规则集合中的每条规则包括但不限于以如下任一或任多种识别特征,其中每条规则包含的识别特征可由规则开发者确定,具体如下:
001)字符串特征,又称模式串,例如HTTP(HyperText Transfer Protocol,超文本传输协议)中会固定出现“GET/POST/HOST/User-Agent”等字符串,这些字符串可视为识别HTTP流量的字符串特征;
其中,模式串之间可以是“与”的关系,也可以是“或”的关系,还可以是混合存在“与”和“或”的关系。例如模式串A、模式串B、模式串C之间的逻辑关系,可以是A&&B&&C或A||B||C或(A||B)&&C等类型的逻辑关系。
002)端口限制特征,用于表征所使用的端口,例如SSL(Secure Sockets Layer,安全套接字协议)默认端口是443,该端口可视为识别SSL流量的端口限制特征;
003)长度限制特征,用于表征消息或数据的长度,例如某个协议的第一个消息固定长度为54或者长度在某个范围内,则该固定长度或长度范围可视为长度限制特征;或者某个协议消息格式中固定的前两个字节表示该消息长度,前两个字节也可视为长度限制特征。
004)多个字符串特征之间的逻辑关系,例如HTTP协议中“GET”与“HOST”同时出现,则这两个字符串适用逻辑与关系(&&);又如HTTP协议中的“GET”与“POST”不同时出现,则这两个字符串为逻辑或关系(||),匹配到其中任意一个,都可识别为HTTP流量。利用多个字符串之间的逻辑关系,可以加强匹配规则,减少误报。
在定义了规则之后,安全设备就会对通过设备的网络流量进行规则匹配,其中匹配的过程是以先对模式串集合进行编译,然后进行字符串匹配和其他规则的匹配,其中编译的过程是以模式串集合为单位进行编译的,因此模式串集合越小,编译过程越简单,匹配速度越快。
需要说明的是,本实施例中的规则集合中的每条规则可能包括多个识别特征,而模式串是所述多个识别特征中的一个。
步骤101、将所述规则集合拆分为多个子集合,其中至少一个子集合包括第一规则,所述第一规则为包括至少一个非逻辑与关系的模式串的规则;任意子集合包括第二规则,所述第二规则为包括至少一个逻辑与关系的模式串的规则;
需要说明的是,本发明中的子集合用于表征包括编译过程中使用的模式串集合的规则集合,该子集合中可以只包含模式串,也可以包含模式串和其余识别特征,对此本实施例不作过多限定。本发明实施例将规则集合包含的所有的模式串,拆分到多个子集合中,可以减少编译过程中的状态机规模。可选的,本发明实施例中的子集合包括模式串的规则和不具备逻辑关系的识别特征,如偏移量约束等。
本实施例在确定每条规则包含的模式串之后,根据规则内的模式串之间的逻辑关系,对规则集合进行拆分得到多个集合,从而减少模式串编译的状态机规模,提高匹配速度,降低匹配难度。
实施中,可以根据规则内的模式串之间的逻辑关系拆分规则集合。拆分的目的是为了将逻辑与关系的模式串拆分到不同的子集合中,以减小在同一个规则集合中的逻辑与模式串的规模。
可选的,包含第一规则的子集合的数量小于包含第二规则的子集合的数量。使得包含非逻辑与关系的模式串的子集合的数量小于包含逻辑与关系的模式串的子集合的数量,以提高规则匹配的速度和性能。
在规则匹配的具体实施中,通常通过正则引擎(正则表达式引擎,用于实现正则表达式的匹配过程)先进行模式串编译,再进行规则匹配。而本申请将逻辑与关系的模式串拆分到多个子集合,也就是说本申请实施例中的每个子集合中都包含至少一个逻辑与关系的模式串,对于非逻辑与关系的模式串,本发明实施例可以将所有的非逻辑与关系的模式串拆分到同一个子集合中,也可以拆分到多个子集合中。不论哪种方式,由于本发明实施例将规则内包含的多个逻辑与关系的模式串拆分到多个子集合中,即将原该规则所在的规则集合拆分为多个子集合,从而降低了规则集合中模式串的规模,能够提高编译速度,从而提高了整体的规则匹配性能和速度。
实施中,包括但不限于如下几种子集合:
第1种、所述多个子集合中,其中一个子集合包括所有的非逻辑与关系的模式串和一个逻辑与关系的模式串;其余的子集合中的每个子集合包括一个逻辑与关系的模式串;
第2种、所述多个子集合中,其中一个子集合包括所有的非逻辑与关系的模式串和多个逻辑与关系的模式串;其余的子集合中的每个子集合包括一个逻辑与关系的模式串;
第3种、所述多个子集合中,其中一个子集合包括所有的非逻辑与关系的模式串和多个逻辑与关系的模式串;其余的子集合中的每个子集合包括多个逻辑与关系的模式串;
第4种、所述多个子集合中,每个子集合包括多个非逻辑与关系的模式串和多个逻辑与关系的模式串;
第5种、所述多个子集合中,每个子集合包括多个非逻辑与关系的模式串和一个逻辑与关系的模式串;
第6种、所述多个子集合中,其中部分子集合中的每个子集合包括多个非逻辑与关系的模式串和多个逻辑与关系的模式串,其余部分子集合中的每个子集合包括多个非逻辑与关系的模式串和一个逻辑与关系的模式串。
需要说明的是,上述提供的子集合仅为部分示例,只要按照本实施例中的方法拆分得到的子集合都属于本实施例的保护范围。即本实施例将规则集合中的所有模式串拆分得到的多个子集合的每个子集合都包含至少一个逻辑与关系的模式串,同时至少一个子集合包括至少一个非逻辑与关系的模式串。
本实施例通过上述方式将规则集合拆分成多个子集合之后,通过如下方式对每个子集合中的规则进行规则匹配。
步骤102、根据所述子集合包含的规则对获取的流量数据进行规则匹配。
实施中,首先对每个子集合中的模式串进行编译,生成模式串匹配链之后,再对模式串匹配链中的每个模式串进行匹配,待所述模式串匹配链上的所有模式串都匹配完成后,对规则集合中的不具备逻辑关系的约束规则进行匹配。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则本实施例拆分的子集合包括如下内容:
包括第一个第二规则的子集合中包括所有的第一规则;其中,所述第一个第二规则为包括匹配顺序中第一个逻辑与关系的模式串的第二规则。
需要说明的是,限制匹配顺序的逻辑与模式串,用于表征在进行模式串匹配时需要按照设定的匹配顺序进行匹配。即逻辑与模式串包括A、B、C,逻辑关系为A&&B&&C,匹配顺序为先对模式串A进行匹配,再对模式串B进行匹配,最后对模式串C进行匹配,则模式串A为匹配顺序中的第一个逻辑与关系的模式串。
容易理解的是,第一个第二规则的子集合包括所有的非逻辑与关系的模式串和匹配顺序中第一个逻辑与关系的模式串,其余的子集合包括至少一个逻辑与关系的模式串。那么在进行规则匹配时,若先对第一个第二规则的子集合进行匹配,若匹配失败,则不需要对其余的子集合进行匹配,节省了匹配时间,提高了匹配效率。
作为一种可选的实施方式,本发明实施例还可以通过如下任一或任多种方式将所述规则集合拆分为多个子集合:
方式1、根据所述模式串的会话类型,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话类型的模式串的规则;
其中,所述会话类型用于表征网络流量使用的协议类型,包括但不限于传输控制协议(TCP,Transmission Control Protocol)、用户数据报协议(UDP,User DatagramProtocol)。
方式2、根据所述模式串的会话方向,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话方向的模式串的规则;
其中所述会话方向用于表征网络流量传输的流方向,包括但不限于:请求方向req、响应方向rsp。
方式3、根据所述模式串的端口限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同端口限制的模式串的规则;
其中所述端口限制用于表征网络流量使用的端口和/或端口号;
具体的,本实施例中的端口是计算机网络中的概念,在TCP/IP协议中的传输层定义,用来区分同一个主机上的不同网络进程。很多协议都会有默认端口,比如HTTP默认端口是80,SSL协议默认端口是443,这些默认端口可以用来区分不同的协议。
方式4、根据所述模式串的长度限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同长度限制的模式串的规则;
其中所述长度限制用于表征网络流量数据的长度和/或长度范围。
方式5、根据所述模式串的匹配周期,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同匹配周期的模式串的规则;
其中,所述匹配周期用于表征是单包匹配(对单个数据包的规则匹配)还是跨包匹配(对多个数据包的规则匹配),针对一条规则包含多个模式串的情况下,单包匹配理解为所有模式串在单个数据包内匹配到;跨包匹配理解为允许在多个网络数据包上匹配到所有模式串。
方式6、根据所述模式串是否限制匹配顺序,将所述规则集合拆分为多个子集合,其中所述多个子集合包括限制匹配顺序的模式串或不限制匹配顺序的模式串的规则。
其中,某些规则不仅要求所有模式串都匹配到,还要求匹配的先后顺序。
实施中,上述方式可以单独实施,也可以进行多种组合实施,例如将方式1和方式2结合实施,或,将方式3和方式4结合实施,或者,将方式1-3结合实施,或者将方式1-4结合实施,或者将方式1-5集合实施,或者将方式1-6结合实施等。具体可根据实际需要选择某种方式进行规则集合的拆分,对此本实施例不作过多限定。
可选的,在将上述方式进行组合实施时,可以按一定的顺序依次进行拆分,如图2所示,以将方式1-4组合实施为例,具体拆分步骤如下:
步骤200、根据所述模式串的会话类型,将所述规则集合拆分为多个子集合A,其中所有的子集合A都包括相同会话类型的模式串的规则;
步骤201、根据所述模式串的会话方向,将每个子集合A拆分为多个子集合B,其中所有的子集合B都包括相同会话方向的模式串的规则;
步骤202、根据所述模式串的端口限制,将每个子集合B拆分为多个子集合C,其中所有的子集合C包括相同端口限制的模式串的规则;
实施中,若所述子集合B包括的模式串的端口限制为[80,443,25],则所述子集合B拆分为多个子集合C,其中一个子集合C包括端口限制为80的模式串的规则,另一个子集合C包括端口限制为443的模式串的规则,最后一个子集合C包括端口限制为25的模式串的规则。
步骤203、根据所述模式串的长度限制,将每个子集合C拆分为多个子集合D,其中所有的子集合D包括相同长度限制的模式串的规则;
步骤204、将每个子集合D拆分为多个子集合E,其中一个子集合E包括所有的非逻辑与关系的模式串的规则,其余的每个子集合E包括一个逻辑与关系的模式串的规则;
步骤205、根据所述子集合E包含的规则对获取的流量数据进行规则匹配。
本实施例对上述步骤200~205的执行顺序不作过多限定。
实施中,在匹配的执行顺序上,现有方案中没有考虑到一条规则内存在多条模式串的逻辑关系。比如,规则A内有存在逻辑与关系的模式串a、b、c。若规则A中任一条模式串没有匹配到,规则A匹配失败,但是现有方案仍然会在规则A中的一条模式串未匹配成功时继续匹配剩余的其他模式串,导致不必要的一些规则匹配,从而导致内存资源的浪费,降低了规则匹配的性能。为了解决该技术问题,本发明实施例还提供一种逐次进行匹配的方式,能够有效降低匹配规模,避免进行无效匹配,提高规则匹配的整体性能。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述根据所述子集合包含的规则对获取的流量数据进行规则匹配,包括:
根据所述逻辑与模式串的匹配顺序确定所述模式串所在的子集合的匹配顺序;
按所述匹配顺序,根据所述子集合包含的规则对获取的流量数据进行规则匹配。
本发明实施例采用的匹配顺序是按照逻辑与模式串的匹配顺序确定的,即若规则A内有存在限制匹配顺序的逻辑与关系的模式串a、b、c。匹配顺序为a、b、c,则若规则A中模式串a没有匹配到,则规则A匹配失败,结束匹配。不会继续匹配剩余的模式串,降低匹配规模,提升了规则匹配的性能。
作为一种可选的实施方式,本发明实施例将所述规则集合拆分为多个子集合之后,还包括:
对所述多个子集合进行去重处理;
若所述去重处理后的子集合中的模式串的数量超过阈值,则将所述超过阈值的子集合进行拆分。
容易理解的是,由于每条规则可能包含多个模式串,而一条规则内的模式串是不同的,但多条规则间可能出现相同的模式串。在某些需要精细检测的场景,会出现多条规则包含相同模式串的情况。比如一个网站有多个网页,每个网页功能不同,链接不同,网页A链接是“www.baidu.com/AAAA”,网页B链接是“www.baidu.com/BBBB”。检测网页A的规则的模式串是www.baidu.com和AAAA;检测网页B的规则的模式串是www.baidu.com和BBBB。(在实际HTTP流量中www.baidu.com与AAAA和BBBB是分开的,不是连在一起的,所以要分开作为两条特征串。)那么对每条规则中包含的所有的模式串拆分到不同的子集合之后,多条规则之间可能存在相同的模式串,那么对多条规则拆分后可能得到包含相同模式串的子集合,因此可以对多个子集合进行去重处理,即去除包含相同模式串的子集合。
如图3所示,作为一种可选的实施方式,本发明实施例还包括如下规则匹配的方式:
步骤300、确定规则集合中至少一条规则包含的所有的模式串;
步骤301、将所述所有的模式串作为一个模式串集合拆分成多个模式串集合,其中至少一个模式串集合包括至少一个非逻辑与关系的模式串,任意模式串集合包括至少一个逻辑与关系的模式串;
步骤302、对每个模式串集合进行编译后,生成模式串匹配链;
步骤303、对所述模式串匹配链上的模式串进行匹配;
步骤304、判断是否匹配成功,若是则执行步骤305,否则执行步骤309;
步骤305、判断是否到达模式串匹配链的末尾,若是执行步骤306,否则返回执行步骤303;
步骤306、对所述规则集合中的非模式串的识别特征继续匹配;
步骤307、判断是否匹配成功,若是执行步骤308,否则执行步骤309;
步骤308、进行规则命中处理;
步骤309、匹配结束。
如图4所示,本实施例在规则编译阶段将规则集合进行拆分,将规则集合中包含的大的模式串集合拆分到多个子集合中,具体的拆分实施步骤如下所示:
步骤400、从规则集合中至少一条规则中解析出所述至少一条规则包含的模式串;
步骤401、确定所述逻辑串的识别特征;
其中所述模式串的识别特征包括但不限于如下任一或任多个:
会话类型(tcp或udp),会话方向(req或rsp),端口限制,长度限制,匹配周期,是否限制匹配顺序;
限制匹配顺序的逻辑与模式串;逻辑与模式串在匹配规则中的匹配顺序;不限制匹配顺序的逻辑与模式串;逻辑或模式串;共用模式串;单模式串;匹配周期。其中共用模式串表征多个规则都用到的相同模式串,单模式串表征一条规则内只有一条模式串。匹配周期包括单包匹配或跨包匹配。
步骤402、根据所述模式串的会话类型,将所述规则集合拆分为两个子集合A,其中一个子集合包括TCP模式串的规则集合,另一个子集合包括UDP模式串的规则集合;
步骤403、根据所述模式串的会话方向,将每个子集合A拆分为多个子集合B,得到四个子集合B;
其中所述子集合B包括tcp-req模式串的规则集合,tcp-rsp模式串的规则集合,udp-req模式串的规则集合,udp-rsp模式串的规则集合。
步骤404、根据所述模式串的端口限制,将每个子集合B拆分为多个子集合C,其中子集合C的数量为端口限制的不同的端口数量;
步骤405、根据所述模式串的长度限制,将每个子集合C拆分为多个子集合D;
步骤406、根据所述模式串的匹配周期,将所述多个子集合D拆分为多个包括单包匹配的模式串的规则的子集合E,和多个包括跨包匹配的模式串的规则的子集合F。
如图5所示,本发明实施例利用模式串之间的逻辑关系对上述子集合E进一步进行拆分,具体实施步骤如下所示:
步骤500、确定子集合为包括单包匹配的模式串的规则的子集合E;
步骤501、将所述子集合E中的逻辑或模式串,共用模式串,单模式串,以及索引1模式串拆分到一个子集合内,确定为第一个匹配规则集合;
其中所述索引1模式串为匹配顺序中第一个逻辑与关系的模式串。
步骤502、将所有索引2模式串拆分到一个子集合内,确定为第二个匹配规则集合;
其中所述索引2模式串为匹配顺序中第二个逻辑与关系的模式串。
步骤503、将所有索引3模式串拆分到一个子集合内,确定为第三个匹配规则集合;
其中所述索引3模式串为匹配顺序中第三个逻辑与关系的模式串。
依次类推,将所有限制匹配顺序的逻辑与模式串拆分到不同的子集合;
步骤504、确定所有限制匹配顺序的逻辑与模式串拆分到不同的子集合之后,对拆分得到的所有的子集合逐个进行去重处理;
步骤505、判断去重处理后的子集合中的模式串的数量是否超过阈值,若是执行步骤506,否则执行步骤507;
步骤506、将所述超过阈值的子集合进行拆分;
步骤507、将去重处理后的子集合中的模式串进行编译;
其中,可以依据正则表达式引擎进行编译。
其中,可以依据正则表达式引擎进行编译。编译成多个有限状态自动机(简称DFA)组成的文件。
步骤508、根据编译结果建立模式串匹配链E。
其中,所述模式串匹配链E包含确定匹配顺序的模式串编译结果集合。
如图6所示,本发明实施例利用模式串之间的逻辑关系对上述子集合F进一步进行拆分,具体实施步骤如下所示:
步骤600、确定子集合为包括单包匹配的模式串的规则的子集合F;
步骤601、将所述子集合F中的逻辑或模式串,共用模式串,不限制匹配顺序的逻辑与模式串,以及索引1模式串拆分到一个子集合内,确定为第一个匹配规则集合;
其中所述索引1模式串为匹配顺序中第一个逻辑与关系的模式串。
步骤602、将所有索引2模式串拆分到一个子集合内,确定为第二个匹配规则集合;
其中所述索引2模式串为匹配顺序中第二个逻辑与关系的模式串。
步骤603、将所有索引3模式串拆分到一个子集合内,确定为第三个匹配规则集合;
其中所述索引3模式串为匹配顺序中第三个逻辑与关系的模式串。
依次类推,将所有限制匹配顺序的逻辑与模式串拆分到不同的子集合;
步骤604、确定所有限制匹配顺序的逻辑与模式串拆分到不同的子集合之后,对拆分得到的所有的子集合逐个进行去重处理;
步骤605、判断所述去重处理后的子集合中的模式串的数量是否超过阈值,若是执行步骤606,否则执行步骤607;
步骤606、将所述超过阈值的子集合进行拆分;
步骤607、将去重处理后的子集合中的模式串进行编译;
其中,可以依据正则表达式引擎进行编译。编译成多个有限状态自动机(简称DFA)组成的文件。
步骤608、根据编译结果建立模式串匹配链F。
其中,所述模式串匹配链F包含确定匹配顺序的模式串编译结果集合。
如图7所示,本实施例在规则匹配阶段可以根据所述逻辑与模式串的匹配顺序确定上述模式串匹配链E的匹配顺序,具体实施流程如下所示:
步骤700、确定对模式串匹配链E中的模式串进行匹配;
步骤701、对所述模式串匹配链E对应的匹配规则集合进行规则匹配;
步骤702、判断是否匹配成功,若是则执行步骤703,否则执行步骤706;
步骤703、若匹配的模式串为逻辑或模式串,则对规则集合中的非模式串的识别特征进行匹配;
其中,单模式串也可视为逻辑或模式串;非模式串的识别特征例如偏移量约束,在会话中的序列等。
步骤704、判断是否匹配成功,若是执行步骤705,否则执行步骤706;
步骤705、生成日志并标记该规则集合。
步骤706、判断所述模式串所属的规则为单包匹配还是跨包匹配,若为单包匹配执行步骤707,否则执行步骤708;
步骤707、结束匹配流程;
步骤708、保存已经匹配的模式串的匹配结果,待下一个数据包到来时继续进行匹配。
如图8所示,本实施例在规则匹配阶段可以根据所述逻辑与模式串的匹配顺序确定上述模式串匹配链F的匹配顺序,具体实施流程如下所示:
步骤800、确定对模式串匹配链F中的模式串进行匹配;
步骤801、对所述模式串匹配链F对应的匹配规则集合进行规则匹配;
步骤802、判断是否匹配成功,若是则执行步骤803,否则执行步骤806;
步骤803、若匹配的模式串为限制匹配顺序的逻辑与模式串,则继续匹配模式串匹配链F中下一个匹配规则集合;
步骤804、若所述限制匹配顺序的逻辑与模式串的所有匹配都成功,则对规则集合中的非模式串的识别特征进行匹配;
其中,单模式串也可视为逻辑或模式串;非模式串的识别特征如偏移量约束,在会话中的序列等。
步骤805、判断是否匹配成功,若是执行步骤806,否则执行步骤807;
步骤806、生成日志并标记该规则集合;
步骤807、判断所述模式串所属的规则为单包匹配还是跨包匹配,若为单包匹配执行步骤808,否则执行步骤809;
步骤808、结束匹配流程;
步骤809、保存已经匹配的模式串的匹配结果,待下一个数据包到来时继续进行匹配。
本实施例中的单包匹配和跨包匹配的实施方式可以结合实施,也可以单独实施,本实施例对此不作过多限定。
如图9所示,本发明实施例以限制匹配顺序的逻辑与关系的模式串为例,对本实施例中的规则匹配的方法进行详细说明,具体实施步骤如下所示:
步骤900、确定规则集合中所有规则包含的模式串;
步骤901、根据模式串的会话类型、会话方向、端口限制以及长度限制,将所有的模式串拆分到不同的临时集合中;
其中任意子集合包含的模式串的会话类型、会话方向、端口限制以及长度限制是一样的。其中所述子集合可以是包含一个或多个相同端口的模式串,也可以是包含相同长度或相同长度范围的模式串。
步骤902、根据限制匹配顺序的逻辑与关系的模式串,将所述临时集合拆分为多个子集合;
其中,一个子集合包括第一规则,所述第一规则为包括所有非逻辑与关系的模式串的规则,任意子集合包括第二规则,所述第二规则为包括一个逻辑与关系的模式串的规则;
步骤903、若所述逻辑与关系的模式串为限制匹配顺序的模式串,则包括第一个第二规则的子集合中包括所有的第一规则;
其中,所述第一个第二规则为包括匹配顺序中第一个逻辑与关系的模式串的第二规则。
步骤904、对所述多个子集合进行去重处理;
步骤905、若所述去重处理后的子集合中的模式串的数量超过阈值,则将所述超过阈值的子集合进行拆分;
步骤906、根据所述逻辑与模式串的匹配顺序确定所述模式串所在的子集合的匹配顺序;
步骤907、按所述匹配顺序,根据所述子集合包含的规则对获取的流量数据进行规则匹配。
本发明实施例主要通过模式串分类,把原来较大的包含较多模式串的规则集合拆分成多个较小的包含较少模式串的规则集合,减少每个规则集合的搜索空间,提高匹配性能;本实施例针对规则内逻辑与关系的模式串,通过逐次递进匹配的方式,逐步减少匹配规模,提高整体匹配性能。
实施例2
基于相同的发明构思,本发明实施例还提供了一种规则匹配的设备,由于该设备即是本发明实施例中的方法中的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
如图10所示,该设备包括处理器1000和存储器1001,所述存储器用于存储所述处理器可执行的程序,所述处理器用于读取所述存储器中的程序并执行如下步骤:
确定规则集合中至少一条规则包含的模式串;
将所述规则集合拆分为多个子集合,其中至少一个子集合包括第一规则,所述第一规则为包括至少一个非逻辑与关系的模式串的规则;任意子集合包括第二规则,所述第二规则为包括至少一个逻辑与关系的模式串的规则;
根据所述子集合包含的规则对获取的流量数据进行规则匹配。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述处理器具体被配置为执行:
包括第一个第二规则的子集合中包括所有的第一规则;
其中,所述第一个第二规则为包括匹配顺序中第一个逻辑与关系的模式串的第二规则。
作为一种可选的实施方式,所述处理器被配置为执行通过如下任一或任多种方式将所述规则集合拆分为多个子集合:
根据所述模式串的会话类型,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话类型的模式串的规则;
根据所述模式串的会话方向,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话方向的模式串的规则;
根据所述模式串的端口限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同端口限制的模式串的规则;
根据所述模式串的长度限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同长度限制的模式串的规则;
根据所述模式串的匹配周期,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同匹配周期的模式串的规则;
根据所述模式串是否限制匹配顺序,将所述规则集合拆分为多个子集合,其中所述多个子集合包括限制匹配顺序的模式串或不限制匹配顺序的模式串。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述处理器被配置为执行:
根据所述逻辑与模式串的匹配顺序确定所述模式串所在的子集合的匹配顺序;
按所述匹配顺序,根据所述子集合包含的规则对获取的流量数据进行规则匹配。
作为一种可选的实施方式,所述将所述规则集合拆分为多个子集合之后,所述处理器还被配置为执行:
对所述多个子集合进行去重处理;
若所述去重处理后的子集合中的模式串的数量超过阈值,则将所述超过阈值的子集合进行拆分。
实施例3
基于相同的发明构思,本发明实施例还提供了一种规则匹配的装置,由于该装置即是本发明实施例中的方法中的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图11所示,该装置包括:
确定单元1100,用于确定规则集合中至少一条规则包含的模式串;
拆分单元1101,用于将所述规则集合拆分为多个子集合,其中至少一个子集合包括第一规则,所述第一规则为包括至少一个非逻辑与关系的模式串的规则;任意子集合包括第二规则,所述第二规则为包括至少一个逻辑与关系的模式串的规则;
匹配单元1102,用于根据所述子集合包含的规则对获取的流量数据进行规则匹配。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述拆分单元:
包括第一个第二规则的子集合中包括所有的第一规则;
其中,所述第一个第二规则为包括匹配顺序中第一个逻辑与关系的模式串的第二规则。
作为一种可选的实施方式,所述拆分单元具体用于通过如下任一或任多种方式将所述规则集合拆分为多个子集合:
根据所述模式串的会话类型,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话类型的模式串的规则;
根据所述模式串的会话方向,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话方向的模式串的规则;
根据所述模式串的端口限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同端口限制的模式串的规则;
根据所述模式串的长度限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同长度限制的模式串的规则;
根据所述模式串的匹配周期,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同匹配周期的模式串的规则;
根据所述模式串是否限制匹配顺序,将所述规则集合拆分为多个子集合,其中所述多个子集合包括限制匹配顺序的模式串或不限制匹配顺序的模式串。
作为一种可选的实施方式,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述匹配单元具体用于:
根据所述逻辑与模式串的匹配顺序确定所述模式串所在的子集合的匹配顺序;
按所述匹配顺序,根据所述子集合包含的规则对获取的流量数据进行规则匹配。
作为一种可选的实施方式,所述将所述规则集合拆分为多个子集合之后,所述拆分单元还用于:
对所述多个子集合进行去重处理;
若所述去重处理后的子集合中的模式串的数量超过阈值,则将所述超过阈值的子集合进行拆分。
基于相同的发明构思,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时用于实现如下步骤:
确定规则集合中至少一条规则包含的模式串;
将所述规则集合拆分为多个子集合,其中至少一个子集合包括第一规则,所述第一规则为包括至少一个非逻辑与关系的模式串的规则;任意子集合包括第二规则,所述第二规则为包括至少一个逻辑与关系的模式串的规则;
根据所述子集合包含的规则对获取的流量数据进行规则匹配。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种规则匹配的方法,其特征在于,该方法包括:
确定规则集合中至少一条规则包含的模式串;
将所述规则集合拆分为多个子集合,其中至少一个子集合包括第一规则,所述第一规则为包括至少一个非逻辑与关系的模式串的规则;任意子集合包括第二规则,所述第二规则为包括至少一个逻辑与关系的模式串的规则;
根据所述子集合包含的规则对获取的流量数据进行规则匹配;其中对每个子集合中的模式串进行编译,生成模式串匹配链;对所述模式串匹配链中的每个模式串的规则进行匹配,待所述模式串匹配链上的模式串都匹配完成后,对所述规则集合中的不具备逻辑关系的非模式串的规则进行匹配。
2.根据权利要求1所述的方法,其特征在于,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则:
包括第一个第二规则的子集合中包括所有的第一规则;
其中,所述第一个第二规则为包括匹配顺序中第一个逻辑与关系的模式串的第二规则。
3.根据权利要求1所述的方法,其特征在于,通过如下任一或任多种方式将所述规则集合拆分为多个子集合:
根据所述模式串的会话类型,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话类型的模式串的规则;
根据所述模式串的会话方向,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话方向的模式串的规则;
根据所述模式串的端口限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同端口限制的模式串的规则;
根据所述模式串的长度限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同长度限制的模式串的规则;
根据所述模式串的匹配周期,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同匹配周期的模式串的规则;
根据所述模式串是否限制匹配顺序,将所述规则集合拆分为多个子集合,其中所述多个子集合包括限制匹配顺序的模式串或不限制匹配顺序的模式串。
4.根据权利要求1所述的方法,其特征在于,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述根据所述子集合包含的规则对获取的流量数据进行规则匹配,包括:
根据所述逻辑与模式串的匹配顺序确定所述模式串所在的子集合的匹配顺序;
按所述匹配顺序,根据所述子集合包含的规则对获取的流量数据进行规则匹配。
5.根据权利要求1~4任一所述的方法,其特征在于,所述将所述规则集合拆分为多个子集合之后,还包括:
对所述多个子集合进行去重处理;
若所述去重处理后的子集合中的模式串的数量超过阈值,则将所述超过阈值的子集合进行拆分。
6.一种规则匹配的设备,其特征在于,该设备包括处理器和存储器,所述存储器用于存储所述处理器可执行的程序,所述处理器用于读取所述存储器中的程序并执行如下步骤:
确定规则集合中至少一条规则包含的模式串;
将所述规则集合拆分为多个子集合,其中至少一个子集合包括第一规则,所述第一规则为包括至少一个非逻辑与关系的模式串的规则;任意子集合包括第二规则,所述第二规则为包括至少一个逻辑与关系的模式串的规则;
根据所述子集合包含的规则对获取的流量数据进行规则匹配;其中对每个子集合中的模式串进行编译,生成模式串匹配链;对所述模式串匹配链中的每个模式串的规则进行匹配,待所述模式串匹配链上的模式串都匹配完成后,对所述规则集合中的不具备逻辑关系的非模式串的规则进行匹配。
7.根据权利要求6所述的设备,其特征在于,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述处理器具体被配置为执行:
包括第一个第二规则的子集合中包括所有的第一规则;
其中,所述第一个第二规则为包括匹配顺序中第一个逻辑与关系的模式串的第二规则。
8.根据权利要求6所述的设备,其特征在于,所述处理器被配置为执行通过如下任一或任多种方式将所述规则集合拆分为多个子集合:
根据所述模式串的会话类型,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话类型的模式串的规则;
根据所述模式串的会话方向,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同会话方向的模式串的规则;
根据所述模式串的端口限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同端口限制的模式串的规则;
根据所述模式串的长度限制,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同长度限制的模式串的规则;
根据所述模式串的匹配周期,将所述规则集合拆分为多个子集合,其中所述多个子集合包括相同匹配周期的模式串的规则;
根据所述模式串是否限制匹配顺序,将所述规则集合拆分为多个子集合,其中所述多个子集合包括限制匹配顺序的模式串或不限制匹配顺序的模式串。
9.根据权利要求6所述的设备,其特征在于,若所述逻辑与关系的模式串为限制匹配顺序的模式串,则所述处理器被配置为执行:
根据所述逻辑与模式串的匹配顺序确定所述模式串所在的子集合的匹配顺序;
按所述匹配顺序,根据所述子集合包含的规则对获取的流量数据进行规则匹配。
10.根据权利要求6~9任一所述的设备,其特征在于,所述将所述规则集合拆分为多个子集合之后,所述处理器还被配置为执行:
对所述多个子集合进行去重处理;
若所述去重处理后的子集合中的模式串的数量超过阈值,则将所述超过阈值的子集合进行拆分。
CN202110163017.9A 2021-02-05 2021-02-05 一种规则匹配的方法及其设备 Active CN112994931B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110163017.9A CN112994931B (zh) 2021-02-05 2021-02-05 一种规则匹配的方法及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110163017.9A CN112994931B (zh) 2021-02-05 2021-02-05 一种规则匹配的方法及其设备

Publications (2)

Publication Number Publication Date
CN112994931A CN112994931A (zh) 2021-06-18
CN112994931B true CN112994931B (zh) 2023-01-17

Family

ID=76348300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110163017.9A Active CN112994931B (zh) 2021-02-05 2021-02-05 一种规则匹配的方法及其设备

Country Status (1)

Country Link
CN (1) CN112994931B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115296878B (zh) * 2022-07-27 2023-11-03 天翼云科技有限公司 一种报文检测方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103093147A (zh) * 2011-11-02 2013-05-08 中国移动通信集团广东有限公司 一种识别信息的方法和电子装置
CN103873320A (zh) * 2013-12-27 2014-06-18 北京天融信科技有限公司 加密流量识别方法及装置
CN103973684A (zh) * 2014-05-07 2014-08-06 北京神州绿盟信息安全科技股份有限公司 规则编译匹配方法及装置
CN105045808A (zh) * 2015-06-08 2015-11-11 北京天元特通科技有限公司 一种复合规则集匹配方法和系统
CN105635170A (zh) * 2016-01-26 2016-06-01 宝利九章(北京)数据技术有限公司 基于规则对网络数据包进行识别的方法和装置
CN106708956A (zh) * 2016-11-29 2017-05-24 中国人民解放军国防科学技术大学 一种基于多url规则集的http数据匹配方法
CN112073438A (zh) * 2020-10-10 2020-12-11 迈普通信技术股份有限公司 一种访问控制规则配置方法、装置、交换机及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2004252837A1 (en) * 2003-06-04 2005-01-06 Fair Isaac Corporation Relational logic management system
US7904433B2 (en) * 2007-10-09 2011-03-08 O2Micro International Limited Apparatus and methods for performing a rule matching

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103093147A (zh) * 2011-11-02 2013-05-08 中国移动通信集团广东有限公司 一种识别信息的方法和电子装置
CN103873320A (zh) * 2013-12-27 2014-06-18 北京天融信科技有限公司 加密流量识别方法及装置
CN103973684A (zh) * 2014-05-07 2014-08-06 北京神州绿盟信息安全科技股份有限公司 规则编译匹配方法及装置
CN105045808A (zh) * 2015-06-08 2015-11-11 北京天元特通科技有限公司 一种复合规则集匹配方法和系统
CN105635170A (zh) * 2016-01-26 2016-06-01 宝利九章(北京)数据技术有限公司 基于规则对网络数据包进行识别的方法和装置
CN106708956A (zh) * 2016-11-29 2017-05-24 中国人民解放军国防科学技术大学 一种基于多url规则集的http数据匹配方法
CN112073438A (zh) * 2020-10-10 2020-12-11 迈普通信技术股份有限公司 一种访问控制规则配置方法、装置、交换机及存储介质

Also Published As

Publication number Publication date
CN112994931A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
US7596809B2 (en) System security approaches using multiple processing units
US9256831B2 (en) Match engine for detection of multi-pattern rules
CN107122221B (zh) 用于正则表达式的编译器
US9203805B2 (en) Reverse NFA generation and processing
US8990259B2 (en) Anchored patterns
Namjoshi et al. Robust and fast pattern matching for intrusion detection
EP3512178B1 (en) Symbolic execution for web application firewall performance
US10176187B2 (en) Method and apparatus for generating a plurality of indexed data fields
CN102932203A (zh) 异构平台间的深度报文检测方法及装置
CN109413016B (zh) 一种基于规则的报文检测方法和装置
CN111355696A (zh) 一种报文识别方法、装置、dpi设备及存储介质
CN112994931B (zh) 一种规则匹配的方法及其设备
CN112134906B (zh) 一种网络流量敏感数据识别及动态管控方法
CN114024761A (zh) 网络威胁数据的检测方法、装置、存储介质及电子设备
CN111064730A (zh) 网络安全检测方法、装置、设备及存储介质
Ćirić et al. Input splits design techniques for network intrusion detection on Hadoop cluster
WO2017046617A1 (en) Methods and apparatus for detecting patterns in data packets in a network
Haghighat et al. Hes: highly efficient and scalable technique for matching regex patterns
CN116015844A (zh) 一种数据流量检测方法、系统及电子设备
US11336671B2 (en) Method and apparatus for detecting anomaly in a plurality of devices by collectively analyzing information on devices
CN113839937A (zh) 基于网络流量的使用跨会话技术检测未知木马的方法及系统
Johnson et al. Sequence Abstractions for Flexible, Line-Rate Network Monitoring
Chen et al. Synthesizing state machines for data planes
CN115883202A (zh) 一种实时识别网络攻击行为的序列分析方法、装置及设备
CN115277087A (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