一种应用于SDN网络中DDOS攻击的检测及防御方法和装置与流程

文档序号:18471371发布日期:2019-08-20 20:20阅读:206来源:国知局
一种应用于SDN网络中DDOS攻击的检测及防御方法和装置与流程

本发明涉及通信技术领域,具体涉及一种应用于sdn网络中ddos攻击的检测及防御方法和装置。



背景技术:

软件定义网络(sdn)是一种创新型的网络技术架构,其倡导转发与控制分离,控制部分由可编程的软件实现对网络的管理和控制,转发部分作为可编程的流表项,可以实现用户特定的业务需求。然而,新技术和新架构也带来了潜在的安全性威胁,如集中式控制容易导致单点故障,易受到分布式的攻击等。

sdn网络中的分布式拒绝服务(ddos)攻击,会同时影响数据平面和控制平面的正常工作。发起ddos的攻击者,不仅向网络注入大量的攻击流量,而且会针对控制平面发送具有大量不同目的地址的ip报文,从而使得每次收到这些报文的交换机都向控制器发起请求,导致交换机和控制器之间的通讯被这些连接占满,阻断和干扰了正常用户的连接通信。另外,短时间内具有不同目的地址的报文数目如果大大超过流表项的容量,流表项就会被这些流所占满,正常的流转发被延迟和中断,降低了服务质量和客户的满意度。在一个报文缓存采用fifo(先进先出)的sdn交换机中,大量的攻击报文流也会很快耗尽交换机的缓冲区,使得正常流量报文被丢弃。因此,如何在sdn网络中快速检测和防御ddos攻击是一个具有挑战性和迫切性的问题。

现有的解决该问题的方法主要有以下三种:

(1)基于深度学习的ddos攻击检测方法。该方法通过采集网络中的流量、报文数、连接数等特征指标,建立深度学习的模型,对已有的数据进行训练,然后基于训练的结果,对网络进行预测是否发生了ddos攻击。这种方法需要比较大量的计算资源和存储资源,而且对特征数据的选择不同,方法的结果也不同。

(2)基于隐马尔科夫(hmm)模型的ddos攻击检测方法。此方法将网络中的数据流量看成是一串状态链,状态链分为可见的状态链和隐含的状态链,通过隐含的状态,可见的状态由某些概率分布表现出来。用已知的数据训练hmm模型后,可以得到隐含状态的概率转移矩阵和可见状态的转移矩阵。对于一串连续的观测值,可以计算其出现的概率,依据此概率的大小不同,可以判定为正常流量或者ddos攻击流量。此方法需要对模型进行训练,以及为了达到一定精度而必须选择比较多的隐含状态,导致比较大的计算量。

(3)基于主成分分析(pca)的ddos攻击检测。该方法将网络中收集到的信息等表示为一个矩阵,通过主成分方法将此矩阵分解为正常流量的矩阵和稀疏异常流量矩阵,由于正常流量通常具有比较强的相关性,因此对应的矩阵是一个低秩(low-rank)矩阵,剩余的异常流量矩阵是一个稀疏的包含异常值的矩阵。通过稀疏异常值矩阵就可以检测出网络中的ddos攻击流量。由于矩阵的计算和分解以及稀疏矩阵处理比较耗费时间,因此这个方法也需要较多的计算量,而且流量的相关性也会影响检测的准确率。



技术实现要素:

针对现有技术的上述不足,本发明的目的是提供一种应用于sdn网络中ddos攻击的检测及防御方法和装置,采用在线序贯决策算法,实时(online)快速地判定是否发生了ddos攻击并采取相应的防御措施。

为实现上述目的,第一方面,本发明实施例提供了一种应用于sdn网络中ddos攻击的检测及防御方法,所述sdn网络包括控制器和至少一个openflow交换机,该方法包括:

收集流、流表以及openflow交换机每端口的统计信息;

根据收集的所述统计信息提取数据平面和控制平面的流特征;

从提取的流特征中选定检测特征,设定检测比例,根据检测比例选取检测特征排名靠前的相应数量的流,采用在线序贯决策算法选取的每个流进行计算,分别判定数据平面和控制平面是否发生ddos攻击;

若数据平面和控制平面中的至少一个发生ddos攻击,对攻击源进行流量清洗;或者根据检测比例选取攻击源中检测特征排名靠前的相应数量的流进行丢弃,对剩余流进行限速。

优选的,所述在线序贯决策算法如下:

对随机变量x的一系列随机采样记为:x1,x2,…,xn,设x1,x2,…,xn独立同分布并且服从xi∽n(θ,1),则对于检验问题:h0:θ≤θ0和h1:θ≥θ1,其中θ0<θ1;取第一类错误概率(当假设h0为真时,拒绝h0的概率)α和第二类错误概率(当假设h0为假时,接受h0的概率)β相等,相应的停止规则为:

τ*=inf{n:un>c0(n)=an+a0,或者un<c1(n)=bn+b0}(4)

其中:

相应的决策规则为:

优选的,对数据平面,检测特征为流量和/或包速率。

优选的,对控制平面,检测特征为流表项速率和packet_in速率。

优选的,限速借助openflow交换机中的meter表实现。

优选的,还包括对所有日志信息进行保存的步骤。

第二方面,本发明实施例提供了一种应用于sdn网络中ddos攻击的检测及防御装置,所述sdn网络包括控制器和至少一个openflow交换机,包括:

信息收集单元:根据所述控制器的指令收集所需要的流、流表以及openflow交换机每端口的统计信息,发送至流特征提取单元;

流特征提取单元:从接收的统计信息中提取数据平面和控制平面的流特征,发送至攻击检测单元;

攻击检测单元:从所提取的流特征中选定检测特征,设定检测比例,选取检测特征排名靠前且占比为所述检测比例的相应数量的流,采用在线序贯决策算法对选取的每个流进行计算,分别判定数据平面和控制平面是否发生ddos攻击;

防御及缓解单元:用于在所述攻击检测单元判定所述数据平面和控制平面中的至少一个发生ddos攻击时,对攻击源进行流量清洗;或者对攻击源中检测特征排名靠前且占比为所述检测比例的相应数量的流进行丢弃,对剩余流进行限速。

优选的,还包括日志保存单元,用于保存所有日志信息。

优选的,对数据平面,检测特征为流量和/或包速率。

优选的,对控制平面,检测特征为流表项速率和packet_in速率。

优选的,限速借助openflow交换机中的meter表实现。

本发明实施例的有益效果:

(1)网络被攻击时,反映网络状态的随机变量分布会发生变化,具体的被攻击设备的总流量、单个协议的流量等发生显著变化,对交换机和控制器之间控制信息的数量,速率也会发生明显变化。传统的ddos检测方法是预先设定一个固定的阈值来判断攻击的发生,难以兼顾计算量和准确率,本方案采用在线序贯决策算法检测这些变化点,计算量少,计算速度快且精度较高,能很好地适应实际情况的需求。

(2)由于sdn网络的控制和转发分离特性,本方案实施所需参数由部署于sdn网络中的控制器得到,从而实现快速检测。

(3)当检测出发生ddos攻击之后,分别对不同的攻击流进行丢弃、限速和清洗处理,或者根据用户的服务质量要求就行限速和流量丢弃,以满足最低业务需求。

(4)进一步对所有日志信息进行保存,能满足调查取证及对攻击再现的全景绘图需求。

附图说明

图1为本发明具体实施例提供的部分流特征的计算流程示意图。

图2为本发明具体实施例提供的ddos攻击检测流程示意图。

图3为本发明具体实施例提供的对ddos攻击的防御及缓解流程示意图。

图4为本发明具体实施例提供的ddos攻击路径绘制的流程示意图。

图5为本发明具体实施例提供的一种ddos攻击检测及防御装置的架构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

本发明实施例的一种应用于sdn网络中ddos攻击的检测及防御方法,采用在线序贯决策算法,实时(online)快速地判定sdn网络是否发生了ddos攻击,并在判定发生ddos攻击时采取相应的防御措施。

通常sdn网络的流量呈现出一对多和多对一的特性,在统计上,可以用高斯分布来表示。经过实验的观测和验证,发现在ddos攻击发生时,分布的参数会发生显著的变化。参数发生改变的时刻称为变化点(change-point),而对变化点的识别和检测称为变化点检测(change-pointdetection)。对于变化点检测,可以采用在线序贯决策方法进行。

序贯分析的基本方法称为序贯概率比检验(sprt:thesequentialprobabilityratiotest)。设随机变量x是概率空间(ω,f,p)到波雷尔空间(b,br)的映射,其概率密度函数为f(x;θ),θ是概率分布的某个参数;对任意的波雷尔集合b∈br,xi的概率为:

pi(xi∈b)=∫bfi(x)dx=∫bf(x;θ)dx

对x的一系列随机采样记为:x1,x2,…,xn,定义似然函数为:l(θ,n)=f(x1,θ)f(x2,θ)…f(xn,θ)。

对于上述的观测数据,sprt定义了两个规则:

a.停止规则τ:在连续进行了n次观测x1,x2,…,xn以后,是停止观测,还是继续进行第n+1次观测xn+1;

b.决策规则d:根据停止时得到的全部数据,应该做出怎样的推断或者决策。

停止规则和决策规则合在一起,称为序贯分析方法,记为△=(τ,d)。

传统的sprt定义如下:

对于假设h0:θ=θ0;和假设h1:θ=θ1,定义似然比检验量:

或者取对数为:

当λn不太大也不太小时,不忙着做结论,继续进行观察;当λn很大时,接受h1而拒绝h0;反之当λn很小时,接受h0而拒绝h1。

即对于给定的正数0<k0<k1,上述检验简记为s(k0,k1),它的停止规则为:

τ*=inf{n;n≥1,λn<k0或者λn>k1}(1)

相应的决策规则为:

当给定了第一类错误概率(当假设h0为真时,拒绝h0的概率)α和第二类错误概率(当假设h0为假时,接受h0的概率)β的情况下,k0和k1的近似值由以下公式计算得到:

上述的sprt,针对的是两种对立的简单假设的检验,即:θ=θ0或者θ1,然而实际情况并不是这种简单的对立假设。例如ddos发生攻击的时候,对给定的随机变量,需要检验的假设不是等于某个值,而是超过某阈值判断为发生攻击,或者低于某阈值判断为正常,在这两个值之间,则为系统的随机扰动等,需要继续进行观察。

对于随机增的函数族,由于它们具有单调的似然比,可以进行在线序贯检验,以更好地满足实际情况的需要。具体如下:

对于检验问题:h0:θ≤θ0和h1:θ≥θ1,其中θ0<θ1,找出检验法△=(τ,d),使得停时τ的期望e(τ;θ)最小。

对于指数族的分布,设x1,x2,…,xn独立同分布并且服从xi∽n(θ,1),则对于检验问题:h0:θ≤θ0和h1:θ≥θ1,其中θ0<θ1;取第一类错误概率α和第二类错误概率β相等,相应的停止规则为:

τ*=inf{n:un>c0(n)=an+a0,或者un<c1(n)=bn+b0}(4)

其中:

相应的决策规则为:

该方案对简单假设进行优化,能更好地适应实际情况的需求,较快速地检测出sdn网络中的ddos攻击,且精度较高。

具体实施方法包括以下步骤:

s1:收集流、流表以及openflow交换机每端口的统计信息,以供后续的网络流量变化特征分析。

在sdn网络中发生的ddos攻击,主要基于sdn的集中控制和转发分离特性,控制逻辑集中在控制器上,转发只完成特定的匹配-动作指令。当openflow交换机遇到无法匹配从而无法进行决策时,会请求控制器给予处理指令,是转发还是丢弃等。同时流表项中保存了流的统计信息,可以用于决策处理等。

针对每个流表的统计信息包括:流表项的条目(activeentries)、对报文进行查表的次数(packetlookups)、对报文进行查表并匹配的次数(packetmatches)。

针对每条流的统计信息包括:该流的报文数(receivedpackets)、该流的累计字节数(receivedbytes)、该流的持续时间(duration,精确到纳秒ns)。

针对交换机每端口的统计信息包括:收到的报文数(receivedpackets)、发送的报文数(transmittedpackets)、收到的字节数(receivedbytes)、发送的字节数(transmittedbytes)。

s2:根据收集的所述统计信息提取数据平面和控制平面的流特征。

