CN101841546A - 一种规则匹配方法、装置及系统 - Google Patents

一种规则匹配方法、装置及系统 Download PDF

Info

Publication number
CN101841546A
CN101841546A CN201010176345A CN201010176345A CN101841546A CN 101841546 A CN101841546 A CN 101841546A CN 201010176345 A CN201010176345 A CN 201010176345A CN 201010176345 A CN201010176345 A CN 201010176345A CN 101841546 A CN101841546 A CN 101841546A
Authority
CN
China
Prior art keywords
rule
state machine
feature
sub
matching engine
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.)
Granted
Application number
CN201010176345A
Other languages
English (en)
Other versions
CN101841546B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN 201010176345 priority Critical patent/CN101841546B/zh
Publication of CN101841546A publication Critical patent/CN101841546A/zh
Application granted granted Critical
Publication of CN101841546B publication Critical patent/CN101841546B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种规则匹配方法、装置及系统,其中所述规则匹配方法包括:获取被匹配数据的特征特性;根据所述被匹配数据的特征特性从多个状态机中确定目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规则集根据规则的不同特征特性划分得到,每个子规则集的特征特性用于分别标识与其对应的状态机;通过匹配引擎按照所述目标状态机对被匹配数据进行规则匹配。本发明实施例有效地减小了状态机中的规则集的大小,使得状态机的分支减少、状态深度变小。从而可以有效地减少规则匹配的匹配周期,节省了系统资源的耗费和时间,进而提高了匹配效能。

Description

