基于端口相似性的双阶段软件定义网络流表溢出防御方法

文档序号:28119785发布日期:2021-12-22 15:05阅读:74来源:国知局
1.本发明属于网络安全
技术领域
:,尤其涉及一种基于端口相似性的双阶段软件定义网络流表溢出防御方法。
背景技术
::2.软件定义网络(software‑definednetwork)是一种控制逻辑与转发逻辑分离的网络架构。控制器负责处理网络数据包的转发逻辑,并生成对应的流规则,将这些流规则下发到交换机上,而交换机则通过流表存储来自控制器的转发指令,并按照这些转发指令处理对应的数据包。然而,交换机的流表在满足高速转发性能的同时无法兼顾大容量的流表存储,其容量往往仅支持几千条流规则的存储。这使得流表成为攻击者的重点攻击对象。攻击者通过伪造大量的陌生数据包,来诱骗控制器下发对应的流规则,从而占据流表空间,阻碍正常数据包的转发。3.现有的针对流表溢出攻击的防御有多种多样,例如通过packet‑in消息的频率,通过cpu、内存的使用情况来判断攻击等。但是这些已有的防御都存在被攻击者绕过的漏洞。比如慢速攻击可以精准地探测交换机流表的参数,从而在有效地减少攻击流量的同时完成同样的攻击效果。在这种攻击下,攻击流量不会表现出明显的峰值特征,使用这些方法进行的检测将会失效。技术实现要素:4.本发明的目的在于针对现有技术的不足,提供一种基于端口相似性的双阶段软件定义网络流表溢出防御方法。5.本发明的目的是通过以下技术方案来实现的:一种基于端口相似性的双阶段软件定义网络流表溢出防御方法,包括以下步骤:6.(1)软件定义网络中的控制器实时监听统计各交换机端口所占用的流表信息,包括每一条流规则的加入、删除、以及超时事件等;对交换机每个端口接收到的流量的流表占用情况进行及时更新;统计网络中各个流因table‑miss而触发packet‑in报文的次数。7.(2)根据步骤(1)中统计的每个端口流表占用情况,计算得出每个端口占用流规则数量的偏移度d,每当产生流规则超时事件、流表溢出事件、新规则添加事件时,更新基础信息,重新计算d,并对每个端口的偏移度进行排序。8.(3)当流表容量被用尽时,取出偏移度的排序结果,判断是否有端口的偏移度大于判断阈值。如果是,则说明攻击流量集中于特定的端口,整个交换机面对攻击流量的压力适中。此时对与之对应的端口流量进行流规则删除,使之所占据的流规则数量减少到平均端口流规则占用数量。9.(4)对于步骤(3)中的判断结果,如果没有端口的偏移度超出判断阈值,说明交换机多数端口面临较大的流量压力,此时对于偏移度大于等于0的端口进行流规则的删除,使这些端口每个占据的流规则数量等同于端口平均流规则占用数量。10.进一步地,步骤(2)中,计算偏移度d具体为:11.对每个端口pi,统计从该端口接收到的流所占用的流规则的数量fpi,计算交换机平均每端口占用流规则数量fave:[0012][0013]依据fave计算出每个端口流规则占用数量的的偏移度dpi:[0014][0015]进一步地,当步骤(3)(4)中判断端口偏移度是否超出阈值时:[0016][0017]进一步地,步骤(3)和(4)中,在对超负荷的流表删除流规则时,选择端口偏移大于等于1的端口进行对应流规则的删除,若不存在端口偏移度大于阈值的端口,则对所有偏移度大于0的端口进行流规则的删除。在具体的端口删除流规则时,根据步骤(1)中统计的每条流所触发的packet‑in报文次数,优先删除触发packet‑in次数最少的流对应的流规则。[0018]进一步地,每个端口的偏移度从大到小排序。[0019]本发明的有益效果是:本发明首先将攻击判断的问题建模为交换机端口相似性的问题。通过检测异常增加的端口流表占用率,针对不同速率的攻击流量,采取不同程度的防御措施。对于特定端口发起的流表攻击,本发明对特定的交换机端口进行流表空间占用的限制。而当交换机面临大量端口的流量压力时,本发明通过合理分配每个端口的流表占用比率来缓解压力。同时采用分析真实网络数据的特征,有效过滤出攻击流量。与现有技术相比,本发明可以更好地检测流表溢出攻击,避免了已有防御在应对慢速攻击时的不足。附图说明[0020]图1是本发明基于端口相似性的双阶段软件定义网络流表溢出防御关联方法流程图。[0021]具体的实施方式[0022]下面根据附图详细描述本发明,以突出本发明的目的和具体效果。[0023]如图1所示,本发明一种基于端口相似性的双阶段软件定义网络流表溢出防御方法,具体包括如下步骤:[0024](1)软件定义网络中的控制器实时监听统计各交换机端口所占用的流表信息,包括每一条流规则的加入、删除、以及超时事件;对于交换机的每个端口pi,统计从该端口接收到的流所占用的流规则的数量fpi,并计算当前交换机下平均每端口占用流规则数量fave:[0025][0026]其中,i=1~n,n为端口的总数。[0027]之后依据fave计算出每个端口流规则占用数量的的偏移度dpi:[0028][0029]与此同时,对于每条流f,统计流所触发的packet‑in报文出现的次数nf。[0030]每当产生流规则超时事件、流表溢出事件、新规则添加事件时,更新基础信息,重新计算d,并对每个端口的偏移度进行从大到小排序。[0031](2)当流表容量被用尽时,取出偏移度的排序结果(从大到小),判断是否有端口的偏移度大于判断阈值:[0032][0033]其中,overflowpi表示判断端口pi是否存在流表溢出攻击。[0034]如果是,overflowpi=1,则说明攻击流量集中于特定的端口,整个交换机面对攻击流量的压力适中。此时对与之对应的端口流量进行流规则删除,根据步骤(1)中统计的每条流所触发的packet‑in报文次数nf,优先删除nf=1的流,然后是nf=2,3,…,n的流,使受攻击端口所占用的流表数量位于平均值以下。[0035](3)如果没有端口的偏移度超出判断阈值,说明交换机多数端口面临较大的流量压力,此时对于偏移度大于0的端口进行流规则的删除,仍然优先删除nf=1的流,使这些端口每个占据的流规则数量等同于端口平均流规则占用数量。[0036](4)删除流规则之后,实时更新端口统计信息与偏移度;对新流下发流规则。之后继续监听统计各交换机端口所占用的流表信息,包括每一条流规则的加入、删除、以及超时事件;并计算fpi,fave,dpi。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1