基于SDN的DDoS攻击检测技术研究

2019-10-11 11:24张强强李永忠
软件导刊 2019年7期
关键词:软件定义网络支持向量机主成分分析

张强强 李永忠

摘 要:为了在保证检测准确率的前提下提高检测效率,并优化SDN网络中基于流表特征的DDoS攻击检测算法,主要分析基于流表特征的DDoS攻击检测技术及其存在的不足,提出首先利用主成分分析优化流表特征,从中选出合适的特征子集,并采用支持向量机算法实现分类检测;然后搭建仿真网络环境,利用正常数据集与攻击数据集训练分类器进行测试实验;最后从检测准确率与检测时间两个维度对特征降维前后的检测方法进行对比。实验结果表明,经过特征降维的检测方法在不影响准确率的同时,有效提高了检测速率。

关键词:软件定义网络;DDoS攻击;主成分分析;支持向量机

DOI:10. 11907/rjdk. 182675 开放科学(资源服务)标识码(OSID):

中图分类号:TP309 文献标识码:A 文章编号:1672-7800(2019)007-0205-04

Research on DDoS Attack Detection Technology Based on SDN

ZHANG Qiang-qiang, LI Yong-zhong

(College of Computer, Jiangsu University of Science and Technology,Zhenjiang 211003,China)

Abstract: In order to improve detection efficiency and optimize DDoS attack detection algorithm based on stream table characteristics in SDN network on the premise of guaranteeing detection accuracy, this paper mainly analyses DDoS attack detection technology based on stream table characteristics and its shortcomings, and proposes to optimize flow table features by using principal component analysis(PCA), and select appropriate features from them. and support vector machine(SVM) algorithm is applied to realize classification detection. By building a simulated network environment, the classifier is trained with normal data sets and attack data sets and tested. Finally, the detection methods before and after feature dimensionality reduction are compared from two dimensions of detection accuracy and detection time. The results show that the detection method after feature dimensionality reduction improves the detection speed without affecting the accuracy.

Key Words:software defined network; DDoS attack; principal component analysis; support vector machine

作者簡介:张强强(1992-),男,江苏科技大学计算机学院硕士研究生,研究方向为网络与信息安全;李永忠(1961-),男,硕士,江苏科技大学计算机学院教授,研究方向为网络安全、藏文信息处理。

0 引言

软件定义网络(Software Defined Networking,SDN)[1]是一种新型网络体系,具有网络可编程化、控制平面与数据平面分离等特点,因而在云计算环境中得到了普遍应用。SDN技术一方面为网络带来了革新,另一方面也对网络安全防护提出了新的挑战。与传统网络技术相比,SDN网络架构由于应用层、控制层和数据层三层分离,使得每一层均有可能受到单独攻击,导致潜在攻击平面增大[2]。其中控制层作为网络核心部分,成为攻击的主要目标。DDoS作为传统网络中存在的主要安全威胁之一,因其具有发起简单、破环性强且难以进行检测与防御的特点,可能对网络造成极大破坏。随着云计算技术的兴起以及物联网病毒的大规模传播,使得超大流量的DDoS攻击骤增。2018年3月,著名网站 Github遭遇史上最大的1.35 Tbps 的DDoS攻击[3]。面对新环境下的DDoS攻击,依靠单一检测方法已无法达到理想检测效果。在一个包含攻击检测、攻击缓解和攻击处理的完善的安全防护体系中,攻击发生之前的检测算法不仅要求有很高的准确率,也需要有较高的检测速率。目前,软件定义网络中的DDoS攻击与防御相关工作主要围绕控制层DDoS攻击展开[4-5]。

很多学者针对SDN网络中存在的DDoS攻击提出了多种检测方法。文献[6]提出一种对发送给控制器的数据包信息进行分析的方法,通过计算数据包熵值作为特征值,实现DDoS攻击检测;文献[7]对到达交换机的流进行特征收集,计算出信息熵与单边链接密度,对收集到的特征值进行分析、训练,然后对攻击进行检测;文献[8]提取出流表项中的TTL和源IP地址,得到相同TTL值下源IP地址的条件熵,通过滑动窗口非参数CUSUM算法分析熵值变化,以检测DDoS攻击;文献[9]提出一种基于熵的DDoS攻击评估方法,利用层次分析法构建DDoS攻击效果评估指标量化模型;文献[10]提出一种多维条件熵的攻击检测方法。

交换机流表中蕴含着丰富的流量信息,而基于熵的DDoS攻击检测方法并没有充分利用这种优势。文献[10]提出4种特征值以检测DDoS攻击;文献[11]提取出流表项中的6个特征值组成特征向量,运用SOM神经网络处理相关特征数据;文献[12]针对传统SVM-KNN算法,通过引入Relief算法的方式对其进行加权改进,并将改进算法应用于SDN网络环境下的DDoS攻击检测;文献[13]提出一种基于BP神经网络的DDoS攻击检测技术,从OpenFlow交换机的流表项中提取与攻击相关的6个重要特征,分析6个特征值的变化,采用BPNN算法检测DDoS攻击;文献[14]构造全局网络流表特征,采用基于互信息的特征选择算法对流表特征序列进行预处理,并利用分类学习算法对DDoS攻击行为进行在线检测。

然而,由于以上基于流表特征的攻击检测方法在特征提取过程中存在特征维数过少或过多的情况,以及直接根据提取的特征值判断是否为异常流量,而忽略了各特征值之间会有信息冗余,且特征向量维度会影响检测效率的情况,本文提出一种改进的基于流表特征的DDoS攻击检测方法。首先从交换机流表中提取6个全局流表特征组成特征矩阵,然后采用主成分分析法对其进行优化,根据贡献率与系统要求选择出最优特征子集,最后采用支持向量机(Support Vector Machine,SVM)分类算法实现分类检测,从而达到提高检测速率的目的,可很好地满足安全防护体系对检测算法性能的要求。

1 基于流表特征的DDoS攻击检测方法

基于以上对DDoS攻击检测方法的分析研究,本文对基于流表特征的DDoS攻击检测方法进行改进。基本思想为:提取SDN网络交换设备中的流表信息,转换为特征向量,然后采用主成分分析法选出最优特征子集,构建攻击检测分类器,并对网络流量进行分类。该检测方法包括3个模块:数据采集模块、特征提取模块与攻击检测模块。检测算法流程如图1所示。

图1 检测算法流程

1.1 数据采集模块

控制器定期向OpenFlow交换机发送流表请求指令ofp_flow_status_request,交换机收到信息并回复。图2给出了交换机上收集提取的一条流表信息。

图2 交换机中流表项

执行sudo ovs-ofctl dump-flows s1>a.txt命令后,读取重定向文件进行流表收集。对采集到的数据进行预处理,并从流表项中提取以下6个特征字段:源地址sip、目的地址dip、源端口sport、目的端口dport、数据包数pcount、比特数bcount。

1.2 特征提取模块

1.2.1 特征向量提取

基于上文提取出的流表项中与DDoS攻击相关的特征字段,根据文献[14]中的描述,将其转换为与攻击有关的一维特征信息,包括流包数均值AP、流表平均比特数AB、流表项速率FR、源地址熵H(sip)、源端口熵H(sport)、目的端口熵H(dport)。

(1)流表平均包数(Average Packets)。

[APk=pcountjN]

(2)流表平均比特数(Average Bytes)。

[ABk=bcountjpcountj]

(3)流表项速率(Flow Rate)。

[FRk=N1+N2T]

[N1]和[N2]分别表示目的地址与源地址为[ipk]的流表项数目。

(4)源地址熵。

[H(sip)=-Sip[n]Nlog(Sip[n]N)]

在有关目的IP的流表项集合中,不同源地址集合为[{Sipn|n=1,2,?,N}],定義N维矩阵[Sip[N]:Sip[n]]表示源地址为[sipn]、目的地址为[dipk]的权重。

(5)源端口熵。

[H(sport)=-Sp[m]Mlog(Sp[m]M)]

不同源端口集合为[{sportm|m=1,2,?,M}],定义M维矩阵[Sp[M]]。

(6)目的端口熵。

[H(dport)=-Dp[l]Llog(Dp[l]L)]

不同目的端口集合为[dportl|l=1,2,?,L],L维矩阵为[Dp[L]]。

1.2.2 特征向量优化

合适的特征子集包括有用的特征信息,但不改变特征集的原始表达,可以增强分类器自学能力,降低分类训练复杂度,因此是保证DDoS攻击检测性能的关键。本文采用主成分分析方法[15]降低特征向量维度,得到优化的特征向量子集作为分类器输入,从而提高检测效率。基于主成分分析的最优特征子集选择算法流程如下:

算法输入:原始特征向量集X。

1. 按列计算数据集X的均值Xm,然后令Xn = X- Xm。

2. 求解矩阵Xn 的协方差矩阵,并将其记为Cov。

3. 计算协方差矩阵Cov的特征值与响应的特征向量。

4. 计算各主成分贡献率及累计贡献率,根据要求选择合适的k值,然后将其对应的K个特征向量分别作为列向量,组成特征向量矩阵W。

5. 计算矩阵Y=XnW,即将数据集Xn投影到选取的特征向量上。

算法输出:最优特征子集Y。

1.3 分类检测

由于正常状态下与收到攻击时的流量特征不同,所以可以将攻击检测问题看作分类问题。分类检测基本流程为:对上述经过主成分分析之后选取的特征子集进行归一化处理,并赋予样本序列标记{正常,异常}代表两种不同网络状态。本文选择支持向量机算法根据特征样本序列构建检测模型,使用该模型对未标记的特征样本进行分类,算法流程如图3所示。

图3 SVM分类检测算法流程

支持向量机(Support Vector Machine,SVM)[16]是基于统计学理论与结构风险最小理论的算法,SVM以有限数目的输入样本为训练依据,以获得最优效果,即使分类模型的学习能力与复杂度之间取得最佳平衡。核技巧是一种用来处理线性不可分问题的方法,该方法需要定义一个能恰当地计算给定函数对内积的核函数,其功能是将数据从输入空间非线性变换到特征空间。特征空间具有更高甚至无限的维度,从而使数据在该空间被转换成线性可分的[17]。将SVM分类方法应用于DDoS攻击检测具有较高的检测准确率。

2 实验结果分析

2.1 实验环境

为验证算法有效性,搭建SDN虚拟环境对其进行仿真实验。实验运行在Mininet[18]平台上,控制器采用Floodlight。Floodlight是一款支持OpenFlow协议,且基于JAVA语言的开源SDN控制器,由Big Switch Networks 公司与开源社区提供支持[19]。测试中正常样本采用DARPA 99数据集中的网络流量,该数据记录了每条数据包的完整信息,以tcpdump格式保存。DDoS攻击样本采用MIT提供的DDoS数据集LLS_DDoS_2.0.2[20],根据不同采样周期从正常流量与异常流量中提取信息,整理成流表项条目。正常样本与异常样本数据如表1所示。

表1 正常样本与异常样本数量分布

根据上文提出的特征值和采样率在数据集中对流量信息进行信息提取,分为正常流量特征与异常流量特征。首先对特征进行主成分分析,然后利用SVM分类器对处理后的特征子集进行训练与测试。

2.2 实验结果分析

根据主成分分析算法原理,如何保留主成分,也即k值选择是一个需要关注的问题。如果k值过大,则数据压缩率不高;k值过小,则数据近似误差太大。如图4所示为k=4时,正常流与异常流特征值分布情况。

将经过主成分分析后的特征向量子集进行归一化处理,并对两种类型流量作出标记:“0”代表正常状态,“1”代表攻击状态,然后利用SVM分类器对样本集进行训练,最后应用训练后的SVM对待测样本进行分类检测分析。其中,SVM分类器使用的工具是Matlab自带的分析工具,算法使用的线性函数为核函数。

为验证本文检测算法的正确性,考虑检测准确率与分类时间两个评价指标,将未优化的流表特征直接作为判断攻击检测的方法并进行对比。在相同样本数量的前提下,实验结果如表2所示。

表2 检测结果对比

从表2可以看出,本文提出的对流表特征矩阵进行优化之后再利用分类器检测异常流量的方法,在保证检测结果的同时,也提高了检测速率,证明了该检测方法的有效性,能够为SDN网络安全防护体系提供一种可靠的检测算法。另一方面,随着特征矩阵维度的降低,检测时间与检测准确率都有一定程度下降。因此,如何选择主成分分析之后特征矩阵的维度,平衡检测准确率与检测速率,从而进一步提高算法性能成为下一步的研究重点。

3 结语

