CN110474929B - 一种冗余规则检测方法及装置 - Google Patents
一种冗余规则检测方法及装置 Download PDFInfo
- Publication number
- CN110474929B CN110474929B CN201910926414.XA CN201910926414A CN110474929B CN 110474929 B CN110474929 B CN 110474929B CN 201910926414 A CN201910926414 A CN 201910926414A CN 110474929 B CN110474929 B CN 110474929B
- Authority
- CN
- China
- Prior art keywords
- rule
- child
- rules
- child node
- parent
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种冗余规则检测方法装置,涉及互联网技术领域,上述方法包括:根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系,二叉树形结构中各个子节点对应规则的目标匹配项的一个取值,子节点所关联的规则为:已知规则中目标匹配项的取值等于子节点所对应取值的规则;每一子节点所对应的取值中前第一数量个比特位等于第一二进制数,第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数;根据所获得的父子关系,确定已知规则中存在父规则的规则,并将确定出的规则确定为针对目标匹配项的冗余规则。应用本申请实施例提供的方案能够检测出已有规则中的冗余规则。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种冗余规则检测方法及装置。
背景技术
防火墙规则是根据报文的属性信息对报文进行转发控制的防控规则,其实质是根据防火墙规则对报文进行过滤。
实际应用中,随着报文过滤需求不断被更新,需要配置的防火墙规则越来越多。而随着防火墙规则增多,会涌现大量冗余规则,也就是多余、重复的冗余,这样会导致报文过滤效率低下。因此,需要对冗余规则进行检测。
鉴于此,需要提供一种冗余规则检测方案,以实现对冗余规则的检测。
发明内容
本申请实施例的目的在于提供一种冗余规则检测方法及装置,以实现冗余规则检测。具体技术方案如下:
第一方面,本申请实施例提供了一种冗余规则检测方法,所述方法包括:
根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系,其中,所述二叉树形结构中除根节点外的任一子节点表示至少一个比特位的位号,各个子节点对应规则的目标匹配项的一个取值,且子节点所关联的规则为:已知规则中所述目标匹配项的取值等于子节点所对应取值的规则;每一子节点所对应的取值中前第一数量个比特位等于第一二进制数,所述第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数,所述第一数量为:子节点所在层的层数;
根据所获得的父子关系,确定已知规则中存在父规则的规则,并将确定出的规则确定为针对所述目标匹配项的冗余规则。
第二方面,本申请实施例提供了一种冗余规则检测装置,所述装置包括:
关系获得模块,用于根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系,其中,所述二叉树形结构中除根节点外的任一子节点表示至少一个比特位的位号,各个子节点对应规则的目标匹配项的一个取值,且子节点所关联的规则为:已知规则中所述目标匹配项的取值等于子节点所对应取值的规则;每一子节点所对应的取值中前第一数量个比特位等于第一二进制数,所述第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数,所述第一数量为:子节点所在层的层数;
第一规则确定模块,用于根据所获得的父子关系,确定已知规则中存在父规则的规则,并将确定出的规则确定为针对所述目标匹配项的冗余规则。
第三方面,本申请实施例提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现本申请实施例所述的方法步骤。
第四方面,本申请实施例提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现本申请实施例所述的方法步骤。
由以上可见,应用本申请实施例提供的方案检测冗余规则时,由于预先构建的二叉树形结构中各个子节点所关联的规则为:已知规则中目标匹配项的取值等于子节点所对应取值的规则,又由于每一子节点所对应的取值中前第一数量个比特位等于第一二进制数,其中,第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数,第一数量为:子节点所在层的层数,这样可以根据上述二叉树形结构获得各个已知规则之间的父子关系,进而确定出已知规则中存在父规则的规则,并将确定出的规则确定为针对目标匹配项的冗余规则。可见,应用本申请实施例提供的方案,能够检测出已知规则中的冗余规则。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种冗余规则检测方法的流程示意图;
图2为本申请实施例提供的一种二叉树形结构的示意图;
图3为本申请实施例提供的另一种冗余规则检测方法的流程示意图;
图4为本申请实施例提供的一种冗余规则检测装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请各个实施例提供的冗余规则检测方案是基于二叉树形结构实现的。为便于理解本申请实施例提供的方案,下面先对本申请实施例中涉及的概念以及上述二叉树形结构进行介绍。
1、规则
上述规则可以是用于对报文进行转发控制的规则,可以是用于对报文进行深度报文检测的规则等等,本申请并对此进行限定。
具体的,上述规则可以是通过匹配项进行描述的。其中,上述匹配项可以为:报文的源IP地址、报文的目的IP地址、报文的源端口、报文的目的端口等信息中的至少一种。
假设,一个规则是通过报文的源IP地址和报文的目的IP地址这两个匹配项描述的,则该规则可以为:检测报文的源IP地址是否位于预设的源地址网段范围内、且报文的目的IP地址是否位于预设的目的地址网段范围内。
上述源地址网段和目的地址网段可以为IPv4地址网段,也可以为IPv6地址网段。相应的,本申请实施例中所涉及的报文的源IP地址、报文的目的IP地址可以是Ipv4地址,也可以是Ipv6地址。
另外,上述源地址网段、目的地址网段可以仅包含单个地址的主机地址,例如,1FF0::200/128,还可以是包含多个IP地址的网段,例如,1FF0::0/116,还可以是地址范围段,例如,1FF0::1-1FF0:F。
2、二叉树形结构
上述二叉树形结构中除根节点外的任一子节点表示至少一个比特位的位号,各个子节点对应规则的目标匹配项的一个取值,且子节点所关联的规则为:已知规则中目标匹配项的取值等于子节点所对应取值的规则。
每一子节点所对应的取值中前第一数量个比特位等于第一二进制数。上述第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数。上述第一数量为:子节点所在层的层数。
从上述描述可以看出,上述二叉树形结构中的各个子节点是与规则的目标匹配项相关,据此可以得知,上述二叉树形结构是关联规则的一个匹配项的树形结构。由于各个规则可以是通过多个匹配项描述的,因此,在检测多个规则中的冗余规则时,可以分别针对不同的匹配项构建二叉树形结构。
本申请的一个实施例中,上述目标匹配项可以为:报文的源IP地址、报文的目的IP地址、报文的源端口或者报文的目的端口。
也就是说,上述二叉树形结构可以是针对报文的源IP地址构建的二叉树形结构,这种情况下,各个子节点对应报文的源IP地址的一个取值,例如,1FF0::200/128。上述二叉树形结构可以是针对报文的目的IP地址构建的二叉树形结构,这种情况下,各个子节点对应报文的目的IP地址的一个取值,例如,1FF0::200/128。上述二叉树形结构可以是针对报文的源端口构建的二叉树形结构,这种情况下,各个子节点对应报文的源端口的一个取值,例如,8080。上述二叉树形结构可以是针对报文的目的端口构建的二叉树形结构,这种情况下,各个子节点对应报文的目的端口的一个取值,例如,8080。
下面以IPv6地址为例,对二叉树形结构中除根节点外的任一子节点表示的比特位的位号进行说明。
IPv6地址包含128个比特位,则上述树形结构中的每一子节点可以表示上述128个比特位的位号中的至少一个比特位的位号。例如,一个子节点可以表示第1个比特位的位号,还可以表示第1-100个比特位的位号等等。
又由于每一个比特位的取值可能为0,也可能为1,因此,每一个子节点中可以存储有其所表示位号的比特位的取值。例如,若一个子节点表示第2个比特位的位号,这一比特位的取值为1,则上述子节点中存储的内容为1。若一个子节点表示的是第1-5个比特位的位号,这5个比特位的取值分别为:0、0、0、0、0,则上述子节点中存储的内容为00000。
上述每一子节点所对应的取值中前第一数量个比特位,可以理解为:以二进制形式表示各个子节点所对应的取值时从第一个比特位开始的第一数量个比特位。例如,按照现有的二进制表示形式,为从右边第一个比特位开始的第一数量个比特位。假设,一个子节点对应的取值以二进制表示为“11101”,则在第一数量为2时,从“11101”右边第一个比特位开始的2个比特位为:11。
下面通过举例对第一二进制数进行说明。
假设,从根节点到子节点N5所经路径上的子节点包括:子节点N1、N2、N3、N4和N5,这N1-N5这五个子节点各自表示的比特位分别为:0、1、00、11、0,则上述第一二进制数为:0100110。
需要说明的是,本申请实施例并不限定采用何种方式构建上述二叉树形结构,任何能够构建出满足上述要求的二叉树形结构的方式均可以适用于本申请实施例提供的方案。
例如,在已经获得多个已知规则、且目标匹配项为报文的源IP地址的情况下,可以先获得各个已知规则中涉及的源地址网段,并对各个源地址网段按照升序进行排序,然后按照排序后的源地址网段构建上述二叉树形结构。
具体的,由于地址网段是通过IP地址部分和网段前缀长度描述的,所以对各个已知地址网段进行排序时,可以是基于IP地址和网段前缀长度进行排序的。
本申请的一个实施例中,对地址网段进行排序时,可以以IP地址为第一优先级,而网段前缀长度为第二优先级,也就是,IP地址的优先级高于网段前缀长度的优先级。这样在对地址网段进行排序时,优先按照IP地址进行排序,在地址网段的IP地址相同的情况下,再按照地址网段的网段前缀长度进行排序。
在上述描述的基础上,以按照升序对地址网段进行排序为例,假设,地址网段包括:
IFF0::0/116、IFF0::0/117、IFF0::210/124、IFF0::280/121、IFF0::200/128。
则在IP地址的优先级高于网段前缀长度的优先级的情况下,按照升序对上述网段进行排序的结果为:
IFF0::0/116、IFF0::0/117、IFF0::200/128、IFF0::210/124、IFF0::280/121。
下面通过具体实施例对本申请实施例提供的冗余规则检测方法和装置进行说明。
参见图1,提供了一种冗余规则检测方法的流程示意图,该方法包括下述S101-S102。
S101:根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系。
具体的,上述二叉树形结构可以是在执行本申请实施例提供的冗余规则检测方案之前预先构建的二叉树形结构。
上述二叉树形结构还可以是在确定要进行冗余规则检测的各个已知规则后,针对各个已知规则构建的、且与目标匹配项关联的二叉树形结构。
本申请仅仅以上述为例进行说明,并不对二叉树形结构的获得方式进行限定。
由于各个子节点对应的是目标匹配项的一个取值,所以可以认为整个二叉树形结构是基于目标匹配项构建的。又由于随着树形结构的加深,层数越高的子节点对应的目标匹配项的取值越大,所以可以认为层数越高的子节点所关联的规则中目标匹配项的取值越大。而各个已知规则中针对目标匹配项的内容一般是:高于目标匹配项的一个取值,或者是位于目标匹配项的一个取值确定的范围内,所以,当规则1中目标匹配项的取值为值1,规则2中目标匹配项的取值为值2,且值1小于值2时,满足规则2的情况,一定满足规则1,这种情况下,可以认为针对目标匹配项规则1是规则2的父规则,规则2是规则1的子规则。在此基础上,本申请的一个实施例中,可以根据二叉树形结构中各个子节点之间的父子关系,获得各个已知规则之间的父子关系。也就是,当子节点1是子节点2的父节点时,子节点1所关联的规则1是子节点2所关联的规则2的父规则,规则2是规则1的子规则。
本申请的另一个实施例中,在构建二叉树形结构的过程中可以得知各个子节点之间的父子关系,也可以得知各个子节点所关联的规则,为此,在构建二叉树形结构的过程中可以根据各个子节点之间的父子关系得出各个子节点所关联的规则之间的父子关系,并存储在各个子节点挂载的信息列表中。基于此在根据二叉树形结构获得各个已知规则之间的父子关系时,可以根据各个子节点挂载的信息列表中存储的信息获得各个已知规则之间的父子关系。具体过程详见后续所示实施例,这里暂不详述。
S102:根据所获得的父子关系,确定已知规则中存在父规则的规则,并将确定出的规则确定为针对目标匹配项的冗余规则。
由于满足子规则的情况,一定满足父规则,所以,相对于父规则而言,子规则是冗余规则,也就是多余的规则。
又由于已知规则之间的父子关系是基于上述二叉树形结构确定的,而二叉树形结构是针对目标匹配项的,所以,上述已知规则之间的父子关系也是针对目标匹配项的。也就是说,当目标匹配项所表示的内容发生变化时,已知规则之间的父子关系也是可能会发生变化的。例如,将目标匹配项表示源IP地址时已知规则之间的父子关系记为第一父子关系,将目标匹配项表示报文的目的IP地址时已知规则之间的父子关系记为第二父子关系,这种情况下,上述第一父子关系和第二父子关系可能是不同。
例如,规则1中涉及的源IP地址的源地址网段为:1.2.3.4-1.2.3.10,目的IP地址的目的地址网段为:1.2.3.4。
规则2中涉及的源IP地址的源地址网段为:1.2.3.4,目的IP地址的目的地址网段为:1.2.3.4-1.2.3.10。
则在上述目标匹配项为报文的源IP地址时,规则1与规则2之间的父子关系,也就是,上述第一父子关系为:规则1是规则2的父规则,规则2是规则1的子规则,也就是,这种情况下,规则2是冗余规则。
在上述目标匹配项为报文的目的IP地址时,规则1与规则2之间的父子关系,也就是,上述第二父子关系为:规则1是规则2的子规则,规则2是规则1的父规则,也就是,这种情况下规则1是冗余规则。
可见上述第一父子关系和第二父子关系是不同的。
鉴于上述情况,本申请的一个实施例中,在检测已知规则中的冗余规则时,可以针对不同的目标匹配项进行冗余规则检测,然后再综合各次得到的检测结果确定最终的冗余规则。
具体的,还可以在针对多个目标匹配项确定冗余规则后,统计每一规则被确定为冗余规则的次数,将次数大于预设次数的冗余规则确定为最终的冗余规则。
其中,上述预设次数为:取值不大于目标匹配项数量的次数。
由以上可见,应用本实施例提供的方案检测冗余规则时,由于预先构建的二叉树形结构中各个子节点所关联的规则为:已知规则中目标匹配项的取值等于子节点所对应取值的规则,又由于每一子节点所对应的取值中前第一数量个比特位等于第一二进制数,其中,第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数,第一数量为:子节点所在层的层数,这样可以根据上述二叉树形结构获得各个已知规则之间的父子关系,进而确定出已知规则中存在父规则的规则,并将确定出的规则确定为针对目标匹配项的冗余规则。可见,应用本实施例提供的方案,能够检测出已知规则中的冗余规则。
本申请的一个实施例中,上述二叉树形结构中已关联规则的子节点还挂载有信息列表。
每一子节点挂载的信息列表中存储有:子节点所关联规则的第一父规则的信息和子节点所关联规则的第一子规则的信息。其中,上述第一父规则为:包括该子节点的子树中距离该子节点最近、且已关联规则的父节点所关联的规则,上述第一子规则包括:子节点的左子树中距离子节点最近、且已关联规则的节点所关联的规则和该子节点的右子树中距离子节点最近、且已关联规则的节点所关联的规则。
参见图2,示出了一种二叉树形结构。该二叉树形结构中右侧D0-D32表示树形结构中各个节点所在层的标识,其中,D0为根节点所在层的标识,D32为第32层子节点所在层的标识。该二叉树形结构中,标识为D4的层中子节点关联有规则1、标识为D28的层中位于右分支上的子节点关联有规则2、标识为D31的层中子节点关联有规则3、标识为D32的层中子节点关联有规则4。
则对于标识为D4的层中的子节点而言,包括该子节点的子树中该子节点的父节点均未关联规则,所以,规则1不存在父规则。该子节点的左子树中距离该子节点最近、且已关联规则的节点是标识为D31的层中的节点,该子节点的右子树中距离该子节点最近、且已关联规则的节点是标识为D28的层中的节点,所以,规则1的子规则为规则2和规则3。基于此,也可以得知,规则2和规则3的父规则为规则1。也就是,标识为D4的层中子节点挂载的信息列表中存储有规则2的信息和规则3的信息。
与上述针对标识为D4的层中的子节点的情况类似,针对标识为D28的层中的子节点而言,规则2的父规则为规则1,规则2没有子规则,标识为D28的层中子节点挂载的信息列表中存储有规则1的信息。
针对标识为D31的层中的子节点而言,规则3的父规则为规则1,规则3的子规则为规则4,标识为D31的层中子节点挂载的信息列表中存储有规则1的信息和规则4的信息。
针对标识为D32的层中的子节点而言,规则4的父规则为规则3,规则4没有子规则,标识为D32的层中子节点挂载的信息列表中存储有规则3的信息。
一个示例中,存储的信息还包括被存储规则与该节点关联规则的父子关系,例如:
标识为D4的层中子节点挂载的信息列表中还存储有“规则1的子规则:规则2和规则3”;
标识为D28的层中子节点挂载的信息列表中还存储有“规则2的父规则:规则1”;
标识为D31的层中子节点挂载的信息列表中还存储有“规则3的子规则:规则4,规则3的父规则:规则1”;
标识为D32的层中子节点挂载的信息列表中还存储有“规则4的父规则:规则3”。
在上述描述的基础上,S101根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系时,可以根据预先构建的二叉树形结构中已关联规则的子节点挂载的信息列表中存储的第一父规则的信息和第一子规则的信息,获得各个已知规则之间的父子关系。
本申请的一个实施例中,参见图3,提供了另一种冗余规则检测方法的流程示意图,上述S101根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系,包括以下S101A-S101C。
S101A:针对二叉树形结构中每一已关联规则的子节点,在包括该子节点的子树中,确定与子节点距离最近、且已关联规则的第一父节点,并将第一父节点所关联的规则作为子节点所关联规则的第一父规则。
S101B:针对二叉树形结构中每一已关联规则的子节点,在子节点的左子树中,确定与子节点距离最近、且已关联规则的第一孩子节点,在子节点的右子树中,确定与子节点距离最近、且已关联规则的第二孩子节点,并将第一孩子节点所关联的规则以及第二孩子节点所关联的规则作为子节点所关联规则的第一子规则。
需要说明的是,本申请实施例并不限定上述S101A和S101B之间的执行顺序,S101A可以在S101B之前执行,也可以在S101B之后执行,还可以与S101同时执行。
另外,上述S101A和S101B可以通过遍历二叉树形结构中节点的方式实现,还可以通过检测二叉树形结构的各个子节点下挂载的上述信息列表的方式实现。
S101C:根据各个第一父规则的信息和第一子规则的信息,获得各个已知规则之间的父子关系。
由以上可见,应用本实施例提供的方案可以借助二叉树形结构方便、快捷的获得各个已知规则之间的父子关系。
与上述冗余规则检测方法相对应,本申请实施例还提供了一种冗余规则检测装置。
参见图4,提供了一种冗余规则检测装置的结构示意图,该装置包括:
关系获得模块401,用于根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系,其中,所述二叉树形结构中除根节点外的任一子节点表示至少一个比特位的位号,各个子节点对应规则的目标匹配项的一个取值,且子节点所关联的规则为:已知规则中所述目标匹配项的取值等于子节点所对应取值的规则;每一子节点所对应的取值中前第一数量个比特位等于第一二进制数,所述第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数,所述第一数量为:子节点所在层的层数;
第一规则确定模块402,用于根据所获得的父子关系,确定已知规则中存在父规则的规则,并将确定出的规则确定为针对所述目标匹配项的冗余规则。
本申请的一个实施例中,所述二叉树形结构中已关联规则的子节点还挂载有信息列表;
每一子节点挂载的信息列表中存储有:子节点所关联规则的第一父规则的信息和子节点所关联规则的第一子规则的信息,其中,所述第一父规则为:包括所述子节点的子树中距离所述子节点最近、且已关联规则的父节点所关联的规则,所述第一子规则为:子节点的左子树中距离子节点最近、且已关联规则的节点所关联的规则和右子树中距离子节点最近、且已关联规则的节点所关联的规则;
所述关系获得模块401,具体用于根据预先构建的二叉树形结构中已关联规则的子节点挂载的信息列表中存储的第一父规则的信息和第一子规则的信息,获得各个已知规则之间的父子关系。
本申请的一个实施例中,所述关系获得模块401,可以具体用于:
针对预先构建的二叉树形结构中每一已关联规则的子节点,在包括所述子节点的子树中,确定与子节点距离最近、且已关联规则的第一父节点,并将第一父节点所关联的规则作为子节点所关联规则的第一父规则;
针对所述二叉树形结构中每一已关联规则的子节点,在子节点的左子树中,确定与子节点距离最近、且已关联规则的第一孩子节点,在子节点的右子树中,确定与子节点距离最近、且已关联规则的第二孩子节点,并将第一孩子节点所关联的规则以及第二孩子节点所关联的规则作为子节点所关联规则的第一子规则;
根据各个第一父规则的信息和第一子规则的信息,获得各个已知规则之间的父子关系。
本申请的一个实施例中,所述目标匹配项为:报文的源IP地址、报文的目的IP地址、报文的源端口或者报文的目的端口。
本申请的一个实施例中,所述装置还可以包括:
次数统计模块,用于在针对多个目标匹配项确定冗余规则后,统计每一规则被确定为冗余规则的次数;
第二规则确定模块,用于将次数大于预设次数的冗余规则确定为最终的冗余规则,其中,所述预设次数为:取值不大于目标匹配项数量的次数。
由以上可见,应用上述各个实施例提供的方案检测冗余规则时,由于预先构建的二叉树形结构中各个子节点所关联的规则为:已知规则中目标匹配项的取值等于子节点所对应取值的规则,又由于每一子节点所对应的取值中前第一数量个比特位等于第一二进制数,其中,第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数,第一数量为:子节点所在层的层数,这样可以根据上述二叉树形结构获得各个已知规则之间的父子关系,进而确定出已知规则中存在父规则的规则,并将确定出的规则确定为针对目标匹配项的冗余规则。可见,应用上述各个实施例提供的方案,能够检测出已知规则中的冗余规则。
与上述冗余规则检测方法相对于,本申请实施例还提供了一种电子设备。
参见图5,提供了一种电子设备的结构示意图,该电子设备包括:处理器501和机器可读存储介质502,所述机器可读存储介质502存储有能够被所述处理器501执行的机器可执行指令,所述处理器501被所述机器可执行指令促使:实现本申请实施例所述的冗余规则检测方法步骤。
本申请的一个实施例中,提供了一种冗余规则检测方法,所述方法包括:
根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系,其中,所述二叉树形结构中除根节点外的任一子节点表示至少一个比特位的位号,各个子节点对应规则的目标匹配项的一个取值,且子节点所关联的规则为:已知规则中所述目标匹配项的取值等于子节点所对应取值的规则;每一子节点所对应的取值中前第一数量个比特位等于第一二进制数,所述第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数,所述第一数量为:子节点所在层的层数;
根据所获得的父子关系,确定已知规则中存在父规则的规则,并将确定出的规则确定为针对所述目标匹配项的冗余规则。
需要说明的是,上述处理器501被机器可执行指令促使实现的冗余规则检测方法的其他实施例,与前述方法实施例部分所提及的实施例相同,这里不再赘述。
由以上可见,应用本实施例提供的电子设备检测冗余规则时,能够检测出已知规则中的冗余规则。
与上述冗余规则检测检测方法相对于,本申请实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现本申请实施例所述的冗余规则检测方法步骤。
本申请的一个实施例中,提供了一种冗余规则检测方法,所述方法包括:
根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系,其中,所述二叉树形结构中除根节点外的任一子节点表示至少一个比特位的位号,各个子节点对应规则的目标匹配项的一个取值,且子节点所关联的规则为:已知规则中所述目标匹配项的取值等于子节点所对应取值的规则;每一子节点所对应的取值中前第一数量个比特位等于第一二进制数,所述第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数,所述第一数量为:子节点所在层的层数;
根据所获得的父子关系,确定已知规则中存在父规则的规则,并将确定出的规则确定为针对所述目标匹配项的冗余规则。
需要说明的是,上述机器可执行指令促使处理器实现的冗余规则检测方法的其他实施例,与前述方法实施例部分所提及的实施例相同,这里不再赘述。
由以上可见,执行本实施例提供的机器可读存储介质中存储的机器可执行指令进行冗余规则检测时,能够检测出已知规则中的冗余规则。
需要说明的是,上述机器可读存储介质可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,上述机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备以及机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (12)
1.一种冗余规则检测方法,其特征在于,所述方法包括:
根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系,其中,所述二叉树形结构中除根节点外的任一子节点表示至少一个比特位的位号,各个子节点对应规则的目标匹配项的一个取值,且子节点所关联的规则为:已知规则中所述目标匹配项的取值等于子节点所对应取值的规则;每一子节点所对应的取值中前第一数量个比特位等于第一二进制数,所述第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数,所述第一数量为:子节点所在层的层数;
根据所获得的父子关系,确定已知规则中存在父规则的规则,并将确定出的规则确定为针对所述目标匹配项的冗余规则。
2.根据权利要求1所述的方法,其特征在于,
所述二叉树形结构中已关联规则的子节点还挂载有信息列表;
其中,每一子节点挂载的信息列表中存储有:子节点所关联规则的第一父规则的信息和子节点所关联规则的第一子规则的信息,其中,所述第一父规则为:包括所述子节点的子树中距离所述子节点最近、且已关联规则的父节点所关联的规则,所述第一子规则为:子节点的左子树中距离子节点最近、且已关联规则的节点所关联的规则和右子树中距离子节点最近、且已关联规则的节点所关联的规则;
所述根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系,包括:
根据预先构建的二叉树形结构中已关联规则的子节点挂载的信息列表中存储的第一父规则的信息和第一子规则的信息,获得各个已知规则之间的父子关系。
3.根据权利要求1所述的方法,其特征在于,所述根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系,包括:
针对预先构建的二叉树形结构中每一已关联规则的子节点,在包括所述子节点的子树中,确定与子节点距离最近、且已关联规则的第一父节点,并将第一父节点所关联的规则作为子节点所关联规则的第一父规则;
针对所述二叉树形结构中每一已关联规则的子节点,在子节点的左子树中,确定与子节点距离最近、且已关联规则的第一孩子节点,在子节点的右子树中,确定与子节点距离最近、且已关联规则的第二孩子节点,并将第一孩子节点所关联的规则以及第二孩子节点所关联的规则作为子节点所关联规则的第一子规则;
根据各个第一父规则的信息和第一子规则的信息,获得各个已知规则之间的父子关系。
4.根据权利要求1-3中任一项所述的方法,其特征在于,
所述目标匹配项为:报文的源IP地址、报文的目的IP地址、报文的源端口或者报文的目的端口。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
在针对多个目标匹配项确定冗余规则后,统计每一规则被确定为冗余规则的次数;
将次数大于预设次数的冗余规则确定为最终的冗余规则,其中,所述预设次数为:取值不大于目标匹配项数量的次数。
6.一种冗余规则检测装置,其特征在于,所述装置包括:
关系获得模块,用于根据预先构建的二叉树形结构,获得各个已知规则之间的父子关系,其中,所述二叉树形结构中除根节点外的任一子节点表示至少一个比特位的位号,各个子节点对应规则的目标匹配项的一个取值,且子节点所关联的规则为:已知规则中所述目标匹配项的取值等于子节点所对应取值的规则;每一子节点所对应的取值中前第一数量个比特位等于第一二进制数,所述第一二进制数为:从根节点到子节点所经路径上的所有子节点各自所表示位号的比特位的值按经过顺序排列的二进制数,所述第一数量为:子节点所在层的层数;
第一规则确定模块,用于根据所获得的父子关系,确定已知规则中存在父规则的规则,并将确定出的规则确定为针对所述目标匹配项的冗余规则。
7.根据权利要求6所述的装置,其特征在于,
所述二叉树形结构中已关联规则的子节点还挂载有信息列表;
其中,每一子节点挂载的信息列表中存储有:子节点所关联规则的第一父规则的信息和子节点所关联规则的第一子规则的信息,其中,所述第一父规则为:包括所述子节点的子树中距离所述子节点最近、且已关联规则的父节点所关联的规则,所述第一子规则为:子节点的左子树中距离子节点最近、且已关联规则的节点所关联的规则和右子树中距离子节点最近、且已关联规则的节点所关联的规则;
所述关系获得模块,具体用于根据预先构建的二叉树形结构中已关联规则的子节点挂载的信息列表中存储的第一父规则的信息和第一子规则的信息,获得各个已知规则之间的父子关系。
8.根据权利要求6所述的装置,其特征在于,所述关系获得模块,具体用于:
针对预先构建的二叉树形结构中每一已关联规则的子节点,在包括所述子节点的子树中,确定与子节点距离最近、且已关联规则的第一父节点,并将第一父节点所关联的规则作为子节点所关联规则的第一父规则;
针对所述二叉树形结构中每一已关联规则的子节点,在子节点的左子树中,确定与子节点距离最近、且已关联规则的第一孩子节点,在子节点的右子树中,确定与子节点距离最近、且已关联规则的第二孩子节点,并将第一孩子节点所关联的规则以及第二孩子节点所关联的规则作为子节点所关联规则的第一子规则;
根据各个第一父规则的信息和第一子规则的信息,获得各个已知规则之间的父子关系。
9.根据权利要求6-8中任一项所述的装置,其特征在于,
所述目标匹配项为:报文的源IP地址、报文的目的IP地址、报文的源端口或者报文的目的端口。
10.根据权利要求6-8中任一项所述的装置,其特征在于,所述装置还包括:
次数统计模块,用于在针对多个目标匹配项确定冗余规则后,统计每一规则被确定为冗余规则的次数;
第二规则确定模块,用于将次数大于预设次数的冗余规则确定为最终的冗余规则,其中,所述预设次数为:取值不大于目标匹配项数量的次数。
11.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-5任一所述的方法步骤。
12.一种机器可读存储介质,其特征在于,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910926414.XA CN110474929B (zh) | 2019-09-27 | 2019-09-27 | 一种冗余规则检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910926414.XA CN110474929B (zh) | 2019-09-27 | 2019-09-27 | 一种冗余规则检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110474929A CN110474929A (zh) | 2019-11-19 |
CN110474929B true CN110474929B (zh) | 2021-06-22 |
Family
ID=68516957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910926414.XA Active CN110474929B (zh) | 2019-09-27 | 2019-09-27 | 一种冗余规则检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110474929B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112434104B (zh) * | 2020-12-04 | 2023-10-20 | 东北大学 | 面向关联规则挖掘的冗余规则筛除方法及装置 |
CN113347173B (zh) * | 2021-05-31 | 2022-04-22 | 新华三信息安全技术有限公司 | 一种包过滤方法、装置及电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1515501A1 (en) * | 2003-08-27 | 2005-03-16 | Alcatel | Data structure for range-specified algorithms |
CN101345694A (zh) * | 2007-07-11 | 2009-01-14 | 上海未来宽带技术及应用工程研究中心有限公司 | 一种快速查找定位和匹配访问控制列表的方法 |
CN102148746A (zh) * | 2010-02-05 | 2011-08-10 | 中兴通讯股份有限公司 | 一种报文分类方法和系统 |
CN102457569A (zh) * | 2010-10-25 | 2012-05-16 | 中国科学院声学研究所 | 一种面向物联网应用的Web服务的冗余检测方法及系统 |
CN102571494A (zh) * | 2012-01-12 | 2012-07-11 | 东北大学 | 一种基于fpga的入侵检测系统及方法 |
CN103516550A (zh) * | 2013-09-29 | 2014-01-15 | 国家计算机网络与信息安全管理中心 | 一种面向大规模包分类规则集的规则冲突检测方法及系统 |
US9479479B1 (en) * | 2014-09-25 | 2016-10-25 | Juniper Networks, Inc. | Detector tree for detecting rule anomalies in a firewall policy |
CN107526541A (zh) * | 2016-08-30 | 2017-12-29 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置 |
CN109951495A (zh) * | 2019-03-29 | 2019-06-28 | 新华三信息安全技术有限公司 | 网段查找方法及装置 |
-
2019
- 2019-09-27 CN CN201910926414.XA patent/CN110474929B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1515501A1 (en) * | 2003-08-27 | 2005-03-16 | Alcatel | Data structure for range-specified algorithms |
CN101345694A (zh) * | 2007-07-11 | 2009-01-14 | 上海未来宽带技术及应用工程研究中心有限公司 | 一种快速查找定位和匹配访问控制列表的方法 |
CN102148746A (zh) * | 2010-02-05 | 2011-08-10 | 中兴通讯股份有限公司 | 一种报文分类方法和系统 |
CN102457569A (zh) * | 2010-10-25 | 2012-05-16 | 中国科学院声学研究所 | 一种面向物联网应用的Web服务的冗余检测方法及系统 |
CN102571494A (zh) * | 2012-01-12 | 2012-07-11 | 东北大学 | 一种基于fpga的入侵检测系统及方法 |
CN103516550A (zh) * | 2013-09-29 | 2014-01-15 | 国家计算机网络与信息安全管理中心 | 一种面向大规模包分类规则集的规则冲突检测方法及系统 |
US9479479B1 (en) * | 2014-09-25 | 2016-10-25 | Juniper Networks, Inc. | Detector tree for detecting rule anomalies in a firewall policy |
CN107526541A (zh) * | 2016-08-30 | 2017-12-29 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置 |
CN109951495A (zh) * | 2019-03-29 | 2019-06-28 | 新华三信息安全技术有限公司 | 网段查找方法及装置 |
Non-Patent Citations (1)
Title |
---|
"一种快速的防火墙规则的冲突检测算法";李林,卢显良;《计算机应用研究》;20080131;第25卷(第1期);266-267 * |
Also Published As
Publication number | Publication date |
---|---|
CN110474929A (zh) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109617927B (zh) | 一种匹配安全策略的方法及装置 | |
CN110120942B (zh) | 安全策略规则匹配方法及装置、防火墙设备及介质 | |
CN110290117B (zh) | 一种匹配ip地址的方法及装置 | |
US9225593B2 (en) | Methods of structuring data, pre-compiled exception list engines and network appliances | |
JP6383578B2 (ja) | 構文解析木において経路を一意的に列挙する装置および方法 | |
US9660886B1 (en) | Scalable network route analysis | |
US11687594B2 (en) | Algorithmic TCAM based ternary lookup | |
US20200099704A1 (en) | Method and apparatus for generating semantic attack graph | |
CN110365781B (zh) | 用于对任播数据业务进行负载均衡的方法和系统 | |
US20110205931A1 (en) | System and method for managing flow of packets | |
US7808929B2 (en) | Efficient ACL lookup algorithms | |
Mun et al. | New approach for efficient ip address lookup using a bloom filter in trie-based algorithms | |
US10439926B2 (en) | Network analysis | |
CN109951393B (zh) | 网段查找方法及装置 | |
CN110474929B (zh) | 一种冗余规则检测方法及装置 | |
CN109951495B (zh) | 网段查找方法及装置 | |
CN111464566A (zh) | 上下文感知的分布式防火墙 | |
JP6373021B2 (ja) | 異なるように構成された最長プレフィックスマッチテーブルを処理するための装置および方法 | |
WO2010065418A1 (en) | Graph-based data search | |
JP2007507915A (ja) | 分類子を識別する装置と方法 | |
CN109905413B (zh) | 一种ip地址的匹配方法及装置 | |
CN112788059A (zh) | 一种策略识别方法及装置 | |
US20160335298A1 (en) | Methods, systems, and non-transitory computer readable media for generating a tree structure with nodal comparison fields and cut values for rapid tree traversal and reduced numbers of full comparisons at leaf nodes | |
RU2454008C2 (ru) | Основанная на пригодности маршрутизация | |
US9722874B2 (en) | Inference-based network route control |
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 |