SDN中基于流特征的DDoS攻击与闪拥事件检测

2019-06-21 02:24:42姜文醍任丹妮李华康孙国梓
关键词:流表交换机数据包

姜文醍,谷 宇,任丹妮,李华康,孙国梓

(南京邮电大学 计算机学院,南京 210046)

0 引 言

随着当前网络市场的需求越来越高,软件定义网络(software define network, SDN)被提出,它定义了一种新的网络设计方式和管理方法[1]。SDN控制器通过下发流表与控制原则来决定流量的流向,以此达到路由机制、封包分析、网络虚拟化等功能的实现。尽管SDN具有其优势,但SDN却存在一些固有的安全挑战,如可靠性、可扩展、延迟和控制器布局等。分布式拒绝服务(distributed denial of service,DDoS)攻击为攻击者提供了一种有利的方式来破坏这些系统的安全。如果攻击者从多个IP发送大量数据包,这些数据包将被转发给控制器,那么流量将消耗控制器的所有可用资源,并使合法用户的访问不可用。因此,DDoS防御是SDN的重要研究课题。

目前,除了DDoS攻击之外,还有另外一种网络流量在安全人员的研究中越来越受欢迎,即闪拥,它导致对Web合法用户的请求拒绝服务。

FC类似于高速的DDoS攻击,成千上万的合法用户试图同时访问特定的计算资源,例如世界杯的举办、某国领导人换届选举等。FC事件很容易被误认为是一系列的DDoS攻击。DDoS攻击和FC有很多共同点,例如源IP在短时间内增多,流量大小的变化,网络服务器的响应延迟等,它们之间的参数差异很小。这种情况就使得区分DDoS和FC的难度增大[2]。

目前,大部分针对SDN中DDoS攻击检测的方法还是利用了传统网络中对数据包的一系列特征分析方法,且其中大部分都没有有效区分DDoS攻击与FC事件,这就可能导致正常的突发流量的访问被拒绝,而对打击DDoS攻击的关键是如何从海量的网络数据中高效地识别和提取电子证据[3]。本文主要贡献如下。

1)根据SDN网络独有的流表特性进行分析,获取流表中关键的特征信息进行整合,如协议类型、流表持续时间、同一目的IP的源IP的离散度等,并根据不同的DDoS攻击类型选取相应的特征进行检测。

2)利用φ-熵作为某些特征的离散度度量,可以有效地增大不同集中程度数据的信息距离,从而提高区分准确率。

3)根据DDoS攻击与FC事件特征分析,如流生存时间,一定程度上可以有效区分2种事件,降低误报率。

1 相关工作

最初的SDN网络由中心控制器获取全网状态信息,同时处理数据流请求,以此实现网络的集中控制,这要求中心控制器具有很高的处理能力[4]。随着网络规模的扩大及数据流流量的增加,在DDoS攻击的影响下,中心控制器的性能必然会降低。

DDoS攻击监测的目的是在攻击尚未产生规模时对攻击的源头进行严格管控[5],所以攻击检测在防范DDoS攻击中有着至关重要的作用[6]。

在传统网络中,对DDoS攻击检测主要是依据攻击数据包特征。MA等[7]计算源IP和目的IP的熵来检测DDoS攻击;Jun等[8]使用目标IP,源端口的流量熵,以及每个时间窗口收到的数据包数量来检测DDoS攻击;Basicevic等[9]用广义熵来检测HR-DDoS攻击。他们将基于广义熵的检测方案和基于Shannon熵的检测方案的结果进行了比较,并观察到基于广义熵的检测效果更好。目前SDN下的DDoS攻击检测主要是针对流的攻击检测方法。Li等提出了基于CV-GA的SVM算法,将该算法用于OpenFlow交换机的DDoS攻击检测中,相比于传统的分类算法具有更好的检测率;Mehdi等[10]利用SDN的可编程性将4种入侵检测方法移植到SDN环境下,实现了在SOHO网络中不损失精度情况下线速的攻击检测。

由于DDoS与FC都会导致网络流量分布发生重大变化,而基于信息论的信息熵可以快速捕捉网络流量行为的变化。最近Behal等[11]提出一套新的信息理论度量,称为φ-熵和φ-发散度量来检测DDoS攻击和FC事件,所提出的度量标准对于检测网络流量中的温和变化与现有的主要使用广义熵(generalized entropy,GE)和广义信息差异(generalized information distance, GID)度量相比,可以引起合法流量与攻击流量之间的更多信息敏感距离。本文的DDoS检测算法结合了φ-熵,下面对其进行简要介绍。

2 SDN中基于流特性的DDoS攻击和FC事件检测

本文检测方法主要包括3个部分:①流表收集;②基于φ-熵的流特征提取整合;③流分类。流表收集:定期向OpenFlow交换机发送流表请求,交换机将流表信息传送给流表收集节点;流特征提取:负责对收集的流表进行提取基于φ-熵的五元组特征;流分类:负责将五元组进行分类,以区分DDoS攻击、FC事件以及正常流量。

2.1 φ-熵

在文献[11]中,Behal等根据已有的香农熵(Shannon)与GE提出了一种新的信息理论度量φ-熵,定义为

(1)

picosh(α)sinh(αlbpi)),α>0

(2)

(3)

图1 |F(x)|在不同α上的变化Fig.1 |F(x)| changes in different α

综上所述,通过调整α可以对事物进行更敏感放大能力,从而有效应用到DDoS攻击的检测中。

通过2组不同集中程度的数据集进行测试,分别计算其香农熵与φ-熵,并调节参数α获取相应的φ-熵,如表1(结果保留到小数点后4位)。

表1 调节α获取2种数据类型的熵值对比Tab.1 Adjust α to obtain entropy comparison of two data types

其中,数据1表示一组集中程度较小的数据,用于模拟DDoS攻击中大量虚假且不同的IP地址,数据2表示一组集中程度较大的数据,用于模拟正常访问流量的IP地址。

从表1可以看出:①数据1的香农熵大于数据2的香农熵,差值为2左右;②调节参数α的值,数据1与数据2的φ-熵刚开始变化并不明显;当α取值为0.3之后,数据1的φ-熵相比较数据2呈明显增大趋势;③参数α越大,数据的φ-熵越大于香农熵;当α→0时,φ-熵越相当于香农熵。

所以根据文献[11]以及上述实验可以证实,Behal等定义的φ-熵是可以增大不同离散程度的数据间的信息距离,对DDoS攻击出现的初期以及相对慢速的DDoS攻击,可以放大攻击特征,从而更快地发出预警。

2.2 流字段分析与收集

多数典型的DDoS检测系统中,功能的数量受到用于衡量业务流量统计技术的限制,大多数方法收集分组级别的信息。而SDN特有的内置统计信息收集功能具有在网络周围部署用于收集数据包级功能的探针的优势,这将提高检测响应时间的性能。SDN统计信息从网关交换机收集,然后通过OpenFlow消息(南向接口)发送,不会对从网关到目标交换机的流量产生任何性能影响。

流字段收集主要通过OpenFlow协议来实现流字段的收集。当新流量到达SDN交换机时,Openvswitch交换机中流表被搜索匹配以相应的处理流。如果数据包到达交换机时并没有发现与之匹配的流表项,则发送PACKET_IN到控制器。如果匹配成功,交换机就知道如何处理数据包了。交换机回复控制器定期发送REQUEST报文,通过解析相应的消息报文获取的流字段将作为流特征的输入,获取流匹配字段的时间间隔必须适中,因为间隔时间太大会在发现DDoS攻击前就导致网络瘫痪,而时间间隔太短则会使控制器过载,目前我们设置匹配周期获取时间为2 s。

2.3 流特征提取与整合

不同类型的DDoS攻击具备不同特征的数据流,根据不同协议类型具有不同的匹配字段。表2分析了5种常见类型的DDoS攻击特征以及FC事件特征。

表2 不同DDoS攻击类型分析Tab.2 Analysis of different DDoS attack types

提取且聚合的特征主要如下。

1)流平均字节数(Avebyte, AB)。很多DDoS攻击者都采取短流攻击,以便短时间内形成大量的数据包攻击,所以选择该特征作为属性之一。

(4)

(4)式中:xi表示由每道流字节数组成的样本集X={x1,x2,…,xn}中的第i项;n为样本数。

2)流平均生存时间(Aveduration, AD)。该特征除了区分正常流量与攻击流量之外,还是区分DDoS攻击与FC事件的重要特征。FC事件和很多DDoS攻击都具有短时间IP迅速增长的特性,所以不容易区分。但对于FC事件,正常用户平均访问请求时间相对较长,流表的生存时长会相应增加。

(5)

(5)式中:yi表示由每道流字节数组成的样本集Y={y1,y2,…,yn}中的第i项;n为样本数。

3)源IPφ-熵(Srcφ,SE)。某些DDoS攻击发生时,攻击者通常使用大量的虚假IP地址对目标主机进行攻击,所以流表中源IP地址的增速会显著增大,分散程度也随之增大。而对于FC事件,该特征也是其所具备的特点。

(6)

(6)式中:ai表示每道流中某一目的IP地址对应的源IP地址组成的样本集中第i项在整个样本集中出现的概率;α为常量参数;n为样本数。

4)目的IPφ-熵(Dstφ,DE)。某些DDoS攻击者为了快速进行攻击,其选取的目标主机在一定程度上数量偏少,即集中程度较大。

(7)

(7)式中:bi表示每道流中目的IP地址组成的样本集中第i项在整个样本集中出现的概率;α为常量参数;n为样本数。

5)流表平均增长速度(Flowspeed,FS)。网络正常访问时,流表在一定的时间段内增长速度较稳定且速度较慢(特殊情况除外),而当遭受DDoS攻击或FC事件时,读时间内流表数会急剧增加,从而可能导致流表项溢出,正常访问被拒绝。

(8)

(8)式中:t表示样本取值时间间隔;si表示在第i个t时间间隔内流表的生成数量;S表示以t为时间间隔所取的单位样本数量。

2.4 基于KNN的DDoS攻击与FC的分类

把攻击检测看作一个分类问题,判断当下网络状态是正常或异常。经测验,对不同类型的DDoS攻击,每条数据与数据之间的夹角偏小,较适合KNN算法。KNN算法比较简单,易于理解和实现,无需过多地估计参数且无需训练,适合对稀有事件进行分类。所以本文采取的分类算法为KNN算法,同时对比SVM分类算法。

本文提出的 DDoS攻击检测方法使用有监督的学习算法。首先对交换机中的流表项集合定期进行采样收集ovs-ofctl dump-flows s1>$flowtable.txt,并存入数据库,时间间隔为t;对每次采样的流表项参数进行自动化读取,如源ip、目的ip等,并对其特征值进行计算,即特征的提取与整合(具体计算参见2.3节),获得样本集X={(xi,yi),i=1,2,……K},其中,xi=[AB,AD,SE,DE,FS],表示特征五元组,yi为xi对应的类别标记:“N”代表正常状态,“K”表示样本数目。用“F”代表FC状态,“S”代表SYN攻击,“U”代表UDP攻击,“I”代表ICMP攻击,“A”代表ACK攻击,“T”代表TCP Connection攻击;不同类型的DDoS攻击类型根据表2进行进一步特征选取;KNN算法中节点相似度的计算需要使用距离度量来进行判定,本文先对每个五元组进行归一化处理,再使用欧氏距离计算2点之间的距离。

3 实验以及分析

为了验证本文的提出的检测算法是否正确,设计了如图2的实验环境,其中源主机是报文发送网络,目的主机集群是报文接受网络。源主机负责发送7类流量包:正常流量,FC事件,多类型DDoS异常流量。

训练样本生成阶段中,正常流量由源主机进行正常的网络访问而产生。而对于异常流量的产生选用了经典 DDoS攻击工具Hping3以及Nping产生。在对上述流量产生的流表项进行收集,产生学习样本,分为7组:正常流量训练样本,FC事件训练样本以及5种类型的DDoS攻击流量训练样。因为KNN检测算法要求训练样本集的类型分布尽量可能平均,在本文中,选择用于训练的7类样本数目大致相同,数据集如表3。

