[发明专利]一种基于判定树的防火墙策略冲突检测方法有效
申请号: | 201410773170.3 | 申请日: | 2014-12-12 |
公开(公告)号: | CN105743871B | 公开(公告)日: | 2019-03-12 |
发明(设计)人: | 张涛;马媛媛;时坚;李伟;李星;邵志鹏;陈亚东 | 申请(专利权)人: | 国家电网公司;中国电力科学研究院;全球能源互联网研究院;江苏省电力公司;江苏省电力公司信息通信分公司;北京安码科技有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/26 |
代理公司: | 北京安博达知识产权代理有限公司 11271 | 代理人: | 徐国文 |
地址: | 100031 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 判定 防火墙 策略 冲突 检测 方法 | ||
1.一种基于判定树的防火墙策略冲突检测方法,其特征在于,所述方法包括下述步骤:
步骤201:初始化存储树;
步骤202:协议域分类;
步骤203:源/目的端口对分类;
步骤204:比较源IP地址;
步骤205:比较目的IP地址;
步骤206:比较动作域;
所述步骤201中,初始化存储树即创建树型结构,采用树型数据结构存储全部防火墙策略,包括:创建树型结构的过程中,向树中插入防火墙策略,按照防火墙策略的协议域、源/目的端口对域、源IP地址域、目的IP地址域以及动作域的顺序进行,并在动作域之后存储对应的防火墙策略id;
所述创建树型结构包括下述步骤:
(1)在插入防火墙策略的过程中,把要判定的下一个域作为当前域的最左侧的孩子节点;
(2)在创建的树型结构中,除动作域之外,就其他域各自对应的所有结点来说,除最左侧孩子之外的结点是其父亲结点的真子集,存放的是不同防火墙策略当前域的内容;所述其他域指的是协议域、源/目的端口对域、源IP地址域和目的IP地址域;
(3)在创建过程中,树非空时,在插入防火墙策略的过程中,将相应的域与树的各个结点比较,如果相同则从最左侧孩子节点继续下一个域的判定;如果是当前结点的超集,则在当前结点前插入一个结点存放待插入防火墙策略的当前域,把被比较的结点作为插入结点的孩子结点,并把插入防火墙策略的下一个域作为插入结点最左侧的孩子节点;
如果是当前结点的子集,则把待插入防火墙策略当前域和该结点除最左侧一个之外的孩子结点进行比较,如果相同则从最左侧孩子节点继续下一个域的判定;如果是当前结点的超集,则在当前结点前插入一个结点存放待插入防火墙策略的当前域,把被比较的结点作为插入结点的孩子结点,并把插入防火墙策略的下一个域作为插入结点最左侧的孩子节点;
若当前结点只有一个孩子结点或没有匹配到内容相同的结点,则把该域的值插入,作为当前点的孩子节点;
如果要插入一条与现有防火墙策略完全冲突的项,则不能在树中找到合适的位置;
把后插入防火墙策略的动作域作为已有防火墙策略的孩子结点,以保证所有的防火墙策略都存储到树型结构中;
扩充树型结构直至所有的防火墙策略均已插入,树的最终的叶子结点数和防火墙策略条目数量一致;
按照树型结构对防火墙策略进行存储之后,检测防火墙策略冲突时省去除最左侧之外的兄弟结点对应防火墙策略的比较,以减少防火墙策略比较的时间复杂度;
设RuleNode为待插入判定树中的规则,PTRoot为待创建的树的根结点,PTNode为树的当前结点,创建树型结构包括如下步骤:
301、如果PTRoot等于NULL,把RuleNode中的各个域依照协议域、源/目的端口对域、源IP地址域、目的IP地址域、动作域的次序依次插入到树的最左侧的孩子结点上;否则,执行步骤302;
302、从PTRoot结点开始,把规则RuleNode中的各个域分别与树中的各个结点进行比较;所述各个域包括协议域、端口对域、源口地址域、目的IP地址域、动作域,PTRoot结点记为PTNode,继续执行步骤303;
303、从PTRoot结点开始,如果RuleNode的对应域的值等于树的PTNode结点的值,那么执行步骤304;否则,如果RuleNode的对应域的值是PTNode结点值的超集,执行步骤305;如果RuleNode的对应域的值是PTNode结点值的子集,执行步骤306;如果RuleNode的对应域的值和PTNode结点的值不相关,执行步骤307;
304、如果RuleNode的下一个域等于NULL,则执行步骤310;否则,令PTNode指向其最左侧的孩子结点,转至步骤303继续执行;
305、在PTNode和其父亲结点之间插入一个结点,存储RuleNode的当前域值,然后继续执行步骤309;
306、这种情况下PTNode的孩子结点不为NULL;如果PTNode只有一个孩子节点,令PTNode指向该孩子结点,转至步骤303继续执行;否则继续执行步骤308;
307、把RuleNode的当前域值插入到PTNode的兄弟结点上,继续执行步骤309;
308、比较RuleNode当前域值和PTNode除最左侧孩子节点之外的所有孩子结点,如果和其中一个孩子结点相同,继续执行步骤304;如果是其中一个孩子结点的子集,令PTNode指向该孩子结点,继续执行步骤306;如果不是以上两种情况,为PTNode建立一个孩子结点存放RuleNode当前域,然后继续执行步骤309;
309、把RuleNode后面的域值依次作为前一域的最左侧的孩子结点直到RuleNode下一个域为空,继续执行步骤310;
310、标记好规则RuleNode的编号,该规则插入完成,继续插入下一条规则,执行步骤302;重复上述步骤直到没有规则插入树中,则防火墙策略的树型存储结构创建完成;
所述步骤202中,根据防火墙策略的协议域进行判定,防火墙策略协议域的协议包括TCP协议、UDP协议以及无限制划三类;
所述步骤203中,根据源/目的端口对域进行判定,防火墙策略目的端口包括21端口、80端口以及无限制三类;
所述步骤204中,进行源IP地址判定,按照IP是否存在重复的判定结果进行分类存储,若IP存在重复,则存在冲突或者冗余的情况;
所述步骤205中,进行目的IP地址判定,按照IP是否存在重复的判定结果进行分类存储,若IP存在重复,则存在冲突或者冗余的情况;
所述步骤206中,进行动作域判定,包括接受和拒绝两种情况。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家电网公司;中国电力科学研究院;全球能源互联网研究院;江苏省电力公司;江苏省电力公司信息通信分公司;北京安码科技有限公司,未经国家电网公司;中国电力科学研究院;全球能源互联网研究院;江苏省电力公司;江苏省电力公司信息通信分公司;北京安码科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410773170.3/1.html,转载请声明来源钻瓜专利网。