CN111193746B - 安全策略的匹配方法、装置、电子设备和介质 - Google Patents
安全策略的匹配方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN111193746B CN111193746B CN201911425025.5A CN201911425025A CN111193746B CN 111193746 B CN111193746 B CN 111193746B CN 201911425025 A CN201911425025 A CN 201911425025A CN 111193746 B CN111193746 B CN 111193746B
- Authority
- CN
- China
- Prior art keywords
- node
- matched
- matching
- policy
- information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000015654 memory Effects 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
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
Landscapes
- Engineering & Computer Science (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
技术领域
本公开涉及通信技术领域,更具体地,涉及一种安全策略的匹配方法、装置、电子设备、介质和计算机程序。
背景技术
防火墙的安全策略是防火墙的核心功能,它通过源安全域、目的安全域、源地址、目的地址、用户、服务、应用、时间等维度对数据进行识别,将用户需要进行过滤及控制的数据流分离,并对相应的数据实现反病毒、漏洞防护、防间谍软件、URL过滤、文件过滤、内容过滤、邮件过滤、行为管控的一体化策略配置。
现在网络复杂性逐年增加,体量逐年增大,防火墙策略配置规格随之也越来越大,使得报文在查找策略时耗时过长,极大的影响了目前主流防火墙的数据处理性能。
发明内容
有鉴于此,本公开提供了一种安全策略的匹配方法、装置、电子设备、介质和计算机程序。
本公开的一个方面提供了一种安全策略的匹配方法,包括获得报文信息,所述报文信息中含有待匹配信息,基于所述待匹配信息报文信息确定待查找的结点项,基于所述结点项,在预先构建的至少一个前缀树中进行匹配操作,确定所述至少一个前缀树是否存在与所述结点项相匹配的叶结点,以及如果确定存在相匹配的叶结点,则基于与所述叶结点对应的策略位图来确定相匹配的安全策略,其中,所述前缀树包括多个结点,所述叶结点为所述多个结点中不具有子结点的结点,所述多个结点中的每个结点对应于一个结点项,所述每个叶结点还对应于一个策略位图,所述策略位图用于确定安全策略。
可选地,所述方法还包括获得安全策略,所述安全策略包括多个匹配条件,将所述多个匹配条件数值化,基于数值化的匹配条件,构建前缀树,其中,每一个前缀树与一个匹配条件相对应。
可选地,所述基于数值化的匹配条件,构建前缀树包括创建根结点,确定当前的前缀树中是否存在一个结点的前缀信息与待匹配的信息相匹配,若确定当前的前缀树中存在一个结点的前缀信息与待匹配的信息相匹配,则根据匹配条件更新所述结点的策略位图,若确定当前的前缀树中不存在前缀信息与待匹配的信息相匹配的结点,则创建新结点并更新该结点的策略位图,更新相关结点的策略位图,所述相关结点包括与待匹配的信息匹配的结点的父结点。
可选地,所述策略位图的每一位对应于一个策略,所述基于所述叶结点对应的策略位图确定匹配到的安全策略包括确定所述报文信息在至少两个前缀树中匹配到的至少两个叶结点,对所述至少两个叶结点对应的策略位图逐位执行逻辑运算,得到处理结果,以及基于所述处理结果,确定匹配到的安全策略。
可选地,所述匹配条件包括源地址的范围和目标地址的范围。
可选地,在确定存在相匹配的多个安全策略的情况下,所述方法还包括按照所述多个安全策略的优先级顺序进行匹配,如果命中一条安全策略,则终止所述匹配操作。
可选地,所述方法还包括如果确定在至少一个前缀树不存在相匹配的安全策略,则按照缺省方式处理所述报文信息。
本公开的另一个方面提供了一种安全策略的匹配装置,包括获得模块、第一确定模块、匹配模块以及第二确定模块。获得模块,用于获得报文信息,所述报文信息中含有待匹配信息。第一确定模块,用于基于所述待匹配信息确定待查找的结点项。匹配模块,用于基于所述结点项,在预先构建的至少一个前缀树中进行匹配操作,确定所述至少一个前缀树是否存在与所述结点项相匹配的叶结点。第二确定模块,用于如果确定存在相匹配的叶结点,则基于与所述叶结点对应的策略位图来确定相匹配的安全策略。其中,所述前缀树包括多个结点,所述叶结点为所述多个结点中不具有子结点的结点,所述多个结点中的每个结点对应于一个结点项,所述每个叶结点还对应于一个策略位图,所述策略位图用于确定安全策略。
本公开的另一个方面提供了一种电子设备,包括,至少一个处理器以及至少一个存储器,用于存储一个或多个计算机可读指令,其中,当所述一个或多个计算机可读指令被所述至少一个处理器执行时,使得所述处理器执行如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的安全策略的匹配方法的应用场景;
图2示意性示出了根据本公开实施例的安全策略的匹配方法的流程图;
图3示意性示出了根据本公开实施例的构建前缀树的流程图;
图4示意性示出了根据本公开另一实施例的构建前缀树的流程图;
图5示意性示出了根据本公开另一实施例的安全策略匹配的流程图;
图6A~图6C示意性示出了根据本公开实施例的前缀树的示意图;
图7示意性示出了根据本公开实施例的安全策略的匹配装置的框图;以及
图8示意性示出了根据本公开实施例的适于实现安全策略的匹配装置的计算机***的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
图1示意性示出了根据本公开实施例的安全策略的匹配方法的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容。
如图1所示,电子设备101在与外界通信进行报文交互的过程中,防火墙102起到了安全控制的作用,例如,在外界的某一电子设备103向电子设备101发送报文时,防火墙可以根据例如黑/白名单的方式控制放行或者阻断数据流量。其中,黑/白名单仅仅是安全策略中的一种,根据本公开实施例,可以配置各种各样的安全策略,对数据流量进行管理。
然而,当网络复杂性和体量逐步增加,防火墙策略配置规格随之也越来越大,使得报文在查找策略时耗时过长,极大的影响了目前主流防火墙的数据处理性能。
本公开的实施例提供了一种安全策略的匹配方法,包括获得报文信息,所述报文信息中含有待匹配信息,基于所述待匹配信息确定待查找的结点项,基于所述结点项,在预先构建的至少一个前缀树中进行匹配操作,确定所述至少一个前缀树是否存在与所述结点项相匹配的叶结点,如果确定存在相匹配的叶结点,则基于与所述叶结点对应的策略位图来确定相匹配的安全策略。
根据本公开实施例,防火墙可以设置一个或多个安全策略,每个安全策略可以包括一个或多个匹配条件,每个匹配条件可以包括一个或多个值。对于存在多个值的匹配条件,多个值之间可以是“或”的关系,报文的属性只要匹配任意一个值,则认为报文的属性匹配该匹配条件。对于包含多个匹配条件的安全策略,多个匹配条件之间可以是“与”的关系,报文的属性与个条件必须全部匹配,才认为该报文匹配该安全策略。对于多个安全策略,可以按照优先级,从上到下依次匹配,如果数据匹配到某个安全策略,将不再进行下一策略的匹配。
前缀树即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种,其核心思想是空间换时间。典型应用是用于统计,排序和保存大数据量字符串,所以经常被搜索引擎***用于文本词频统计。其优点是利用字符串的公共前缀来最大限度地减少无谓的字符串比较,查询效率比哈希表高。
图2示意性示出了根据本公开实施例的安全策略的匹配方法的流程图。
如图2所示,该方法包括操作S210~S240。
在操作S210,获得报文信息,所述报文信息中含有待匹配信息。该待匹配信息例如可以包括报文的五元组信息和其他信息。
在操作S220,基于所述待匹配信息确定待查找的结点项。例如,根据已构建的前缀树,从待匹配信息中确定部分关键信息作为待查找的结点项,例如源地址和目的地址等。
在操作S230,基于所述结点项,在预先构建的至少一个前缀树中进行匹配操作,确定所述至少一个前缀树是否存在与所述结点项相匹配的叶结点。
在操作S240,如果确定存在相匹配的叶结点,则基于与所述叶结点对应的策略位图来确定相匹配的安全策略。
其中,所述前缀树包括多个结点,所述叶结点为所述多个结点中不具有子结点的结点,所述多个结点中的每个结点对应于一个结点项,所述每个叶结点还对应于一个策略位图,所述策略位图用于确定安全策略。
本公开实施例的方法基于前缀树至少部分地实现了安全策略的迅速匹配,提升了防火墙的处理能力。
在本公开实施例中,对于给定的一些安全策略,首先需要构建前缀树结构。
根据本公开实施例,所述方法还包括获得安全策略,所述安全策略包括多个匹配条件,将所述多个匹配条件数值化,基于数值化的匹配条件,构建前缀树。将安全策略的匹配条件值全部数字化处理,便于策略前缀树建立,数字匹配效率高于字符匹配。例如:策略引用安全域,用户对象等,转化为防火墙内部的对应的对象ID;安全策略引用的地址对象等五元组相关信息,直接采用对象中具体的数值,以实现数值化处理。
根据本公开实施例,每一个匹配条件可以与一个前缀树相对应。安全策略基于源/目的安全域、源/目的地址、服务等多个维度对数据报文进行识别,各维度(匹配条件)之间是“与”的关系,因此可构建多棵前缀树,一棵前缀树只代表策略的一种属性。从而,当一个安全策略对应的多个前缀树全部匹配成功时,确定该安全策略匹配成功。
根据本公开实施例,所述匹配条件例如可以包括源地址的范围和目标地址的范围。该地址例如可以是IP地址或MAC地址等。
根据本公开实施例,在确定存在相匹配的多个安全策略的情况下,所述方法还包括按照所述多个安全策略的优先级顺序进行匹配,如果命中一条安全策略,则终止所述匹配操作。
根据本公开实施例,所述方法还包括如果确定在至少一个前缀树不存在相匹配的安全策略,则按照缺省方式处理所述报文信息。
图3示意性示出了根据本公开实施例的构建前缀树的流程图。
如图3所示,该方法包括操作S310~S0。
在操作S310,创建根结点。
在操作S320,确定当前的前缀树中是否存在一个结点的前缀信息与待匹配的信息相匹配。
根据本公开实施例,前缀结点可泛指一定数值区域,例如安全策略多使用地址类地址段切割成尽可能大的单独的完整的子网段集合。例如IP地址段192.168.1.0-192.168.1.95可以用192.168.1.0/26和192.168.1.64/27两个区域来描述。
在操作S330,若确定当前的前缀树中存在一个结点的前缀信息与待匹配的信息相匹配,则根据匹配条件更新所述结点的策略位图。
根据本公开实施例,所述策略位图的每一位对应于一个策略,所述基于所述叶结点对应的策略位图确定匹配到的安全策略包括确定所述报文信息在至少两个前缀树中匹配到的至少两个叶结点,对所述至少两个叶结点对应的策略位图逐位执行逻辑运算,得到处理结果,以及基于所述处理结果,确定匹配到的安全策略。
根据本公开实施例,如果不同策略均配置某个结点的前缀信息,则可以使结点的策略位图标识对应的不同策略。结点依靠策略位图对应不同策略,有效节省了前缀树的空间。
在操作S340,若确定当前的前缀树中不存在前缀信息与待匹配的信息相匹配的结点,则创建新结点并更新该结点的策略位图。
在操作S350,更新相关结点的策略位图,所述相关结点包括与待匹配的信息匹配的结点的父结点。新结点策略位图更新后,结点对应的策略的优先级和向上递归到根结点的各级父结点的位图相应位置也应置位。
下面结合图4和图5分别对构建前缀树和安全策略匹配的方法进行进一步的示例性说明。
图4示意性示出了根据本公开另一实施例的构建前缀树的流程图。
如图4所示,该方法包括操作S401~S414。
在操作S401,轮询所有安全策略。
在操作S402,策略存在,则执行操作S403,不存在则执行操作S414。
在操作S403,轮询策略所有属性,即匹配条件。
在操作S404,针对某属性的数据,对其进行切割,分成若干用前缀信息和前缀长度描述的区域,循环所有区域。
在操作S405,若属性前缀树不存在,执行操作S406,存在则执行操作S407。
在操作S406,创建新的属性前缀树,用待匹配信息创建根结点。
在操作S407,获取前缀树根结点。
在操作S408,根据待匹配信息去匹配前缀树上的根结点前缀信息,如果不匹配,根据匹配信息选择前缀树的左右子树上的结点继续匹配。
在操作S409,前缀树上是否存在匹配的结点,匹配则执行操作S411,不匹配执行操作S410。
在操作S410,创建新结点,***到前缀树中。
在操作S411,更新策略位图。
在操作S412,本结点对应策略的优先级更新,同时向上递归到根结点的各级父结点以及该结点的所有子节点的位图相应位置也应更新。
在操作S413,获取下一个策略。
在操作S414,退出安全策略循环
图5示意性示出了根据本公开另一实施例的安全策略匹配的流程图。
如图5所示,该方法包括操作S501~S513。
在操作S501,收取报文,根据报文获取五元组和其他信息。
在操作S502,根据待匹配信息,设置待查找结点项。
在操作S503,轮询待查找结点项,获取属性前缀树。
在操作S504,获取前缀树结点,结点存在执行操作S505,不存在则执行操作S512。
在操作S505,获取结点信息。
在操作S506,结点信息匹配成功,是则执行操作S507,否则执行操作S513。
在操作S507,获取匹配结点的策略位图。
在操作S508,根据策略位图检查是否找到匹配项,是则执行操作S509,否则执行操作S510。
在操作S509,按照匹配策略处理数据报文。
在操作S510,数据包是否存在待查找结点项,不存在则执行下一步,存在则执行操作S503。
在操作S511,按照缺省策略处理数据报文。
在操作S512,数据包是否存在待查找结点项,不存在则执行操作S511,存在则执行操作S503。
在操作S513,获取前缀树下一结点。
下面结合图6A~图6C对一具体实施例进行说明。
图6A~图6C示意性示出了根据本公开实施例的前缀树的示意图。
在本实施例中,为了简化举例流程,假定只用报文的源地址和目的地址来匹配安全策略。本实施例中的安全策略包括:
安全策略A,优先级为0,引用源地址对象addr-a,目的地址对象为addr-b;
安全策略B,优先级为1,引用源地址对象addr-a,目的地址对象为addr-c;
安全策略C,优先级为2,引用源地址对象addr-b,目的地址对象为addr-c。
地址对象addr-a范围为192.168.1.0-192.168.1.63,该对象可用一个结点192.168.1.0/26来描述。
地址对象addr-b范围为192.168.2.0-192.168.2.95,该对象需要分成两个结点:
结点a:192.168.2.0/26来描述192.168.2.0-192.168.2.63;
结点b:192.168.2.64/27来描述192.168.2.64-192.168.2.95。
地址对象addr-c描述范围为192.168.1.0-192.168.1.95,该对象需要分成两个结点,
结点c:192.168.1.0/26来描述192.168.1.0-192.168.1.63;
结点d:192.1.68.1.64/27来描述192.168.1.64-192.168.1.95。
报文的源地址为192.168.2.1,目的地址为192.168.1.75,期待将会命中安全策略C。
前缀树建立过程如下:
1.获取安全策略A,源地址属性的前缀树未创建,以源地址对象addr-a内容为根结点,前缀内容为192.168.1.0,前缀长度为26,以表示192.168.1.0-192.168.1.63的地址范围。
2.由于策略A优先级为0,设置该结点的策略位图最低位置1,位图具体值由0变为1(以二进制表示由000变成001)。
3.获取策略A第二种属性目的地址对象,获取目的地址对象addr-b具体内容。目的地址对象addr-b分成两个结点,将两个结点依次加入到目的地址前缀树。由于结点b和结点a前缀长度不同,且取两结点前缀长度最小值26比较前26位的前缀内容也不同,构建一新根结点192.168.2.0/25,左结点为192.168.2.0/26,位图值为001,右结点为192.168.2.64/27,位图值为001。此时得到如图6A所示意的两个前缀树。
4.获取安全策略B,获取源地址对象addr-a具体内容,该结点能完全匹配源地址属性的前缀树的根结点,无需对前缀树结构进行操作。
5.由于策略B优先级为1,设置该结点的策略位图倒数第二位置1,位图具体值由1变成3(以二进制表示由001变成011)。
6.获取策略B第二种属性目的地址对象,获取目的地址对象addr-c具体内容。将结点c、d依次加入到目的地址的前缀树中,类似于步骤3,由于前缀不匹配,需要新建一个结点,保持两结点的公共部分。并更新位图值,左侧的两个结点为策略B引入的结点,设置该结点的策略位图倒数第二位置1,位图具体值由0变成2(以二进制表示由000变成010)。此时得到如图6B所示意的两个前缀树。
7.同理加入安全策略C。得到如图6C所示意的两个前缀树。
至此,基于安全策略创建前缀树的过程结束,下面执行报文的安全策略匹配的过程:
报文源地址在源地址前缀树中匹配了结点192.168.2.0/26,其位图值为4(即100),报文目的地址在目的地址前缀树中匹配了结点192.168.1.64/27,其位图值为6(110),两者按位与后值为4(100),位图的第三位被置位,也就是策略排序第三位的策略C被命中了。
本公开实施例的方法基于前缀树实现了安全策略的迅速匹配,有效的提升了防火墙的处理能力。此外,本公开的实施例通过将前缀树结点信息引入位图数据来标识匹配策略,并结合内核高效位运算,实现的快速匹配方法;对前缀树处理数据数字化处理和存储,降低计算复杂度;将区域概念引入到叶子节点,降低前缀树的深度,优化了存储空间,减少了查找次数,提升了性能和效率;优化常规前缀树处理,使用多棵前缀树进行联合查找,减少待查找数据的复杂度。
本公开实施例还提供了一种安全策略的匹配装置,下面参照图7对本公开实施例的安全策略的匹配装置进行说明。
图7示意性示出了根据本公开实施例的安全策略的匹配装置700的框图。
如图7所示,该安全策略的匹配装置700包括获得模块710、第一确定模块720、匹配模块730以及第二确定模块740。该装置700可以执行上文参考图2描述的各种方法。
获得模块710,例如执行上文参考图2描述的操作S210,用于获得报文信息,所述报文信息中含有待匹配信息。
第一确定模块720,例如执行上文参考图2描述的操作S220,用于基于所述待匹配信息确定待查找的结点项。
匹配模块730,例如执行上文参考图2描述的操作S230,用于基于所述结点项,在预先构建的至少一个前缀树中进行匹配操作,确定所述至少一个前缀树是否存在与所述结点项相匹配的叶结点。
第二确定模块740,例如执行上文参考图2描述的操作S240,用于如果确定存在相匹配的叶结点,则基于与所述叶结点对应的策略位图来确定相匹配的安全策略。
其中,所述前缀树包括多个结点,所述叶结点为所述多个结点中不具有子结点的结点,所述多个结点中的每个结点对应于一个结点项,所述每个叶结点还对应于一个策略位图,所述策略位图用于确定安全策略。
根据本公开实施例,该装置还可以包括构建模块,用于获得安全策略,所述安全策略包括多个匹配条件,将所述多个匹配条件数值化,基于数值化的匹配条件,构建前缀树,其中,每一个前缀树与一个匹配条件相对应。
根据本公开实施例,所述基于数值化的匹配条件,构建前缀树包括创建根结点,确定当前的前缀树中是否存在一个结点的前缀信息与待匹配的信息相匹配,若确定当前的前缀树中存在一个结点的前缀信息与待匹配的信息相匹配,则根据匹配条件更新所述结点的策略位图,若确定当前的前缀树中不存在前缀信息与待匹配的信息相匹配的结点,则创建新结点并更新该结点的策略位图,更新相关结点的策略位图,所述相关结点包括与待匹配的信息匹配的结点的父结点。
根据本公开实施例,所述策略位图的每一位对应于一个策略,所述基于所述叶结点对应的策略位图确定匹配到的安全策略包括确定所述报文信息在至少两个前缀树中匹配到的至少两个叶结点,对所述至少两个叶结点对应的策略位图逐位执行逻辑运算,得到处理结果,以及基于所述处理结果,确定匹配到的安全策略。
根据本公开实施例,所述匹配条件包括源地址的范围和目标地址的范围。
根据本公开实施例,该装置还可以包括匹配终止模块,用于在确定存在相匹配的多个安全策略的情况下,按照所述多个安全策略的优先级顺序进行匹配,如果命中一条安全策略,则终止所述匹配操作。
根据本公开实施例,该装置还可以包括缺省处理模块,用于如果确定在至少一个前缀树不存在相匹配的安全策略,则按照缺省方式处理所述报文信息。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获得模块710、第一确定模块720、匹配模块730、第二确定模块740、构建模块、匹配终止模块以及缺省处理模块中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获得模块710、第一确定模块720、匹配模块730、第二确定模块740、构建模块、匹配终止模块以及缺省处理模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获得模块710、第一确定模块720、匹配模块730、第二确定模块740、构建模块、匹配终止模块以及缺省处理模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现安全策略的匹配方法和装置的计算机***的方框图。图8示出的计算机***仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。图8示出的计算机***可以实现为服务器集群,包括至少一个处理器(例如处理器801)以及至少一个存储器(例如存储部分808)。
如图8所示,根据本公开实施例的计算机***800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有***800操作所需的各种程序和数据。处理器801、ROM 802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,***800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。***800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
例如,根据本公开的实施例,计算机可读介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (9)
1.一种安全策略的匹配方法,包括:
获得报文信息,所述报文信息中含有待匹配信息;
基于所述待匹配信息确定待查找的结点项;
基于所述结点项,在预先构建的至少一个前缀树中进行匹配操作,确定所述至少一个前缀树是否存在与所述结点项相匹配的叶结点;其中,所述前缀树的构建包括:获得安全策略,所述安全策略包括多个匹配条件;将所述多个匹配条件数值化;基于数值化的匹配条件,构建前缀树,其中,每一个前缀树与一个匹配条件相对应;
如果确定存在相匹配的叶结点,则基于与所述叶结点对应的策略位图来确定相匹配的安全策略,其中,所述前缀树包括多个结点,所述叶结点为所述多个结点中不具有子结点的结点,所述多个结点中的每个结点对应于一个结点项,所述每个叶结点还对应于一个策略位图,所述策略位图用于确定安全策略。
2.根据权利要求1所述的方法,其中,所述基于数值化的匹配条件,构建前缀树包括:
创建根结点;
确定当前的前缀树中是否存在一个结点的前缀信息与待匹配的信息相匹配;
若确定当前的前缀树中存在一个结点的前缀信息与待匹配的信息相匹配,则根据匹配条件更新所述结点的策略位图;
若确定当前的前缀树中不存在前缀信息与待匹配的信息相匹配的结点,则创建新结点并更新该结点的策略位图;
更新相关结点的策略位图,所述相关结点包括与待匹配的信息匹配的结点的父结点。
3.根据权利要求1所述的方法,其中,所述策略位图的每一位对应于一个策略;所述基于所述叶结点对应的策略位图确定匹配到的安全策略包括:
确定所述报文信息在至少两个前缀树中匹配到的至少两个叶结点;
对所述至少两个叶结点对应的策略位图逐位执行逻辑运算,得到处理结果;以及
基于所述处理结果,确定匹配到的安全策略。
4.根据权利要求1所述的方法,其中,所述匹配条件包括源地址的范围和目标地址的范围。
5.根据权利要求1所述的方法,其中,在确定存在相匹配的多个安全策略的情况下,所述方法还包括:
按照所述多个安全策略的优先级顺序进行匹配,如果命中一条安全策略,则终止所述匹配操作。
6.根据权利要求1所述的方法,还包括:
如果确定在至少一个前缀树不存在相匹配的安全策略,则按照缺省方式处理所述报文信息。
7.一种安全策略的匹配装置,包括:
获得模块,用于获得报文信息,所述报文信息中含有待匹配信息;
第一确定模块,用于基于所述待匹配信息确定待查找的结点项;
匹配模块,用于基于所述结点项,在预先构建的至少一个前缀树中进行匹配操作,确定所述至少一个前缀树是否存在与所述结点项相匹配的叶结点;其中,所述前缀树的构建包括:获得安全策略,所述安全策略包括多个匹配条件;将所述多个匹配条件数值化;基于数值化的匹配条件,构建前缀树,其中,每一个前缀树与一个匹配条件相对应;
第二确定模块,用于如果确定存在相匹配的叶结点,则基于与所述叶结点对应的策略位图来确定相匹配的安全策略,其中,所述前缀树包括多个结点,所述叶结点为所述多个结点中不具有子结点的结点,所述多个结点中的每个结点对应于一个结点项,所述每个叶结点还对应于一个策略位图,所述策略位图用于确定安全策略。
8. 一种电子设备,包括:
处理器;以及
存储器,其上存储有计算机可读指令,所述指令被处理器执行时使得处理器执行如权利要求1~6中任意一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机可读指令,所述指令被处理器执行时使得处理器执行如权利要求1~6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911425025.5A CN111193746B (zh) | 2019-12-31 | 2019-12-31 | 安全策略的匹配方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911425025.5A CN111193746B (zh) | 2019-12-31 | 2019-12-31 | 安全策略的匹配方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111193746A CN111193746A (zh) | 2020-05-22 |
CN111193746B true CN111193746B (zh) | 2022-12-06 |
Family
ID=70709755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911425025.5A Active CN111193746B (zh) | 2019-12-31 | 2019-12-31 | 安全策略的匹配方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111193746B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301680B (zh) * | 2021-12-29 | 2024-05-07 | 山石网科通信技术股份有限公司 | 一种安全策略的匹配方法及装置、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939269A (zh) * | 2015-12-18 | 2016-09-14 | 杭州迪普科技有限公司 | 基于网络地址转换规则的报文转换方法及装置 |
CN107005555A (zh) * | 2014-12-02 | 2017-08-01 | Nicira股份有限公司 | 上下文感知的分布式防火墙 |
CN110120942A (zh) * | 2019-04-17 | 2019-08-13 | 新华三信息安全技术有限公司 | 安全策略规则匹配方法及装置、防火墙设备及介质 |
CN110290117A (zh) * | 2019-06-06 | 2019-09-27 | 新华三信息安全技术有限公司 | 一种匹配ip地址的方法及装置 |
-
2019
- 2019-12-31 CN CN201911425025.5A patent/CN111193746B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107005555A (zh) * | 2014-12-02 | 2017-08-01 | Nicira股份有限公司 | 上下文感知的分布式防火墙 |
CN105939269A (zh) * | 2015-12-18 | 2016-09-14 | 杭州迪普科技有限公司 | 基于网络地址转换规则的报文转换方法及装置 |
CN110120942A (zh) * | 2019-04-17 | 2019-08-13 | 新华三信息安全技术有限公司 | 安全策略规则匹配方法及装置、防火墙设备及介质 |
CN110290117A (zh) * | 2019-06-06 | 2019-09-27 | 新华三信息安全技术有限公司 | 一种匹配ip地址的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111193746A (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11558418B2 (en) | System for query injection detection using abstract syntax trees | |
CN109617927B (zh) | 一种匹配安全策略的方法及装置 | |
CN107800631B (zh) | 使用ram中的散列表的tcam规则的有效匹配的方法和装置 | |
US9736115B2 (en) | Firewall packet filtering | |
US8824482B2 (en) | Method and system for removing dead access control entries (ACEs) | |
US8886680B2 (en) | Deterministic finite automata graph traversal with nodal bit mapping | |
US9531759B2 (en) | Generating accurate preemptive security device policy tuning recommendations | |
US8914320B2 (en) | Graph generation method for graph-based search | |
US7861291B2 (en) | System and method for implementing ACLs using standard LPM engine | |
US8965911B2 (en) | Searching and storing data in a tree data structure using prefix-matching node | |
US11463360B2 (en) | System and method for range matching | |
CN112804206A (zh) | 基于查找树的报文匹配方法、装置和电子设备 | |
CN111193746B (zh) | 安全策略的匹配方法、装置、电子设备和介质 | |
CN110012124B (zh) | 一种对网络地址范围段进行拆分的方法及装置 | |
CN109691067A (zh) | 用于传送和接收兴趣消息的***和方法 | |
US20150180831A1 (en) | Bigoted IPv6 Filtering Apparatus | |
CN116015796A (zh) | 一种流表更新方法、装置、防火墙设备及存储介质 | |
CN115834229A (zh) | 一种报文安全检测方法、设备及存储介质 | |
US20160226711A1 (en) | Inference-based network route control | |
US9912581B2 (en) | Flow inheritance | |
CN109194613B (zh) | 一种数据包检测方法和装置 | |
CN107948091B (zh) | 一种网包分类的方法及装置 | |
CN113691488A (zh) | 由防火墙设备执行的访问控制方法、装置、设备以及介质 | |
US10819683B2 (en) | Inspection context caching for deep packet inspection | |
US9324039B2 (en) | Incremental updates for ordered multi-field classification rules when represented by a tree of longest prefix matching tables |
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 | ||
CB02 | Change of applicant information |
Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant after: QAX Technology Group Inc. Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd. Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant before: QAX Technology Group Inc. Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |