基于主成分分析和随机森林的DDoS攻击检测模型研究

2022-05-27 10:11胡晓红缪祥华袁梅宇
化工自动化及仪表 2022年2期
关键词:降维决策树准确率

胡晓红 缪祥华,b 袁梅宇,b

(昆明理工大学a.信息工程与自动化学院;b.云南省计算机技术应用重点实验室)

如今, 互联网安全越来越被人们所重视,在众多现有的威胁中, 分布式拒绝服务攻击(Distributed Denial-of-Service,DDoS)是一种操作起来相对简单但伤害性非常大的攻击内部网和Internet资源的技术[1~3]。 DDoS攻击通过入侵分布在不同位置的主机,在这些主机上安装控制程序使其被操控成为傀儡机来发起大规模的攻击。 当攻击者想要发起攻击时,成为傀儡机的主机便会按照攻击者的指令向被攻击者发起大量攻击,使得被攻击者不能响应正常服务,而且该攻击行为通常会长时间占用网络带宽和系统资源,让正常访问的用户不能及时使用相应资源。

1 研究现状

目前提出的针对DDoS攻击检测的方法很多,支持向量机(SVM)[4,5]、决策树(Decision Tree)等机器学习方法都被用来检测DDoS 攻击。Sharafaldin I等提出基于信息增益来寻找最佳属性[6],然后利用决策树来对DDoS攻击进行划分的方法,该方法先计算数据特征的信息增益,而后根据计算出的每个特征信息增益的大小选出最佳属性(不止一个),最后根据信息增益递归分割数据集生成决策树,但是只寻找最佳属性往往会使得一些数量较少的攻击类型被忽略或者误判。奚玉龙利用粒子群优化算法优化卷积神经网络的卷积核以提高模型的训练效率和全局寻优能力[7],对网络数据特征首先用卷积神经网络的权值共享和最大池化自动挖掘,然后用卷积核进行优化,但是优化时间过长,而对于DDoS攻击来说,能够更为快速地识别出DDoS攻击是十分重要的。汤辉等利用重定向判定机制对访问了分布式蜜罐系统的攻击行为进行分析[8],如果判定是正常行为就交由正常服务器来响应,如果判定是攻击行为则由蜜罐系统进行处理,这样确保了系统的可靠性和实用性,但是经过蜜罐系统后,并不是所有数据都是攻击数据,且判别的准确率和时间需要提高。

针对以上问题,笔者提出了基于主成分分析(Principal Component Analysis,PCA) 和随机森林(Random Forest,RF)的DDoS攻击检测模型。 对于入侵数据首先用PCA进行降维处理, 因为入侵数据通常有非常多的特征,有些特征对于判定其是否为入侵数据并没有起到很大作用, 而PCA可以保留数据的主要特征分量。 降维处理过的数据随后放入随机森林模型,通过对参数的调整,可以快速判别出该数据流是否为入侵数据, 与决策树、SVM及KNN等机器学习算法相比, 准确率和检测速度都得到了非常大的提升。

2 基于主成分分析和随机森林的DDoS攻击检测模型

笔者采用基于主成分分析和随机森林(PCARF)算法对DDoS攻击进行检测,提出了基于主成分分析和随机森林的DDoS攻击检测模型(PCARF DDoS攻击检测模型)。 考虑到DDoS攻击中数据量大和数据特征多的问题, 首先采用PCA对数据进行降维处理。 PCA是一种针对高维数据的技术, 对于处理特征维数多的数据具有很好的效果。 面对数据量大、特征种类繁多的数据,不管是机器学习算法还是神经网络模型处理起这类数据往往都会出现耗时长且准确率不高的问题。 因此,对数据首先进行降维处理可以缩短算法的处理时间,并且通过降维还可以使得数据变得更加直观和易于理解。 降维操作完成后,将处理过的数据放入随机森林模型训练分类。 随机森林通过Bagging方式来产生多组不同的决策树[9],然后将多个决策树合并在一起组成“森林”[10]。 当需要对一个样本进行预测时,森林中的所有树开始参与投票,由于树与树之间相互独立,每一棵决策树都是经过随机且互不影响的训练样本得到的,因此每棵树的分类策略都不一样, 投票结束后,综合整个森林的决策得到最终的预测期望值,产生最优结果。

2.1 模型框架

笔者提出的PCA-RF DDoS攻击检测模型结构框图如图1所示, 该模型主要由3个模块组成:数据预处理模块、PCA-RF算法训练模块和分类测试模块。

图1 PCA-RF DDoS攻击检测模型结构框图

2.2 具体算法

对于很多噪声过大的数据来说,PCA可以去除噪声,让数据变得“干净”。 更加具体地说,PCA可以将大量原始的数据特征融合成少量的特征空间,融合成的新的数据特征可以代表原始数据集中几乎所有数据的特征。 将多个数据流量特征融合到少数几个主要特征中,从而可以降低数据分析的复杂性。 PCA将m维的数据集X融合成n维的数据集Y(m>n),处理后的数据集Y不仅损失的信息很少,而且数据的冗余度也降低了,数据得以综合利用。

首先,提取样本特征生成特征矩阵X1,然后用如下公式计算出X1第j列的样本标准差σj:

x′i1、y′i2、z′i3和w′i4表示每一维度特征减去该列的样本标准差后得到新的特征矩阵X2中的每一个相应元素(此处以4个特征为例)。

得到新的特征矩阵后,在此基础上计算协方差矩阵X3:

计算矩阵X3的特征值λ和对应的特征向量ξ,并将特征值从大到小排序:

其中E为单位矩阵。

选择前k个特征值λ, 计算出其特征向量ξ组成特征矩阵X4,矩阵X4即降维处理完成的特征矩阵。

随机森林是集成了决策树特点的机器学习算法,它不仅继承了决策树在分类问题上的优点和容错率高的特点,还解决了决策树泛化能力差的缺点。

笔者提出的算法结合了PCA可以降低数据分析复杂性和随机森林分类快的优点,具体算法如下:

输入:数据集D,类别集合L,L={0,1} /*D为已经经过数据预处理的数据集*/

输出:最终分类结果T,T={Attack,BENIGN}

①对数据集D生成特征矩阵X; /*X矩阵为有m维特征的矩阵*/

②For each xi∈X

③提取样本特征xi,生成特征矩阵X1;

④End For

⑤根据式(1)得到新的特征矩阵X2;

⑥根据式(2)得到协方差矩阵X3;

⑦For each xi∈X3

⑧根据式(3)计算出特征值λi;

⑨End For

⑩根据λi计算出特征向量, 选取k个特征向量组成特征矩阵X4; /*以此便得出了k维特征矩阵*/

3 实验结果与分析

3.1 实验准备

实验硬件为华为MateBook13, 操作系统为Windows 10,开发环境为jupyter notebook。 采用的数据集为CIC-DDoS2019[4]数据集,它一共包含了87个特征,有数十万条数据,该数据集能够最大限度地模拟真实数据流特征,弥补了以前数据集的缺点和局限性。

3.2 数据预处理

数据预处理操作过程如下:

a. 对数据进行数值化操作,数据集中包含了87个特征,其中float类型的特征有24个,int类型的特征有57个,object类型的特征有6个, 因此将6个object类型特征转换为float类型,便于后续操作;

b. 对于冗余和无意义的特征进行删除;

c. 对于部分行或者列中有缺省的数据进行填充, 填充方法是计算其上下条数据的平均值,然后将其作为缺省值填进去;

d. 利用Python中的LabelEncoder方法将标签中的“Attract”和“BENIGN”转换为“0”和“1”,便于分类;

数据预处理完成后,笔者用train_test_split方法将数据集分为训练集和测试集。

3.3 评价指标

笔者将从准确率 (accuracy)、 精确率(precious)、召回率(recall)、F1-score和训练时间5个方面对模型的DDoS攻击检测进行性能评价。而前几类评价都依赖于混淆矩阵的计算,见表1。

表1 混淆矩阵

其中,TP表示数据类别为正常数据并且模型识别也为正常数据;FN表示数据类别为正常数据但是模型识别为攻击数据;FP表示数据类别为攻击数据但是模型识别为正常数据;TN表示数据类别为攻击数据并且模型识别也为攻击数据。

准确率acc是模型正确判断出该数据为攻击还是正常数量占所有预测数据总量的比例,计算方法为:

精确率pre是模型正确判断出该数据为攻击数据并且该数据也确实为攻击数据的比例,计算方法为:

召回率recall的意思是模型正确判断出攻击数据占所有攻击数据的比例,计算方法为:

F1-score(F1-score)用来衡量二分类问题中模型的综合精准度,取值范围为0~1,1代表模型分类结果最好,0代表模型的分类结果最差,计算方法为:

3.4 结果分析

将PCA-RF算法与传统机器学习中的SVM、KNN、Na l¨ve Bayes、Logistic Regression 和Decision Tree进行对比, 在准确率、 精确率、 召回率、F1-score和训练时间5个方面进行实验,结果见表2。

表2 6种算法性能比较

实验结果表明,笔者提出的PCA-RF算法在准确率、精确率、召回率、F1-score和训练时间5个方面均优于其他算法,分别达到了99.92%、99.22%、99.92%、99.92%、7.311 1 s。 证实了随机森林在检测DDoS攻击中有着比SVM、KNN等传统学习算法更加优秀的表现[11]。

4 结束语

针对DDoS攻击检测问题中的准确率低、检测时间长的问题, 提出了基于PCA和随机森林的DDoS攻击检测模型。 首先使用PCA对数据集进行特征降维,保留数据的主要特征分量,降维处理过的数据放入随机森林模型,可以快速得到分类结果。 实验结果表明,该算法在准确率、精确率、召回率、F1-score和训练时间5个方面均优于SVM、KNN、Na ve Bayes、Logistic Regression、Decision Tree这5种算法。

猜你喜欢
降维决策树准确率
混动成为降维打击的实力 东风风神皓极
基于数据降维与聚类的车联网数据分析应用
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
Helicobacter pylori-induced inflammation masks the underlying presence of low-grade dysplasia on gastric lesions
降维打击
决策树和随机森林方法在管理决策中的应用
决策树学习的剪枝方法