一种基于增量部署SDN网络的链路洪泛攻击的防御方法转让专利

申请号 : CN201511029017.0

文献号 : CN105516184B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李清王磊江勇吴建平

申请人 : 清华大学深圳研究生院

摘要 :

本发明涉及种基于增量部署SDN网络的链路洪泛攻击的防御方法,利用节点升级算法选出需要升级成软件定义网络功能节点的路由器,并将其升级;当网络中发生拥塞的时候,通过部署在网络中的软件定义网络功能节点去定位拥塞链路;收集全网的拥塞链路信息,并在此基础上,来判断当前的网络拥塞是否构成链路洪泛攻击;如果构成链路洪泛攻击,启动全局流量工程去均衡全网流量,否则,通过备份路径方式,缓解拥塞链路。本发明在传统网络中升级少量的节点为软件定义网络功能节点,探测链路洪泛攻击,并定位被攻击的链路组,通过集中控制的流量工程去均衡全网的链路流量,以消除链路洪泛攻击的根源,从而有效防御链路洪泛攻击。

权利要求 :

1.一种基于增量部署SDN网络的链路洪泛攻击的防御方法,其特征在于包括如下步骤:

S1、利用节点升级算法选出需要升级成软件定义网络功能节点的交换机,并将其升级;

其中,在该步骤S1中,针对入口节点集和目的节点集的每一个节点对,利用Dijkstra算法,算出其在传统网络中的最短路径,然后网络中每一个节点经过的路径数目,作为第一衡量标准;节点的度作为节点升级成软件定义网络节点的调度潜力,作为第二衡量标准;对这两个标准进行折中,从而选出最优的m个点进行升级,m为整数;

S2、当网络中发生拥塞的时候,通过部署在网络中的软件定义网络功能节点去定位拥塞链路;

S3、收集全网的拥塞链路信息,并在此基础上,来判断当前的网络拥塞是否构成链路洪泛攻击;

S4、如果构成链路洪泛攻击,启动全局流量工程去均衡全网流量,否则,通过备份路径方式,缓解拥塞链路。

2.如权利要求1所述的基于增量部署SDN网络的链路洪泛攻击的防御方法,其特征在于还包括如下步骤:启动全局流量工程后,继续收集全网拥塞链路信息,如果网络拥塞链路的总数没有显著减少,即流量工程后的拥塞链路数目和之前的拥塞链路数目之比大于阈值k,系统将会采取主动丢包的方式,缓解链路洪泛攻击。

3.如权利要求2所述的基于增量部署SDN网络的链路洪泛攻击的防御方法,其特征在于:主动丢包的优先级采用基于增量部署软件定义网络的黑名单算法;所述黑名单算法包括如下步骤:对于出现在各个拥塞链路的源地址进行打分,按分数由高到低,制定黑名单;

当系统需要丢包时,按照黑名单上的顺序依次丢弃包含这些源地址的数据流。

4.如权利要求1所述的基于增量部署SDN网络的链路洪泛攻击的防御方法,其特征在于步骤S2中定位拥塞链路的方法包括如下步骤:S21、预先在每个软件定义网络功能节点的流表中装入一个触发器规则;S22、当网络中出现拥塞的时候会触发这个规则,给控制器发送一条警报消息;S23、控制器根据全网信息,定位拥塞发生的两个软件定义网络功能节点的区域;S24、通过控制器和节点配合实现拥塞链路的定位。

5.如权利要求4所述的基于增量部署SDN网络的链路洪泛攻击的防御方法,其特征在于步骤S2中定位拥塞链路的方法包括如下步骤:预先在包含软件定义网络功能的交换机中安装触发器规则,当流经该交换机的流量中匹配该规则的流量少于一定阈值,可以判断转发路径的上流交换机发生重度拥塞;利用对SDN的全局视角,定位相应的软件定义网络功能节点对;利用SDN去模拟Traceroute的功能去准确定位这两个节点之间的拥塞链路。

6.如权利要求5所述的基于增量部署SDN网络的链路洪泛攻击的防御方法,其特征是利用SDN模拟Traceroute的功能去准确定位这两个节点之间的拥塞链路的方法是:控制器下发两条高优先级的规则,一条控制探测包逐跳转发,另一条接收反馈,并将反馈的数据包转发到控制器;控制器根据反馈结果决定是继续探测即重新发送探测包,并将其TTL字段自增

1;还是根据ICMP的不可达反馈,定位出拥塞链路。

7.如权利要求1所述的基于增量部署SDN网络的链路洪泛攻击的防御方法,其特征是在步骤S3中判断网络是否经历着链路洪泛攻击的算法至少包括两个判定部分:一个是,如果拥塞链路集合构成网络的割边,那么根据链路洪泛攻击切断目标区域的特性,判定网络正在遭受攻击;另一个是,如果前者不成立,对于拥塞链路在网络全网通信的重要性进行打分,如果分数超过一个工程阈值,依然判定网络正在遭受链路洪泛攻击。

8.如权利要求1所述的基于增量部署SDN网络的链路洪泛攻击的防御方法,其特征是:

在步骤S4中的全局流量工程是集中控制的流量工程,其利用软件定义网络灵活的匹配域和流控制,让网络中的流量尽可能均衡的分布在所有的链路上,进而消除瓶颈链路。

9.如权利要求8所述的基于增量部署SDN网络的链路洪泛攻击的防御方法,其特征是:

将所述流量工程转化为一个线性规划问题,优化的目标是使得网络中链路的最大链路利用率最小,约束条件是对于每一个链路节点对之间所有的流量都分配所有的可行无环路径上,以及对于每一条链路,它所经历的可控流量和不可控流量之和小于链路的容量和其最大利用率的乘积。

说明书 :

一种基于增量部署SDN网络的链路洪泛攻击的防御方法

技术领域

[0001] 本发明涉及计算机网络领域网络安全技术,特别涉及一种基于增量部署SDN(Software-Defined Network,软件定义网络)网络的链路洪泛攻击的防御方法。

背景技术

