[发明专利]面向云数据中心环境防火墙即服务的并行防火墙规则异常检测的方法有效
申请号: | 201410307588.5 | 申请日: | 2014-06-30 |
公开(公告)号: | CN104092676B | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 吕智慧;范康;吴杰 | 申请(专利权)人: | 复旦大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 上海正旦专利代理有限公司31200 | 代理人: | 陆飞,盛志范 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 数据中心 环境 防火墙 服务 并行 规则 异常 检测 方法 | ||
1.一种面向云数据中心环境防火墙即服务的并行防火墙规则异常检测的方法,其特征在于具体步骤为:
第一步:并行防火墙的规则分段
(1)分段与子段的规划
在云数据中心环境防火墙作为服务面向多租户的并行防火墙的架构中,要对防火墙规则进行检测,分析出规则之间的异常;然后根据异常的类型,决定是否能自动解决,或是让管理员人工做决策,保证每条防火墙规则都能过滤符合要求的数据包;防火墙规则分段是指把规则的过滤空间划分成互相不重叠的子空间,其中每个子空间就代表一个子段;子段的集合就是防火墙规则分段的结果;
用形式化语言把防火墙规则分段定义为:
分段:S={s1,s2,s3,...sm}是R={r1,r2,r3,...rn}的分段
where 1≤i,j≤m,i≠j
1≤k≤n
其中,rk=∪S′表示规则rk能够过滤的数据包的空间,与S′中子段所能过滤的数据包空间是一致的;
规则中字段只有4种关系:=,≠;在子段中,字段有5种关系:=,∩,≠;由于段字段可以表示任意起始位置到终止位置的范围,其中规则中字段和子段中字段的=,和这两中关系也称作字段匹配;
子段中字段的关系说明:如果两个子段s1和s2所对应的字段取值为v1和v2,当v1和v2表示同一个范围时,那么有s1=s2;如果有v1表示的范围是v2的子集,那么有如果有v1表示的范围是v2的超集,那么有若v1表示的范围与v2有相交,那么有s1∩s2;除此之外,s1和s2的关系为s1≠s2;
所以,子段中的∩关系是排除了=,的相交关系;
表1 字段基础关系表
为了把处理范围扩展到防火墙段,增加定义两种关系,即部分相交与完全相交:
如果防火墙子段sx和sy有存在交集的字段,但也存在不匹配的字段,那么就称子段sx和sy是部分相交关系的;
如果防火墙规则sx和sy所有字段都存在交集,那么就称规则sx和sy是部分完全相交关系的;
把等价匹配,包含匹配,无关,部分包含匹配,相关匹配,部分相交,完全相交这7种关系称为防火墙规则的扩展关系;
(2)并行防火墙规则分段分析
防火墙规则中的字段很可能存在交集,所以防火墙规则所能过滤的数据包集合可能也存在交集,其中:
如果两条防火墙规则匹配的数据包空间有重叠,当且仅当规则中所有字段都有交集;
由此可知,只要两条规则存在不相交的字段,即包含″≠″关系,那么这两条规则表示的数据包空间就不可能重叠;部分包含,部分相交,无关都包含″≠″字段关系,所以这3种规则关系所对应的规则的数据包空间不重叠;现在只需考虑等价匹配,包含匹配,完全相交,相关这4种关系,具体如下表描述:
表2 数据包重叠
对于分段来说,只选取一个字段对防火墙规则进行划分,使得任意两个子段在该字段上都没有重叠,这也确保了每个子段所表示的数据包空间都是独立不相交的空间;
由于重叠的字段只有=,∩这4种情况,接下来将介绍如何对字段进行分割;可以把字段分割分成以下5种情况,其他情况可以转换成这5种情况之一;
假设需要划分子段s1和子段s2,
情况1:s1[i].start<s2[i].start,s2[i].start≤s1[i].end,s1[i].end<s2[i].end;
这种情况下,s1[i]和s2[i]共可分割成4个部分,其中:
p1=(s1[i].start,s2[i].start)
p2=(s2[i].start,s1[i].end)
p3=(s2[i].start,s1[i].end)
p4=(s1[i].start,s2[i].end)
即s1与s2的分段共产生4个子段,
c1=(s1[1],...s1[i-1],p1,s1[i+1],...)
c2=(s1[1],...s1[i-1],p2,s1[i+1],...)
c3=(s2[1],...s2[i-1],p3,s2[i+1],...)
c4=(s2[1],...s2[i-1],p4,s2[i+1],...)
显然,s1分成了c1和c2两个子段,而s2被分成了c3和c4两个子段;
情况2:s2[i].start<s1[i].start,s1[i].start≤s2[i].end,s2[i].end<s1[i].end;
此时,s1[i]与s2[i]可被分为p1,p2,p3和p4,所对应的子段为:
c1=(s1[1],...s1[i-1],(s1[i].start,s2[i].end),s1[i+1],...)
c2=(s1[1],...s1[i-1],(s2[i].end,s1[i].end),s1[i+1],...)
c3=(s2[1],...s2[i-1],(s2[i].start,s1[i].start),s2[i+1],...)
c4=(s2[1],...s2[i-1],(s1[i].start,s2[i].end),s2[i+1],...)
情况3:s1[i].start<s2[i].start,s2[i].end<s1[i].end;
此时,s1[i]与s2[i]可被分为p1,p2,p3和p4,所对应的子段为:
c1=(s1[1],...s1[i-1],(s1[i].start,s2[i].start),s1[i+1],...)
c2=(s1[1],...s1[i-1],(s2[i].start,s2[i].end),s1[i+1],...)
c3=(s1[1],...s1[i-1],(s2[i].end,s1[i].end),s1[i+1],...)
c4=(s2[1],...s2[i-1],(s2[i].start,s2[i].end),s2[i+1],...)
情况4:s1[i].start=s2[i].start,s2[i].end<s1[i].end;
此时,s1[i]与s2[i]可被分为p1,p2和p3,所对应的子段为:
c1=(s1[1],...s1[i-1],(s1[i].start,s2[i].end),s1[i+1],...)
c2=(s1[1],...s1[i-1],(s2[i].end,s1[i].end),s1[i+1],...)
c3=(s2[1],...s2[i-1],(s2[i].start,s2[i].end),s2[i+1],...)
情况5:s1[i].start<s2[i].start,s2[i].end=s1[i].end;
此时,s1[i]与s2[i]可被分为p1,p2和p3,所对应的子段为:
c1=(s1[1],...s1[i-1],(s1[i].start,s2[i].start),s1[i+1],...)
c2=(s1[1],...s1[i-1],(s2[i].start,s1[i].end),s1[i+1],...)
c3=(s2[1],...s2[i-1],(s2[i].start,s2[i].end),s2[i+1],...)
在每种情况划分的子段中,有两种类型的子段:属于s1或属于s2的子段,这个过程也是算法中Devide函数,算法会分别把这两种子段分别加入到对应的规则集或子段集中;
(3)混合模式并行防火墙规则分段计算
混合模式并行防火墙规则分段算法是要把规则集划分成子段集,规则只能在两种情况下加入到子段集中:
情况1:规则与子段集中某一子段相等;
情况2:规则与子段中所有的子段都不相交;
对于不满足这两种情况的规则与子段,依照分段方法把规则和子段先进行划分,然后把属于规则的分段重新加入到规则集中;把属于子段的分段重新加入到子段集中取代原来的子段;这样规则集与子段集中的元素会被越分越小,直到上述两种的情况发生;
第二步:并行防火墙规则重叠的检测
基于上一步骤中提出来的分段,找出防火墙规则的重叠部分;由于子段之间是没有交集的,所以对于涉及到有重叠的子段,防火墙管理员可以指明防火墙对该段的处理方法——接收或拒绝,系统依据管理员的决定,重新调整防火墙规则的顺序;
本步骤使用二维坐标法来表示防火墙规则与子段之间的关系,利用该二维矩阵,把具有重叠的防火墙放到重叠集里,从而理出哪些规则是与顺序无关的,哪些规则是与顺序有关的,防火墙规则的异常可以放到相交集中来解决;
(1)规则-子段矩阵表示
根据字段划分的定义,任意一条防火墙规则r都可表示为一系列子段的集合{s1,s2,s3,...si}的并集;在规则-子段矩阵中,在纵坐标上表示防火墙规则,在横坐标上表示子段,假设有以下规则:
把这些规则分成子段之后,绘制出如下规则-子段表;5条防火墙规则被划分成了10个子段;其中A表示规则允许数据包通过,N表示规则不允许数据包通过:
表3 规则-子段表
(2)防火墙规则重叠集的构建
依据规则-子段表,把具有重叠的防火墙放入独立的集合中,这种独立的集合就是重叠集;重叠集的定义如下:
重叠集:防火墙规则集合w1,w2,...wm是规则r1,r2,...rn的重叠集
iff w1∪w2∪...∪wm={r1,r2,...rn}and
重叠集wm不能再往下划分
其中1≤i,j,m≤c,1≤k,1≤n;
重叠集是对整个规则集合的一个划分,重叠集之间的规则是完全不相交的,而且每个重叠集都是最小划分;
对于每一个子段,如果有多条规则与它对应,那么把这些规则包含在新的重叠集当中;如果规则已经存在于其他重叠集中,那么把该重叠集也包含进来;
建立好防火墙规则的重叠集之后,就知道哪些规则是没有重叠的,哪些规则是有重叠的;
第三步:并行防火墙规则冗余检测与解决方法
由于重叠集中的规则所覆盖的子段是在一定范围内的,可以把重叠集中的规则和其对应的子段单独画成规则-子段矩阵;
有以下两种情况会导致防火墙规则在某一子段上是多余的:
情况1:该子段上防火墙规则前面已有其他规则对数据包进行了匹配处理,这种情况也可以称为覆盖;
情况2:在该子段上,防火墙规则前面没有其他规则,但在后面出现的第一条规则的动作与该规则是一致的,那么后面的规则在该子段上可以替代这条规则,这种情况也称为替代;
如果某条规则在对应的所有子段上都被覆盖或可以替代的,那么这条规则显然是多余的,移除冗余规则;
第四步:对并行防火墙规则按照逻辑顺序重新排序
由于防火墙规则使用首次匹配的方法对数据包进行匹配处理,所以在重叠集中的规则必须按原有的顺序排列才能保证与原来防火墙的一致性;在调整规则顺序的时候必须考虑到防火墙规则的逻辑顺序,进行重新排序;具体分为两个方面:
(1)逻辑顺序就是在重叠集中规则所对应的顺序,由于重叠集中的任一规则都面临另一规则与之存在重叠关系;所以重叠集中的规则必需按照租户设定的顺序排列,否则可能造成对数据包处理的不一致;
(2)对于每一个数据包而言,在重叠集中可能存在两条或两条以上的规则可以与之匹配;只要这些规则能够按原来相应的顺序排列,就可以确保防火墙能对该数据包进行正确处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410307588.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种明月草养生保健米及其制备方法
- 下一篇:一种变频器外壳