CN109617931B - 一种SDN控制器的DDoS攻击防御方法及防御系统 - Google Patents
一种SDN控制器的DDoS攻击防御方法及防御系统 Download PDFInfo
- Publication number
- CN109617931B CN109617931B CN201910124530.XA CN201910124530A CN109617931B CN 109617931 B CN109617931 B CN 109617931B CN 201910124530 A CN201910124530 A CN 201910124530A CN 109617931 B CN109617931 B CN 109617931B
- Authority
- CN
- China
- Prior art keywords
- switch
- packet
- message
- attack
- timeout
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种SDN控制器DDoS攻击的防御方法及防御系统,首先通过两阶段对攻击进行检测,从而判断DDoS攻击是否存在,在攻击发生的时候通过攻击定位的方法筛选出可疑的交换机集合,在攻击发生后,通过缓解攻击将恶意的Packet‑in消息丢弃,并通过设置合适的流表项Timeout值来保护交换机流表空间。本发明解决了在满足OpenFlow策略下,精确地检测可疑的Packet‑in消息的问题,尽快地对SDN控制器进行攻击防御,使得正常的数据包能够获得较好的服务质量,从而恢复网络的正常状态且确保正常的数据包处理。本发明检测速度快、检测精度高、结构简单,具有很强的推广应用价值。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种SDN控制器的DDoS攻击防御方法及防御系统。
背景技术
SDN作为新兴技术,利用SDN能够有效地解决传统网络中存在的一些问题,譬如,解决传统网络中的流量工程、安全等问题,但SDN架构中引入的新特性同时也带来了全新的挑战。在SDN大规模商业应用之前,仍有大量问题亟待解决,其中最重要的就是SDN安全问题,而控制平面作为SDN的核心,一旦控制平面出现安全问题,会对全网造成影响,甚至可能造成全网瘫痪。
在SDN网络中,OpenFlow协议负责建立SDN控制器和交换机之间的安全信道,并进行通信,OpenFlow交换机将流表作为数据转发的依据,当交换机接收到报文后依次查找流表中的流表项,若当前报文能匹配该流表项,则执行相应的转发操作,若未能在交换机流表中匹配到相应的流表项,则按交换机中存在的table-miss的流表项进行处理,对于table-miss流表项交换机通常发送Packet-in消息给控制器进行后续处理。然而,交换机由于报文缓存空间不同对上报到控制器的Packet-in消息有两种不同的处理方式:一种是当交换机中有足够报文缓存空间时,交换机把报文存储在交换机中,仅把报文头部信息打包成Packet-in消息发送给SDN控制器,SDN控制器通过Flow-mod消息下发相应的流表项到交换机中,然后交换机根据下发的流表项对报文进行处理;另一种是当交换机报文缓存空间不足时,交换机把整个报文发送给控制器,而不仅仅只是包含数据报文的头部信息。
DDoS攻击者利用SDN的上述特性对控制器发起攻击,如图3所示,攻击者通过攻击SDN中的一个或多个主机节点来伪造大量table-miss的攻击流,这些伪造的攻击流无法在与之相连的OpenFlow交换机流表中找到匹配的流表项进行转发,从而交换机将触发大量的Packet-in消息到SDN控制器。通常,攻击者将根据OpenFlow规范中定义的匹配字段伪造新的数据包,目前较常见的伪造攻击报文主要基于源\目IP地址、源\目MAC地址、源\目端口号以及协议字段,洪泛的Packet-in消息流请求到达控制器,它们将消耗控制器的资源(即CPU,内存,带宽)以进行流表项规则的计算和建立,如果没有任何保护,控制器的资源可能会被泛洪请求所饱和,合法请求可能会被丢弃,因此SDN最关键的部分是控制器,所以它也是整个SDN网络的单点故障。
DDoS攻击是对SDN网络最具有威胁的攻击之一,攻击者通过发送大量的报文用于耗尽目标主机或者服务器资源,从而导致目标服务器负载过高不能为合法用户提供相应的服务甚至瘫痪,同时,SDN由于其集中控制特性,对SDN控制器的DDoS攻击成为了SDN控制面最主要的安全问题。为了SDN控制器受到DDoS攻击时保证整个网络服务的可用性,已经有些关于SDN控制器DDoS安全的研究,例如,最简单的Packet-in消息速率检测机制,若控制器端的Packet-in消息数目超过一定的阈值则认为存在DDoS攻击,但是这种方法会导致较高的误报率。
发明内容
针对现有技术中的上述不足,本发明提供的一种SDN控制器的DDoS攻击防御方法及防御系统解决了在满足OpenFlow的策略下,如何精准地检测可疑的Packet-in消息,并实时地对SDN控制器进行攻击防御的问题。
为了达到以上目的,本发明采用的技术方案为:本方案提供一种SDN控制器的DDoS攻击防御方法,包括如下步骤:
(S1)通过SDN控制器实时监控SDN网络状态,获取交换机的Packet-in消息到达率以及Packet-in消息的信息熵;
(S2)根据所述交换机的Packet-in消息到达率以及Packet-in消息的信息熵,检测当前网络状态是否存在DDoS攻击,若有,则进入步骤(S3),反之,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并进入步骤(S4),其中,Timeout为交换机流表项超时值,Tmax为Packet-in消息对应的流表项最大Timeout值;
(S3)根据检测结果进行攻击定位,并根据攻击定位结果判断所述Packet-in消息是否来自可疑交换机集合S_switch,若是,则丢弃所述Packet-in消息,结束攻击防御,反之,则给所述Packet-in消息建立动态的流表项Timeout=Tdym,并进入步骤(S4),其中,Timeout为交换机流表项超时值,Tdym为Packet-in消息对应的流表项动态Timeout值;
(S4)将Timeout=Tmax的流表项或Timeout=Tdym的流表项,返回至SDN交换机进行转发,从而实现SDN控制器的DDoS攻击防御。
进一步地,所述步骤(S2)包括如下步骤:
(a1)将SDN控制器端的窗口队列大小W以及散列表C清空;
(a2)将SDN控制器接收的Packet-in消息i加入到窗口队列中,窗口队列大小为W+1,并在其对应的散列表C中更新所述Packet-in消息对应的目的IP地址xi,且消息数目为yi+1,其中,i为SDN控制器接收的Packet-in消息,yi为目的IP地址xi对应的Packet-in消息总数;
(a3)判断所述窗口队列大小是否大于预设的窗口队列阈值大小,若是,则进入步骤(a4),反之,则返回步骤(a2);
(a4)根据所述窗口队列大小以及窗口队列被填满所经历的时间,计算得到Packet-in消息的到达率P_rate;
(a5)判断所述Packet-in消息到达率是否超过预设的速率阈值P_threshold,若是,则当前网络状态可能存在DDoS攻击,进入步骤(a6),反之,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并返回步骤(a1),其中,Timeout为交换机流表项超时值,Tmax为Packet-in消息对应的流表项最大Timeout值;
(a6)根据所述散列表C与每个目的IP地址xi对应的Packet-in消息在窗口队列中出现的概率Pi,计算得到所述窗口队列的信息熵H;
(a7)判断所述窗口队列的信息熵H是否低于预设的信息熵阈值H_threshold,若是,则确定当前网络状态存在DDoS攻击,进入步骤(S2),反之,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并返回步骤(a1),从而实现DDoS攻击的检测。
再进一步地,所述步骤(a4)中Packet-in消息到达率P_rate的表达式如下:
P_rate=W/t
其中,W为窗口队列大小,t为窗口队列被填满所经历的时间。
再进一步地,所述步骤(a6)中窗口的信息熵H的表达式如下:
其中,Pi为每个目的IP地址yi对应的Packet-in消息在窗口队列中出现的概率,n为当前窗口队列中包含的目的IP地址总数,yk为当前窗口队列Packet-in消息的目标IP地址对应发往的分组Packet-in消息的总数。
再进一步地,所述步骤(S3)包括如下步骤:
(b1)根据所述检测结果遍历SDN网络中每个交换机,若遍历完毕,则进行步骤(b6),反之,则进入步骤(b2);
(b2)提取交换机Sj的流表项,并根据所述交换机Sj的流表项计算得到交换机Sj的可疑流表项数Nsuspicious,其中,j为交换机的序号;
(b3)根据所述交换机Sj的可疑流表项数Nsuspicious,计算得到交换机Sj的可疑攻击程度Rattack;
(b4)判断所述交换机Sj的可疑攻击程度Rattack是否大于预设的攻击程度阈值,若是,则所述交换机Sj存在DDoS攻击,进入步骤(b5),反之,则给所述Packet-in消息建立动态的流表项Timeout=Tdym,并返回步骤(b1),其中,Timeout为交换机流表项超时值,Tdym为Packet-in消息对应的流表项动态Timeout值;
(b5)将所述交换机Sj添加至可疑交换机集合S_switch中,并返回步骤(b1);
(b6)返回当前可疑交换机的集合S_switch,并丢弃所述Packet-in消息,从而实现攻击定位,并根据攻击定位结果判断所述Packet-in消息是否来自可疑交换机集合S_switch。
再进一步地,所述步骤(b3)中交换机Sj的可疑攻击程度Rattack的表达式如下:
Rattack=Nsuspicious/N
其中,Nsuspicious为交换机Sj的可疑流表项数,N为交换机中流表项的数量,Ai为交换机中第i条流表项可疑度,Mi为该流表项匹配报文数,i为交换机的流表项序号。
再进一步地,所述步骤(S4)中将Timeout=Tmax的流表项返回至SDN交换机进行转发,其具体为:根据所述交换机的Packet-in消息到达率以及Packet-in消息的信息熵确定当前网络为正常时,SDN控制器建立动态超时Tmax的新流规则回复所述Packet-in消息,且SDN交换机根据所述规则处理数据包,其中,Tmax为Packet-in消息的最大值流表项。
再进一步地,所述步骤(S4)中将Timeout=Tdym的流表项返回至SDN交换机进行转发,包括如下步骤:
(c1)判断所述动态Timeout值Tdym是否大于预设的SDN网络最大Timeout阈值,若是,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并进入步骤(c2),反之,则给所述Packet-in消息建立动态的流表项Timeout=Tdym,并进入步骤(c2),其中,Tmax为Packet-in消息对应的流表项最大Timeout值;
(c2)根据SDN控制器建立的超时值为Timeout的新流规则回复所述Packet-in消息,且SDN交换机根据所述规则处理数据包,从而实现将Timeout=Tdym的流表项返回至SDN交换机进行转发。
再进一步地,所述动态Timeout值Tdym的表达式如下:
Tdym=min{(Tmin+δ),Tmax}
其中,Tmin为Packet-in消息对应的流表项的最小Timeout值,δ为Timeout值增长的梯度,Tmax为Packet-in消息对应的流表项最大Timeout值。
本发明基于上述方法,还提供了一种SDN控制器的DDoS攻击防御系统,包括攻击检测模块、与所述攻击检测模块连接的攻击定位模块以及分别与所述攻击检测模块和所述攻击定位模块连接的攻击缓解模块,其中,
所述攻击检测模块,用于实时监控SDN网络状态,并接收来自交换机的Packet-in消息到达率,以及根据Packet-in消息的信息熵对攻击进行检测;
所述攻击定位模块,用于根据攻击检测结果确定可疑Packet-in消息的源交换机;
所述攻击缓解模块,用于DDoS攻击发生后给不同的Packet-in消息的流表项分配不同的Timeout值。
本发明的有益效果:
(1)本发明通过基于两阶段对攻击进行检测,从而判断DDoS攻击是否存在,在攻击发生的时候通过攻击定位的方法筛选出可疑的交换机集合,在攻击发生后,通过缓解攻击将恶意的Packet-in消息丢弃,并通过合适的Timeout值来保护交换机流表项空间,本发明有效地解决了在满足OpenFlow策略下,如何精确地检测可疑的Packet-in消息,并尽快地对SDN控制器进行攻击防御的问题,使得正常的数据包能够获得较好的服务质量,从而恢复网络的正常状态且确保正常数据包的处理;
(2)本发明通过提出两阶段的攻击检测方法,其先利用Packet-in消息到达率来粗略的判断当前网络状态,再通过信息熵对当前网络的精确检测,同时,在通过设置控制器端窗口队列的大小,有效地使当前网络能够及早发现攻击的存在,并发出攻击警报,提高了攻击检测的精度,同时也确保当前网络的状态的可靠性;
(3)本发明通过设置攻击定位,能有效地检测到SDN控制器目标DDoS攻击的受害交换机,进一步提高了攻击检测精度;
(4)本发明通过设置攻击缓解,能在DDoS攻击发生后通过给不同的Packet-in消息的流表项分配不同的Timeout值,不仅有效地缓解了DDoS攻击对交换机缓存空间以及控制器处理资源的消耗,还进一步确保了正常的数据分组能够被处理,而不会因SDN控制器资源耗尽而被丢弃;
(5)本发明通过设置流表项的Timeout值,有效地解决了SDN网络在DDoS攻击下的资源拥塞问题,满足了正常数据处理转发的情况,同时使得恶意的流表项规则尽快在交换机的流表中被删除,有效地减少交换机存储资源的消耗,降低了防御成本且提高了维持的可用性。
附图说明
图1为本发明的方法流程图。
图2为本发明的系统结构示意图。
图3为背景技术中攻击的结构示意图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
实施例
如图1所示,一种SDN控制器的DDoS攻击防御方法,其实现步骤如下:
(S1)通过SDN控制器实时监控SDN网络状态,获取交换机的Packet-in消息到达率以及Packet-in消息的信息熵;
(S2)根据所述交换机的Packet-in消息到达率以及Packet-in消息的信息熵,检测当前网络状态是否存在DDoS攻击,若有,则进入步骤(S3),反之,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并进入步骤(S4),其中,Timeout为交换机流表项超时值,其包括如下步骤:
(a1)将SDN控制器端的窗口队列大小W以及散列表C清空;
(a2)将SDN控制器接收的Packet-in消息i加入到窗口队列中,窗口队列大小为W+1,并在其对应的散列表C中更新所述Packet-in消息对应的目的IP地址xi,且消息数目为yi+1,其中,i为SDN控制器接收的Packet-in消息,yi为目的IP地址xi对应的Packet-in消息总数;
(a3)判断所述窗口队列大小是否大于预设的窗口队列阈值大小,若是,则进入步骤(a4),反之,则返回步骤(a2);
(a4)根据所述窗口队列大小以及窗口队列被填满所经历的时间,计算得到Packet-in消息的到达率P_rate,其表达式如下:
P_rate=W/t
其中,W为窗口队列大小,t为窗口队列被填满所经历的时间;
(a5)判断所述Packet-in消息到达率是否超过预设的速率阈值P_threshold,若是,则当前网络状态可能存在DDoS攻击,进入步骤(a6),反之,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并返回步骤(a1),其中,Timeout为交换机流表项超时值,Tmax为Packet-in消息对应的流表项最大Timeout值;
(a6)根据所述散列表C与每个目的IP地址xi对应的Packet-in消息在窗口队列中出现的的概率Pi,计算得到所述窗口队列的信息熵H,其表达式如下:
其中,Pi为每个目的IP地址yi对应的Packet-in消息在窗口队列中出现的概率,n为当前窗口队列中包含的目的IP地址总数,yk为当前窗口队列Packet-in消息的目标IP地址对应发往的分组Packet-in消息的总数;
(a7)判断所述窗口队列的信息熵H是否低于预设的信息熵阈值H_threshold,若是,则确定当前网络状态存在DDoS攻击,进入步骤(S2),反之,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并返回步骤(a1),从而实现DDoS攻击的检测;
(S3)根据检测结果进行攻击定位,并根据攻击定位结果判断所述Packet-in消息是否来自可疑交换机集合S_switch,若是,则丢弃所述Packet-in消息,结束攻击防御,反之,则给所述Packet-in消息建立动态的流表项Timeout=Tdym,并进入步骤(S4),其包括如下步骤:
(b1)根据所述检测结果遍历SDN网络中每个交换机,若遍历完毕,则进行步骤(b6),反之,则进入步骤(b2);
(b2)提取交换机Sj的流表项,并根据所述交换机Sj的流表项计算得到交换机Sj的可疑流表项数Nsuspicious,其中,j为交换机的序号;
(b3)根据所述交换机Sj的可疑流表项数Nsuspicious,计算得到交换机Sj的可疑攻击程度Rattack,其表达式如下:
Rattack=Nsuspicious/N
其中,Nsuspicious为交换机Sj的可疑流表项数,N为交换机中流表项的数量,Ai为交换机中第i条流表项可疑度,Mi为该流表项匹配报文数,i为交换机的流表项序号;
(b4)判断所述交换机Sj的可疑攻击程度Rattack是否大于预设的攻击程度阈值,若是,则所述交换机Sj存在DDoS攻击,进入步骤(b5),反之,则给所述Packet-in消息建立动态的流表项Timeout=Tdym,并返回步骤(b1),其中,Timeout为交换机流表项超时值,Tdym为Packet-in消息对应的流表项动态Timeout值;
(b5)将所述交换机Sj添加至可疑交换机集合S_switch中,并返回步骤(b1);
(b6)返回当前可疑交换机的集合S_switch,并丢弃所述Packet-in消息,从而实现攻击定位,并根据攻击定位结果判断所述Packet-in消息是否来自可疑交换机集合S_switch;
(S4)将Timeout=Tmax的流表项或Timeout=Tdym的流表项,返回至SDN交换机进行转发,从而实现SDN控制器的DDoS攻击防御,其中,
将Timeout=Tmax的流表项返回至SDN交换机进行转发,其具体为:根据所述交换机的Packet-in消息到达率以及Packet-in消息的信息熵确定当前网络为正常时,SDN控制器建立动态超时Tmax的新流规则回复所述Packet-in消息,且SDN交换机根据所述规则处理数据包;
(c1)判断所述动态Timeout值Tdym是否大于预设的SDN网络最大Timeout阈值,若是,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并进入步骤(c2),反之,则给所述Packet-in消息建立动态的流表项Timeout=Tdym,并进入步骤(c2);
动态Timeout值Tdym的表达式如下:
Tdym=min{(Tmin+δ),Tmax}
其中,Tmin为Packet-in消息对应的流表项的最小Timeout值,δ为Timeout值增长的梯度,Tmax为Packet-in消息对应的流表项最大Timeout值;
(c2)根据SDN控制器建立的超时值为Timeout的新流规则回复所述Packet-in消息,且SDN交换机根据所述规则处理数据包,从而实现将Timeout=Tdym的流表项返回至SDN交换机进行转发。
如图2所示,本发明基于上述方法还提供了一种SDN控制器的DDoS攻击防御系统,包括攻击检测模块、与所述攻击检测模块连接的攻击定位模块以及分别与所述攻击检测模块和所述攻击定位模块连接的攻击缓解模块,其中,
所述攻击检测模块,用于实时监控SDN网络状态,并接收来自交换机的Packet-in消息到达率,以及根据Packet-in消息的信息熵对攻击进行检测;
所述攻击定位模块,用于根据攻击检测结果确定可疑Packet-in消息的源交换机;
所述攻击缓解模块,用于DDoS攻击发生后给不同的Packet-in消息的流表项分配不同的Timeout值。
本实施例中,基于Packet-in消息到达率的第一阶段检测:对SDN控制器的DDoS攻击的最重要特征是Packet-in消息输入速率将急剧增加并持续一段时间,但是,当攻击结束时,此速率将迅速下降并返回正常值。根据该特征,第一阶段检测基于控制器上的Packet-in消息输入到达率来确定是否存在DDoS攻击,控制器持续监视Packet-in消息的到达率P_rate,考虑到攻击者通过多个主机节点对控制器发起DDoS攻击的情形,单个攻击主机或单个交换机的速率Packet-in消息可能被削弱,单个交换机中的Packet-in消息统计数据无法有效地感知攻击的存在,因此,在本实施例中使用SDN控制器中的整体Packet-in速率来实现攻击检测的第一阶段。
本实施例中,在SDN控制器端维持一个窗口队列大小为W的Packet-in消息队列(窗口大小W设置为50),当窗口队列窗口队列被填满所经历的时间t被填满后,启动一次Packet-in消息到达率P_rate的计算,然后,如果Packet-in消息到达率P_rate大于阈值速率P_threshold,则这意味着在SDN控制器上可能存在DDoS攻击,需要控制器进行第二阶段的细检测,反之,则SDN控制器状态正常,不存在DDoS攻击。
本实施例中,基于消息熵的第二阶段检测:为了触发SDN控制器的DDoS攻击,攻击者需要注入大量伪造的流,与没有攻击时候相比,交换机端口中传入数据分组的随机性将在短时间内呈现上升趋势,然而,随机性的一个很好的衡量标准是Packet-in消息的信息熵,因此,本实施例中引入Packet-in消息的信息熵作为第二阶段攻击检测的基础。
本实施例中,采用监视传入SDN控制器Packet-in消息的目标IP地址作为信息熵计算的输入数据,对于每个窗口W,创建一个两列的散列表C,C中的第一列包含当前窗口队列Packet-in消息的所有的目标IP地址xk,第二列对应发往该目标IP地址的分组Packet-in消息的数量yk,其表达式如下:
C={(x1,y1),(x2,y2)...(xk,yk)}
然后,计算每个目的IP地址yi对应的Packet-in消息的概率Pi,其表达式如下:
然后,计算整体的信息熵值H:
根据信息熵的定义,当每个目的IP地址仅出现一次时,Packet-in消息的信息熵将达到最大值,如果攻击是针对SDN某台主机的,则会将大量数据包发送给它,这些数据包将填充窗口的大部分,并减少窗口中目的IP的数量,从而减少信息熵。本实施例基于这个事实设定了一个信息熵阈值H_threshold,如果Packet-in消息的整体熵H低于该阈值,则SDN控制器存在DDoS,攻击检测模块发出攻击警报给后续的攻击定位以及攻击防御模块,因此,本实施例通过基于Packet-in消息的信息熵的第二阶段检测提高了攻击检测地精准度。
本实施例中,基于交换机流表信息的攻击定位方法,当检测到控制器可能存在DDoS攻击时,攻击定位模块将生效,用于定位潜在的受害交换机。一般情况下,SDN网络中超过90%的正常流包含至少5个数据包,而DDoS攻击流为了节约攻击开销,主要发送大量的数据包小于5的小流。因此,本实施例通过交换机中每条流表规则对应的数据包数目来区分可疑的受害交换机。
本实施例中,通过提取每个边缘交换机的流量统计数据Rule,M_packets={(R1,M1),(R2,M2)...(Rn,Mn)},其中,Rule代表交换机流表中的某一条流表项,M_packets代表该流表项匹配报文数,通过如下公式计算边缘交换机的可疑攻击程度Rattack:
Rattack=Nsuspicious/N
其中,N是交换机中流量项的总数,Nsuspicious是可疑流量项的总数,其表达式如下:
当交换机中可疑攻击程度Rattack攻击超过预设的阈值R_threshold80%时,可以认为该交换机受到DDoS攻击者的攻击,则将此交换机将添加到可疑交换机集合S_switch中。
本实施例中,基于动态流表项Timeout值的攻击缓解方法:对于物理交换机,其硬件资源很少,特别是交换机的TCAM存储空间只能支持少量的流表项,例如,Pronto-Pica83290交换机只能容纳2000条流表项,当交换机的存储资源耗尽时,完整的数据分组将转发到SDN控制器,而不仅仅是提取数据分组头部信息的Packet-in消息。另外,由于交换机内存不足,控制器生成的新的流表项规则不能存储在交换机中,新到的数据分组消息无法匹配到流表项,这进一步加剧了控制器处理资源的消耗,为了有效利用交换机流表项存储资源,在控制器产生新的流表项时,会引入超时机制,即:给每条流表规则配置一个特定的Timeout值,表示交换机删除此流表项规则之前的最大空闲时间,因此,本实施例使用流表项的Timeout值来设置SDN控制器DDoS缓解方法。
本实施例中,当新的Packet-in消息到达SDN控制器时,攻击缓解模块首先通过攻击检测模块判断SDN中是否存在DDoS攻击,如果网络处于正常状态,则控制器将最大Timeout值Tmax分配给此Packet-in消息的流表项,以便正常流的流表项不会因超时频繁触发Packet-in消息,另一方面,如果SDN控制器处于DDoS攻击下,并且此Packet-in消息来自于可疑的交换机集合S_switch,则SDN控制器将丢弃此Packet-in消息以避免控制器过载,此外,对于DDoS攻击状态下,不属于可疑交换机的Packet-in消息,控制器将配置动态Timeout值Tdym给此Packet-in消息对应的流表项。
本发明可以部署在支持OpenFlow协议的SDN网络环境中,以实现对SDN控制器DDoS的防御,缓解由DDoS攻击造成的SDN控制器的资源消耗以及对交换机的存储空间占用。对于单点控制器而言,其处理能力有限,当DDoS攻击产生时,控制器资源被耗尽将无法处理正常的网络服务,甚至导致整个SDN网络瘫痪,因此,随着SDN技术的发展和推广,值得考虑此类攻击的影响,并采用相应的防御措施,本发明可在通用的SDN控制器上运行,然后通过SDN控制器全局监控、流量调度等机制获取SDN网络中所有交换机的流表状态,以及对Packet-in消息进行解析,并且SDN控制器可以根据自身网络的需求对相关参数进行配置,以及当网络状态变化时,可以直接进行控制器相关功能编程,同时,本发明不局限于任何SDN控制器的运行平台以及编程语言。
本发明通过以上设计解决了在满足OpenFlow策略下,如何精确的检测可疑的Packet-in消息,并尽快的对SDN控制器进行攻击防御的问题,使得正常的数据包能够获得较好的服务质量,从而恢复网络的正常状态且确保正常的数据包处理。本发明检测速度快、检测精度高、结构简单,具有很强的推广应用价值。
Claims (8)
1.一种SDN控制器的DDoS攻击防御方法,其特征在于,包括如下步骤:
(S1)通过SDN控制器实时监控SDN网络状态,获取交换机的Packet-in消息到达率以及Packet-in消息的信息熵;
(S2)根据所述交换机的Packet-in消息到达率以及Packet-in消息的信息熵,检测当前网络状态是否存在DDoS攻击,若有,则进入步骤(S3),反之,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并进入步骤(S4),其中,Timeout为交换机流表项超时值,Tmax为Packet-in消息对应的流表项最大Timeout值;
所述步骤(S2)包括如下步骤:
(a1)将SDN控制器的窗口队列大小W以及散列表C清空;
(a2)将SDN控制器接收的Packet-in消息i加入到窗口队列中,窗口队列大小变为W+1,并在其对应的散列表C中更新所述Packet-in消息对应的目的IP地址xi,更新消息数目为yi+1,其中,i为SDN控制器接收的Packet-in消息,yi为目的IP地址xi对应的Packet-in消息总数;
(a3)判断所述窗口队列大小是否大于预设的窗口队列大小阈值,若是,则进入步骤(a4),反之,则返回步骤(a2);
(a4)根据所述窗口队列大小以及窗口队列被填满所经历的时间,计算得到Packet-in消息的到达率P_rate;
(a5)判断所述Packet-in消息到达率是否超过预设的速率阈值P_threshold,若是,则当前网络状态可能存在DDoS攻击,进入步骤(a6),反之,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并返回步骤(a1);
(a6)根据所述散列表C与每个目的IP地址xi对应的Packet-in消息在窗口队列中出现的概率Pi,计算得到所述窗口队列的信息熵H;
(a7)判断所述窗口队列的信息熵H是否低于预设的信息熵阈值H_threshold,若是,则确定当前网络状态存在DDoS攻击,进入步骤(S3),反之,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax, 并返回步骤(a1),从而实现DDoS攻击的检测;
(S3)根据检测结果进行攻击定位,并根据攻击定位结果判断所述Packet-in消息是否来自可疑交换机集合S_switch,若是,则丢弃所述Packet-in消息, 结束攻击防御,反之,则给所述Packet-in消息建立动态的流表项Timeout=Tdym,并进入步骤(S4),其中,Timeout为交换机流表项超时值,Tdym为Packet-in消息对应的流表项动态Timeout值;
所述步骤(S3)包括如下步骤:
(b1)根据所述检测结果遍历SDN网络中每个交换机,若遍历完毕,则进入步骤(b6),反之,则进入步骤(b2);
(b2)提取交换机Sj的流表项,并根据所述交换机Sj的流表项计算得到交换机Sj的可疑流表项数Nsuspicious,其中,j为交换机的序号;
(b3)根据所述交换机Sj的可疑流表项数Nsuspicious,计算得到交换机Sj的可疑攻击程度Rattack;
(b4)判断所述交换机Sj的可疑攻击程度Rattack是否大于预设的攻击程度阈值,若是,则所述交换机Sj存在DDoS攻击,进入步骤(b5),反之,则给所述Packet-in消息建立动态的流表项Timeout=Tdym,并返回步骤(b1);
(b5)将所述交换机Sj添加至可疑交换机集合S_switch中,并返回步骤(b1);
(b6)返回当前可疑交换机的集合S_switch,并丢弃所述Packet-in消息,从而实现攻击定位,并根据攻击定位结果判断所述Packet-in消息是否来自可疑交换机集合S_switch;
(S4)将Timeout=Tmax的流表项或Timeout=Tdym的流表项返回至交换机进行转发,从而实现SDN控制器的DDoS攻击防御。
2.根据权利要求1所述的SDN控制器的DDoS攻击防御方法,其特征在于,所述步骤(a4)中Packet-in消息到达率P_rate的表达式如下:
P_rate=W/t
其中,W为窗口队列大小,t为窗口队列被填满所经历的时间。
5.根据权利要求1所述的SDN控制器的DDoS攻击防御方法,其特征在于,所述步骤(S4)中将Timeout=Tmax的流表项返回至SDN交换机进行转发,其具体为:根据所述交换机的Packet-in消息到达率以及Packet-in消息的信息熵确定当前网络为正常时,SDN控制器建立Timeout=Tmax的新流规则回复所述Packet-in消息,且SDN交换机根据所述规则处理数据包。
6.根据权利要求1所述的SDN控制器的DDoS攻击防御方法,其特征在于,所述步骤(S4)中将Timeout=Tdym的流表项返回至SDN交换机进行转发,包括如下步骤:
(c1)判断所述动态Timeout值Tdym是否大于预设的SDN网络最大Timeout阈值,若是,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并进入步骤(c2),反之,则给所述Packet-in消息建立动态的流表项Timeout=Tdym,并进入步骤(c2);
(c2)根据SDN控制器建立的超时值为Timeout的新流规则回复所述Packet-in消息,且SDN交换机根据所述规则处理数据包,从而实现将Timeout=Tdym的流表项返回至SDN交换机进行转发。
7.根据权利要求6所述的SDN控制器的DDoS攻击防御方法,其特征在于,所述动态Timeout值Tdym的表达式如下:
Tdym=min{(Tmin+δ), Tmax}
其中,Tmin为Packet-in消息对应的流表项的最小Timeout值,δ为Timeout值增长的梯度。
8.一种SDN控制器的DDoS攻击防御系统,其特征在于,包括攻击检测模块、与所述攻击检测模块连接的攻击定位模块以及分别与所述攻击检测模块和所述攻击定位模块连接的攻击缓解模块,其中,
所述攻击检测模块,用于实时监控SDN网络状态,接收来自交换机的Packet-in消息,并计算所述Packet-in消息的到达率,以及根据Packet-in消息的信息熵对攻击进行检测,其具体为:
(e1)将SDN控制器的窗口队列大小W以及散列表C清空;
(e2)将SDN控制器接收的Packet-in消息i加入到窗口队列中,窗口队列大小变为W+1,并在其对应的散列表C中更新所述Packet-in消息对应的目的IP地址xi,更新消息数目为yi+1,其中,i为SDN控制器接收的Packet-in消息,yi为目的IP地址xi对应的Packet-in消息总数;
(e3)判断所述窗口队列大小是否大于预设的窗口队列大小阈值,若是,则进入步骤(e4),反之,则返回步骤(e2);
(e4)根据所述窗口队列大小以及窗口队列被填满所经历的时间,计算得到Packet-in消息的到达率P_rate;
(e5)判断所述Packet-in消息到达率是否超过预设的速率阈值P_threshold,若是,则当前网络状态可能存在DDoS攻击,进入步骤(e6),反之,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并返回步骤(e1),其中,Timeout为交换机流表项超时值,Tmax为Packet-in消息对应的流表项最大Timeout值;
(e6)根据所述散列表C与每个目的IP地址xi对应的Packet-in消息在窗口队列中出现的概率Pi,计算得到所述窗口队列的信息熵H;
(e7)判断所述窗口队列的信息熵H是否低于预设的信息熵阈值H_threshold,若是,则确定当前网络状态存在DDoS攻击,进入步骤(f1),反之,则给所述Packet-in消息建立最大值的流表项Timeout=Tmax,并返回步骤(e1),从而实现对DDoS攻击的检测;
所述攻击定位模块,用于根据攻击检测结果确定可疑Packet-in消息的源交换机,其具体为:
(f1)根据攻击检测结果遍历SDN网络中每个交换机,若遍历完毕,则进入步骤(f6),反之,则进入步骤(f2);
(f2)提取交换机Sj的流表项,并根据所述交换机Sj的流表项计算得到交换机Sj的可疑流表项数Nsuspicious,其中,j为交换机的序号;
(f3)根据所述交换机Sj的可疑流表项数Nsuspicious,计算得到交换机Sj的可疑攻击程度Rattack;
(f4)判断所述交换机Sj的可疑攻击程度Rattack是否大于预设的攻击程度阈值,若是,则所述交换机Sj存在DDoS攻击,进入步骤(f5),反之,则给所述Packet-in消息建立动态的流表项Timeout=Tdym,并返回步骤(f1);
(f5)将所述交换机Sj添加至可疑交换机集合S_switch中,并返回步骤(f1);
(f6)返回当前可疑交换机的集合S_switch,并丢弃所述Packet-in消息,从而实现攻击定位,并根据攻击定位结果判断所述Packet-in消息是否来自可疑交换机集合S_switch;
所述攻击缓解模块,用于在DDoS攻击发生后给不同的Packet-in消息的流表项分配不同的Timeout值,其具体为:
将Timeout=Tmax的流表项或Timeout=Tdym的流表项返回至交换机进行转发,从而实现SDN控制器的DDoS攻击防御。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910124530.XA CN109617931B (zh) | 2019-02-20 | 2019-02-20 | 一种SDN控制器的DDoS攻击防御方法及防御系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910124530.XA CN109617931B (zh) | 2019-02-20 | 2019-02-20 | 一种SDN控制器的DDoS攻击防御方法及防御系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109617931A CN109617931A (zh) | 2019-04-12 |
CN109617931B true CN109617931B (zh) | 2020-11-06 |
Family
ID=66022102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910124530.XA Active CN109617931B (zh) | 2019-02-20 | 2019-02-20 | 一种SDN控制器的DDoS攻击防御方法及防御系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109617931B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110401675B (zh) * | 2019-08-20 | 2020-07-03 | 绍兴文理学院 | 一种传感云环境下不确定性DDoS攻击防御方法 |
CN110798442B (zh) * | 2019-09-10 | 2023-01-20 | 广州西麦科技股份有限公司 | 数据注入攻击检测方法及相关装置 |
CN111163062B (zh) * | 2019-12-12 | 2022-02-22 | 之江实验室 | 一种针对交火攻击的多网络地址跳变安全防御方法 |
CN111556054B (zh) * | 2020-04-28 | 2021-04-06 | 南京大学 | 针对sdn的虫洞攻击的检测方法 |
CN111800383A (zh) * | 2020-06-02 | 2020-10-20 | 深圳供电局有限公司 | 一种基于SDN的DDos流量检测方法及装置 |
CN112134894A (zh) * | 2020-09-25 | 2020-12-25 | 昆明理工大学 | 一种DDoS攻击的移动目标防御方法 |
CN112702309A (zh) * | 2020-11-24 | 2021-04-23 | 福建师范大学 | 一种SDN环境中的DDoS攻击溯源方法及终端 |
CN112804198B (zh) * | 2020-12-29 | 2022-11-04 | 贵州大学 | 基于网络状态的抗DDoS控制器消息调度方法 |
CN113242215B (zh) * | 2021-04-21 | 2022-05-24 | 华南理工大学 | 一种针对sdn指纹攻击的防御方法、系统、装置及介质 |
CN115225503B (zh) * | 2022-05-16 | 2023-07-04 | 北京邮电大学 | OpenFlow流表项动态超时分配方法及相关设备 |
CN115412368B (zh) * | 2022-10-31 | 2022-12-27 | 中国人民解放军军事科学院系统工程研究院 | 一种抵抗DDoS攻击的SDN协同控制方法与系统 |
CN116781338B (zh) * | 2023-06-12 | 2024-07-02 | 国网河北省电力有限公司信息通信分公司 | DDos攻击识别方法、装置、电子设备及存储介质 |
CN118138375B (zh) * | 2024-05-06 | 2024-07-23 | 国网浙江省电力有限公司信息通信分公司 | 一种用于检测网络入侵的网络遥测方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580222A (zh) * | 2015-01-12 | 2015-04-29 | 山东大学 | 基于信息熵的DDoS攻击分布式检测与响应系统及方法 |
CN105897750A (zh) * | 2016-06-03 | 2016-08-24 | 中国电子科技集团公司第三十研究所 | 一种针对SDN控制器Dos攻击的防御方法和系统 |
CN106657107A (zh) * | 2016-12-30 | 2017-05-10 | 南京邮电大学 | 一种SDN中基于信任值的自适应启动的ddos防御方法和系统 |
CN107800711A (zh) * | 2017-06-16 | 2018-03-13 | 南京航空航天大学 | 一种OpenFlow控制器抵御DDoS攻击的方法 |
CN107959690A (zh) * | 2018-01-16 | 2018-04-24 | 中国人民解放军国防科技大学 | 基于软件定义网络的DDoS攻击跨层协同防御方法 |
CN108028828A (zh) * | 2015-08-29 | 2018-05-11 | 华为技术有限公司 | 一种分布式拒绝服务DDoS攻击检测方法及相关设备 |
CN109005157A (zh) * | 2018-07-09 | 2018-12-14 | 华中科技大学 | 一种软件定义网络中DDoS攻击检测与防御方法与系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667853B (zh) * | 2013-11-22 | 2021-06-01 | 华为技术有限公司 | 恶意攻击的检测方法和装置 |
KR101900154B1 (ko) * | 2016-10-17 | 2018-11-08 | 숭실대학교산학협력단 | DDoS 공격이 탐지가 가능한 소프트웨어 정의 네트워크 및 이에 포함되는 스위치 |
CN108833293B (zh) * | 2018-06-20 | 2021-01-26 | 北京邮电大学 | 一种基于软件定义网络sdn的数据中心拥塞控制方法及装置 |
-
2019
- 2019-02-20 CN CN201910124530.XA patent/CN109617931B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580222A (zh) * | 2015-01-12 | 2015-04-29 | 山东大学 | 基于信息熵的DDoS攻击分布式检测与响应系统及方法 |
CN108028828A (zh) * | 2015-08-29 | 2018-05-11 | 华为技术有限公司 | 一种分布式拒绝服务DDoS攻击检测方法及相关设备 |
CN105897750A (zh) * | 2016-06-03 | 2016-08-24 | 中国电子科技集团公司第三十研究所 | 一种针对SDN控制器Dos攻击的防御方法和系统 |
CN106657107A (zh) * | 2016-12-30 | 2017-05-10 | 南京邮电大学 | 一种SDN中基于信任值的自适应启动的ddos防御方法和系统 |
CN107800711A (zh) * | 2017-06-16 | 2018-03-13 | 南京航空航天大学 | 一种OpenFlow控制器抵御DDoS攻击的方法 |
CN107959690A (zh) * | 2018-01-16 | 2018-04-24 | 中国人民解放军国防科技大学 | 基于软件定义网络的DDoS攻击跨层协同防御方法 |
CN109005157A (zh) * | 2018-07-09 | 2018-12-14 | 华中科技大学 | 一种软件定义网络中DDoS攻击检测与防御方法与系统 |
Non-Patent Citations (3)
Title |
---|
Intelligent Timeout Master: Dynamic Timeout for SDN-based Data Centers;Huikang Zhu等;《2015 IFIP/IEEE International Symposium on Integrated Network Management(IM)》;20150515;正文第734-737页 * |
SDN控制平面安全防御研究;赵汉佳;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180815;正文第1-75页 * |
赵汉佳.SDN控制平面安全防御研究.《中国优秀硕士学位论文全文数据库 信息科技辑》.2018, * |
Also Published As
Publication number | Publication date |
---|---|
CN109617931A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109617931B (zh) | 一种SDN控制器的DDoS攻击防御方法及防御系统 | |
US11057404B2 (en) | Method and apparatus for defending against DNS attack, and storage medium | |
US9270643B2 (en) | State-transition based network intrusion detection | |
US10567426B2 (en) | Methods and apparatus for detecting and/or dealing with denial of service attacks | |
US11539750B2 (en) | Systems and methods for network security memory reduction via distributed rulesets | |
EP2434689B1 (en) | Method and apparatus for detecting message | |
CN101800707B (zh) | 建立流转发表项的方法及数据通信设备 | |
US8769681B1 (en) | Methods and system for DMA based distributed denial of service protection | |
CN112055956B (zh) | 用于网络安全性的装置和方法 | |
US20100095351A1 (en) | Method, device for identifying service flows and method, system for protecting against deny of service attack | |
JP2009534001A (ja) | 悪質な攻撃の検出システム及びそれに関連する使用方法 | |
CN106561016A (zh) | 一种基于熵的SDN控制器DDoS攻击检测装置和方法 | |
CN112134894A (zh) | 一种DDoS攻击的移动目标防御方法 | |
Xu et al. | An enhanced saturation attack and its mitigation mechanism in software-defined networking | |
CN110958245B (zh) | 一种攻击的检测方法、装置、设备和存储介质 | |
CN107690004A (zh) | 地址解析协议报文的处理方法及装置 | |
CN110661763B (zh) | 一种DDoS反射攻击防御方法、装置及其设备 | |
CN111031077B (zh) | 一种流量清洗方法、流量清洗系统和设备 | |
US11997133B2 (en) | Algorithmically detecting malicious packets in DDoS attacks | |
US20160021062A1 (en) | Attack Defense Processing Method and Protection Device | |
CN111107069A (zh) | 一种DoS攻击防护方法及装置 | |
CN111885092A (zh) | 一种边缘节点的DDoS攻击检测方法、处理方法及SDN | |
CN111327590A (zh) | 一种攻击处理方法及装置 | |
Zhu et al. | A research review on SDN-based DDOS attack detection | |
CN115580480B (zh) | 基于卡尔曼滤波和随机森林的fto攻击检测缓解方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |