基于Hicuts算法的安全策略冲突检测及消除方法与流程

文档序号:12278743阅读:617来源:国知局
基于Hicuts算法的安全策略冲突检测及消除方法与流程
本发明涉及网络安全策略中规则之间冲突的检测与消解,更确切地说是基于Hicuts算法,对安全设备中的安全策略进行冲突检测和消解的方法。
背景技术
:在网络管理中,规则是由多个维度的条件和对应动作构成。安全策略是安全设备中所有规则的集合,安全设备依赖该集合来决定在某个条件下应该执行的动作。基于安全策略的网络管理方式已经在网络管理领域广泛地使用。在防火墙中,存在若干的策略规则来检测出入防火墙的数据包。例如,五元组R<源IP地址,目的IP地址,源端口,目的端口,协议>和动作(deny或者allow)可以构成一条规则。五元组R<202.115.60/24,202.115.91.8,ANY,80,TCP>和对应动作deny构成的规则意思是:当有源IP地址为202.115.60/24,源端口为ANY,目的IP地址为202.115.91.8,目的端口为80,并且协议为TCP的数据包到达安全设备时,采取丢弃的动作。然而,网络管理员在配置规则的时候,不能完全保证策略之间没有冲突,即:两条或多条策略的条件部分同时满足,而动作却不能同时执行。例如:五元组R<202.115.60/24,202.115.91.8,ANY,80,TCP>和对应动作deny组成的规则A与五元组R<202.115.60.4,202.115.91.8,ANY,80,HTTP>和对应动作allow组成的规则B是相互冲突的规则,因为规则B完全是规则A的子集,而对应的动作却不一样。在分布式情形下,需要在大量安全设备间配置规则,因此更容易产生冲突。安全策略中规则的正确性和一致性对于信息安全来说极其重要。如果规则的执行与否依赖于规则的排序,那么,一些规则将会被隐藏,将会导致系统中存在漏洞而造成黑客入侵等安全事故。综上所述,对安全策略的规则进行检测,是非常有必要的。目前,对安全策略的规则检测有以下几种方法:1、基于多维空间的策略冲突检测。利用多维空间方法进行冲突检测时,将所有策略条件部分的每一种属性即每一项维度看作是多维空间中的一个轴,即一维。这样每条策略的条件部分对应多维空间中的一块区域,如果有两条或多条策略在多维空间中的区域有重叠,就会存在一个潜在的冲突,这时要看它们的动作部分是否可以同时执行。2、基于Ponder和角色的策略冲突检测。角色同组织内的一个职位有关,以角色而不是以个人的形式制定策略,个人可以加入或离开某个角色。在基于策略的管理系统中,引起执行动作的策略与授权做这个动作的策略在系统中可以彼此独立存在,但是若只存在其中一个与动作相关的策略,则这个动作不会执行。这样要执行一个管理动作,则必须有一个管理者是两条策略的主体:引起执行动作的命令策略和授权执行动作的授权策略。在Ponder语言中,对策略进行分析和冲突检测的策略描述模板为:Identifiermode[trigger]subject‘{‘action‘}’target[constraint][exception][parent][child][xref]基于角色的访问控制方法指出:只有两条策略的主体和对象有重叠才可能存在冲突,因此要对策略冲突进行语言分析,首先要分析策略之间的对象重叠,这是产生冲突的必要条件。3、基于半格的策略冲突检测与消解。基于半格的策略冲突消解思想依赖于两个关键点:一是用集合的方法处理策略的条件;二是在策略发生冲突时用半格代数结构进行执行动作的选择。半格可以被看作是一个偏序集,并可以用图来表示。当检测到两个策略规则的条件集合有交集而它们指定的动作集合不相同时就发生了冲突,检测到策略冲突后可通过选择执行一个新的动作来解决。并得出结论:如果一个动作集合是半格,则发生冲突时一定能找到一个新的动作解决冲突。4、基于PDL的策略冲突检测与消解。PDL策略系统把动作冲突描述成对动作限制的违背,而对动作违背的捕捉也就是策略冲突的检测。独立于策略,还存在着强加到动作历史上的限制,这些限制对于系统来说不确定的或者是完全正确的。所以,动作冲突就可以被当作对动作限制的违背来发现。在上述的策略冲突与消解的方法中,都存在一个问题,就是其算法的复杂度比较高。例如:在基于多维空间的策略冲突检测中,最坏的复杂度达到o(nk+1)。因此,对安全策略中大量的规则进行冲突检测和消解时,上述的方法都不具有实践性。技术实现要素:本发明的发明目的在于:为了降低策略冲突检测与消解方法的复杂度,提高处理效率,本发明提出了一种基于Hicuts算法的策略冲突检测及消解方法。本发明的基于Hicuts算法的安全策略冲突检测方法,包括下列步骤:步骤A:使用Hicuts算法的分类思想,对安全策略的规则进行分类,生成一颗关于规则的分类决策树;步骤B:对分类决策树的同一叶子结点的规则进行冲突检测,得到冲突检测结果。仅对同一叶子结点中的所有规则进行冲突检测,可以有效降低计算量,降低冲突检测复杂度。进一步的,步骤A具体包括:步骤A1:对规则的所有维度,若维度能表示成区间的形式,则定义为连续型维度,否则定义为非连续型维度,如五元组R<源IP地址,目的IP地址,源端口,目的端口,协议>中,维度“源IP地址”,“目的IP地址”,“源端口”,“目的端口”都是连续型维度,而“协议”为非连续型维度;确定所有维度的维度范围,对于连续型维度,维度范围为能取到的最小值到最大值的区间;对于非连续型维度,维度范围为所有可取元素的集合,例如维度“源端口”最小为21,最大为1000-5000,则此维度的维度范围是21-5000,维度“协议”可取的元素包括IP、TCP、UDP、SCTP、HTTP,则对应的维度范围是{IP、TCP、UDP、SCTP、HTTP};对于非连续型维度,若维度范围中的元素间存在包含关系,则定义为复合型维度;步骤A2:若存在复合型维度,则对复合型维度进行预处理:基于维度范围中的元素间的包含关系,将复合型维度的复合型元素分解为本元素与其父元素的元素集合;其中复合型元素的定义为:元素A包含于元素B,则称元素A为复合型元素,且元素B称为元素A的父元素;例如,维度范围{IP、TCP、UDP、SCTP、HTTP}中,HTTP,TCP,IP依次是被包含关系,若规则中的维度“协议”的元素集合中存在元素TCP,则将该复合型元素TCP分解为本元素与其所有父元素的元素集合:HTTP/TCP;若维度“协议”的集合中存在元素IP,则将该复合型元素IP分解为本元素与其所有父元素的元素集合:HTTP/TCP/IP。步骤A3:基于维度进行切割,生成分类决策树:A3-1:初始化分类决策的根结点,将待检测的所有规则切割到根结点;A3-2:随机选择一个非复合型维度进行第一切割处理:基于维度范围和预设子女结点数目np将当前非复合型维度的维度范围均分为np个切割范围;基于当前非复合型维度的元素与各切割范围的交集,将规则数目大于预设阈值binth的结点的规则切割到不同的子女结点;A3-3:判断叶子结点的规则数目是否大于阈值binth,若是,则继续执行步骤A3-2直到所有非复合型维度均执行一次第一切割处理;A3-4:若所有非复合型维度均执行一次第一切割处理后,叶子结点的规则数目大于阈值binth,则基于当前叶子结点的所有规则对维度范围进行更新后继续执行步骤A3-2,直到叶子结点的规则数目小于或等于阈值binth;A3-5:对未执行分割处理的复合型维度进行第二切割处理:对步骤A3-3得到的同一叶子结点的所有规则,将同一复合型维度的元素集合间存在交集的规则切割到当前叶子结点的同一子女结点。在步骤A中对规则中的每个非复合型维度进行第一切割处理的过程中,两个规则(规则1和规则2)可能出现下面4种情况:(1)两个规则中,各自的维度区间都处于当前切割范围,但两个规则的维度区间不相交,此时规则1和规则2不冲突。例如:规则1的“目的端口”维度区间为21-60,规则2的“目的端口”维度区间为70-139,切割范围为50-100;(2)两个规则中,各自的维度区间都处于当前切割范围,并且两个规则的维度区间相交,此时规则1和规则2冲突。例如:规则2的“目的端口”维度区间为21-90,规则2的“目的端口”维度区间为56-139,切割范围为50-100;(3)两个规则中,各自的维度区间都不处于当前切割区间,此时规则1和规则2不冲突。例如:规则1的“目的端口”维度区间为21-35,规则2的“目的端口”维度区间为110-139,切割范围为50-100;(4)两个规则中的一个规则的该维度区间处于当前切割区间,另一个没有处于当前的切割区间,此时规则1和规则2不冲突。例如规则1的目的“目的端口”维度为21-39,规则2的“目的端口”维度区间为56-139,切割范围为50-100。因此,如果有两个规则处于同一叶子结点中,则这两个规则可能存在冲突;如果两个规则不处于同一叶子中,则这两个规则一定不会存在冲突,即可以依据叶子结点里的规则来检测冲突:仅对规则数目大于1的叶子结点进行冲突检测,若同一叶子结点的各规则间的动作不一致,则继续比较各规则的同一维度的元素是否存在冲突,若是,则存在冲突规则。基于上述冲突检测方法,本发明还公开了一种基于Hicuts算法的安全策略冲突消除方法,包括下列步骤:首先,根据本发明的冲突检测方法得到冲突检测结果;然后对冲突检测结果中存在冲突的规则进行修改,消除冲突。综上所述,由于采用了上述技术方案,本发明的有益效果是:1、首先,通过对规则的各个维度进行等距切割,可以把规则中可能存在冲突的规则切割到同一个结点上;其次,分类策略树的生成过程实质是对策略中规则分类的过程,对规则中维度每切割一次,就是对不满足binth条件的结点中的规则再分类,生成分类决策树的整个过程需要比较的次数小于规则总数与决策树层数之积。故生成分类决策树的复杂度为o(n),大大低于已有的冲突查找方法的复杂度。另外,通过分析叶子结点中规则来判断规则是否冲突,实质上只对叶子结点中规则的比较,比较次数不大于预设的binth,故其复杂度为o(1)。综上所述,本发明的冲突检测的复杂度为o(n)。2、本发明中通过对复合型维度进行预处理,对其复合型元素进行分解后,对复合型维度的切割提供了依据,实现方便、有效地对复合型元素的维度进行切割;同时,在切割处理时优先对非复合型维度进行第一切割处理,使切割更高效;并且在叶子结点满足binth后才对复合型维度进行第二切割处理,确保了子女结点中的规则数不大于binth。附图说明图1是具体实施方式的流程图;图2是具体实施方式的维度切割示例。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。本发明基于Hicuts算法的分类方式,生成一棵关于安全策略中所有规则的分类决策树;根据生成的分类决策树,通过分析叶子结点中的规则来判断规则是否冲突,得到冲突检测结果。再对冲突检测结果中的冲突规则进行修改,消除冲突。以表1所示的安全策略的规则为例对本发明的具体实现过程进行描述:表1规则源IP地址目的IP地址源端口目的端口协议行为1202.115.60.*202.115.91.8ANY80TCPallow2202.115.60.5202.115.91.91394040TCPallow3202.115.60.*202.115.91.206061UDPdeny4202.115.60.6202.115.91.1880803535IPallow5202.115.60.30202.115.91.118080<100TCPallow6202.115.60.4202.115.91.8ANY80HTTPdeny7202.115.60.5202.115.91.980802055UDPallow8202.115.60.9202.115.91.22808062TCPallow9202.115.60.*202.115.91.34808080HTTPdeny10202.115.60.3202.115.91.1580801416SCTPallow表1的源IP地址中,符号“*”表示0~255之间的任意数。参见图1,本发明在生成分类决策树及进行冲突检测与消除时包括下列步骤:步骤S1:确定表1所示的10条规则中各维度的范围:源IP地址:202.115.60.0-202.115.60.255,目的IP地址:202.115.91.8-202.115.91.34,源端口:0-65535,目的端口:0-4040,协议(复合型):IP、TCP、UDP、SCTP、HTTP;步骤S2:预处理规则中的复合型维度。根据步骤S1中求出的规则中复合型维度的维度及元素之间的包含关系,把规则中所有复合型元素分解为本身与其所有父元素的集合,得到如表2所示的分解结果。表2以表1中的第6条规则(五元组R<202.115.60.4,202.115.91.8,ANY,80,HTTP>)为例,因为10条规则中维度“协议”的元素集合中存在元素TCP和IP,并且HTTP,TCP,IP依次是被包含关系,所以该五元组处理为R<202.115.60.4,202.115.91.8,ANY,80,HTTP/TCP/IP>。步骤S3:基于维度进行切割,生成分类决策树(此步骤中需要预先设定叶子结点中最大的规则数目binth和一个节点最多可以容纳的子女结点数目np,假设binth=3,np=3):S3-1:初始化分类决策的根结点root,将表2所示的10条规则切割到根结点,如图2所示;S3-2:随机选择一个非复合型维度进行第一切割处理:基于维度范围和np将当前非复合型维度的维度范围均分为np个切割范围;基于当前非复合型维度的元素与各切割范围的交集,将规则数目大于预设阈值binth的结点的规则切割到不同的子女结点;S3-3:判断叶子结点的规则数目是否大于阈值binth,若是,则继续执行步骤S3-2直到所有非复合型维度均执行一次第一切割处理;参见图2,首先选择维度“源IP地址”进行第一切割处理,即根据维度“源IP地址”对根结点进行切割。维度“源IP地址”的维度范围是202.115.60.0-202.115.60.255,且np=3,因此将当前维度范围均分为3个切割范围:202.115.60.0-202.115.60.85、202.115.60.86-202.115.60.191、202.115.60.192-202.115.60.255;接着把规则中源IP地址与范围202.115.60.0-202.115.60.85有交集的规则切割到root的第一个子女结点(规则1,2,3,4,5,6,7,8,9,10);把所有规则中源IP地址与范围202.115.60.86-202.115.60.191有交集的规则切割到root的第二个子女结点(规则1,3,9);把所有规则中源IP地址与范围202.115.60.192-202.115.60.255有交集的规则切割到root的第三个结点(规则1,3,9)。至此对于维度“源IP地址”的切割完毕。然后,再选择一个非复合型维度进行第一切割处理,切割的对象是规则数目大于binth的叶子结点。在图2中选择“目的IP地址”对叶子结点(包含规则1,2,3,4,5,6,7,8,9,10)进行切割。基于维度“目的IP地址”的维度范围:202.115.91.8-202.115.91.34,将规则1~10中目的IP地址与范围202.115.91.8-202.115.91.17有交集的规则切割到当前结点的第一个子女结点(规则1,2,5,6,7);将规则1~10中目的IP地址与范围202.115.91.18-202.115.91.26有交集的规则切割到当前结点的第二个子女结点(规则3,4,8,10);将规则1~10中目的IP地址与范围202.115.91.27-202.115.91.34有交集的规则切割到当前结点第三个子女结点(规则9)。接着对维度“源端口”,“目的端口”分别进行第一切割处理后,满足当前所有叶子结点的规则数目均小于3,则执行步骤S3-4;步骤S3-4:对复合型维度“协议”进行切割。由于所有非复合型元素均是元素“IP”的子元素,故没有产生进一步切割的效果,切割结束。最终生成了图2所示的分类决策树。步骤:S4:在生成分类决策树后,通过分析分类决策树的同一叶子结点中的规则来确定安全策略的规则是否存在冲突,具体方法是:检查所有叶子结点,若叶子结点的规则数目大于1,且规则对应的动作不一致,则这些规则可能存在冲突,进而可以通过该叶子结点所有规则中对应维度的元素来判断是否存在冲突,如果存在冲突,则可以修改规则来消解冲突。在图2中,分类决策树中的含有规则(1,5,6)、(1,3,9)、(3,8,10)的叶子结点行为不同,所以上述叶子结点的规则之间可能存在冲突。进一步对可能存在冲突的叶子结点进行比较,确定规则1和规则6存在冲突,则可以删除或者修改存在冲突的规则1或者6来消解冲突。以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1