SDN中基于熵的DDoS攻击检测方法研究
2018-03-20欧家豪
欧家豪,陈 飞
(南京晓庄学院 信息工程学院,南京 211171)
1 引言
近年来,随着大数据、云计算等新兴业务的兴起,网络规模不断膨胀,传统的网络体系结构面临着巨大的压力。为了解决传统网络所面临的诸多问题,McKeown 教授最早提出了OpenFlow[1]的概念,并于2009年进一步提出了SDN的概念。SDN技术将传统网络的转发层与控制层分离,把控制功能从网络设备中分离出来,并为应用程序提供可编程接口,从而可以根据上层用户的需求,灵活的分配调度网络资源,为未来网络技术的发展提供了新的发展方向。
分布式拒绝服务攻击是当今互联网所面临的主要安全威胁之一,攻击者通过控制僵尸网络向目标主机发起攻击,使得目标主机的带宽等资源受到消耗而无法对正常的请求提供服务。与其他攻击相比,DDoS攻击发起简单、破坏性强且难以检测和防御。
SDN技术出现后,为DDoS攻击的检测及防御提供了很多新的思路,目前已经有非常多的利用SDN网络检测DDoS攻击的方法。文献[2]提出了一种SDN环境下的分布式的DDoS攻击检测方法,在数据平面实时监测网络流量中的攻击行为,在控制平面实现基于流表的威胁处理;文献[3]通过构造网络的流量矩阵和样本熵矩阵进行组合,并采用主成分分析法对异常流量进行检测;文献[4]在NOX控制器上实现了一种攻击检测方法,通过统计网络流量中与DDoS攻击相关的六元组信息,利用人工神经网络算法SOM进行DDoS攻击的检测。但是以上这些算法,有的仅针对某种特定的异常,有的实现算法复杂,有的忽视了SDN控制器的作用。
2 熵值算法
在没有DDoS攻击产生的情况下,网络中的数据包应该具有比较大的随机性;而当DDoS攻击出现时,网络上会出现大量具有相同目的主机地址的数据包,网络的随机性将会出现明显的变化。如何衡量网络随机性的变化呢?
在信息论中,熵值H可以用来衡量随机程度的变化。熵值H越高,表示随机程度越高,信息分布越分散;反之,熵值H越低,表示随机程度越低。在正常情况下,SDN网络中的流量随机程度较高,而当DDoS攻击发生时,大量集中的流量会造成熵值H出现明显下降,因此,可以通过检测熵值H的变化来判断网络中是否发生了DDoS攻击。
根据信息熵的定义,假设1个窗口内有w个数据包,Pi是数据包的某个元素出现的概率,则信息熵可表示为:
将计算出来的信息熵值与阈值进行比较,如果比阈值高说明未发现DDoS攻击,比阈值低则说明检测到DDoS攻击。
3 基于熵值的DDoS攻击检测算法
在计算熵值H时,可以选择不同的流量特性,比如数据包的源IP地址、目的IP地址等,考虑到DDoS攻击产生时短时间内目的IP地址变化不大,本文选择基于数据包的目的IP地址进行熵值计算。基于熵值计算的DDoS攻击检测算法可描述如下:
(1)控制器统计到达的Packet_In数据包的个数,窗口大小为w(即收集到w个数据包便计算一次熵值)。
(2)计算窗口内每一个目的IP地址出现的概率,若IP地址xi出现次数为yi次,则pi=yi/w。
(3)计算窗口中w个数据包的目的IP地址熵值
(4)如果熵值低于阈值,则计数值加1。
(5)如果连续5次计算出的熵值均低于阈值,则警告检测到DDoS攻击;否则计数值复位,回到步骤(1)。
4 结束语
本文提出了一种应用于SDN网络的DDoS攻击的检测算法,通过分析控制器收到的数据包的目的IP地址,以计算信息熵值作为判断DDoS攻击是否发生的指标,该算法简单、快速,消耗计算资源少。未来可进一步研究算法中参数的设置及DDoS攻击的防御方法。