本文改进了基于流表特征的DDoS攻击检测算法,首先从OpenFlow交换机上获取流表项,提取与攻击相关的6个重要特征组成流表特征矩阵,并利用主成分分析方法对其进行优化处理,根据不同贡献率选取合适的特征子集作为分类器输入,利用SVM分类器区分出攻击流量与正常流量,从而实现了对DDoS的检测。最后在仿真实验环境中对算法进行验证,通过对比,证明了该方法在保证检测准确率的前提下,可有效提高检测效率。在未来工作中应尽可能多地从流表项中提取与攻击有关的特征,并对主成分分析后保留的特征参数进行动态调整,以实现更好的检测效果。

参考文献:

[1] 左青云,陈鸣,赵广松,等. 基于OpenFlow的SDN技术研究[J]. 软件学报,2013,24(5):1078-1097.

[2] 刘孟. 云环境下DDoS攻防體系及其关键技术研究[D]. 南京:南京大学,2016.

[3] Freebuf. Github遭遇史上最大1.35 Tbps DDoS攻击[EB/OL]. https://www.freebuf.com/news/164009.html.

[4] SHIN S,YEGNESWARAN V,PORRAS P,et al. AVANT-GUARD: scalable and vigilant switch flow management in software-defined networks[C]. Acm Sigsac Conference on Computer & Communications Security. ACM, 2013.

[5] KREUTZ D, RAMOS F M V,VERISSIMO P. Towards secure and dependable software-defined networks[C]. Acm Sigcomm Workshop on Hot Topics in Software Defined Networking. ACM, 2013.

[6] 韩子铮.  SDN中一种基于熵值检测DDoS攻击的方法[J]. 信息技术,2017(1):63-66.

[7] 张国印,高伟,李土深,等.  一种基于网络层流量异常的SDN网络DDoS攻击检测方法[P]. 中国, CN105162759A,2015.

[8] 舒远仲,梅梦喆,黄文强,等. SDN环境下基于条件熵的DDoS攻击检测研究[J]. 无线互联科技,2016(5):75-76.

[9] FENG Y,GUO R,WANG D,et al. Research on the active ddos filtering algorithm based on IP flow[C]. IEEE,Natural Computation,2009.ICNC09. Fifth International Conference,2009: 628-632.

[10] 梅梦喆. SDN中基于多维条件熵的DDoS攻击检测与防护研究[D]. 南昌:南昌航空大学,2016.

[11] 孙国友. 云环境SDN/OpenFlow网络中安全可靠的网络控制方法研究[D]. 合肥:中国科学技术大学,2017.

[12] 龚冉. 基于SDN的负载均衡和DDOS攻击检测技术的研究[D]. 合肥:安徽大学,2016.

[13] 王晓瑞. SDN中DDoS攻击检测与流表过载防御技术研究[D]. 郑州:郑州大学,2017.

[14] 李鹤飞. 基于软件定义网络的DDoS攻击检测方法和缓解机制的研究[D]. 上海:华东师范大学,2015.

[15] 左青云,陈鸣,王秀磊,等. 一种基于SDN的在线流量异常检测方法[J]. 西安电子科技大学学报,2015(1):155-160.

[16] CRISTIANINI N,SHAWE-TAYLO J. 支持向量机导论[M]. 李国正,译. 北京:电子工业出版社,2004.

[17] [美]吴信东,库玛尔. 数据挖掘十大算法[M]. 李文波,吳素妍,译. 北京:清华大学出版社,2013.

[18] HANDIGOL N,HELLER B,JEYAKUMAR V,et al. Reproducible network experiments using container-based emulation[C]. Proceedings of the 8th International Conference on Emerging Networking Experiments and Technologies. New York: ACM, 2012:253-264.

[19] 房秉毅,张歌,张云勇,等. 开源SDN控制器发展现状研究[J]. 邮电设计技术,2014(7):29-36.

[20] Lincoln Laboratory. 2000 darpa intrusion detection scenario specific datasets[EB/OL]. https://www.ll.mit.edu/r-d/datasets/2000-darpa- intrusion-detection-scenario-specific-datasets.

(责任编辑:黄 健)

猜你喜欢
软件定义网络支持向量机主成分分析
业务功能链技术及其应用探析
针对大规模软件定义网络的子域划分及控制器部署方法
一种新的SDN架构下端到端网络主动测量机制
主成分分析法在大学英语写作评价中的应用
江苏省客源市场影响因素研究
SPSS在环境地球化学中的应用
基于支持向量机的金融数据分析研究