CN103973684A - 规则编译匹配方法及装置 - Google Patents
规则编译匹配方法及装置 Download PDFInfo
- Publication number
- CN103973684A CN103973684A CN201410190997.1A CN201410190997A CN103973684A CN 103973684 A CN103973684 A CN 103973684A CN 201410190997 A CN201410190997 A CN 201410190997A CN 103973684 A CN103973684 A CN 103973684A
- Authority
- CN
- China
- Prior art keywords
- rule
- matched
- data
- characteristic element
- rule tree
- 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
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供一种规则编译匹配方法及装置,涉及计算机领域,在对网络数据流规则匹配时,无需对所有规则全部遍历匹配,减少了需要匹配的规则的个数,有效提高了搜索匹配的效率。具体方案为:首先获取待匹配数据,根据待匹配数据对应的协议类型、端口类型对待匹配数据进行应用识别后在规则树中确定对应的子规则树,然后确定待匹配数据中包括的多个特征元的特征元类别,并根据特征元类别在子规则树中获取对应的规则子集,最后根据规则子集中包括的规则,对待匹配数据进行匹配。本发明的实施例用于入侵检测。
Description
技术领域
本发明实施例涉及计算机领域,尤其涉及一种规则编译匹配方法及装置。
背景技术
随着计算机和网络的普遍应用,来自网络安全威胁的攻击手段逐渐复杂化,保证计算机和网络安全就显得越来越重要。
入侵检测可以主动发现攻击和实时防护,对计算机网络安全起着重要的作用,以Snort为代表的开源入侵检测防护系统采用的规则编译匹配机制大致为:根据检测规则生成规则树,其中,检测规则由一组具有逻辑关系的特征元的集合组成,特征元为入侵检测,防病毒、垃圾邮件检测过滤等应用中定义的模式字符串,特征元以逻辑运算关系为组织关系构成规则条件,一条规则中至少有一条规则条件。每条检测规则的条件以逻辑与的运算方式组合在一起,规则库中的不同规则以逻辑或的运算方式构成规则库。在数据流检测匹配时,只有在一条规则中的每个条件成立时才为真,相应规则才能告警。Snort在构建规则树时先将所有的检测规则根据使用的协议分为互联网协议(Internet Protocol,IP)、传输控制协议(Transmission Control Protocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)和互联网控制报文协议(Internet Control Message Protocol,ICMP)四个主要节点,然后将检测规则以链表的形式对应串在四个主要节点上,抓取网络数据流后根据网络数据流的协议匹配IP、TCP、UDP或ICMP,匹配上四个主要节点中某个节点后,在对应的链表中从链表头开始依次遍历匹配链表中的所有规则,因此,Snort在对网络数据流进行匹配检测时很耗费时间。
发明内容
本发明实施例提供一种规则编译匹配方法及装置,在对网络数据流规则匹配时使用基于索引表结构的规则树,无需对所有规则全部遍历匹配,减少了需要匹配的规则的个数,有效提高了搜索匹配的效率。
第一方面,本发明实施例提供一种规则编译匹配方法,所述方法包括:
获取待匹配数据,根据所述待匹配数据对应的协议类型、端口类型对所述待匹配数据进行应用识别后在规则树中确定对应的子规则树;其中,所述规则树包括分别与多个端口类型对应的多个所述子规则树;
确定所述待匹配数据中包括的多个特征元的特征元类别,并根据所述特征元类别在所述子规则树中获取对应的规则子集;其中,所述子规则树中包括多个规则子集,各规则子集中包括对应的特征元类别下所有用于对所述待匹配数据进行匹配的规则;
根据所述规则子集中包括的规则,对所述待匹配数据进行匹配。
第二方面,本发明实施例提供一种规则编译匹配装置,所述装置包括:
第一获取单元,用于获取待匹配数据,根据所述待匹配数据对应的协议类型、端口类型对所述待匹配数据进行应用识别后在规则树中确定对应的子规则树;其中,所述规则树包括分别与多个端口类型对应的多个所述子规则树;
第二获取单元,用于确定所述待匹配数据中包括的多个特征元的特征元类别,并根据所述特征元类别在所述子规则树中获取对应的规则子集;其中,所述子规则树中包括多个规则子集,各规则子集中包括对应的特征元类别下所有用于对所述待匹配数据进行匹配的规则;
匹配单元,用于根据所述规则子集中包括的规则,对所述待匹配数据进行匹配。
本发明实施例提供的规则编译匹配方法及装置,首先获取待匹配数据,根据所述待匹配数据对应的协议类型、端口类型对所述待匹配数据进行应用识别后在规则树中确定对应的子规则树,然后确定所述待匹配数据中包括的多个特征元的特征元类别,并根据所述特征元类别在所述子规则树中获取对应的规则子集,最后根据所述规则子集中包括的规则,对所述待匹配数据进行匹配。这样,在对网络数据流规则匹配时无需对所有规则全部遍历匹配,减少了需要匹配的规则的个数,有效提高了搜索匹配的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的规则编译匹配方法的流程示意图一;
图2为本发明实施例提供的规则编译匹配方法的流程示意图二;
图3为本发明实施例提供的规则树的构建方法的流程示意图一;
图4为本发明实施例提供的规则树的构建方法的流程示意图二;
图5为本发明实施例提供的规则编译匹配方法的效果示意图一;
图6为本发明实施例提供的规则编译匹配方法的效果示意图二;
图7为本发明实施例提供的规则编译匹配装置的结构示意图一;
图8为本发明实施例提供的规则编译匹配装置的结构示意图二。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种规则编译匹配方法,如图1所示,该方法包括:
步骤101、获取待匹配数据,根据待匹配数据对应的协议类型、端口类型对待匹配数据进行应用识别后在规则树中确定对应的子规则树;其中,规则树包括分别与多个端口类型对应的多个子规则树。
步骤102、确定待匹配数据中包括的多个特征元的特征元类别,并根据特征元类别在子规则树中获取对应的规则子集;其中,子规则树中包括多个规则子集,各规则子集中包括对应的特征元类别下所有用于对待匹配数据进行匹配的规则。
步骤103、根据规则子集中包括的规则,对待匹配数据进行匹配。
本发明实施例提供一种规则编译匹配方法,首先获取待匹配数据,根据待匹配数据对应的协议类型、端口类型对待匹配数据进行应用识别后在规则树中确定对应的子规则树,然后确定待匹配数据中包括的多个特征元的特征元类别,并根据特征元类别在子规则树中获取对应的规则子集,最后根据规则子集中包括的规则,对待匹配数据进行匹配。这样,在对网络数据流规则匹配时无需对所有规则全部遍历匹配,减少了需要匹配的规则的个数,有效提高了搜索匹配的效率。
为了使本领域技术人员能够更清楚地理解本发明实施例提供的技术方案,下面通过具体的实施例,对本发明的实施例提供的规则编译匹配方法进行详细说明,如图2所示,该方法包括:
步骤201、获取待匹配数据,根据待匹配数据对应的协议类型、端口类型对待匹配数据进行应用识别后在规则树中确定对应的子规则树;其中,规则树包括分别与多个端口类型对应的多个子规则树。
示例性的,入侵检测系统随机抓取网络数据包后得到用于匹配入侵规则的待匹配数据,对抓取的待匹配数据的数据包包头进行识别,可以得知该数据包的五元组信息(源IP地址,源端口,目的IP地址,目的端口,和传输层协议),根据待匹配数据的协议类型、端口类型对待匹配数据进行应用识别后在规则树中确定对应子规则树,其中,对待匹配数据进行应用识别表示对待匹配数据包按照协议类型、端口类型粗过滤,规则树包括分别与不同的端口类型对应的多个子规则树,例如,规则树包括IP协议类型下源端口为80对应的子规则树、TCP协议类型下目的端口为140对应的子规则树、UDP协议类型下源端口为40对应的子规则树以及ICMP协议类型下目的端口为60对应的子规则树,进一步的,上述子规则树还可以包括与不同协议地址对应的多个子规则树,需要说明的是,本发明对按照不同条件细化划分规则树得到子规则树的方式不做限定,规则树根据不同层的若干节点进行细化划分得到子规则树,规则树与划分得到的若干个子规则树的关系是根节点至子节点之间的从属细化关系。
步骤202、确定待匹配数据中包括的多个特征元的特征元类别,并根据特征元类别在子规则树中获取对应的规则子集;其中,子规则树中包括多个规则子集,各规则子集中包括对应的特征元类别下所有用于对待匹配数据进行匹配的规则。
示例性的,对抓取的数据包做进一步解析,可以确定该数据包中特征元的类别,特征元的类别包括:正则表达式型以及数值型。其中,正则表达式就是事先定义的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一种过滤逻辑。在网络数据传输的很多时候传输的数据是数字字符串,这种数字字符串就属于数值型的特征元。
根据特征元的类别在根据步骤201确定的子规则树中获取对应的规则子集,其中,子规则树中包括多个规则子集,各规则子集中包括对应的特征元类别下所有用于对待匹配数据进行匹配的规则,例如,一个规则子集包括正则表达式类别下所有用于对待匹配数据进行匹配的规则,另外,进一步的,可以对该规则子集进行划分,比如按照一定的分组要求对正则表达式进行分组,可以将该规则子集进一步划分得到不同组对应的规则集。
步骤203、根据待匹配数据的特征元类别判断规则集中与待匹配数据匹配的规则的类型,分别执行步骤204或步骤205。
步骤204、若待匹配数据的特征元类别为正则表达式型,则将待匹配数据与规则树中正则表达式型的规则进行匹配。
具体的,将待匹配数据输入到状态机中进行匹配,状态机由规则子集编译得到;根据状态机的输出结果判断待匹配数据是否匹配成功。
示例性的,在基于索引表结构的规则树生成后对特征元类别为正则表达式型的规则子集编译构建状态机,将特征元类别为正则表达式型的待匹配数据输入到状态机中进行匹配,根据状态机的输出结果判断待匹配数据是否匹配成功,例如,状态机的输出结果为真(true),则待匹配数据匹配成功进行告警。另外,在本发明实施例提供的方法中,特征元可以按照协议字段分组,协议字段由引擎解码器决定,即相同分组的特征元构建状态机,分组功能的具体实现具有多样化,本发明中不做限制。比如可以将带有通配符的特征元分到各个组,一条规则为特征元集合A={P1,P2,…,P10,P11,P12,…,Pt},包含于集合A中带贪婪量词且含通配符的最小集合为B={Pn=“ABCDE.*FGH”,…,Pm=”xy.*z”,(n<m)}。匹配时采用适合快速搜索固定串的内置正则引擎对网络数据流中经过分组的特征元可以实现较为精准的初级过滤。这样,可以有效降低构造状态机的复杂度,减小状态膨胀的规模和增长速率,同时也降低了利用状态机做搜索匹配时的复杂度。
步骤205、若待匹配数据的特征元类别为数值型,则将待匹配数据与规则树中数值型的规则进行匹配。
具体的,将待匹配数据中的数值型的特征元与规则子集中规则的数值型特征元进行比较;根据比较的结果判断待匹配数据是否匹配成功。
示例性的,假设,待匹配数据中的数值型的特征元为统一资源定位符(Uniform Resource Locator,URL)长度为3000个字符,规则子集中一条规则中特征元为URL长度2281,通过两者进行比较判断待匹配数据是否匹配成功,例如,两者长度不等则确定该规则未匹配成功继续匹配其余规则。
需要说明的是,考虑到减少状态机大小以及数值型特征元进入状态机搜索的时间,增加了匹配的复杂度,故采用数值型分组,将特征元中的数字按整型,长整型等数值型变量存储,跳过状态机匹配步骤,与规则树中对应的数值型的规则进行查找匹配,这样可以有效提高匹配效率。例如,当待匹配数据为超文本传输协议(Hypertext transfer protocol,HTTP)中的请求方法字段时,由于在征求修正意见书(Request For Comments,RFC)中已经确定请求方法字段列表,可以将该请求方法字段转换为数值型,这样,待匹配数据中的特征元就是数值型的特征元了,通过该数值型特征元与规则树中数值型特征元的规则比较后的结果来判断是否匹配成功。现有技术中对待匹配数据为HTTP协议中的请求方法字段匹配时是进入状态机进行匹配的,按照本发明实施例中的方法可以不需进入状态机进行匹配,减少了状态机的大小以及匹配时间。再例如,当待匹配数据为HTTP协议中的待匹配数据为HTTP协议中的(用于描述HTTP消息实体的传输长度)时,将Content-Length与规则树中对应的数值型特征元的规则比较,根据比较的结果判断是否匹配成功,现有技术中对待匹配数据为HTTP协议中的Content-Length匹配时是进入状态机进行匹配的,按照本发明实施例中的方法可以不需进入状态机进行匹配,减少了状态机的大小以及匹配时间。
在上述实施例中,根据待匹配数据的特征元的类别在基于索引表结构的规则中查找到对应的规则子集,大幅减少了需要匹配的规则的个数,相比现有技术中在规则链表中从链表头开始顺序匹配规则的方法可以有效减少匹配时间,提高搜索匹配的效率。
另外,在上述实施例中,其中所述的规则树可以通过如下步骤创建,如图3所示:
步骤301、根据每条原始规则中特征元的逻辑运算关系创建对应的新规则。
步骤302、根据原始规则中特征元的类别对所有新规则进行分组。
步骤303、根据分组结果按照协议字段重构新规则的逻辑存储关系,其中,逻辑运算关系为布尔运算。
步骤304、按照字典序固化存储新规则得到基于索引表结构的规则树并存储。
为了使本领域的技术人员能够更加详细的理解上述实施例中所述的规则树的创建方法,下面通过详细的例子对规则树的创建步骤进行说明,如图4所示:
步骤401、加载引擎规则并初始化,创建原始规则列表。
示例性的,加载入侵检测引擎的规则库,加载初始化文件,创建原始规则列表。
步骤402、检验原始规则列表中规则的完整性和正确性。
示例性的,可以对原始规则列表中的规则校验完整性保护以及循环冗余校验判断规则的完整性和正确性。
步骤403、读取一条规则,解析规则,初始化新规则。
示例性的,读取一条规则,解析该条规则用对应的语法表示出来,然后在内存中初始化新规则。
步骤404、按照特征元的逻辑运算关系,存储为新规则中的逻辑属性。
其中,逻辑运算关系为布尔运算。
具体的,布尔运算包括:与(and)运算、或(or)运算、非(not)运算以及异或(xor)运算等。
需要说明的是,相比现有技术中规则中的逻辑运算关系只有逻辑与运算,本发明实施例中的规则通过支持复杂逻辑运算关系可以有效增强检测规则对入侵攻击检测的覆盖度。
步骤405、解析规则中特征元,包含类别和约束条件。
示例性的,特征元的类别可以包括:正则表达式型和数值型。特征元的约束条件包括:匹配位置、匹配长度等。
步骤406、新规则创建完毕,加入新规则列表中。
示例性的,在内存中创建完成一条完整的新规则,将该规则对应加入到新规则列表中。
步骤407、判断原始规则列表中是否还有规则未解析。
如果有,则跳转到步骤403。
如果没有,则执行步骤408。
步骤408、按特征元类别对新规则列表中的新规则分组。
示例性的,将新规则列表中的新规则分为正则表达式组和数值型组。
步骤409、按照协议字段重构逻辑存储关系表并按字典序固化表中数据。
示例性的,按照协议字段对新规则列表中的所有新规则重新构建逻辑存储关系表,并按照字典序固化存储表中的数据。
通过二维表结构存储新规则中不同类别的规则,构建包含多字段属性的数据表,其中表中属性包含不同二维表之间的依赖关系数据也即二维表的索引数据,使得在查询匹配时快速准确找到索引数据。二维表数据采用默认表结构单元条目并对表中数据根据字典序排序,构建二维表过程同步构建索引数据,提高规则树中逻辑关系的查找效率。
另外,采用字典序固化存储规则可以高效有序的对新规则进行存储,并且在后续升级规则库时可以方便的对二维表进行更新也有利于查找搜索。
步骤410、将创建的基于索引表结构的规则树存储后加密输出。
示例性的,存储创建好的基于索引表结构的规则树,加密输出,后续用于对抓取的网络数据流的匹配。
另外,需要说明的是,以上介绍的构建基于索引表结构的规则树的方法仅是本发明实施例提供的一种方案,本发明对基于索引表结构的规则树的构建方法并不做限定。
为了使本领域的技术人员能够更加详细的理解本发明实施例提供的技术方案,下面通过详细的例子对网络数据流在规则树中的匹配过程进行说明:
待匹配数据与确定的规则子集中的规则的匹配是遍历进行的,也即待匹配数据要与规则子集中的规则依次匹配直至匹配成功告警,否则遍历所有规则。
假设规则子集中规则R1的规则条件为a1and a2and(a3or a4),其中,a1、a2、a3、a4表示特征元,规则R1表示的是按顺序匹配特征元。如图5所示,当网络数据流(字符串a2,字符串a1,字符串a3,字符串a4,…)输入到规则R1中进行匹配,在a2先到达时,首先需要搜索特征元a2在规则R1中位置关系,特征元a2的父节点为and关系,前驱兄弟节点为a1。在系统中查找规则R1的状态记录,检测状态中无规则R1状态的记录,特征元a1未早于a2命中,逻辑关系不成立,无法进入②状态,也即未匹配成功,正常退出规则R1的匹配。
假设规则子集中规则R2的规则条件为<a1and a2>and(a3or a4),其中,a1、a2、a3、a4表示特征元,<>中的表达式表示按自由顺序匹配。如图6所示,当网络数据流(字符串a2,字符串a1,字符串a3,字符串a4,…)输入到规则R2中进行匹配,在a2先到达时,首先需要搜索特征元a2在规则R2中位置关系,得到特征元a2根节点与父节点同为and关系,无前驱兄弟节点条件,在系统中查找规则R2的状态记录,检测状态中无规则R2状态的记录,即使特征元a1未命中,a2在自由序窗口内则无前驱顺序条件,前驱条件都满足开始创建R2状态记录,进入Ⅰ状态;字符串a1传入时,同前面的步骤,搜索特征元a1在规则R2中位置关系,得到特征元a1根节点与父节点同为and关系,无前驱兄弟节点条件,在系统中查找规则R2的状态记录,记录为a2,进入Ⅱ状态;待字符串a3传入时,同前面的步骤,先搜索逻辑树中a3节点逻辑关系得到a3根节点为and,父节点为or,间接前驱兄弟节点为a1,a2两个。在系统中查找规则R2的状态的记录,记录为a1,a3满足a1,a2两个前驱条件同时成立,进入状态Ⅲ,匹配命中,告警。
本发明实施例提供一种规则编译匹配方法,首先获取待匹配数据,根据待匹配数据对应的协议类型在规则树中确定对应的子规则树,然后确定待匹配数据中包括的多个特征元的特征元类别,并根据特征元类别在子规则树中获取对应的规则子集,最后根据规则子集中包括的规则,对待匹配数据进行匹配。这样,在对网络数据流规则匹配时无需对所有规则全部遍历匹配,减少了需要匹配的规则的个数,有效提高了搜索匹配的效率。
本发明实施例还提供一种规则编译匹配装置00,如图7所示,该装置00包括:
第一获取单元10,用于获取待匹配数据,根据待匹配数据对应的协议类型、端口类型对待匹配数据进行应用识别后在规则树中确定对应的子规则树;其中,规则树包括分别与多个端口类型对应的多个子规则树。
示例性的,第一获取单元10随机抓取网络数据包后得到用于匹配入侵规则的待匹配数据,对抓取的待匹配数据的数据包包头进行识别,可以获取该数据包协议类型,然后第一获取单元10根据待匹配数据的协议类型在规则树中确定对应子规则树,其中,对待匹配数据进行应用识别表示对待匹配数据包按照协议类型、端口类型粗过滤,规则树包括分别与不同的端口类型对应的多个子规则树,例如,规则树包括IP协议类型下源端口为80对应的子规则树、TCP协议类型下目的端口为140对应的子规则树、UDP协议类型下源端口为40对应的子规则树以及ICMP协议类型下目的端口为60对应的子规则树,进一步的,上述子规则树还可以包括与不同协议地址对应的多个子规则树,需要说明的是,本发明对按照不同条件细化划分规则树得到子规则树的方式不做限定,规则树根据不同层的若干节点进行细化划分得到子规则树,规则树与划分得到的若干个子规则树的关系是根节点至子节点之间的从属细化关系。
第二获取单元20,用于确定待匹配数据中包括的多个特征元的特征元类别,并根据特征元类别在由第一获取单元10确定的子规则树中获取对应的规则子集;其中,子规则树中包括多个规则子集,各规则子集中包括对应的特征元类别下所有用于对待匹配数据进行匹配的规则。
示例性的,第二获取单元20对抓取的数据包做进一步解析,可以确定该数据包中特征元的类别,然后第二获取单元20根据特征元的类别在由第一获取单元10确定的子规则树中获取对应的规则子集,其中,子规则树中包括多个规则子集,各规则子集中包括对应的特征元类别下所有用于对待匹配数据进行匹配的规则。
匹配单元30,用于根据由第二获取单元20确定的规则子集中包括的规则,对待匹配数据进行匹配。
可选的,当特征元类别为正则表达式型时,匹配单元30具体用于:
将待匹配数据输入到状态机中进行匹配,状态机由规则子集编译得到;
根据状态机的输出结果判断待匹配数据是否匹配成功。
示例性的,在基于索引表结构的规则树生成后对特征元类别为正则表达式型的规则子集编译构建状态机,将特征元类别为正则表达式型的待匹配数据输入到状态机中进行匹配,根据状态机的输出结果判断待匹配数据是否匹配成功。
可选的,当特征元类别为数值型时,匹配单元30具体用于:
将待匹配数据中的数值型的特征元与规则子集中规则的数值型特征元进行比较;
根据比较的结果判断待匹配数据是否匹配成功。
示例性的,假设待匹配数据中的数值型的特征元为:URL长度为3000个字符,规则子集中一条规则中特征元为URL长度2281,通过两者进行比较判断待匹配数据是否匹配成功,例如,两者长度不等则确定该规则未匹配成功继续匹配其余规则。
可选的,如图8所示,该装置00还包括:
规则树构建单元40,用于根据每条原始规则中特征元的逻辑运算关系创建对应的新规则;根据原始规则中特征元的类别对所有新规则进行分组;根据分组结果对所有新规则创建索引表结构的规则树并存储。
可选的,各规则中包括的各特征元的逻辑运算关系为布尔运算。
具体的,布尔运算包括:与(and)运算、或(or)运算、非(not)运算以及异或(xor)运算等。
可选的,规则树构建单元40可以具体用于:
根据每条原始规则中特征元的逻辑运算关系创建对应的新规则;
根据原始规则中特征元的类别对所有新规则进行分组;
根据分组结果按照协议字段重构新规则的逻辑存储关系;
按照字典序固化存储新规则得到基于索引表结构的规则树并存储。
本实施例用于实现上述各方法实施例,本实施例中各个单元的工作流程和工作原理参见上述各方法实施例中的描述,在此不再赘述。
本发明实施例提供一种规则编译匹配方法,首先获取待匹配数据,根据待匹配数据对应的协议类型、端口类型对待匹配数据进行应用识别后在规则树中确定对应的子规则树,然后确定待匹配数据中包括的多个特征元的特征元类别,并根据特征元类别在子规则树中获取对应的规则子集,最后根据规则子集中包括的规则,对待匹配数据进行匹配。这样,在对网络数据流规则匹配时无需对所有规则全部遍历匹配,减少了需要匹配的规则的个数,有效提高了搜索匹配的效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种规则编译匹配方法,其特征在于,包括:
获取待匹配数据,根据所述待匹配数据对应的协议类型、端口类型对所述待匹配数据进行应用识别后在规则树中确定对应的子规则树;其中,所述规则树包括分别与多个端口类型对应的多个所述子规则树;
确定所述待匹配数据中包括的多个特征元的特征元类别,并根据所述特征元类别在所述子规则树中获取对应的规则子集;其中,所述子规则树中包括多个规则子集,各规则子集中包括对应的特征元类别下所有用于对所述待匹配数据进行匹配的规则;
根据所述规则子集中包括的规则,对所述待匹配数据进行匹配。
2.根据权利要求1所述的方法,其特征在于,所述特征元类别为正则表达式型,则所述根据所述规则子集中包括的规则,对所述待匹配数据进行匹配包括:
将所述待匹配数据输入到状态机中进行匹配,所述状态机由所述规则子集编译得到;
根据所述状态机的输出结果判断所述待匹配数据是否匹配成功。
3.根据权利要求1所述的方法,其特征在于,所述特征元类别为数值型,则所述根据所述规则子集中包括的规则,对所述待匹配数据进行匹配包括:
将所述待匹配数据中的数值型的特征元与所述规则子集中规则的数值型特征元进行比较;
根据所述比较的结果判断所述待匹配数据是否匹配成功。
4.根据权利要求1或2或3所述的方法,其特征在于,所述各规则中包括的各特征元的逻辑运算关系为布尔运算。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括,创建所述规则树的步骤,具体包括:
根据每条原始规则中特征元的逻辑运算关系创建对应的新规则;
根据所述原始规则中特征元的类别对所有新规则进行分组;
根据所述分组结果对所述所有新规则创建索引表结构的规则树并存储。
6.根据权利要求5所述的方法,其特征在于,所述根据所述分组结果对所述所有新规则创建索引表结构的规则树并存储包括:
根据所述分组结果按照协议字段重构所述新规则的逻辑存储关系;
按照字典序固化存储所述新规则得到基于索引表结构的所述规则树并存储。
7.一种规则编译匹配装置,其特征在于,包括:
第一获取单元,用于获取待匹配数据,根据所述待匹配数据对应的协议类型、端口类型对所述待匹配数据进行应用识别后在规则树中确定对应的子规则树;其中,所述规则树包括分别与多个端口类型对应的多个所述子规则树;
第二获取单元,用于确定所述待匹配数据中包括的多个特征元的特征元类别,并根据所述特征元类别在所述子规则树中获取对应的规则子集;其中,所述子规则树中包括多个规则子集,各规则子集中包括对应的特征元类别下所有用于对所述待匹配数据进行匹配的规则;
匹配单元,用于根据所述规则子集中包括的规则,对所述待匹配数据进行匹配。
8.根据权利要求7所述的装置,其特征在于,所述特征元类别为正则表达式型,所述匹配单元具体用于:
将所述待匹配数据输入到状态机中进行匹配,所述状态机由所述规则子集编译得到;
根据所述状态机的输出结果判断所述待匹配数据是否匹配成功。
9.根据权利要求7所述的装置,其特征在于,所述特征元类别为数值型,所述匹配单元具体用于:
将所述待匹配数据中的数值型的特征元与所述规则子集中规则的数值型特征元进行比较;
根据所述比较的结果判断所述待匹配数据是否匹配成功。
10.根据权利要求7或8或9所述的装置,其特征在于,所述各规则中包括的各特征元的逻辑运算关系为布尔运算。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括,规则树构建单元,用于:
根据每条原始规则中特征元的逻辑运算关系创建对应的新规则;
根据所述原始规则中特征元的类别对所有新规则进行分组;
根据所述分组结果对所述所有新规则创建索引表结构的规则树并存储。
12.根据权利要求11所述的装置,其特征在于,所述规则树构建单元具体用于:
根据每条原始规则中特征元的逻辑运算关系创建对应的新规则;
根据所述原始规则中特征元的类别对所有新规则进行分组;
根据所述分组结果按照协议字段重构所述新规则的逻辑存储关系;
按照字典序固化存储所述新规则得到基于索引表结构的所述规则树并存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410190997.1A CN103973684B (zh) | 2014-05-07 | 2014-05-07 | 规则编译匹配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410190997.1A CN103973684B (zh) | 2014-05-07 | 2014-05-07 | 规则编译匹配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103973684A true CN103973684A (zh) | 2014-08-06 |
CN103973684B CN103973684B (zh) | 2017-05-24 |
Family
ID=51242730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410190997.1A Active CN103973684B (zh) | 2014-05-07 | 2014-05-07 | 规则编译匹配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103973684B (zh) |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104135490A (zh) * | 2014-08-14 | 2014-11-05 | 浪潮(北京)电子信息产业有限公司 | 入侵检测系统分析方法和入侵检测系统 |
CN104331278A (zh) * | 2014-10-15 | 2015-02-04 | 南京航空航天大学 | 一种用于arinc661规范的指令过滤方法和装置 |
CN104573101A (zh) * | 2015-01-29 | 2015-04-29 | 南京烽火星空通信发展有限公司 | 一种基于规则路由的数据流实时分类方法及系统 |
CN105096033A (zh) * | 2015-07-01 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种提供决策信息的方法和装置 |
CN105574032A (zh) * | 2014-10-15 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 规则匹配运算方法及装置 |
CN106484699A (zh) * | 2015-08-25 | 2017-03-08 | 北京国双科技有限公司 | 数据库查询字段的生成方法及装置 |
CN106534095A (zh) * | 2016-10-27 | 2017-03-22 | 成都知道创宇信息技术有限公司 | 一种waf安全规则的快速匹配方法 |
CN106713254A (zh) * | 2015-11-18 | 2017-05-24 | 中国科学院声学研究所 | 一种匹配正则集的生成及深度包检测方法 |
CN106873484A (zh) * | 2017-02-27 | 2017-06-20 | 今创科技有限公司 | 一种轨道交通气象监控方法、装置以及系统 |
CN107612906A (zh) * | 2017-09-15 | 2018-01-19 | 南京安讯科技有限责任公司 | 一种精确识别跨报文协议特征的方法 |
CN107659535A (zh) * | 2016-07-25 | 2018-02-02 | 中国移动通信集团上海有限公司 | 一种规则识别方法及装置 |
CN107707479A (zh) * | 2017-10-31 | 2018-02-16 | 北京锐安科技有限公司 | 五元组规则的查找方法及装置 |
CN108460038A (zh) * | 2017-02-20 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 规则匹配方法及其设备 |
CN108572573A (zh) * | 2018-04-20 | 2018-09-25 | 高新兴科技集团股份有限公司 | 一种告警监控方法 |
CN108710334A (zh) * | 2018-04-20 | 2018-10-26 | 高新兴科技集团股份有限公司 | 一种告警监控平台 |
CN108881145A (zh) * | 2017-12-26 | 2018-11-23 | 北京安天网络安全技术有限公司 | 入侵检测规则优化方法、装置、电子设备及存储介质 |
CN109391590A (zh) * | 2017-08-07 | 2019-02-26 | 中国科学院信息工程研究所 | 一种面向网络访问控制的规则描述方法及构建方法、介质 |
CN109639694A (zh) * | 2018-12-20 | 2019-04-16 | 国云科技股份有限公司 | 一种基于规则树检索的防火墙数据包匹配算法 |
CN109740249A (zh) * | 2018-12-29 | 2019-05-10 | 西安智多晶微电子有限公司 | 一种mux树逻辑结构优化方法、模块及存储介质 |
CN110213207A (zh) * | 2018-05-07 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种基于日志分析的网络安全防御方法及设备 |
CN110708317A (zh) * | 2019-10-10 | 2020-01-17 | 深圳市网心科技有限公司 | 数据包匹配方法、装置、网络设备及存储介质 |
CN111064730A (zh) * | 2019-12-23 | 2020-04-24 | 深信服科技股份有限公司 | 网络安全检测方法、装置、设备及存储介质 |
CN111353018A (zh) * | 2020-02-24 | 2020-06-30 | 杭州迪普信息技术有限公司 | 基于深度包检测的数据处理方法、装置和网络设备 |
CN111541672A (zh) * | 2016-12-23 | 2020-08-14 | 新东网科技有限公司 | 一种检测http请求安全性方法及系统 |
CN111756686A (zh) * | 2020-05-18 | 2020-10-09 | 武汉思普崚技术有限公司 | 防火墙设备正则匹配方法、装置及计算机可读存储介质 |
CN112527953A (zh) * | 2020-11-20 | 2021-03-19 | 出门问问(武汉)信息科技有限公司 | 规则匹配方法及装置 |
CN112615874A (zh) * | 2020-12-23 | 2021-04-06 | 北京天融信网络安全技术有限公司 | 一种网络防护方法及装置 |
CN112994931A (zh) * | 2021-02-05 | 2021-06-18 | 绿盟科技集团股份有限公司 | 一种规则匹配的方法及其设备 |
CN113360522A (zh) * | 2020-03-05 | 2021-09-07 | 奇安信科技集团股份有限公司 | 一种快速识别敏感数据的方法及装置 |
CN113992364A (zh) * | 2021-10-15 | 2022-01-28 | 湖南恒茂高科股份有限公司 | 一种网络数据包阻断优化方法以及系统 |
CN114625929A (zh) * | 2022-03-17 | 2022-06-14 | 北京启明星辰信息安全技术有限公司 | 一种抽样采集报文的方法和装置 |
CN114900339A (zh) * | 2022-04-20 | 2022-08-12 | 北京持安科技有限公司 | 入侵检测方法、系统、设备及存储介质 |
WO2023151252A1 (zh) * | 2022-02-11 | 2023-08-17 | 中国银联股份有限公司 | 特征匹配规则构建、特征匹配方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070214504A1 (en) * | 2004-03-30 | 2007-09-13 | Paolo Milani Comparetti | Method And System For Network Intrusion Detection, Related Network And Computer Program Product |
CN102142009A (zh) * | 2010-12-09 | 2011-08-03 | 华为技术有限公司 | 一种正则表达式匹配的方法及装置 |
CN102821002A (zh) * | 2011-06-09 | 2012-12-12 | 中国移动通信集团河南有限公司信阳分公司 | 网络流量异常检测方法和系统 |
CN102868571A (zh) * | 2012-08-07 | 2013-01-09 | 华为技术有限公司 | 一种规则匹配方法和装置 |
US20130191916A1 (en) * | 2010-11-01 | 2013-07-25 | NSFOCUS Information Technology Co., Ltd. | Device and method for data matching and device and method for network intrusion detection |
-
2014
- 2014-05-07 CN CN201410190997.1A patent/CN103973684B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070214504A1 (en) * | 2004-03-30 | 2007-09-13 | Paolo Milani Comparetti | Method And System For Network Intrusion Detection, Related Network And Computer Program Product |
US20130191916A1 (en) * | 2010-11-01 | 2013-07-25 | NSFOCUS Information Technology Co., Ltd. | Device and method for data matching and device and method for network intrusion detection |
CN102142009A (zh) * | 2010-12-09 | 2011-08-03 | 华为技术有限公司 | 一种正则表达式匹配的方法及装置 |
CN102821002A (zh) * | 2011-06-09 | 2012-12-12 | 中国移动通信集团河南有限公司信阳分公司 | 网络流量异常检测方法和系统 |
CN102868571A (zh) * | 2012-08-07 | 2013-01-09 | 华为技术有限公司 | 一种规则匹配方法和装置 |
Non-Patent Citations (1)
Title |
---|
梁萍, 等: "基于判定树的Snort规则集优化构造方法", 《计算机工程》 * |
Cited By (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104135490A (zh) * | 2014-08-14 | 2014-11-05 | 浪潮(北京)电子信息产业有限公司 | 入侵检测系统分析方法和入侵检测系统 |
CN104331278A (zh) * | 2014-10-15 | 2015-02-04 | 南京航空航天大学 | 一种用于arinc661规范的指令过滤方法和装置 |
CN105574032A (zh) * | 2014-10-15 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 规则匹配运算方法及装置 |
CN104331278B (zh) * | 2014-10-15 | 2017-08-25 | 南京航空航天大学 | 一种用于arinc661规范的指令过滤方法和装置 |
CN104573101B (zh) * | 2015-01-29 | 2018-02-16 | 南京烽火星空通信发展有限公司 | 一种基于规则路由的数据流实时分类方法及系统 |
CN104573101A (zh) * | 2015-01-29 | 2015-04-29 | 南京烽火星空通信发展有限公司 | 一种基于规则路由的数据流实时分类方法及系统 |
CN105096033A (zh) * | 2015-07-01 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种提供决策信息的方法和装置 |
CN105096033B (zh) * | 2015-07-01 | 2019-07-30 | 北京京东尚科信息技术有限公司 | 一种提供决策信息的方法和装置 |
CN106484699A (zh) * | 2015-08-25 | 2017-03-08 | 北京国双科技有限公司 | 数据库查询字段的生成方法及装置 |
CN106484699B (zh) * | 2015-08-25 | 2020-04-17 | 北京国双科技有限公司 | 数据库查询字段的生成方法及装置 |
CN106713254A (zh) * | 2015-11-18 | 2017-05-24 | 中国科学院声学研究所 | 一种匹配正则集的生成及深度包检测方法 |
CN106713254B (zh) * | 2015-11-18 | 2019-08-06 | 中国科学院声学研究所 | 一种匹配正则集的生成及深度包检测方法 |
CN107659535A (zh) * | 2016-07-25 | 2018-02-02 | 中国移动通信集团上海有限公司 | 一种规则识别方法及装置 |
CN106534095A (zh) * | 2016-10-27 | 2017-03-22 | 成都知道创宇信息技术有限公司 | 一种waf安全规则的快速匹配方法 |
CN111541672A (zh) * | 2016-12-23 | 2020-08-14 | 新东网科技有限公司 | 一种检测http请求安全性方法及系统 |
CN108460038A (zh) * | 2017-02-20 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 规则匹配方法及其设备 |
CN106873484A (zh) * | 2017-02-27 | 2017-06-20 | 今创科技有限公司 | 一种轨道交通气象监控方法、装置以及系统 |
CN109391590A (zh) * | 2017-08-07 | 2019-02-26 | 中国科学院信息工程研究所 | 一种面向网络访问控制的规则描述方法及构建方法、介质 |
CN107612906A (zh) * | 2017-09-15 | 2018-01-19 | 南京安讯科技有限责任公司 | 一种精确识别跨报文协议特征的方法 |
CN107707479B (zh) * | 2017-10-31 | 2021-08-31 | 北京锐安科技有限公司 | 五元组规则的查找方法及装置 |
CN107707479A (zh) * | 2017-10-31 | 2018-02-16 | 北京锐安科技有限公司 | 五元组规则的查找方法及装置 |
CN108881145A (zh) * | 2017-12-26 | 2018-11-23 | 北京安天网络安全技术有限公司 | 入侵检测规则优化方法、装置、电子设备及存储介质 |
CN108710334A (zh) * | 2018-04-20 | 2018-10-26 | 高新兴科技集团股份有限公司 | 一种告警监控平台 |
CN108572573A (zh) * | 2018-04-20 | 2018-09-25 | 高新兴科技集团股份有限公司 | 一种告警监控方法 |
CN110213207B (zh) * | 2018-05-07 | 2021-12-28 | 腾讯科技(深圳)有限公司 | 一种基于日志分析的网络安全防御方法及设备 |
CN110213207A (zh) * | 2018-05-07 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种基于日志分析的网络安全防御方法及设备 |
CN109639694A (zh) * | 2018-12-20 | 2019-04-16 | 国云科技股份有限公司 | 一种基于规则树检索的防火墙数据包匹配算法 |
CN109740249B (zh) * | 2018-12-29 | 2023-03-24 | 西安智多晶微电子有限公司 | 一种mux树逻辑结构优化方法、模块及存储介质 |
CN109740249A (zh) * | 2018-12-29 | 2019-05-10 | 西安智多晶微电子有限公司 | 一种mux树逻辑结构优化方法、模块及存储介质 |
CN110708317A (zh) * | 2019-10-10 | 2020-01-17 | 深圳市网心科技有限公司 | 数据包匹配方法、装置、网络设备及存储介质 |
CN110708317B (zh) * | 2019-10-10 | 2022-09-20 | 深圳市网心科技有限公司 | 数据包匹配方法、装置、网络设备及存储介质 |
CN111064730A (zh) * | 2019-12-23 | 2020-04-24 | 深信服科技股份有限公司 | 网络安全检测方法、装置、设备及存储介质 |
CN111353018B (zh) * | 2020-02-24 | 2023-11-10 | 杭州迪普信息技术有限公司 | 基于深度包检测的数据处理方法、装置和网络设备 |
CN111353018A (zh) * | 2020-02-24 | 2020-06-30 | 杭州迪普信息技术有限公司 | 基于深度包检测的数据处理方法、装置和网络设备 |
CN113360522B (zh) * | 2020-03-05 | 2023-10-31 | 奇安信科技集团股份有限公司 | 一种快速识别敏感数据的方法及装置 |
CN113360522A (zh) * | 2020-03-05 | 2021-09-07 | 奇安信科技集团股份有限公司 | 一种快速识别敏感数据的方法及装置 |
CN111756686A (zh) * | 2020-05-18 | 2020-10-09 | 武汉思普崚技术有限公司 | 防火墙设备正则匹配方法、装置及计算机可读存储介质 |
CN111756686B (zh) * | 2020-05-18 | 2022-04-26 | 武汉思普崚技术有限公司 | 防火墙设备正则匹配方法、装置及计算机可读存储介质 |
CN112527953A (zh) * | 2020-11-20 | 2021-03-19 | 出门问问(武汉)信息科技有限公司 | 规则匹配方法及装置 |
CN112615874B (zh) * | 2020-12-23 | 2022-11-15 | 北京天融信网络安全技术有限公司 | 一种网络防护方法及装置 |
CN112615874A (zh) * | 2020-12-23 | 2021-04-06 | 北京天融信网络安全技术有限公司 | 一种网络防护方法及装置 |
CN112994931B (zh) * | 2021-02-05 | 2023-01-17 | 绿盟科技集团股份有限公司 | 一种规则匹配的方法及其设备 |
CN112994931A (zh) * | 2021-02-05 | 2021-06-18 | 绿盟科技集团股份有限公司 | 一种规则匹配的方法及其设备 |
CN113992364A (zh) * | 2021-10-15 | 2022-01-28 | 湖南恒茂高科股份有限公司 | 一种网络数据包阻断优化方法以及系统 |
WO2023151252A1 (zh) * | 2022-02-11 | 2023-08-17 | 中国银联股份有限公司 | 特征匹配规则构建、特征匹配方法、装置、设备及介质 |
CN114625929A (zh) * | 2022-03-17 | 2022-06-14 | 北京启明星辰信息安全技术有限公司 | 一种抽样采集报文的方法和装置 |
CN114900339A (zh) * | 2022-04-20 | 2022-08-12 | 北京持安科技有限公司 | 入侵检测方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103973684B (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103973684A (zh) | 规则编译匹配方法及装置 | |
Luo et al. | Position-based automatic reverse engineering of network protocols | |
Razzaq et al. | Ontology for attack detection: An intelligent approach to web application security | |
CN111614599B (zh) | 基于人工智能的webshell检测方法和装置 | |
US11601462B2 (en) | Systems and methods of intelligent and directed dynamic application security testing | |
CN102857493A (zh) | 内容过滤方法和装置 | |
CN111818018B (zh) | 一种基于机器学习模型的sql注入攻击检测方法 | |
CN107026821A (zh) | 报文的处理方法及装置 | |
AL‐Taharwa et al. | JSOD: JavaScript obfuscation detector | |
Dosis et al. | Semantic representation and integration of digital evidence | |
CN108055166B (zh) | 一种嵌套的应用层协议的状态机提取系统及其提取方法 | |
CN111767443A (zh) | 一种高效的网络爬虫分析平台 | |
Gao et al. | A lightweight framework for function name reassignment based on large-scale stripped binaries | |
Wang et al. | Identifying DApps and user behaviors on ethereum via encrypted traffic | |
Aldwairi et al. | n‐Grams exclusion and inclusion filter for intrusion detection in Internet of Energy big data systems | |
KR102257139B1 (ko) | 다크웹 정보 수집 방법 및 장치 | |
Erbacher et al. | Extending case-based reasoning to network alert reporting | |
CN108259416A (zh) | 检测恶意网页的方法及相关设备 | |
Karande et al. | Ontology based intrusion detection system for web application security | |
Ge’Tman et al. | A survey of problems and solution methods in network traffic classification | |
Kurniawan et al. | Classification of web backdoor malware based on function call execution of static analysis | |
Djemaiel et al. | Optimizing big data management using conceptual graphs: a mark-based approach | |
Shao et al. | Grammar-Driven Workload Generation for Efficient Evaluation of Signature-Based Network Intrusion Detection Systems | |
RU2811375C1 (ru) | Система и способ формирования классификатора для обнаружения фишинговых сайтов при помощи хешей объектов DOM | |
Karius et al. | Machine learning and cyber security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100089 3rd floor, Yitai building, 4 Beiwa Road, Haidian District, Beijing Patentee after: NSFOCUS Technologies Group Co.,Ltd. Patentee after: NSFOCUS TECHNOLOGIES Inc. Address before: 100089 3rd floor, Yitai building, 4 Beiwa Road, Haidian District, Beijing Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd. Patentee before: NSFOCUS TECHNOLOGIES Inc. |
|
CP01 | Change in the name or title of a patent holder |