一种规则匹配方法、装置及系统
技术领域
本发明涉及通信技术领域,更具体地说,涉及一种规则匹配方法、装置及系统。
背景技术
目前,IP(Internet Protocol,互联网协议)业务的爆炸性发展及宽带业务的迅猛增长,给运营商带来了机遇的同时也带来了挑战。DPI(Deep PacketInspection,深度包检测)技术作为一种网络设备增强的过滤器,将用户管理、安全控制、精细的业务控制等能力有机地集成在一起。实现各类业务的动态感知、策略控制、QoS(Quality of Service,服务质量)和业务的安全保障等功能,它既为运营商提供一个电信业务的基础运营平台,也可以降低运营商的资本性支出与运营支出。
DPI技术的关键作用是为了识别出网络中数据的应用类别。在DPI技术中,用于识别出网络中数据的应用类别的识别技术包含特征字识别、应用层网关识别、行为模式识别等。在这些识别技术中,特征字识别技术成为目前识别技术的主要方法之一,而特征字识别技术中,规则匹配技术是特征字识别的关键技术。
在现有的技术方案中,规则匹配技术的实现由一个匹配引擎和一个状态机配合完成。其中,匹配引擎为一个整体的匹配引擎,状态机为由所有规则组成的规则集通过编译器统一编译成的一个树形或网型结构的状态机。上述规则集包括纯字符串规则、正则表达式规则以及正则表达式和字符串的混合规则等多种类型。在对数据进行匹配规则时,通过匹配引擎按照所述状态机来实现规则匹配。
然而,发明人发现,上述方案至少存在以下问题:
上述方案中,随着业务发展,协议类型越来越多,流量越来越大,协议特征字的规则变得越来越复杂,规则数量越来越多。所以,状态机容量会越来越大,而且分支也越来越多、状态深度越来越大。由于状态机容量大,分支多、状态深度大,使得匹配时查找状态机中所需的规则时耗费系统资源和时间多、性能差,越来越不能适应匹配大流量数据的要求。
发明内容
有鉴于此,本发明实施例提供一种规则匹配方法、装置及系统,以解决现有技术存在的系统资源的耗费和时间多、性能较低的问题。
本发明实施例是这样实现的:
一种规则匹配方法,包括:
获取被匹配数据的特征特性;
根据所述被匹配数据的特征特性从多个状态机中确定目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规则集根据规则的不同特征特性划分得到,每个子规则集的特征特性用于分别标识与其对应的状态机;
通过匹配引擎按照所述目标状态机对被匹配数据进行规则匹配。
一种规则匹配装置,包括:
特征特性获取单元,用于获取被匹配数据的特征特性;
目标状态机确定单元,用于根据所述被匹配数据的特征特性确定多个状态机中的一个为目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规则集由规则根据规则不同的特征特性划分得到,每个子规则集的特征特性用于分别标识每个状态机;
匹配引擎,用于按照所述目标状态机对被匹配数据进行规则匹配。
一种规则匹配系统,包括,规则匹配装置以及状态机生成装置;
所述状态机生成装置包括:
特征特性划分单元,用于根据规则的不同特征特性将规则划分得到多个子规则集;
编译单元,用于对所述特征特性划分单元划分得到的所述子规则集分别编译得到多个状态机,每个子规则集的特征特性用于分别标识每个状态机;
所述规则匹配装置包括:
特征特性获取单元:用于获取被匹配数据的特征特性;
目标状态机确定单元:用于根据所述被匹配数据的特征特性确定多个状态机中的一个为目标状态机;
匹配引擎,用于按照所述目标状态机对被匹配数据进行规则匹配。
从上述的技术方案可以看出,本发明实施例将所需要的规则按照其不同的特征特性类型分为了多个子规则集,编译每个子规则集以生成与之对应的状态机。在进行规则匹配时,根据被匹配数据的不同特征特性,查找相应的状态机并启动设定匹配引擎。由于本发明实施例将现有技术中的整体的状态机划分成多个相对较小的状态机,有效地减小了状态机中的规则集的大小,使得状态机的分支减少、状态深度变小。从而可以有效地减少规则匹配的匹配周期,节省了系统资源的耗费和时间,进而提高了匹配效能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种规则匹配方法的流程图;
图2为本发明实施例一种规则匹配装置的结构示意图;
图3为本发明实施例一种规则匹配系统结构示意图;
图4为本发明实施例一种规则匹配系统中状态机生成单元结构示意图;
图5为本发明实施例一种规则匹配系统中特征特性划分单元结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种规则匹配方法,以解决现有技术存在的系统资源的耗费和时间多、性能较低的问题。具体过程如图1所示,包括以下步骤:
步骤S11、获取被匹配数据的特征特性;
在本发明实施例中,当在对被匹配数据进行规则特征匹配时,获取被匹配数据的特征特性。从而,可以确定被匹配数据的特征特性是属于诸如特殊符号、表达式、特殊字符串或特殊语法的组合等中的哪一种或多种。比如,在本发明实施例中,被匹配数据可以是一种表达式,其特征特性为“表达式”。
步骤S12、根据所述被匹配数据的特征特性从多个状态机中确定目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规则集根据规则的不同特征特性划分得到,每个子规则集的特征特性用于分别标识与其对应的状态机;
在本发明实施例中,预先将所有规则匹配所用到的规则按照其特征特性的不同进行分类形成子规则集。所述特征特性可以是规则的属性,这样,就可以按照规则的属性的不同划分子规则集,比如,可以是特殊符号、表达式、特殊字符串或特殊语法的组合等。比如,有的规则属于特殊符号,这一类的规则被划分到特征特性为特殊符号的子规则集中;同理,有的规则属于表达式,有的规则属于特殊字符串,有的规则属于特殊语法的组合,将这些规则分别根据其所属的特征特性划分到相应的子规则集中。在本发明实施例中,同时具有多种属性的规则还可以同时属于其他的特征特性的子规则集。
在本发明实施例中,将具有相同特征特性的规则划分到同一子规则集中,从而分别形成所有的规则的特征特性的各种子规则集。
在根据特征特性的不同将所有规则进行分类并将其划入相应的子规则集中之后,将每个子规则集分别编译成状态机,由于每个状态机中的规则都具有相同的特征特性,所述相同的特征特性即为该状态机的特征特性,而每个状态机的特征特性都不相同,所以,使用特征特性可以标识状态机。也就是说,每个状态机可以通过其规则子集特征特性的不同而区分,比如可以分为特殊符号的状态机、表达式的状态机等。由于有的规则有可能同时具有多个特征特性,所以状态机也可以同时具有多种特征特性,比如某一规则含有xyzkj,这种特征属于特殊符号;同时,它还含有ab.*cd,这种特征属于表达式,因此这时的状态机同时属于特殊字符和表达式两种情况。
因为,根据规则的特征特性不同划分为多个子规则集,将每个子规则集分别编译成状态机,每个子规则集的特征特性用于标识状态机;所以,特征特性与状态机之间有对应关系。另外,在使用匹配引擎进行规则匹配时,由于特征特性可以标识状态机,所以根据被匹配数据中的特征特性不同,能够查找到相应的状态机,即目标状态机。比如,当所述被匹配数据为表达式的时候,可以根据所述数据的特征特性(如表达式),找到目标状态机,即,标识为表达式的表达式状态机。
步骤S13、通过匹配引擎按照所述目标状态机对被匹配数据进行规则匹配。
在找到目标状态机后,预设的匹配引擎按照所述目标状态机对所述被匹配数据进行规则匹配。比如,在本发明实施例中,可以是由匹配引擎可以按照表达式状态机对被匹配的表达式进行规则匹配。
在本发明实施例的技术方案中,分别由规则分类后的子规则集形成多个状态机,在规则匹配时,先获取被匹配数据的特征特性,然后使用与所述特征特性相对应的状态机对所述被匹配数据进行规则匹配。与现有技术中使用由所有规则形成的一个整体的状态机的技术方案相比,本发明实施例中,由于通过子规则集形成的状态机的体积较小,所以这样的状态机的状态分支也较少,状态深度也较小,从而使得匹配规则时的匹配周期较少,进而,有效地提高了匹配规则时的匹配效能。
在本发明的另一实施例中,当需要更新升级规则时,可以根据新规则的特征特性重新划分并更新与该新规则特征特性对应的子规则集,重新编译更新后的子规则集生成新的状态机。
在本发明实施例中,当需要更新规则的时候,可以根据新规则的特征特性更新与该规则特征特性对应的子规则集,在需要更新规则的子规则集中完成规则的更新后,只需要重新编译更新规则后的子规则集,然后生成新的状态机即可完成对状态机的升级。比如,使用本发明实施例的技术方案,当需要加入新的表达式规则时,根据需要加入的新规则的特征特性(如表达式),确定需要更新的子规则集为表达式子规则集;然后更新所述表达式子规则集,重新编译更新后的表达式子规则集,生成新的表达式状态机。
在现有技术中,要完成对表达式规则的增加,需要对包含有所有规则的整体规则集进行更新,然后对所述整体规则集进行重新编并生成新的整体状态机。与现有技术相比,本发明实施例不需要重新编译没有更新规则的子规则集。本发明实施例中更新并编译的子规则集的体积要小于现有技术中的整体规则集。所以,在本发明实施例中,在对状态机进行升级时,只要重新编译更新了规则的子规则集来生成新的状态机即可实现升级,不需要像现有技术中那样要对包括了全部规则的规则集进行编译。从而节省了升级状态机时的编译时间和系统资源。
在本发明实施例中,所述设定匹配引擎可以为多个匹配引擎中与所述目标状态机的特征特性相对应的匹配引擎。其中,所述匹配引擎可以为多个。所述多个匹配引擎分别通过特征特性与目标状态机相关联,从而,可以在对被匹配数据进行规则匹配时,根据目标状态机的特征特性,启动相应的匹配引擎。比如,特征特性为特殊符号、表达式、特殊字符串和特殊语法的组合的各个状态机,可以分别根据其特征特性的不同对应有匹配引擎。在本发明实施例中,每个状态机都有相应的匹配引擎;具体的,状态机可以和与其相应的匹配引擎一一对应,也可以由全部状态机中的多个状态机对应一个匹配引擎。
在匹配规则时,根据被匹配数据的特征特性查找相应的目标状态机并启动与所述状态机对应的匹配引擎。比如,被匹配数据为表达式时,目标状态机为表达式状态机,由于表达式状态机有其所关联的匹配引擎,从而可以启动相关联的匹配引擎。在本发明实施例中,表达式状态机与匹配引擎关联具体的方式可以为:根据目标状态机的特征特性生成索引值,所述索引值与所述目标状态机关联的匹配引擎相对应,从而可以在规则匹配时,通过所述索引值确定与目标状态机相关联的匹配引擎,使用所述匹配引擎配合所述目标状态机对被匹配数据进行规则匹配。
在本发明实施例中,通过为每个状态机设置与其关联的匹配引擎,然后在对数据进行规则匹配时,根据规则的特征查找相应的状态机并启动与所述状态机对应的匹配引擎。
在本发明实施例中,所述匹配引擎与所述状态机之间由索引值形成对应关系,具体可以是,索引值可以为将所述状态机特征特性哈希(Hash)取值或循环冗余校验取值的结果。比如,将表达式状态机的“表达式”这一特征特性哈希取值,得到的值即可以为索引值,通过所述索引值与设定的对应匹配引擎相对应,从而可以将表达式状态机与设定的匹配引擎相关联。
本发明实施例通过将用于标识状态机的特征特性生成索引值,由此可以方便地将状态机和相应的匹配引擎关联起来,从而可以在对被匹配数据进行规则匹配时,当根据被匹配数据的特征特性确定了目标状态机后,可以启动与所述目标状态机相应的匹配引擎,进而可以使用所述匹配引擎配合所述目标状态机完成对被匹配数据的规则匹配。
在本发明实施例中,通过为每个状态机设置关联指定的匹配引擎,使得在规则匹配时可以并行运行多个匹配引擎,进而可以并行对多个被匹配数据进行规则匹配。比如,在被匹配数据为多个时,其中包括有特殊字符和表达式,由于分别设有特殊字符状态机关联的匹配引擎和表达式状态机的匹配引擎时匹配规则,所以,可以同时进行特殊字符规则匹配和表达式规则匹配。与本发明的上一实施例相比,本发明实施例因为可以并行的对多个具有不同特征特性的被匹配数据同时进行规则匹配,从而进一步的提高了匹配的性能。
在本发明的另一实施例中,上述实施例中所述多个匹配引擎中包括有需根据所述被匹配数据的特征特性触发激活的匹配引擎。
在本发明实施例中,可以将使用频率较少且状态为不工作超过设定时间的匹配引擎休眠,以降低系统功耗。当对被匹配数据进行规则匹配时,在确定目标状态机后,查找目标状态机根据其特征特性设有相对应的匹配引擎,当其所对应的匹配引擎的状态为休眠时,激活所述匹配引擎。
本发明实施例通过将使用频率较少且状态为不工作超过设定时间的匹配引擎休眠,并在其被使用到时将其激活的技术方案,降低了匹配引擎的系统功耗,节约了系统资源。
在本发明的另一实施例中,可以将所述状态机规则集中多个规则的相同部分提取出来;在使用具有相同部分的多个规则对被匹配数据进行规则匹配时,先使用相同部分匹配,然后再使用多个规则中每个规则的不相同部分分别匹配。
例如,假设状态机的规则集中有三条规则分别为字符串“abc”、“ade”、“afg”;则可以将多个规则的相同部分“a”提取出来,匹配时先匹配“a”,如果不满足,则后续不再用这三个字符串进行匹配;如果满足,则再分别用每个规则不相同部分(如“bc”、“de”、“fg”)对被匹配数据进行匹配,从而不需要每次匹配都用“a”匹配一次。
通过提取状态机中的多个规则的相同部分,使得在对被匹配数据进行规则匹配时,只需要使用多个具有相同部分的规则的相同部分匹配一次,然后分别使用所述多个具有相同部分的规则的部分匹配即可。从而避免了使用多个具有相同部分的规则的相同部分多次匹配,进而提高了匹配效率。
在本发明的另一实施例中,所述预先根据规则的特征特性不同划分为多个子规则集,包括:将引起状态爆炸的语法组合的规则使用NFA(Non-deterministic Finite Automata,非确定有限自动机)的方式处理或将所述规则进行重写处理,然后根据处理后的该规则的特征特性划分到相应的规则集中。
具体地说,一条或一组规则,如果它生成的DFA(Deterministic FiniteAutomaton,确定有限自动机)与对应的NFA相比较,其状态之比呈指数时,称之为状态爆炸。
比如规则:.*A.*B.*C(.*表示任意个字符,该规则表示A前面可以有任意个字符,A、B之间、B、C之间也可以有任意个字符),对其本身而言,由于其交互性很强,所以当其与其他规则同处于一个规则集中时,有可能引起状态爆炸。另外,规则A{m,n}B(表示A后面可以跟m到n个B),当n值较大时,可能引起状态爆炸。对于此类规则,在本发明实施例中,可以集中使用NFA的方式处理。具体地,可以使用计数器来处理{m,n},这样,当计数器值在[m,n]区间内任一值时都符合该语法,即只用一个单元即可实现原来多分支的情况,不需要再增加n-m条分支。
本发明实施例在预先根据规则的特征特性不同划分为多个子规则集的时候,可以将规则中的引起状态爆炸的语法组合的规则使用NFA的方式处理或将所述规则进行重写处理。从而有效地控制状态数,节约存储容量。
在本发明实施例中,所述预先根据规则的特征特性不同划分为多个子规则集,还可以包括将由.*和纯字符串组成的规则采用.*切割方式处理,然后将该规则划分到纯字符串的规则集中。
比如,有两条规则P和Q,其中,P=(.*A.*B.*C),Q=(.*X.*Y.*Z)。假设字符串P的长度(除.*外)为s,P中有n个.*(如规则P中现在有3个.*,即n=3)。在A,B,C与X,Y,Z这些.*分隔的子串其前缀都不相同的情况下,Q中每个子串(X,Y,Z)每增加一个字符(例如X原先为ab,现在增加一个字符为abc),状态数增加n个;每增加一个.*(如原来P从(.*AB.*C)变为(.*A.*B.*C),A、B间增加了一个.*),状态数增加(s+1)个。如果规则集中有k条规则含有.*,且每条有x个.*,则这些规则生成的DFA有xk个状态。对于此类规则(只含有.*语法的正则),在本发明实施例中,采用.*切割方式将字符串切割为A,B,C,X,Y,Z六个子串,再将这些子串一起进行编译,因为原来规则中的.*表示任意字符,因此,采用切割后的子串匹配也能起到与原来规则同样的匹配效果。因为只剩下字符串,所以编译速度会有很大提升。在本发明实施例中,还可以通过每个子串的位置(如子串在报文中的位置,或子串相互之间的位置等)进行标记,从而保证了最终整体匹配的精确。
在本发明实施例中,通过使用.*切割方式对由.*和纯字符串组成的规则进行编译前的预处理,将正则表达式间接转换为了字符串进行处理,从而降低了编译器的消耗,提高了匹配引擎的匹配性能。
在本发明实施例中,所述预先根据规则的特征特性不同划分为多个子规则集,还可以包括将语法使用状态机耗费资源多的规则,划分到一个规则集中,并使用独立资源处理该规则集中的规则。
所述独立资源可以包括与非门或计数器等。例如,规则[^0](表示非0),在本发明实施例中,可以使用非门实现,即,通过使用一个非门加一个比较器(与常量0的比较)。通过将所述独立的资源可以作为公共资源给多个匹配引擎使用。从而可以减少匹配规则时对状态机资源的耗费,提高了匹配引擎的匹配性能。
参见图2,本发明实施例还提供了一种规则匹配装置30,包括:特征特性获取单元31、目标状态机确定单元32和匹配引擎33。
所述特征特性获取单元31,用于获取被匹配数据的特征特性;
所述目标状态机确定单元32,用于根据所述被匹配数据的特征特性确定多个状态机中的一个为目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规则集根据规则不同的特征特性划分得到,每个子规则集的特征特性用于分别标识每个状态机;
匹配引擎33:用于按照所述目标状态机对被匹配数据进行规则匹配。
其中,在本发明实施例中,当在对被匹配数据进行规则特征匹配时,特征特性获取单元31获取被匹配数据的特征特性。从而,可以确定被匹配数据的特征特性是属于诸如特殊符号、表达式、特殊字符串或特殊语法的组合等中的哪一种或多种。
本发明实施例中使用到的状态机由多个子规则集编译得到,所述多个子规则集根据规则不同的特征特性划分得到,例如特征特性可以是特殊符号、表达式等。此外,本发明实施例还可以对子规则集进行更新,生成新的状态机,来满足匹配需求。
本发明实施例中,匹配引擎33可以是一个,或者多个,每个匹配引擎可以与一个或多个状态机进行对应。当存在多个匹配引擎时,可以并行运行多个匹配引擎以加快匹配速度;同时,在平时也可以将使用频率较少且状态为不工作超过设定时间的匹配引擎休眠,以达到降低系统功耗的目的;在需要使用的时候再激活相关匹配引擎。
匹配引擎在进行规则匹配时,可以提取所述状态机的规则集中具有相同部分的多个规则的相同部分,在使用所述具有相同部分的多个规则进行规则匹配时,先使用所述相同部分匹配一次,然后使用所述多个规则中每个规则的不相同部分分别匹配。
在本发明实施例的技术方案中,分别由规则分类后的子规则集形成多个状态机,在规则匹配时,先获取被匹配数据的特征特性,然后使用与所述特征特性相对应的状态机对所述被匹配数据进行规则匹配。与现有技术中使用由所有规则形成的一个整体的状态机的技术方案相比,本发明实施例中,由子规则集形成的状态机的体积较小,所以状态机的状态分支较少,状态深度也较小,从而使得匹配规则时的匹配周期较少,进而,有效地提高了匹配规则时的匹配效能。
参见图3,本发明实施例还提供了一种规则匹配系统,包括:规则匹配装置30,状态机生成装置40;
其中,所述规则匹配装置30可以为采用图3所示实施例中的装置,在此不再赘述;
所述状态机生成装置40包括:
特征特性划分单元41,用于根据规则的不同特征特性将规则划分得到多个子规则集,每个子规则集的特征特性用于分别标识每个状态机;
编译单元42,用于对所述特征特性划分单元41划分得到的所述子规则集分别编译得到多个状态机;
其中,所述特征特性划分单元41在根据规则不同特征特性进行划分时,可以参考上述实施例中的各种划分方法,在此不再赘述。
参见图4,本发明实施例中,所述状态机生成装置还包括:
规则更新单元43,用于对规则进行更新,更新后的规则再经过特征特性划分单元进行划分后生成更新后的子规则集,再将利用编译单元生成更新后的状态机。
参见图5,本发明实施例中,所述特征特性划分单元41还包括:
爆炸规则子划分单元411,用于将引起状态爆炸的语法组合的规则使用NFA的方式处理或将所述规则进行重写处理,然后根据处理后的该规则的特征特性划分到相应的规则集中;
字符串切割子划分单元412,用于将由.*和纯字符串组成的规则采用.*切割方式处理,然后将该规则划分到纯字符串的规则集中;
资源消耗子划分单元413,用于将语法使用状态机消耗资源多的规则,划分到一个规则集中。
需要说明的是,本发明实施例中装置及系统中的各个单元可以通过各种硬件处理电路实现(如CPU、FPGA、MCU等)及其附属电路实现,当采用集成处理芯片进行处理时,每个芯片也可以实现一个或多个本发明实施例中的逻辑单元,在此并不限定。
在本发明实施例的技术方案中,分别由规则分类后的子规则集形成多个状态机,在规则匹配时,先获取被匹配数据的特征特性,然后使用与所述特征特性相对应的状态机对所述被匹配数据进行规则匹配。与现有技术中使用由所有规则形成的一个整体的状态机的技术方案相比,本发明实施例中,由子规则集形成的状态机的体积较小,所以状态机的状态分支较少,状态深度也较小,从而使得匹配规则时的匹配周期较少,进而,有效地提高了匹配规则时的匹配效能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,所述程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种规则匹配方法,其特征在于,包括:
获取被匹配数据的特征特性;
根据所述被匹配数据的特征特性从多个状态机中确定目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规则集根据规则的不同特征特性划分得到,每个子规则集的特征特性用于分别标识与其对应的状态机;
通过匹配引擎按照所述目标状态机对被匹配数据进行规则匹配。
2.根据权利要求1所述的规则匹配方法,其特征在于,还包括:
升级状态机时,根据更新规则的特征特性重新划分并更新对应的子规则集,重新编译更新后的子规则集生成新的状态机。
3.根据权利要求1所述的规则匹配方法,其特征在于,所述匹配引擎为在多个匹配引擎中与所述目标状态机的特征特性相关联的匹配引擎;
所述关联具体为:
根据目标状态机的特征特性生成索引值,由所述索引值对应与所述目标状态机关联的匹配引擎;
所述关联用于通过所述索引值确定与目标状态机相关联的匹配引擎;使用所述匹配引擎配合所述目标状态机对被匹配数据进行规则匹配;所述索引值包括将所述特征特性哈希取值或循环冗余校验取值的结果。
4.根据权利要求3所述的规则匹配方法,其特征在于,所述多个匹配引擎中包括需根据所述被匹配数据的特征特性触发激活的匹配引擎。
5.根据权利要求1至4中任一所述的规则匹配方法,其特征在于,还包括:提取所述状态机的规则集中具有相同部分的多个规则的相同部分,在使用所述具有相同部分的多个规则进行规则匹配时,先使用所述相同部分匹配一次,然后使用所述多个规则中每个规则的不相同部分分别匹配。
6.根据权利要求5所述的规则匹配方法,其特征在于,所述预先根据规则的特征特性不同划分为多个子规则集,包括:
将引起状态爆炸的语法组合的规则使用NFA的方式处理或将所述规则进行重写处理,然后根据处理后的该规则的特征特性划分到相应的规则集中;或者,
将由.*和纯字符串组成的规则采用.*切割方式处理,然后将该规则划分到纯字符串的规则集中;或者,
将语法使用状态机耗费资源多的规则,划分到一个规则集中,并使用独立资源处理该规则集中的规则。
7.一种规则匹配装置,其特征在于,包括:
特征特性获取单元,用于获取被匹配数据的特征特性;
目标状态机确定单元,用于根据所述被匹配数据的特征特性确定多个状态机中的一个为目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规则集由规则根据规则不同的特征特性划分得到,每个子规则集的特征特性用于分别标识每个状态机;
匹配引擎,用于按照所述目标状态机对被匹配数据进行规则匹配。
8.根据权利要求7所述的规则匹配装置,其特征在于,所述匹配引擎通过提取所述状态机的规则集中具有相同部分的多个规则的相同部分,在使用所述具有相同部分的多个规则进行规则匹配时,先使用所述相同部分匹配一次,然后使用所述多个规则中每个规则的不相同部分分别匹配。
9.一种规则匹配系统,其特征在于,包括:
如权利要求7-8任一所述的规则匹配装置;以及,
状态机生成装置,所述状态机生成装置包括:
特征特性划分单元,用于根据规则的不同特征特性将规则划分得到多个子规则集,每个子规则集的特征特性用于分别标识每个状态机;
编译单元,用于对所述特征特性划分单元划分得到的所述子规则集分别编译得到多个状态机。
10.根据权利要求9所述的规则匹配系统,其特征在于,所述特征特性划分单元还包括:
规则更新单元,用于对规则进行更新,使得更新后的
爆炸规则子划分单元,用于将引起状态爆炸的语法组合的规则使用NFA的方式处理或将所述规则进行重写处理,然后根据处理后的该规则的特征特性划分到相应的规则集中;
字符串切割子划分单元,用于将由.*和纯字符串组成的规则采用.*切割方式处理,然后将该规则划分到纯字符串的规则集中;
资源消耗子划分单元,用于将语法使用状态机消耗资源多的规则,划分到一个规则集中。
CN 201010176345 2010-05-17 2010-05-17 一种规则匹配方法、装置及系统 Expired - Fee Related CN101841546B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010176345 CN101841546B (zh) 2010-05-17 2010-05-17 一种规则匹配方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010176345 CN101841546B (zh) 2010-05-17 2010-05-17 一种规则匹配方法、装置及系统