流量检测阶段中,在POX 控制器所在主机上每隔2 s收集一次交换机上的流表,并提取出若干个元组使用KNN方法进行分类。若分类为正常流量,则认为SDN交换机所在网络未受DDoS攻击;若分类为FC事件,则认为该网络突增流量为正常访问流量,未遭到攻击;若分类为非正常流量,则认为该网络遭到了某类型DDoS攻击。

本文使用3个参数TPR(真正例率),FPT(假正例率)以及F1来评价本文基于K近邻方法的检测算法的效果,同时使用支持向量机(support vector machine,SVM)检测方法作为对照组,对照组中结果如表4。

表4 基于香农熵的SVM与KNN分类结果Tab.4 SVM and KNN classification results based on Shannon entropy

从实验结果可以看出,使用KNN算法进行分类比使用SVM算法具有更高的准确率和较低的误报率,而且很有效地将FC事件检测出来,避免因误判而阻挡正常流量的访问。

根据上述结果,为了更好地证明本文方法对DDoS攻击与FC事件的检测精度,取KNN算法做为分类的主流分类器,实验结果如表5。

表5 基于φ-熵的KNN分类结果Tab.5 KNN classification results based on φ-entropy

当调整参数α时,KNN分类准确率相应地改变。因为调整α可以有效增加不同数据类型之间的信息距离,可以在某些DDoS攻击的初始阶段有效地执行攻击检测,从而提高检测精度。从表5可以看出,随着参数α的增加,类别“S”,“U”,“A”和“N”的分类精度显著增加。对于诸如“I”和“T”的某些类别,特征信息的距离不占据分类中的主要位置,并且可以看出,当参数α=0.5时,准确率仅略有提高。对于FC事件而言,由于其流量主要特征非常类似于DDoS攻击,例如大量IP并短时间内流急剧增加,因此,一些特征的信息距离并不明显。

从实验总体来看,即使参数α再次增加,分类准确度也不再变化。因为α本身不需要详细到一定值,我们认为当参数上升到0.5时,KNN检测精度达到最好,最高F1平均得分为0.947,FC事件的检测率平均为0.903。相对于其他DDoS攻击检测方法,本文采用7分类,对多种类型的DDoS攻击都有较高的检测率,而且对异常流量初期以及慢速的DDoS,φ-熵可以极大程度地放大攻击特征。对于FC事件,引用了新的参数即平均生存时间,虽然其准确率仍然需要提高,但它在一定程度上防止了正常的大流量被截获或丢弃。上述实验再一次证明了通过优化KNN处理方法可以达到更好的分类效果。

4 结 论

本文提出了一种基于多维流量特征的DDoS检测方法,通过优化KNN处理流量的方法,采取了流表里多维特征进行整合与分类,包括基于香农熵改进的φ-熵,有效地区分出异常流量、正常流量和FC事件。本文的优点在于,充分利用SDN网络特有的流表特性对流量进行全面提取和分析,进行有效的分类。相对其他缺乏FC事件检测的DDoS攻击检测,更加有效地对全网络流量进行分析,从而大大降低误报率,对后期的DDoS攻击防御或电子数据取证都会起到重要作用。

由于知识和时间的限制,本文仍存在一些需要修改和补充的方面,例如特征提取方法的改进。可以考虑并找出更多的闪拥事件的特征。此外,本文中的DDoS流量检测可以结合SDN可追溯性来查找攻击源,或结合负载均衡来保护网络节点和服务器。上述改进也是未来的研究方向。

猜你喜欢
流表交换机数据包
基于时序与集合的SDN流表更新策略
SmartSniff
基于缓存策略的OpenFlow流表存储优化方案研究
电子测试(2018年21期)2018-11-08 03:09:34
修复损坏的交换机NOS
简析yangUI流表控制
软件定义网络中一种两步式多级流表构建算法
使用链路聚合进行交换机互联
PoE交换机雷击浪涌防护设计
基于Libpcap的网络数据包捕获器的设计与实现
罗克韦尔自动化交换机Allen-Bradley ArmorStratix 5700
自动化博览(2014年9期)2014-02-28 22:33:16