定义数据平面流表项的集合如下:flowset={flow|flow=(srcip,dstip,proto,srcport,dstport,count,size,dpid,timestamp},每项含义如下:srcip:源ip地址;dstip:目的ip地址;proto:协议,tcp、udp或者其它;srcport:源端口号,仅当协议为tcp/udp时有效;dstport:目的端口号,仅当协议为tcp/udp时有效;count:该流的报文数;size:该流的字节数;dpid:交换机id;timestamp:时间戳,采样此流的时间。

定义交换机-控制器之间的控制平面流表项集合:flowdemand={flowdm|flowdm=(srcip,dstip,proto,srcport,dstport,op,dpid,timestamp},其中op:操作请求,如交换机到控制器的请求packet_in。

计算的流特征包括但不限于以下几种:

流量:时间周期t之内数据包流量字节数;

包速率:时间周期t之内数据包数量;

packet_in速率:时间周期之内交换机→控制器的packet_in数目;

流表项速率:时间周期之内控制器→交换机的下发流表项数目。

以流表项速率和packet_in速率为例,其计算流程如图1所示,具体过程如下:

对端口统计的每个流,更新流的总数n,对流i报文数增加1,对总流量增加流i的大小,对总报文数目增加1。此流为packet_in报文的,增加packet_in计数,否则增加流表项计数。根据这些数值,计算出流表项速率和packet_in速率。

s3:从提取的流特征中选定检测特征,设定检测比例,根据检测比例选取检测特征排名靠前的相应数量的流,采用在线序贯决策算法对选取的每个流进行计算,分别判定数据平面和控制平面是否发生ddos攻击。本实施例的检测流程如图2所示,具体的ddos攻击判定过程如下:

获取汇总的流量,并且以一定比例ratio获取流量最大的单流,例如前5%的单流,将相应流放入大根堆(bigheap)中,从bigheap中依次取出每个流f(即根元素),按照其特征进行检测。确定序贯检测的相应参数pf(θ0,θ1,α,β),参数与检测的流及其特征相关,不同的检测特征其数值可能不同。按照序贯检测算法分别计算出该参数下流f对应的c0(f,n),c1(f,n),μ(f,n),根据公式(5),如果数值在区间(b*+b0至a*+a0)之外,则判定发生了ddos攻击,进行攻击防御及缓解。否则继续进行下一个流的判断。ddos攻击判定的相关参数见表1。

表1

检测比例可以为百分比或固定数值。比如,如果取固定数值10,则取流量(或者流表项速率等)按从大到小排列的前10个流;如果取比例5/1000,总共有500条流,则取流量(或者流表项速率等)按从大到小排列的前500*(5/1000)≈3个流。

s301:对数据平面的攻击检测

根据序贯检验算法的特点,对每个时间周期的流量等进行检测,每次检测更新相应的un值和c0(n)值以及c1(n)值,再判定是否发生ddos攻击。检测特征可以为流量和/或包速率,例如可以为tcp/udp的流量,或者单独http的包速率等。

s302:对控制平面的攻击检测

对控制平面的攻击,影响的是交换机和控制器之间的链路,流表项速率和packet_in速率反映了控制路径的状态,可以作为检测特征。

s4:若数据平面和控制平面中的至少一个发生ddos攻击,对攻击源进行流量清洗;或者根据检测比例选取攻击源中检测特征排名靠前的相应数量的流进行丢弃(生成drop表项),对剩余流进行限速,实现ddos攻击的防御及缓解。限速借助openflow交换机中的meter表(openflow1.3以后支持)来进行。对需要进行流量清洗的,则转发流量至清洗设备进行清洗。具体实施例的流程图见图3,由步骤s3可以得到攻击源的集合,对这些攻击源,判断是否需要进行流量清洗,如果部署有专用的流量清洗设备,则选是,下发流表项至交换机,将流量引导到专用的流量清洗设备;如果没有清洗设备,选择否,对流量最大的前ratio比例的流生成drop表项下发到交换机并丢弃这些流,对剩余流生成限速meter表项下发到交换机进行限速(例如限速为100kb以下)。

进一步,还可以对所有日志进行保存,满足调查取证及对攻击再现的全景绘图等需求。保存的信息可以包括:(1)交换机的日志信息;(2)提取的流特征信息;(3)攻击的信息和路径信息;(4)实现按照目标ip地址、源ip地址的攻击路径全景绘图。

如图4所示,为ddos攻击路径绘制的实现过程,具体由步骤s3得到所有攻击源的集合,根据流表项构造出攻击路径。客户输入ip地址,将此ip地址在攻击源中进行查询,如果不存在,输出不存在攻击路径,否则输出此ip地址对应的攻击路径。例如,攻击路径为:r1→r3→r5→目标,其中r1、r3、r5为网络中的路由器或者sdn交换机。

请参见图5,具体实施例的一种应用于上述sdn网络中ddos攻击的检测及防御装置,包括:

信息收集单元:根据所述控制器的指令收集所需要的流、流表以及openflow交换机每端口的统计信息,发送至流特征提取单元;

流特征提取单元:从接收的统计信息中提取数据平面和控制平面的流特征,发送至攻击检测单元;

攻击检测单元:从所提取的流特征中选定检测特征,设定检测比例,选取检测特征排名靠前且占比为所述检测比例的相应数量的流,采用在线序贯决策算法对选取的每个流进行计算,分别判定数据平面和控制平面是否发生ddos攻击;对数据平面,检测特征可以为流量和/或包速率;对控制平面,检测特征可以为流表项速率和packet_in速率。检测所需参数见表1。

防御及缓解单元:用于在攻击检测单元判定所述数据平面和控制平面中的至少一个发生ddos攻击时,对攻击源进行流量清洗;或者对攻击源中检测特征排名靠前且占比为所述检测比例的相应数量的流进行丢弃,对剩余流进行限速;限速可以借助openflow交换机中的meter表(openflow1.3以后支持)实现。

日志保存单元:用于保存所有日志信息,以供历史查询和对攻击再现的全景绘图等。

以上实施例是对本发明的解释,其所描述的各个示例单元以及计算步骤,能够以独立的网络设备硬件和软件实现,也可以集成在现有的网络设备当中,这取决于技术方案的特定环境和应用约束条件。但是本发明并不局限于上述实施方式中的具体细节,本领域的技术人员在本发明的技术构思范围内进行的多种等同替代或简单变型方式,均应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1