基于深度学习和三支决策的DDoS攻击检测算法
2021-01-06陶应亮
陶应亮
摘 要:针对软件定义网络(Software Defined Ntwork,SDN)中的分布式拒绝服务(Distribute Denial of Service, DDoS)攻击检测的方法少、现存方法入侵检测率低的问题,提出了一种基于深度学习和三支决策的入侵检测算法。首先使用深度信念网络对SDN的流表项进行特征提取,然后利用基于三支决策理论的入侵检测模型进行DDoS攻击的入侵检测,对于正域和负域的数据直接进行分类,对于边界域中的数据使用K近邻算法重新进行分类。仿真实验结果表明,与其他入侵检测模型相比,所提算法的入侵检测效率更高。
关键词:软件定义网络;深度信念网络;三支决策;DDoS攻击
中图分类号:TN915.08 文献标识码:A
Abstract:Aiming at the problem of few DDoS attack detection methods and low intrusion detection rate of existing methods in software defined network (SDN), an intrusion detection algorithm based on deep learning and three decision making is proposed.First, use deep belief network to extract features of SDN flow entries, then use three-way decisions intrusion detection model forintrusion detection of DDoS attacks, directly classify data in the positive and negative domains, and the data in the boundary domain is reclassified using the K-nearest neighbor algorithm. Simulation results show that compared with other intrusion detection models, the detection rate of this methodis higher, and the false alarm rate is lower.
Key words:software defined network; deep belief network; three-way decisions; DDoS attack
軟件定义网络(Software Defined Network,SDN)作为新兴的网络架构,解耦了网络的控制层与数据层,被认为是未来网络发展的方向。但由于其及网络架构的特殊性,控制器作为网络架构的核心,容易面临单点失效的风险。分布式拒绝服务(Distribute Denial of Service, DDoS)攻击一直以来都是软件定义网络的的主要威胁之一[1]。为防御SDN下的DDoS攻击,国内外许多网络安全专家在常规方法的基础上,将机器学习应用于DDoS攻击的入侵检测。深度信念网络(Deep Belief Network,DBN)作为深度学习的一个分支,与传统的机器学习相比,可以学习到更加复杂的表达函数[2]。但由于SDN环境下的DDoS攻击的特征数量有限,通常会由于特征的不充足和信息的不确定性导致流量分类的错误。
因此,为解决软件定义网络中的分类正确率不足、入侵检测效率低的问题,提出一种在SDN下的基于深度信念网络和三支决策的入侵检测模型。使用在SDN流表项下直接获取的特征和手动构建的特征作为特征集,利用DBN对特征进行提取后,使用三支决策入侵检测模型进行数据分类。入侵检测模块将流经控制器的流量分为正域(正常流量)、负域(入侵流量)、边界域(不确定的流量),对于边界域流量使用KNN算法再次进行分类。
1 研究现状
随着网络技术发展,DDoS攻击不仅仅对传统网络环境产生安全威胁,DDoS攻击者也开始利用新的网络架构发起攻击,SDN中的DDoS攻击是研究热点之一[3]。传统网络环境下DDoS攻击的主要类型有网络层的UDP反射攻击、传输层的SYN Flood攻击、会话层的SSL连接攻击、应用层的HTTP Flood攻击等[4]。
目前已有的DDoS攻击检测方法按照方法类别可划分为常规的检测方法、基于传统机器学习的检测方法以及基于深度学习的检测方法。常规的DDoS攻击检测方法已经取得了初步的效果,Kalkan[5]提出了SDN下基于统计解决方案的DDoS攻击检测方法,Yu[6]提出了基于流量相关系数的检测方法以及Chin[7]提出了SDN下选择性检测数据包来检测DDoS泛洪攻击的方法,在检测的效果上也取得了一定的效果。
基于传统的机器学习的DDoS攻击检测在软件定义网络中有更好的检测效果。Yuan[8]等人提出了一种基于支持向量机的DDoS攻击检测模型,并在KDD99数据集上进行验证。Barki[9]从流量跟踪的角度讨论DDoS攻击,使用了不同的机器学习方法将流量分为正常和异常。机器学习在进行入侵检测时,需要手动构建特征进行检测,如Xiao[10]提出的基于KNN的DDoS攻击检测方法,检测模型输入的特征均为手动构造的特征,影响了检测的效率,深度学习在SDN中的入侵检测的应用可以有效解决该问题。
深度学习是机器学习领域的一个新的研究方向,旨在学习样本的内在规律和表示层次,解决很多复杂的模式识别等人工智能的难题[11]。深度学习在SDN下的入侵检测已经有了很多的应用,Garg[12]提出了一种基于深度学习的检测模型,直接使用流表项的原始字段作为特征进行输入,利用深度学习算法检测异常流量,在对小流量的数据流进行检测时,正确率和效率上都有了提升。Li[1]提出了一种基于深度学习混合模型的DDoS攻击检测模型,该方法具有较高的精确度的同时运算速率很高。在实际检测情况中,因为特征不足或者信息的不充分,会导致部分流量被误分类。
2 基于深度學习和三支决策的入侵检测算法
2.1 入侵检测算法结构设计
所提的基于DBN的三支决策DDoS攻击检测模型如图1所示,主要分为两个模块,即特征提取模块和入侵检测模块。首先输入数据,在特征提取模块,先进行数据的预处理,提取关键的字段和手动构建的特征构建特征集作为DBN特征提取模型的输入,提取特征后通过三支决策入侵检测模型进行数据的分类,对于边界域的数据使用KNN分类器重新分类后,输出分类的结果。
2.2 入侵检测算法描述
2.2.1算法流程
入侵检测算法流程图如图2所示,分为输入数据、特征提取、数据分类、边界域处理、输出结果五个阶段。采集网络中的真实流量作为输入的数据,对训练集预处理后进行输入,使用深度信念网络特征提取模型进行特征提取,随后将特征放到入侵检测模块。将测试集输入到三支决策入侵检测模型。根据设定的阈值判断数据是否为边界域,若不属于,则根据阈值直接进行分类输出,分为正常数据和入侵数据。若属于将边界域的数据放入KNN分类器重新进行二分类,最后输出入侵检测分类的结果。
2.2.2 DBN特征提取模型
根据OpenFlow协议,每条流表的信息都由多个流表项组成,而每个流表项都由多个字段组成。在实验的DBN模型里,直接提取16维字段作为特征输入,此外手动构建了2个特征[13]以区别于SDN下的常规特征,共同构成的DBN模型输入的18维度特征。
手动构造的2个特征如下:
1)平均数据分组数:
packets_ave=packetsduration(1)
其中packets是分组的包数;duration是持续时间。
2)平均数据分组位数:
bytes_ave=bytesduration(2)
其中bytes是流表中数据包字节数。
算法1:DBN模型特征提取算法
算法1是使用DBN进行特征提取,具体步骤如下:
3 实验结果分析
3.1 实验数据
基于OpenFlow协议,SDN环境下有其特定的攻击方式,常规的DDoS数据集中有一些SDN下不存在的攻击类型,所以实验的数据集是采集到的SDN网络中的真实流量。正常流量由非攻击主机进行正常的网络访问而得到,经过统计大概有60%的TCP流量,20%的UDP流量,10%的ICMP流量和10%的其他流量。异常流量使用Hping-3工具产生,对应发起交换机流表攻击和控制域带宽攻击两种攻击,交换机收集流表数据。本次实验共采集10万条数据流量,正常流量和DDoS攻击流量的比例为6:4。其中将65000条数据作为训练集,35000条数据作为测试集。正常流量和入侵流量的数量分布如表2所示:
3.2 评估标准和模型参数设定
实验选用准确率ACC(Accuracy)、检出率DR (Detection Rate)、误报率FPR(False Positive Rate)、以及精确率PR(Precision Rate)作为评测入侵检测系统性能的主要指标。
为了获得三支决策的划分依据,需要获取三支决策划分的阈值。根据上文所提到的三支决策的代价函数,设置损失函数。如表3所示。并根据公式获取阈值α以及β。
3.3 实验结果分析
入侵检测效果对比:SDN下的DDoS攻击模型主要使用传统机器学习如支持向量机(SVM)[15]、K近邻算法(KNN)[10]、随机森林(RF)[16]和基于信息熵的DNN模型[13]。使用数据集分别在SVM模型、KNN模型、简单的DNN模型和RF模型进行对比,通过ACC、DR、FPR、PR等评估指标对检测效果进行对比,对比结果如表4和图3所示。
由表4和图3可知,在使用DBN提取特征的基础上使用三支决策进行入侵检测后在准确率、检出率和精确率上均有明显的提升。误报率变化如图4所示,在数据量较少时,由于模型不稳定,误报率有所上升,随着数据量增多,模型性能趋于稳定,误报率逐渐下降。实验后期,由于边缘化样本增加,误报率稍微升高,最后趋于平均水准。
将不同的算法进行ROC曲线对比,如图5所示,以误报率为横坐标,检测率为纵坐标,可以看出DBN-TWD入侵检测模型的ROC曲线面积比其他算法的面积大,说明所提算法的性能更优,可以更好的进行入侵检测。
通过以上实验可以得知,所提的基于DBN和三支决策DDoS攻击检测模型对SDN下的DDoS攻击具有很高的正确率和检出率,在OpenFlow中字段的特征维数较低情况下使用在SDN流表项下直接获取的特征和手动构建的特征进行特征的重构后,检测效率有更大的提升,为SDN下的网络安全提供了更有效的保障。
4 结 论
针对SDN下的网络攻击,提出了基于深度学习和三支决策的入侵检测算法。该算法首先使用从OpenFlow流表中直接提取的特征字段和手动构造的特征构成流表特征集,使用DBN进行特征的提取后,利用三支决策检测模型进行流量的入侵检测,从而实现SDN下的DDoS攻击检测。经过仿真实验验证,所提实验模型在正确率、检出率和准确率上都有提升,并在误报率上有所降低,提高了检测的效率。以后的工作的重点是将三支决策算法应用于其他深度学习的模型中,同时选取不同的分类器,以便于提升权值,改进实验的速度,提高入侵检测的效率。并设计防御方案进一步提高SDN下的网络安全。
参考文献
[1]LI Chuan-huang, WU Yan, YUAN Xiao-yong, et al. Detection and defense of DDoS attack-based on deep learning in OpenFlow-based SDN[J]. International Journal ofCommunication Systems, 2018, 31(5):e3497.1-e3497.15.
[2]KAYNAR O, YUKSEK A G, GORMEZ Y, et al. Intrusion detection with autoencoder based deep learning machine[C]//Signal Processing & Communications Applications Conference. IEEE, 2017.
[3]DAO N N, PARK J, PARK M, et al. A feasible method to combat against DDoS attack in SDN network[C]// International Conference on Information Networking. IEEE,2015.
[4]YAN Qiao, HUANG Wen-yao, LUO Xu-peng, et al. A multi-level DDoS mitigation framework for the industrial Internet of Things[J]. IEEE Communications Magazine, 2018, 56(2):30-36.
[5]KALKAN K, ALTAY L, GUR G, et al. JESS: Joint entropy based DDoS defense scheme in SDN[J]. IEEE Journal on Selected Areas in Communications, 2018:1-1.
[6]NO G, RA I. An efficient and reliable DDoS attack detection using a fast entropy computation method[C]// International Conference on Communications & Information Technologies. IEEE Press, 2009.
[7]CHIN T, MOUNTRIDOU X, LI X, et al. Selective packet inspection to detect DoS flooding using software defined networking (SDN)[C]// 2015 IEEE 35th International Conference on DistributedComputing Systems Workshops (ICDCSW). IEEE,2015.
[8]YUAN Jing-bo, LI Hai-xiao, DING Shun-li, et al. Intrusion detection model based on improved support vector machine[C]// Third International Symposium on Intelligent Information Technology &Security Informatics. IEEE, 2010.
[9]BARKI L, SHIDLING A, METI N, et al. Detection of distributed denial of service attacks in software defined networks[C]// 2016 International Conference on Advances in Computing, Communicationsand Informatics (ICACCI). IEEE, 2016.
[10]肖甫,马俊青,黄洵松,等.SDN环境下基于KNN的DDoS攻击检测方法[J].南京邮电大学学报(自然科学版),2015,35(1):84-88.
[11]DOULAMIS N, DOULAMIS A. Semi-supervised deep learning for object tracking and classification[C]// IEEE International Conference on Image Processing. IEEE, 2015.
[12]GARY S, KAUR K, KUMAR N, et al. Hybrid deep-learning-based anomaly detection scheme for suspicious flow detection in SDN: a social multimedia perspective[J]. IEEE Transactions on Multimedia, 2019, 21(3):566-578.
[13]张龙,王劲松.SDN中基于信息熵与DNN的DDoS攻击检测模型[J].计算机研究与发展,2019,56(05):909-918.
[14]鞠恒荣,李华雄,周献中,等.基于Local约简的序贯三支分类器[J].计算机科学,2017,44(09):34-39+57.
[15]LI Dong, YU Chang, ZHOU Qi-zhao, et al. Using SVM to detect DDoS attack in SDN network[J]. Iop Conference, 2018, 466.
[16]李兆斌,韓禹,魏占祯,等.SDN中基于机器学习的网络流量分类方法研究[J].计算机应用与软件,2019,36(5):75-79,164.