SDN环境下基于支持向量机的DDoS攻击检测研究
2021-02-05王灵矫吕琮霞
王灵矫,吕琮霞,郭 华
(1. 湘潭大学 信息工程学院,湖南 湘潭 411105;2. 湘潭大学 智能计算与信息处理教育部重点实验室,湖南 湘潭 411105)
软 件 定 义 网 络 (Software-Defined Networks,SDN)[1-2]将控制平面与数据平面分层,使网络管理变得简单以便于在各类网络环境中部署,尤其适用于多租户数据中心网络场景[3]. 但该架构也带来一些新的安全问题,SDN交换机解耦控制功能与数据转发功能,根据其转发接收分组的规则,分布式拒绝服务(Distributed Denial of Service,DDoS)[4]将大量虚假IP地址数据包发送给交换机,因交换机无匹配的流表项从而转发至控制器,利用这种处理延迟,DDoS攻击容易导致集中控制器过载而耗尽CPU、内存等资源.
近年来,针对SDN网络的DDoS攻击检测主要分为基于统计学习和基于机器学习两类. 基于统计学习的异常检测方法利用信息熵体现数据流量的随机性,文献[5]提出基于统计熵的异常检测机制,结合sFlow的数据包采样和openflow协议进行流量采集,通过设定数据包目的IP地址的信息熵阈值来判断网络是否异常. 文献[6]提出基于数据分组的SDN网络早期异常检测机制,根据目的IP地址的分布概率计算数据分组的熵值并与阈值比较,实现在250个分组之内判断网络是否异常,但该方法仅进行了熵值计算,未详细描述DDoS攻击的数据包特征. 在基于机器学习的异常检测方法中,监督学习、无监督学习以及神经网络方法在时间开销和检测率上都比统计学习更优. 文献[7]提出基于支持向量机 (Support Vector Machine,SVM)的异常检测机制,通过计算数据流量的SVM超平面,判断SDN网络流量异常与否,但该方法实验描述单一,未从时间开销等方面分析其高效性. 文献[8]针对SDN集中控制器的特点通过自组织神经网络SOM分类流量数据,但该方法训练时间较长. 文献[9]提出一种基于K近邻的DDoS攻击检测方法,但是该方法的特征提取不够全面,比如流表项增速这一特征在正常流量和异常流量中也表现迥异. 文献[10]提出基于C4.5决策树的DDoS攻击检测方法,但是该方法的检测率和时间开销仍有提升空间. 综合分析SDN环境下基于机器学习的DDoS攻击检测方法,SVM[11]具有良好的分类性能,但时间开销较大.K近邻[12]效率高,但需计算测试点与训练集中每一数据点的距离导致空间复杂度高.
根据上述方法存在的问题,本文提出一种改进型SVM分类算法—RF-SVM,其基本思想是将随机森林[13]的信息增益特性引入SVM算法,将信息增益作为流量特征的权重值,筛除重要程度小的特征,实现流量分类的检测率、查全率及F1值的提高.
本文主要有以下几点贡献:
(1) 提出SDN环境下DDoS攻击检测框架,根据SDN网络的流量特性获取流表项信息,提取与攻击数据包相关的六维特征.
(2) 基于SVM算法和随机森林算法的特性提出具有更优性能的RF-SVM算法. 通过随机森林的信息增益特性对所选六维特征赋予权重,筛除对分类无明显帮助的特征以得到最优特征子集. SVM算法根据特征子集训练样本,得到最优分类超平面,测试样本的正负标签由最优分类超平面决定. 新算法高效地实现了DDoS攻击流量与正常流量的分类.
(3) 基于Floodlight控制器实现DDoS攻击检测的相关实验. 结果表明,本文方法在相同场景下能够达到98.62%的检测率,比其他方法有不同程度的提升,提升了SDN环境下攻击流量的分类效率.
1 基于 RF-SVM 的 DDoS 攻击检测技术
1.1 框架介绍攻击检测框架由流量收集模块、特征提取模块、攻击检测模块3部分构成,基于RFSVM的DDoS攻击检测框架如图1所示.
图 1 基于 RF-SVM 算法的 DDoS 攻击检测框架Fig. 1 DDoS attack detection framework based on RF-SVM algorithm
流量收集模块调用控制器与数据平面之间的OpenFlow[14]南向协议接口,获取OpenVSwitch交换机上所有数据包的流表信息. 特征提取模块进行流表信息预处理,计算各数据流量相关的特征值,本文选取六维特征进行计算. 攻击检测模块接收处理后的特征数据集,并判断其为正常流量还是异常流量.
1.2 特征提取根据DDoS攻击下网络流量特性,本文选取文献[10]的3个特征,并新增3个特征作为DDoS攻击检测算法的输入,具体如下:
(1)流包数均值 由于DDoS攻击下,攻击主机短时间生成大量隐蔽真实地址的虚假源IP地址流包,导致攻击流的生成速度显著提高,每条流所含的平均数据包数量增加. 定义采集周期T内的流包数均值为
其中,Pj是第j条流表项所含的数据包数量,n是采集周期T内的流总数.
(2)字节数均值 DDoS攻击下发送大量的数据包代表其短时间内数据包字节数同样剧增,从而平均每条流表所含的数据包字节数增加. 定义采集周期T内的字节数均值为
其中,Mj是第j条流表项所含的数据包字节数,n是采集周期T内的流总数.
(3)端口增速 网络正常状态下,端口变化量比较稳定,而在DDoS攻击情况下恶意主机会随机生成端口号隐蔽真实端口号,导致端口增速产生明显变化. 定义端口增速为
其中,KT为采集周期T内端口号的数量,T为采集周期.
(4)源IP地址增速 恶意主机通过生成大量虚假源IP地址数据流对目标主机发起DDoS攻击,导致源IP地址增速明显提升. 定义源IP地址增速为
其中,IT为采集周期T内的源IP地址数量,T为采集周期.
(5)流表生存时间变化 网络正常情况下,流表生存时间变化量比较稳定,DDoS攻击通过发送大量攻击数据包使交换机中相应的流表项不断被激活,导致流表生存时间变长. 定义流表生存时间变化为
其中,Tdur为采集周期T内每条流表项的生存时间,Sflow为周期T内流表项总数.
(6)对流比 DDoS攻击发生时,由于攻击方伪装源IP地址导致交互性的对流数减少. 定义对流比为
其中,m为对流的数量,n是网络中的流总数.
2 攻击检测算法—RF-SVM 算法
SVM作为一种双分类算法,在处理不平衡数据上具有良好的泛化和处理能力,分类准确率高,但其在大数据量样本集中呈现时间复杂度高的问题. 本文提出的RF-SVM算法通过有机结合随机森林与SVM,分类前首先筛选无用特征,以样本空间量的减小实现检测性能的提高和时间开销的减小.
RF-SVM算法的基本流程图如图2所示,主要包括数据预处理、特征权重排序、SVM数据分类3个阶段. 权重排序是本算法的核心部分,产生优化的特征子集.
2.1 特征权重排序构造随机森林分类器,步骤如下:
图 2 RF-SVM 算法基本流程图Fig. 2 Basic flow chart of RF-SVM algorithm
步骤 1在SDN网络中通过洪泛发起DDoS攻击,抓取n个包含正常流量与异常流量的OpenFlow数据包,通过前述特征提取模块整合计算得到n个六维特征数据集. 随机选取s个六维特征训练集训练决策树,每次选取完毕均需放回训练样本集.
步骤 2随机选择(m≤6)个特征,利用信息增益策略选择信息增益最大的特征作为决策树节点的分割属性.
步骤 3使用步骤2分割决策树中的每个节点,直到其不能再被分割为止.
步骤 4根据步骤1到步骤3迭代n次构建决策树.
步骤 5所构建的森林对六维特征测试集Xi进行投票计数,获得最高选票的类别即为Xi的分类标签,并判断此数据样本是正常流量还是异常流量.
由上述构建好的随机森林分类器获取每个特征的权重,ID3决策树算法作为随机森林的特征权重算法,熵代表网络流量的无序性. 熵值可用于DDoS攻击的六维特征数据流量的随机性检测,熵值越大数据包的随机性越高,信息熵的计算公式如
随机变量X代表整合计算得到的六维数据流量特征集,p(xi)代表X中任意数据流量xi的出现概率.
假设按六项特征中的某一项特征Yj对样本X进行分类,则条件熵定义如
其中,|X|表示样本容量,|Xi|表示根据不同特征划分的第i个子集样本个数,设有K个类Ck,k=1,2,…,K,记子集Xi中属于类Ck的样本的集合为Xik,|Xik|为Xik的样本个数. 条件熵越小则表示用此特征分类的纯度越高.
信息增益定义为信息熵与条件熵之间的差,如
信息增益越大代表此特征越重要,重复6次计算得到每个特征的信息增益.
通过上述步骤计算得到DDoS攻击下所提取六维特征的权重值 ωxi,通过多次实验给权重 ωxi设定一个合理权重阈值 α,用SVM算法对ωxi>α的特征数据集进行训练和预测,实现筛选特征提升DDoS攻击检测率的目的.
2.2 SVM 分 类对于筛选后的n(n<6)维特征集D,利用SVM算法在该数据流量集中找到一个超平面分类出正常流量或是异常流量,用+1或−1分别代表正常流量或异常流量的分类标签. 则问题转换为求解最大间隔超平面,超平面示意如图3所示.
图 3 支持向量机分类超平面Fig. 3 The classification hyperplane of Support Vector Machine
由超平面示意图可知,超平面的选取须尽可能满足正常流量数据与异常流量数据的间隔最大,超平面的线性方程可由式(10)表示.
其中x为输入的n维流量特征, ω 为可调权值向量,ωT为 ω 的 转置,b为超平面相对原点的偏移量. 任意流量数据x到超平面 (ω ,x) 的距离r表示如下:
对于 (xi,yi)∈D,当yi= + 1 时, ωTx+b>0;当yi=−1时, ωTx+b<0. 为了获得正常流量与异常流量距离的最大值,即求解||ω||的最小值使得2r最大. 因此SVM的优化问题可转换为
拉格朗日优化方法使最优超平面问题对偶化,引入拉格朗日乘数 αi, 如果满足并且αi≥ 0 (i=1, …,n),上述约束问题可以定义为
最终得到最优的SVM分类器
将筛选后的n维流量特征集用训练好的SVM分类器进行DDoS攻击检测分类,把流量区分为正常流量和异常流量.
2.3 RF-SVM 算 法总结RF-SVM 算 法描述如下:
步骤 1在算法初始阶段,SDN网络发起洪泛抓取n个数据流量,根据流表信息计算提取六维特征构成初始数据集,将其作为算法输入.
步骤 2针对数据集初始样本可能有数据缺失的情况,通过补0或1对初始数据集进行预处理.
步骤 3根据式(9)计算六维特征权重值,得到特征权值集合 ωi.
步骤 4根据设定的阈值 α 删除不满足权重条件的特征即删除特征权重值 ωxi< α 的特征,得到最优特征子集A_subset.
步骤 5由式(14)产生的SVM分类器,根据特征子集对测试流量特征数据集进行分类.
RF-SVM算法结合随机森林与SVM的优点,分类性能良好,节省了时间开销;构建的决策树只提取其特征信息增益部分不受过拟合现象影响;分类过程由于筛选了冗余特征不会增大时间复杂度.
3 实验分析
3.1 性能评估指标分析 DDoS 攻击检测效果,一般采用检测率(P)、查全率(R)、F1值 3 个指标. 其中:
检测率表示RF-SVM分类器的准确度,查全率表示RF-SVM分类器分类的完备度,F1值为综合检测率与查全率之后的调和平均.T、F、N的含义如表1所示. 其中C1,C2分别表示所属类别是正常流量或是攻击流量,di表示第i个测试样本.
表 1 RF-SVM 算法分类结果混淆矩阵Tab. 1 Confusion matrix of RF-SVM algorithm classification results
3.2 KDD99 数据集的实验分析为了验证 RFSVM算法识别攻击流量的有效性,避免SDN环境下因数据采集有误导致算法检测率不准确的问题,实验首先采用稳定的国际标准数据集KDD99进行算法性能验证. KDD99数据集包含22种攻击类型,42个流量特征,选取其中8个特征用做攻击检测:duration、 src_bytes、 dst_bytes、 logged_in、 hot、num_access_files、srv_count、is_guest_login. 训练集与测试集的样本数量比例为3∶1.
3.2.1 实验结果 表 2显示了 RF-SVM算法中利用随机森林权重特征计算得到的特征权重值,多次训练取最优权重阈值 α 为0.02,得到特征子集:src_bytes、dst_bytes、logged_in、srv_count.
如图4所示的柱状图,显示了RF-SVM算法与RF及SVM算法的整体对比,其结果是RF-SVM算法的检测率、查全率、F1值分别比SVM算法和RF算法提升了1.87%、−0.42%、1.51%和2.87%、1.18%、2.01%. 可以看出RF-SVM算法在分类性能上有较大改善.
表3显示了各个算法的时间开销对比,RF、SVM、RF-SVM算法的执行时间分别是0.545 9、24.841、20.795 s,可以看出,RF-SVM 算法执行效率相比SVM算法有明显改善,但还是低于其他5种算法,这源于SVM算法本身的高时间复杂度.
表 2 KDD99 数据集下 RF-SVM 算法得到的各特征权重Tab. 2 Feature weights calculated by RF-SVM algorithm on KDD99 data set
图 4 KDD99数据集下RF-SVM算法与RF算法和SVM算法对比Fig. 4 Comparison of RF-SVM algorithm with RF algorithm and SVM algorithm on KDD99 data set
表 3 KDD99 数据集下各个算法时间开销对比Tab. 3 Comparison of time cost of each algorithm on KDD99 data set
3.3 SDN 环 境 的 实 验 分 析实 验 使 用 Mininet模拟SDN网络环境,SDN控制器选择floodlight控制器. Floodlight是一种基于Java开发的OpenFlow轻量级控制器,具有良好的稳定性和可编程性. 主机配置为 3.3 GHz,4 GB 内存 CPU,操作系统为ubuntu16.04.
使用如图5所示的网络拓扑进行实验,交换机s1连接的Net1网络包含20台主机,交换机s2连接的Net2网络包含有10台主机. Net1是报文发送网络,Net2是受攻击网络,Net1可以向Net2发送DDoS攻击流量或者是正常报文. 使用经典的DDoS攻击工具hping3从Net1网络向Net2网络某一特定主机发送 TCP SYN flood,UDP flood,ICMP flood攻击,使用抓包软件Wireshark分析数据头部包含的信息.
图 5 SDN 环境下网络拓扑Fig. 5 Network topology in SDN environment
3.3.1 实验结果 表4显示了RF-SVM算法在SDN下六维特征数据集通过随机森林计算得到的权重值,多次训练取最优权重阈值 α 为0.15,筛选1.2节中的六维特征得到四维最优特征集:FT、BT、PT、C.
表 4 SDN 环境下 RF-SVM 算法得到的各特征权重Tab. 4 Feature weights calculated by RF-SVM algorithm under SDN environment
图6所示柱状图直观显示了RF-SVM算法与RF及SVM算法的对比,其结果是RF-SVM算法的检测率、查全率、F1值分别为98.62%、98.41%、98.51%,SVM算法的检测率、查全率、F1值分别为97.51%、97.56%、97.49%,前者较后者分别提升了 1.11%、0.85%、1.02%. RF算法的检测率、查全率、F1值分别为 96.32%、92.91%、94.09%,RFSVM算法较之分别提升了2.3%、5.5%、4.42%.
表5显示了各算法的时间开销对比,RF-SVM、SVM、RF 3个算法的时间开销分别是 17.254、21.965、0.536 s,可以看出,RF-SVM 算法执行效率相比SVM算法有较大提升,但相较RF算法RFSVM算法时间开销仍有待提升.
综上可知,RF-SVM算法优化了分类器性能,较大提高了SDN环境下DDoS攻击检测的分类性能.
图 6 SDN 环境下 RF-SVM 算法与 RF 算法和 SVM 算法对比Fig. 6 Comparison of RF-SVM algorithm with RF algorithm and SVM algorithm in SDN environment
表 5 SDN 环境下各算法时间开销对比Tab. 5 Comparison of time cost of each algorithm in SDN environment
4 结束语
随机森林引入的节点分裂技术展现出良好的分类性能,SVM对不平衡数据有较好的分类效果,因此基于随机森林和SVM提出一种改进型加权SVM算法,采用加权SVM应用于SDN环境下的DDoS攻击检测领域. 新算法以随机森林的信息增益相关参数 ω 匹配各特征的权重比,以 α 值匹配特征权重阈值,筛除对分类无显著帮助的特征,利用SVM分类算法对特征子集检测分类,消除SVM特征重要性一致产生的影响. 实验结果证明RF-SVM算法提升了分类器性能,既保证了算法的简易高效性又提高了攻击检测的准确率,虽然RF-SVM算法的执行效率比SVM算法有明显提升,但相对其他算法仍然有很大时间开销,如何进一步改善算法执行效率是下一步的研究重点.