[0002] 分布式拒绝服务攻击(DDoS)是当今互联网主要的安全威胁之一。攻击者主要是以僵尸主机和被攻击者的资源的非对称性为基础,再利用某些网络协议的漏洞来发起攻击,消耗被攻击者的资源(带宽,CPU等),从而使得被攻击者的可用性大大降低。对于传统的DDoS攻击,目前已经有一系列较为有效的防御措施,包括Pushback,入口过滤(Ingress filter),控制器代理模型等方法。现有算法的基础是基于网络流量的统计与识别,从而区分DDoS攻击流量与正常流量。近几年来,一种新的DDoS攻击,即链路洪泛攻击(Link Flooding Attack,LFA)成为学术界和企业界关注的热点。链路洪泛攻击的攻击目标不在是传统DDoS攻击的终端节点(服务器,主机等),而是通过攻击一组或者几组精心选择的链路,来达到降低甚至切断某区域通信能力的目的。链路洪泛攻击不仅是学术界的热点,近年来,欧洲的一些因特网交换节点(IXP)也曾饱受链路洪泛攻击之苦。
[0003] 链路洪泛攻击的攻击机理如下:
[0004] (1)攻击者利用网络探测工具(比如trace route)去探测僵尸主机和攻击区域的公共服务器之间的通信路径,从而构建一个从攻击者掌握的僵尸网络群到目标区域服务器之间的链路图(Link map)。攻击者根据链路图中的链路流密度分布选出若干组持久链路。这里的持久性链路针对是系统自身简单的多路径负载均衡(如ECMP),攻击者多次探测的僵尸主机和目标节点之间的路径上,如果这条链路始终存在,称为持久链路。
[0005] (2)攻击者利用掌握的僵尸主机,发送大量的低密度、合法的数据流去特定的目标服务器,使得第一步选出来的链路组拥塞,从而达到降低甚至切断目标区域通信连接的目的。
[0006] 链路洪泛攻击的攻击主要有以下三个显著的特点:
[0007] (1)难以探测性。目标区域没有直接被攻击,因此,目标区域的服务器很难直接检测到异常流量。
[0008] (2)不可区分性。攻击者采用的是合法的低密度流,而且采用的是真实原地址,这样路由器用现有的方法是无法区分攻击流和正常访问的流。
[0009] (3)持久性。攻击者动态的切换攻击的链路组,使得攻击成为一个纯粹的数据平面攻击,而不改变控制平面。
[0010] 学术界对于链路洪泛攻击的原因,进行过较为深入的探究,他们认为,当前网络基于最短路径的协议造成了网络中链路的齐普夫分布,从而使得当前部署的网络普遍存在瓶颈。由于前面提到的链路洪泛攻击具有的特点,使得现有的网络防御措施包括本地重路由,基于流密度的过滤等手段,对于链路洪泛工具均收效甚微。除此之外,当前网络协议的慢收敛特性也加大了对链路洪泛攻击探测和处理的难度。例如,OSPF协议(Open Shortest Path Fist,开放最短路径协议)中,链路之间的保活的hello报文的发送间隔是40秒,而路由器探测到链路拥塞的时间大约是217秒,而这两个时间对于BGP协议(Border Gateway Protocol,边界网关协议)分别是180秒和1076秒。基于这个原理,攻击者就可以通过切换攻击的目标链路组来增加网络系统检测攻击的难度。以一种典型的链路洪泛攻击crossfire为例,攻击者通过链路图通过贪心算法,选择出两组攻击的目标链路,然后周期性的切换攻击的目标链路组,对于选择的最优链路组攻击持续周期为3分钟,对于次优的链路组攻击周期为30秒。这样,网络由于自身的慢收敛特性无法及时的对这种攻击做出有效的反应。当今网络对于链路洪泛攻击的另一个重大的处理瓶颈是当前网络的分布式特性,这使得网络对于全网范围内流量的调度和掌控,灵活性欠佳且耗时较长,这使得应对这类快速变化的网络攻击十分乏力。
[0011] 链路洪泛攻击从提出以来,一直缺乏有效的防御手段。现有的防御措施中,比较成熟的是一种多自治域(autonomous system,AS)合作的重路由和流控制方案,这种方法通过巧妙的信息反馈让攻击者陷入攻击悖论中,从而漏出破绽,让防御者得以区分正常流量和攻击流量。但是这种攻击引入了一种路由控制服务器去维护所有参与的自治域的路由控制信息,而且这个路由控制信息会影响所有自治域的多路径路由转发策略。所以,这个防御方案无论是实现难度和部署都过于理想化,停留在理论阶段。
[0012] 在当今的互联网中,软件定义网络(Software-Defined Network,SDN)对现有的网络架构产生了巨大的影响,也为防御链路洪泛攻击提供了新的可能。软件定义网络起源于4D和Ethane这些美国高校的校园网项目,是一种全新的网络机制。软件定义网络从体系结构的角度来看,主要分为应用层,控制平面和数据平面。控制平面和数据平面的分离,以及逻辑上的集中控制是软件定义网络最重要的两个特征。网络安全服务被认为是软件定义网络的杀手级应用,尤其是是在DDoS防御领域。软件定义网络在传统DDoS攻击的防御方面的优势主要体现在可以在全网视角内分析和统计流量的特征,基于这些特征利用机器学习的方法对流量进行分类,从而区分出正常流量和攻击流量。软件定义网络对于网络流量灵活的调度和牵引,也是其成功防御和缓解DDoS攻击的重要手段。
[0013] 软件定义网络灵活的匹配域,使得网络中同一个源和目的地址对之间可以有多条无环路径,这样就可以更加灵活和细粒度的进行流量工程。谷歌公司提出的B4就是基于软件定义网络跨数据中心的流量工程方案,微软公司也有对应的SWAN方案。但是,由于当前网络庞大的规模,网络设施和类型的多样性、复杂性,从传统网络到软件定义网络的过渡绝非一朝一夕可以完成的。增量式部署软件定义网络,是一种行之有效的部署手段。如何进行增量式部署并实现链路洪泛攻击的防御,是业界研究的课题。

发明内容

[0014] 本发明的目的在于提供一种基于增量部署软件定义网络的链路洪泛防御机制,有效防御链路洪泛攻击。
[0015] 为此,本发明提出的基于增量部署SDN网络的链路洪泛攻击的防御方法包括如下步骤:S1、利用节点升级算法选出需要升级成软件定义网络功能节点的路由器,并将其升级;S2、当网络中发生拥塞的时候,通过部署在网络中的软件定义网络功能节点去定位拥塞链路;S3、收集全网的拥塞链路信息,并在此基础上,来判断当前的网络拥塞是否构成链路洪泛攻击;S4、如果构成链路洪泛攻击,启动全局流量工程去均衡全网流量,否则,通过备份路径方式,缓解拥塞链路。
[0016] 本发明的优点在于,在传统网络中升级少量的节点为软件网络定义功能节点,通过软件定义网络灵活的流控制,全网视角以及集中控制的优势,探测链路洪泛攻击,并定位被攻击的链路组,通过集中控制的流量工程去均衡全网的链路流量,以消除链路洪泛攻击的根源,从而有效防御链路洪泛攻击。

附图说明

[0017] 图1是本发明实施例网络模型拓扑图。
[0018] 图2是本发明实施例拥塞链路定位机制示意图。
[0019] 图3是本发明实施例全局流量工程算法流程图。

具体实施方式

[0020] 本发明实施例提出一种基于增量部署软件定义网络的链路洪泛攻击防御机制,发明人将其命名为啄木鸟(Woodpecker),包括增加部署节点的选取方案,链路洪泛攻击的探测和判定方案,缓解链路洪泛攻击的流量调度方案以及丢包处理的黑名单方案。下面先从链路洪泛攻击防御机制框架、节点升级算法、链路洪泛攻击的定位和判定、集中控制的流量工程、黑名单机制等几个方面对其进行概述。
[0021] 1.链路洪泛攻击防御机制框架
[0022] 1.1网络模型
[0023] 本发明的网络模型是基于增量部署的软件定义网络的模型。网络中的节点从功能上看分为三种类型:
[0024] (1)传统网络节点:这类节点和当前网络中的节点没有任何区别,可以运行现有的网络协议,遵循基本的最短路径算法,对于特定的源和目的节点对,转发路径是确定的。
[0025] (2)软件定义网络功能节点:这类节点是由传统网络节点升级而来,可以接收和解析传统网络节点的数据包,可以将收集到的统计信息转发给控制器。这类节点,数据包的转发,根据的是从控制器中下发的流表规则,支持openflow协议,有着丰富的匹配域,所以对于同一个目的地址,可以根据其他匹配域的不同,转发到不同的路径上。
[0026] (3)控制器节点:控制器节点通过带外连接和软件定义网络功能节点连接,从软件定义网络功能节点中收集全网信息,集中处理网路的路由选择,然后将处理的结果通过流表的形式下发到各个软件定义网络功能节点处。
[0027] 网络中的节点从拓扑的角度看,又可以分成三种类型:
[0028] (1)入口节点:这类节点分布在网络的边缘,是内部网络和外部网络的边界。从本发明针对的链路洪泛攻击角度出发,攻击者从外部控制的僵尸主机发起的流量进入内部网络,必然经过入口节点。所以,在这里可以认为,入口节点是网络中流量的源节点。
[0029] (2)目的节点:目的节点指的是网络中连接可能被僵尸节点通信的公共服务器的节点。
[0030] (3)中间节点:网络中非入口节点和目的节点的普通节点,从流调度的角度看,这类节点流入的流量和流出的流量完全相等。
[0031] 本发明中网络模型中节点的这两种分类方式是相互独立的,例如,入口节点可能是软件定义网络功能节点,也可能是传统网络节点。网络模型可以参见图1,其中圆形表示传统网络节点,方形表示软件定义网络功能节点,控制器没有在图中画出,它通过带外连接的方式可以和所有方形节点通信。实心节点表示入口节点,虚线表示目标节点,其他实线节点表示中间节点,三角形表示可能和僵尸主机通信的目标服务器。为了表达简介,图1中忽略了其他网络的终端节点。
[0032] 1.2防御机制算法总体描述
[0033] 本发明提出的针对链路洪泛攻击的防御机制--啄木鸟(Woodpecker)系统,巧妙的避开了链路洪泛攻击中棘手的流量识别问题,而是从网络系统的全局出发,利用全局流量工程,让流量尽可能均衡分布在各个链路上,从而消除网络链路通信瓶颈,从根本上防御链路洪泛攻击。防御机制算法,具体来说,是先通过网络拓扑,入口目的节点集合,利用节点升级算法选出需要升级成软件定义网络功能节点的路由器,并将其升级。当网络中发生拥塞的时候,通过部署在网络中的软件定义网络功能节点去定位拥塞链路。收集全网的拥塞链路信息,并在此基础上,通过LFA判定算法,来判断当前的网络拥塞是否构成链路洪泛攻击,如果构成链路洪泛攻击,启动全局流量工程去均衡全网流量,否则,通过备份路径方式,缓解拥塞链路。启动全局流量工程后,继续收集全网拥塞链路信息,如果网络拥塞链路的总数没有显著减少(即流量工程后的拥塞链路数目和之前的拥塞链路数目之比大于阈值k),系统将会采取主动丢包的方式,缓解链路洪泛攻击。其中主动丢包的优先级采用的本发明中提出的基于增量部署软件定义网络的黑名单算法。防御机制的形式化描述可以参考算法示例1:
[0034] 算法示例1、本发明中防御机制算法框架:
[0035] Algorithm1链路洪泛攻击防御机制算法框架
[0036]
[0037] 2.节点升级算法
[0038] 2.1问题描述
[0039] 节点升级问题主要是依据网路拓扑,以及入口节点,目标节点的分布,选择适合升级成软件定义网络功能节点的一组节点。形式化描述为:对于给定的无向图G(V,E,S,D),其中V是图中所有节点的集合,E是图中所有边的集合,S是入口节点集合,D是目的节点的集合,从中选出m个节点,可以最大程度的增加网络的连通性。这里网络的连通性可以表现为在入口节点集和出口节点集尽可能的增加的通信路径。
[0040] 2.2算法描述
[0041] 在理想情况下,如果选取的节点数目m足够多的话,节点升级算法可以转换成一个寻找无向图最小覆盖集的算法。但实际部署中,由于资源和信任等约束条件,实际升级的节点数目通常小于最小覆盖集中点的数目,这就需要统计在网络中所有点的集合V中抽取m个节点,最大可以在入口节点集和目的节点集之间增加多少无环路径。这个问题属于典型的整数规划问题,属于NP难问题。本发明中综合考虑网络拓扑中入口集和目的集的分布以及节点的自身的度,设计出一套基于贪心算法的节点升级算法。这个算法的核心是针对入口节点集和目的节点集的每一个节点对,利用Dijkstra算法(迪杰斯特拉算法),算出其在传统网络中的最短路径,然后网络中每一个节点经过的路径数目,作为一个衡量标准。而节点的度,作为节点升级成软件定义网络节点的调度潜力,作为另一个衡量标准。本发明的算法,对这两个标准进行折中,从而选出最优的m个点进行升级。算法的形式化表达可以参考算法示例2。
[0042] 算法示例2、升级节点选择算法:
[0043]
[0044] 3.链路洪泛攻击的定位和判定
[0045] 3.1问题描述
[0046] 前文提到过现在网络协议对于拥塞链路诊断的慢收敛特性使得链路洪泛攻击的拥塞链路很难快速准确的定位。此外,链路拥塞是网络中一类非常常见的现象,而本发明中提出的全局流量工程相对来说,是比较消耗时间和资源的运算,所以,本算法提供一个机制去判断当前网络发生的拥塞是否是攻击者发动的链路洪泛攻击。
[0047] 3.2算法描述
[0048] 这里的算法包括两个子算法,一个是拥塞链路定位算法,一个是攻击类型判定算法(Attack_Type_Judge)。拥塞链路定位算法的原理是,预先在每个软件定义网络功能节点的流表中装入一个触发器规则。当网络中出现拥塞的时候会触发这个规则,给控制器发送一条警报消息。控制器会根据全网信息,定位拥塞发生的两个软件定义网络功能节点的区域。之后,通过控制器和节点配合构造类似于传统网络Traceroute功能的数据包,实现拥塞链路的定位。攻击类型判定算法,是根据之前的定位算法所确定的链路,从全网的角度出发,判定当前的的拥塞,是否构成链路洪泛攻击,从而为下一步的防御措施,提高依据。两个子算法的细节可以参考图2和算法示例3。
[0049] 算法示例3链路洪泛攻击判定算法:
[0050]
[0051] 拥塞判定定位算法利用的是SDN交换机流表中已有的计数功能,可以对已经安装的流表项进行统计。这样预先在交换机中安装触发器规则,当流经该交换机的流量中匹配该规则的流量少于一定阈值,可以判断转发路径的上流交换机发生重度拥塞。利用对SDN的全局视角,可以快速定位相应的软件定义网络功能节点对。接下来,就是利用SDN去模拟Traceroute的功能去准确定位这两个节点对之间的的拥塞链路。具体方法是,控制器下发两条高优先级的规则,一条控制探测包逐跳转发,另一条接收反馈,并将反馈的数据包转发到控制器。控制器根据反馈结果决定是继续探测即重新发送探测包,并将其TTL字段自增1;还根据ICMP的不可达反馈,定位出拥塞链路。由于探测的源和目的软件定义网络功能节点之间的都是普通节点,而控制器又有全局拓扑,所以可以准确的定位出所有的重度拥塞链路。
[0052] 攻击类型判定算法,是根据控制器收集到的全网的拥塞链路集合,来判断网络是否经历着链路洪泛攻击。算法分为两个主要的判定部分,一个是,如果拥塞链路集合构成网络的割边,那么根据链路洪泛攻击切断目标区域的特性,判定网络正在遭受攻击;另一个是,如果前者不成立,对于拥塞链路在网络全网通信的重要性进行打分,如果分数超过一个工程阈值,依然判定网络正在遭受链路洪泛攻击。
[0053] 4.集中控制的流量工程
[0054] 4.1问题描述
[0055] 本发明的核心防御措施,就是基于升级后的软件定义网络节点在全网范围内对流量进行重新分配,使得网络中每个链路的最大利用率最小。前文分析过,链路洪泛攻击的主要原因是现有网络中,链路的在节点通信的出现频率呈现齐普夫分布。本发明中集中控制的流量工程的目的就是利用软件定义网络灵活的匹配域和流控制,让网络中的流量尽可能均衡的分布在所有的链路上,进而消除瓶颈链路。
[0056] 4.2算法描述
[0057] 这个算法属于一个线性规划问题。优化的目标是使得网络中链路的最大链路利用率最小。约束条件是对于每一个链路节点对之间所有的流量都分配所有的可行无环路径上,以及对于每一条链路,它所经历的可控流量和不可控流量之和小于链路的容量和其最大利用率的乘积。
[0058] 5.黑名单机制
[0059] 5.1问题描述
[0060] 本发明中针对链路洪泛攻击的防御机制,核心在于全网范围内的流量工程,从而避开链路洪泛攻击中棘手的攻击流量识别问题。作为之前防御措施的补充,如果攻击流量超过网络流量工程可以均衡的极限,系统将会采用主动丢包的方式,缓解链路洪泛攻击。本发明的黑名单机制,是指当系统主动丢包时,根据前面对于流量的统计结果,提供优先丢包的流顺序。
[0061] 5.2算法描述
[0062] 本算法作为整个防御机制的一个备用手段,只有当全网流量工程无法均衡网络中的流量时候,才会启动。链路洪泛攻击之所以难以区分,就是因为攻击采用大量的低密度的合法流,而且这些流还采用真实的源地址。从这个角度看,攻击者用来攻击的流量的真实源地址是有限,所以应该有很大的概率多次出现在网络的拥塞边中。本发明的黑名单机制,通过前面的链路定位算法准确的找到拥塞边,记录拥塞边中出现的流量的源地址。接下来利用打分机制,对于出现在各个拥塞链路的源地址进行打分,按分数由高到低,制定黑名单。当系统需要丢包时,按照黑名单上的顺序依次丢弃包含这些源地址的数据流。
[0063] 下面对实施例进行进一步说明。
[0064] 本方案的实施主要分为两个部分,一个是节点的升级,另一个部分是基于部分部署(增量部署)的软件定义网络节点的防御机制。其中节点升级的算法是线下的,需要更新当前的交换机为包含软件定义网络功能的交换机。防御机制的主体部分在软件定义网络中的控制器中实现。防御机制的实现由控制器中的拥塞链路探测模块、攻击类型分析模块,流量工程模块以及黑名单模块组成。
[0065] (1)节点升级
[0066] 节点升级是本发明中整个防御措施的基础。具体实施的过程中,主要是需要根据网络的拓扑,入口集节点和出口集节点的分布,根据算法示例2中所示的节点选取方法选出待升级的优化节点。具体来说,首先是根据最短路径原则,确定所有节点对之间在传统网络情况下的路径。接下来,对于拓扑中的每一个节点,统计其经过多少来自于入口集到目的集的节点对的路径。这个值作为衡量节点的第一个指标。另外考虑节点的度,度越大的节点,越容易增加路径。本方面的节点升级方案,考虑的是对这两个方案的折中,先对路径数和度分别做归一化,然后取加权结果,这里的加权值,采用的是工程值,一般情况下都可取值0.5,但是对于不同的的拓扑,根据实际工程效果,会采用一定程度的修正。这样得到对拓扑中每一个节点的打分。取出分数最高的m个节点,作为升级的节点。再实际网络中,不同节点收到升级代价不同,实际情况中,以前面得到的节点的分数排序为基础,考虑实际升级的难度和代价,会对选择的点进行修正。
[0067] (2)拥塞链路的探测模块
[0068] 拥塞链路探测模块是需要软件定义网络功能节点和控制器协调完成的,可以参见图2。每一个软件定义网络功能节点,需要预先安装一条触发器规则,这条规则一般是基于流统计信息的。比如,链路的速率时100MBps,那么触发规则可以将阈值设定为10kbps,这样周期性统计到达流的字节数,可以得到流速率,比较上面的阈值,就可以推断出这个流在该节点的前面发生了拥塞。由于触发了触发器规则,该节点会向控制器发送一个报警信息。报警信息包含该流信息,该节点的位置和邻居信息。控制器根据报警信息和全网拓扑,可以很快的将拥塞链路定位在两个软件定义网络功能节点之间(如S1和S2)。
[0069] 接下来,由控制器和两个软件定义网络功能节点配合完成类似于传统网络中的traceroute探测。具体来说,控制器首先给两个节点下发规则。S1有两条规则,匹配域为IP协议和目的地址,一条是处理控制器发送的ICMP请求报文,动作域设定为转发之连接S2的端口;另一条规则是对应ICMP应答报文,动作域是直接转发给控制器。然后控制器构建ICMP请求报文,TTL初始值为1,发送到S1。S1转发该报文,并会受到该报文的反馈。控制器受到反馈报文,如果是超时报文,重新发送请求报文,并将TTL加1,反之,如果是目的不可达,即可判定拥塞链路为上次返回报文的节点和本次节点之间。控制器统计拥塞链路,以及流经拥塞链路的流。
[0070] (3)攻击类型判定模块
[0071] 攻击类型判定模块,是基于前面的拥塞链路探测模块的。该模块主要作用是,根据拥塞链路探测模块收集到的拥塞链路信息,结合全网拓扑,判定网络系统是否正在遭受链路洪泛攻击。具体来说,利用前面Dijkstra算法得到入口集和目的集节点对之间的路径,对于网络中所有链路进行打分,如果该链路在一条路径上,就给该链路的分数加1。由于链路洪泛攻击最主要的特征是切断一个区域的网络连接,所以,如果这些拥塞边恰好构成网络的一个割的话,可以直接认为网络已经遭受了链路洪泛攻击。否则,则统计拥塞边的分数和,如果该值超过阈值k,则认为网络遭受链路洪泛攻击,否则认为只是网路的正常拥塞。其中k是一个工程值,用来判定网络遭受攻击的下限。
[0072] (4)流量工程模块
[0073] 本发明的流量工程模块是整个链路洪泛攻击防御机制的核心模块。该模块的主要功能对全网范围内的流进行流量调度,使得所有链路的最大利用率最小。这里主要是利用python的pulp模块求解一个线性规划问题。该线性规划的目标函数就是链路的最大利用率,优化目标是使其最小。约束条件有两个,一个是对于入口集和出口集的节点对,入口的流量要完全分布在所有的可行无环路径上。另外,具体到每一条链路,所有流经该链路的流量之和不得超过链路的容量和最大利用率的乘积。这里需要注意的是,流经一个链路上的流量包含入口目的集合之间的可控流量和其他流量。可控流量是指,该流量所经历的路径上至少有一个节点是软件定义网络功能节点,反之,则是非可控流量。其他流量有两个组成部分,一种是入口节点集出发,流入非目的节点集或者是其他节点出发,流入目的节点集合,另一种是非可控流量。由于本发明中专门有一个节点升级选择策略,使得入口集和目的集之间的流基本上都可控,所以,工程上我们忽略非可控流量的测定。而作为其他流量的第一种类型,由于不是入口目的集合节点队之间的流量,我们认为不可能是来自外部的链路洪泛攻击流量,所以基本是符合统计规律的。我们再进行线性规划时,一般用的是这种流量长期的统计值。
[0074] 线性规划的计算结果是得到,节点对在每一条可行的无环路径上的分配比例。流量工程模块,需要将该比例转换成对应的流表规则。这里采用的是从底部规约的方法,先从路径的最后一个软件定义网络功能节点出发,因为这个节点的流量分配比例恰好与路径的分配比例是一致的。在此基础上逐级递归,可以得到每一个软件定义网络功能节点对于每一条流量在不同转发端口的分配比例。然后选取每一条流的匹配空间,本发明中选取的是源地址,因为攻击者需要大量的低密度,真实源地址的合法流,所以可以大致认为其在源地址方面是均匀分布。所以,利用所得到的比例划分源地址空间,即可完成所有软件定义网络功能节点的流规则的生成。
[0075] (5)黑名单模块
[0076] 本发明中的黑名单模块属于链路洪泛攻击防御机制的备用模块。因为该机制其实并没有对于攻击流量进行过滤,因为这类攻击的攻击流量是低密度的合法流量,如果强行区分流量,会造成极大的误判率。所以,防御机制的核心是全局流量工程来均衡流量,以消除攻击的根本存在基础。但是,如果攻击流量超过能够均衡的上界,防御机制将会采用主动丢包的方式来防止网络的崩溃。而丢包的优先级顺序则是由黑名单模块提供。本模块主要是,统计拥塞链路上流量的源地址,由于攻击者用的是真是源地址,那么他有很大程度会复用该源地址,所以出现在拥塞链路上次数越多的源地址,越可能是攻击流量。黑名单模块利用这个机理,采用字典的方式,统计拥塞链路上流量的源地址数目,形成(源地址,频率)对,如果频率超过阈值,则有序插入黑名单。这个阈值是个经验值。系统根据黑名单的排序,优先丢包,以缓解网络可能出现的崩溃。
[0077] 本发明的特点是:
[0078] 1、提出了基于增量部署的软件定义网络去防御链路洪泛攻击的机制啄木鸟(Woodpecker),给出了该防御机制的算法框架。
[0079] 2、提出了防御机制中软件定义网络增量部署的具体实施方案,包含从普通网络节点中选取软件定义网络能能节点的算法。
[0080] 3、提出了防御机制内部模块和算法的详细设计,包括链路洪泛攻击中拥塞链路的测定,攻击类型的判定,全局流量工程以及黑名单机制。
[0081] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效装置或等效方法变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。