Publications (2)

Publication Number Publication Date
CN101841546A true CN101841546A (zh) 2010-09-22
CN101841546B CN101841546B (zh) 2013-01-16

Family

ID=42744669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010176345 Expired - Fee Related CN101841546B (zh) 2010-05-17 2010-05-17 一种规则匹配方法、装置及系统

Country Status (1)

Country Link
CN (1) CN101841546B (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075511A (zh) * 2010-11-01 2011-05-25 北京神州绿盟信息安全科技股份有限公司 一种数据匹配设备和方法以及网络入侵检测设备和方法
WO2012071951A1 (zh) * 2010-11-29 2012-06-07 华为技术有限公司 用于通用协议解析的参数获取和通用协议解析方法及装置
CN102567456A (zh) * 2010-11-03 2012-07-11 微软公司 正则表达式的有条件的执行
CN102857493A (zh) * 2012-06-30 2013-01-02 华为技术有限公司 内容过滤方法和装置
CN102868571A (zh) * 2012-08-07 2013-01-09 华为技术有限公司 一种规则匹配方法和装置
CN103186640A (zh) * 2011-12-31 2013-07-03 百度在线网络技术(北京)有限公司 采用基于ac算法的正则匹配的流量过滤方法及装置
CN103188268A (zh) * 2013-03-29 2013-07-03 华为技术有限公司 一种识别攻击性报文的方法和装置
CN103544142A (zh) * 2012-07-17 2014-01-29 安凯(广州)微电子技术有限公司 一种状态机
CN104468239A (zh) * 2014-12-22 2015-03-25 上海大唐移动通信设备有限公司 一种基于规则的数据处理方法及装置
CN104750725A (zh) * 2013-12-30 2015-07-01 亿阳信通股份有限公司 一种基于非确定有限自动机的字符串搜索方法及其装置
CN106095756A (zh) * 2016-06-13 2016-11-09 尼玛扎西 基于自动机的藏文拼写检查方法和装置
CN106230725A (zh) * 2016-07-14 2016-12-14 杭州迪普科技有限公司 网包规则集的分类方法及装置
CN103685280B (zh) * 2013-12-18 2017-04-26 华为技术有限公司 报文匹配方法、状态机编译方法及设备
CN107291761A (zh) * 2016-04-05 2017-10-24 北京优朋普乐科技有限公司 一种正则表达式的匹配方法和装置
CN107645502A (zh) * 2017-09-20 2018-01-30 新华三信息安全技术有限公司 一种报文检测方法及装置
CN108959636A (zh) * 2018-07-25 2018-12-07 北京京东金融科技控股有限公司 数据处理方法、装置、系统、计算机可读介质
CN109670972A (zh) * 2018-12-11 2019-04-23 泰康保险集团股份有限公司 核保方法、装置、电子设备、存储介质
CN110324204A (zh) * 2019-07-01 2019-10-11 中国人民解放军陆军工程大学 一种在fpga中实现的高速正则表达式匹配引擎及方法
CN111031073A (zh) * 2020-01-03 2020-04-17 广东电网有限责任公司电力科学研究院 一种网络入侵检测系统及方法
WO2020107359A1 (zh) * 2018-11-30 2020-06-04 唐山曹妃甸联城科技有限公司 一种规则匹配方法及装置
CN112615874A (zh) * 2020-12-23 2021-04-06 北京天融信网络安全技术有限公司 一种网络防护方法及装置
CN113596043A (zh) * 2021-08-03 2021-11-02 中国电信股份有限公司 攻击检测方法、攻击检测装置、存储介质与电子设备
CN113992364A (zh) * 2021-10-15 2022-01-28 湖南恒茂高科股份有限公司 一种网络数据包阻断优化方法以及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492359A (zh) * 2002-04-10 2004-04-28 深圳市中兴通讯股份有限公司 一种多关键字自动状态机查找匹配方法
CN1674557A (zh) * 2005-04-01 2005-09-28 清华大学 基于tcam的解决范围匹配的并行ip包分类器及方法
WO2006002215A1 (en) * 2004-06-23 2006-01-05 Qualcomm Incorporated Efficient classification of network packets
CN1875597A (zh) * 2003-10-27 2006-12-06 国际商业机器公司 用于在网络上通信的方法、系统和程序产品

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492359A (zh) * 2002-04-10 2004-04-28 深圳市中兴通讯股份有限公司 一种多关键字自动状态机查找匹配方法
CN1875597A (zh) * 2003-10-27 2006-12-06 国际商业机器公司 用于在网络上通信的方法、系统和程序产品
WO2006002215A1 (en) * 2004-06-23 2006-01-05 Qualcomm Incorporated Efficient classification of network packets
CN1674557A (zh) * 2005-04-01 2005-09-28 清华大学 基于tcam的解决范围匹配的并行ip包分类器及方法

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014505279A (ja) * 2010-11-01 2014-02-27 エヌエスフォーカス インフォメーション テクノロジー カンパニー,リミテッド データ整合デバイスおよび方法、ならびにネットワーク侵入検知デバイスおよび方法
WO2012058994A1 (zh) * 2010-11-01 2012-05-10 北京神州绿盟信息安全科技股份有限公司 数据匹配设备和方法以及网络入侵检测设备和方法
CN102075511A (zh) * 2010-11-01 2011-05-25 北京神州绿盟信息安全科技股份有限公司 一种数据匹配设备和方法以及网络入侵检测设备和方法
US9258317B2 (en) 2010-11-01 2016-02-09 NSFOCUS Information Technology Co., Ltd. Device and method for data matching and device and method for network intrusion detection
CN102075511B (zh) * 2010-11-01 2014-05-14 北京神州绿盟信息安全科技股份有限公司 一种数据匹配设备和方法以及网络入侵检测设备和方法
CN102567456A (zh) * 2010-11-03 2012-07-11 微软公司 正则表达式的有条件的执行
WO2012071951A1 (zh) * 2010-11-29 2012-06-07 华为技术有限公司 用于通用协议解析的参数获取和通用协议解析方法及装置
CN103186640B (zh) * 2011-12-31 2016-05-25 百度在线网络技术(北京)有限公司 采用基于ac算法的正则匹配的流量过滤方法及装置
CN103186640A (zh) * 2011-12-31 2013-07-03 百度在线网络技术(北京)有限公司 采用基于ac算法的正则匹配的流量过滤方法及装置
CN102857493A (zh) * 2012-06-30 2013-01-02 华为技术有限公司 内容过滤方法和装置
CN102857493B (zh) * 2012-06-30 2015-07-08 华为技术有限公司 内容过滤方法和装置
CN103544142A (zh) * 2012-07-17 2014-01-29 安凯(广州)微电子技术有限公司 一种状态机
CN102868571A (zh) * 2012-08-07 2013-01-09 华为技术有限公司 一种规则匹配方法和装置
CN102868571B (zh) * 2012-08-07 2015-04-08 华为技术有限公司 一种规则匹配方法和装置
EP2830260A4 (en) * 2012-08-07 2015-07-01 Huawei Tech Co Ltd METHOD AND DEVICE FOR MATCHING RULES
US9811777B2 (en) 2012-08-07 2017-11-07 Huawei Technologies Co., Ltd. Rule matching method and apparatus for deep packet inspection
WO2014023091A1 (zh) * 2012-08-07 2014-02-13 华为技术有限公司 一种规则匹配方法和装置
CN103188268A (zh) * 2013-03-29 2013-07-03 华为技术有限公司 一种识别攻击性报文的方法和装置
CN103188268B (zh) * 2013-03-29 2016-08-10 华为技术有限公司 一种识别攻击性报文的方法和装置
CN103685280B (zh) * 2013-12-18 2017-04-26 华为技术有限公司 报文匹配方法、状态机编译方法及设备
CN104750725A (zh) * 2013-12-30 2015-07-01 亿阳信通股份有限公司 一种基于非确定有限自动机的字符串搜索方法及其装置
CN104750725B (zh) * 2013-12-30 2019-10-18 天津亿阳信通科技有限公司 一种基于非确定有限自动机的字符串搜索方法及其装置
CN104468239A (zh) * 2014-12-22 2015-03-25 上海大唐移动通信设备有限公司 一种基于规则的数据处理方法及装置
CN107291761A (zh) * 2016-04-05 2017-10-24 北京优朋普乐科技有限公司 一种正则表达式的匹配方法和装置
CN106095756A (zh) * 2016-06-13 2016-11-09 尼玛扎西 基于自动机的藏文拼写检查方法和装置
CN106095756B (zh) * 2016-06-13 2019-03-26 尼玛扎西 基于自动机的藏文拼写检查方法和装置
CN106230725A (zh) * 2016-07-14 2016-12-14 杭州迪普科技有限公司 网包规则集的分类方法及装置
CN106230725B (zh) * 2016-07-14 2019-09-06 杭州迪普科技股份有限公司 网包规则集的分类方法及装置
CN107645502B (zh) * 2017-09-20 2021-01-22 新华三信息安全技术有限公司 一种报文检测方法及装置
CN107645502A (zh) * 2017-09-20 2018-01-30 新华三信息安全技术有限公司 一种报文检测方法及装置
CN108959636A (zh) * 2018-07-25 2018-12-07 北京京东金融科技控股有限公司 数据处理方法、装置、系统、计算机可读介质
WO2020107359A1 (zh) * 2018-11-30 2020-06-04 唐山曹妃甸联城科技有限公司 一种规则匹配方法及装置
CN109670972A (zh) * 2018-12-11 2019-04-23 泰康保险集团股份有限公司 核保方法、装置、电子设备、存储介质
CN110324204A (zh) * 2019-07-01 2019-10-11 中国人民解放军陆军工程大学 一种在fpga中实现的高速正则表达式匹配引擎及方法
CN110324204B (zh) * 2019-07-01 2020-09-11 中国人民解放军陆军工程大学 一种在fpga中实现的高速正则表达式匹配引擎及方法
CN111031073A (zh) * 2020-01-03 2020-04-17 广东电网有限责任公司电力科学研究院 一种网络入侵检测系统及方法
CN111031073B (zh) * 2020-01-03 2021-10-19 广东电网有限责任公司电力科学研究院 一种网络入侵检测系统及方法
CN112615874A (zh) * 2020-12-23 2021-04-06 北京天融信网络安全技术有限公司 一种网络防护方法及装置
CN112615874B (zh) * 2020-12-23 2022-11-15 北京天融信网络安全技术有限公司 一种网络防护方法及装置
CN113596043A (zh) * 2021-08-03 2021-11-02 中国电信股份有限公司 攻击检测方法、攻击检测装置、存储介质与电子设备
CN113992364A (zh) * 2021-10-15 2022-01-28 湖南恒茂高科股份有限公司 一种网络数据包阻断优化方法以及系统

Also Published As

Publication number Publication date
CN101841546B (zh) 2013-01-16

Similar Documents

Publication Publication Date Title
CN101841546B (zh) 一种规则匹配方法、装置及系统
JP5674956B2 (ja) データ整合デバイスおよび方法、ならびにネットワーク侵入検知デバイスおよび方法
Dong et al. Packet classifiers in ternary CAMs can be smaller
CN101296114B (zh) 基于流的并行模式匹配方法和系统
CN102857493A (zh) 内容过滤方法和装置
CN109450900A (zh) 拟态判决方法、装置及系统
CN104025520B (zh) 查找表的创建方法、查询方法、控制器、转发设备和系统
CN104333483A (zh) 互联网应用流量识别方法、系统及识别装置
CN110414236A (zh) 一种恶意进程的检测方法及装置
CN105429950A (zh) 一种基于动态数据包采样的网络流量识别系统和方法
US11681606B2 (en) Automatic configuration of logging infrastructure for software deployments using source code
CN104333461A (zh) 互联网应用流量识别方法、系统及识别装置
CN105045808A (zh) 一种复合规则集匹配方法和系统
CN103324886A (zh) 一种网络攻击检测中指纹库的提取方法和系统
CN102819527A (zh) 在移动通信系统中匹配规则的方法和系统
Sinha et al. Wind: Workload-aware intrusion detection
CN102663108A (zh) 基于复杂网络模型并行化标签传播算法的药物社团发现方法
CN116149669B (zh) 一种基于二进制文件的软件成分分析方法、装置以及介质
CN1964324A (zh) 对流分类算法进行自动选择的方法
CN103166973B (zh) 协议识别的方法和装置
EP2641197A2 (en) Fast matching for content-based addresssing
CN109743260A (zh) 一种基于改进的acbm算法对网络流量进行过滤的装置和方法
CN104104557A (zh) 面向IPv6安全网关的深度包检测装置
Arge et al. I/O-efficient strong connectivity and depth-first search for directed planar graphs
CN109360561A (zh) 语音控制方法及系统、存储介质、语音模块、主控系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130116

Termination date: 20190517

CF01 Termination of patent right due to non-payment of annual fee