本文发表于2019年4月,ACM东南会议纪要,作者为奥萨马·费克等人,现收录于ACM网站。
原文题目:使用大数据和深度学习技术进行入侵检测
原文链接:使用大数据和深度学习技术进行入侵检测|2019年ACM东南会议纪要
本文构建了DNN,RF和GBT三个分类器在UNSW NB15和CICIDS2017两个数据集上进行二分类和多分类。同时采用同质性度量方法用来提取特征,与全数据集构成对比实验。实验结果表明,二元分类中GBT准确率最高,但是耗时长;多分类中,DNN时间短且准确率高。同时,挑选特征的方法得到的数据集效果显然比全数据集的效果更好。
摘要
第一节:介绍
第二节:相关工作
1. 关于数据集
2. 相关工作
第三节:分类技术
3.1 K均值聚类和同质性度量
3.2 深度神经网络(DNN)
第四节:提出的方法
4.1 数据预处理
4.2 使用同质性度量的特征排序和选择
4.3 应用深度神经网络和集成技术
第五节:结果和评价
5.1 二元分类
5.2 多元分类
总结
本文构建三个分类器:深度馈送神经网络(DNN)和两种集成技术:随机森林(RF)和梯度增强树(GBT)。数据集采用UNSW NB15和CICIDS2017,此方法采用5倍交叉验证来评估机器学习模型。实验表明,DNN对UNSW NB15进行二分类和多类分类准确度很高,二元分类准确度99.16%,多元分类准确度97.01%。虽然GBT分类器在 CICIDS2017 数据集中实现了二进制分类的最佳精度,为 99.99%,但多类分类DNN的准确性最高,为 99.56%。
通过计算均匀性,采用K-means技术来进行特征选择。构建三个分类器深度神经网络、随机森林和梯度增强树进行分类。
(1)CICIDS2017
CICIDS2017数据集提取了八十多个特征,包含14种类型的攻击。包含227w条正常信息(占80%)和55w条攻击信息记录(占20%)。
(2)UNSW-NB15
UNSW-NB15数据集被认为是评价现有和新型IDS方法的可靠数据集。该数据集由254w条记录,其中有9种常见攻击。正常信息占数据集大小88%,攻击信息12%。
(1)Coelho等人,建议在标签和数据集群之间使用同质性度量来进行半监督特征选择。结果表明,从聚类中检索到的信息可以提高特征相关性和特征选择任务的估计,特别是在标记数据数量太少且未标记数据众多的情况下;
(2)Vijayan等,提出了一种基于遗传算法的特征选择和多支持向量机分类器的入侵检测系统,所提出的方法依赖于选择每种攻击类别的信息特征,而不是每种攻击的共同特征。应用于CICIDS2017数据集,获得了较高的检测精度;
(3)AI-Zewairi等人,提出了一种基于人工神经网络(ANN)的深度学习模型,采用反向传播(随机梯度下降法),在UNSW-NB15上进行二分类。DL模型包含5个隐藏层,每层10个神经元,采用10倍交叉验证技术。结果表明,该模型精度高,报警率较低。
K-means聚类算法是常用无监督聚类。数据分为k组,即集群数量。然后为每个簇选择质心,质心与数据点之间的距离用欧几里得方程测量。
(1)对最接近质心的数据点进行分组;
(2)计算这些数据点之间的平均距离,并将平均距离定义为新的质心;
(3)重复这个过程,直到没有数据点在集群之间移动。
另一方面,同质性是一个聚类度量,用于确定单个聚类中数据点的同质性。集群意味着将单个类的成员的那些数据点分配给单个集群。这意味着簇的熵应该为零。熵指的是随机性或者不可预测性。同质性被定义为:
其中H(C、K)是给聚类分配的类的条件熵。计算方法为:
H(C)是类的熵:
其中n是数据点数量,n(c)是节点n属于c类,n(k)是期望分到簇K的节点数量,n(c, k)是来自簇c被分配给簇k的数据点数量。
提出的DNN包含三个隐藏层,每一层都完全连接到下一层,隐藏层使用ReLU函数,输出层使用sigmoid函数进行二分类,使用SoftMax函数进行多分类。
我们提出的方法包括三个主要节点:数据预处理,特征排序和选择,创建和评估学习模型。
(1)删除套接字信息;
(2)删除空格;
(3)数据归一化;
数据预处理后,将K-means算法用于数据集进行特征排序和选择。
特征排序和选择是指将每个属性单独处理,使用它聚类数据集。在二分类中,数据点被聚类为正常和异常两组。对于多类分类,K等于数据集中攻击类型的数量。计算得到的的类的同质性得分,然后用作用于聚类的特征的排名得分。排名得分越高,说明特征可以更好的进行分类,反之,特征没什么用。当确定每个特征的同质性等级时,它们从最高等级按降序排列到最低等级。同质性值在0到1之间,零表示聚类中特征的数据点之间缺乏同质性,1表示特征的高同质性。在分类过程中,找到一个属于单一类的唯一特征可能比依赖于公共特征更有效,特别是在从多个来源生成的异构数据数量不断增加的情况下。
首先将DNN,GBT和RF应用于完整的CICIDS2018和UNSW-NB15数据集,然后应用于从两个数据集中选取的特征的子集。
DNN输入层分别使用43和78个节点来表示UNSW-NB15和CICIDS2017数据集中输入特征的数量。设置3个隐藏层,分别有128,64和32个节点。在隐藏层中使用ReLU激活功能。SoftMax函数在输出层中用于多类分类,sigmoid函数用于二进制分类。 通过学习模型的反向传播,训练epoch设置为1000,batch大小设置为100万,这是单批中出现的训练示例的总数。首先测试二分类,分类为正常类型和攻击类型,其次多分类测试,所有攻击类型用于多类分类任务。
机器学习技术最初被应用于具有所有特征的数据集(充分考虑)。然后,从数据集中取出排名最低(同质性得分最低)的特征,并重复分类并评估精度度量。每次重复中不断删除下一个排名最低的特征,并评估分类结果,直到最后一个特征(得分最高的特征)。RF中,树数设置为100颗,深度设置为4。GBT中,使用loss损失函数,应用100次迭代。
使用5倍交叉验证。
这些实验使用了10个集群。采用PySpark实现。
下面是CICIDS2017数据集二元分类结果: