本文为我研究生第一学年所做,发表于《电子与信息学报》,利用RNN算法对AWID公开数据集进行处理,达到了目前最高准确率,原文链接如下《基于循环神经网络的无线网络入侵检测分类模型构建与优化研究》。希望本文能为网络安全进一步发展做出一点小小的贡献。 如需下载请点击右方的本地下载即可。 本地下载
1. 引言
随着互联网的飞速发展,网络已经成为日常生活不可分割的一部分。互联网的使用改变了人们的生产生活方式。尤其是物联网在智能交通、智慧城市等方面的广泛应用,在极大方便生活的同时,使得各种安全威胁变得越来越严重。如何识别各种针对IEEE802.11协议[1]的网络攻击,对保证物联网安全具有十分重要的意义。入侵检测系统(Intrusion Detection System, IDS)是使用最广泛的用于识别各种类型攻击的工具,它可以识别正在发生的或者已经发生了的入侵。事实上,可将对无线网络的入侵检测转化成一个2分类或多分类问题,即识别网络流量是正常还是异常,或者识别网络流量是正常还是其它攻击中的一种。 Kolias等人[2]研发的爱琴海无线入侵数据集(Aegean WIFI Intrusion Dataset, AWID)是一种公开可用的易于分发的数据集,包含正常和入侵802.11无线网络的实际流量记录,目前国际上共有342家研究机构在使用该数据集[3]。著名的KDD’99为针对有线环境的数据集,该数据集主要用于传统的互联网安全研究,但该数据集发布距今已接近20年,不能反映最新的无线网络攻击技术。AWID数据集从专用WEP保护的802.11无线网络的实际使用中提取,利用metasploit, MDK3等工具,对网络进行了分片攻击(fragmentation)、断续攻击(chopchop)、解认证攻击(deauthenticaton)等15种攻击实验,并将其分为洪泛攻击(flooding)、伪装攻击(impersonation)和注入攻击(injection)3大类。洪泛攻击会造成每单位时间管理帧的突然增加,这种类型的攻击可能会导致服务不可用,也就是拒绝服务(Denial of Service, DoS)攻击。此类攻击通常针对特定客户端,或者试图耗尽网络资源(例如Access Point, AP)导致其中所有客户端的服务不可用。伪装攻击在邻域中引入额外的AP,广播预先存在的有效网络的信标帧,经常与短暂的解除认证帧相结合,以便攻击者可以强制受害者连接到自己的非法AP。这种类型的攻击可能会导致中间人攻击(man-in-the-middle)或密钥流(keystream)猜测攻击。注入攻击通常会导致大量小规模有效加密数据帧的泛滥。攻击者倾向于在很长一段时间内传输大量小数据帧,希望能够唤起网络的适当响应,用以对密钥或密钥流进行猜测攻击。 根据不同攻击的网络流量特征,可将该流量通过入侵检测模型进行分类。因此,针对入侵检测分类模型性能优化问题可转换为如何提高网络流量分类的准确率。近年来机器学习的流行使其被广泛用于识别各种类型的攻击,机器学习方法在一定程度上可以帮助网络管理员采取相应的措施来防止入侵。然而,大多数传统的机器学习方法属于浅层学习,不能有效地解决真实网络环境中出现大量入侵数据的分类问题。随着数据集的动态增长,多个分类任务的准确率也随之下降。相比之下,深度学习可从数据中提取不同特征的内在联系以创建更好的模型[4],对数据序列的前后关联信息进行挖掘,实现序列数据的有效地处理。 Kolias等人利用AdaBoost, J48, Naive Bayes, Random Forest等机器学习算法对AWID数据集进行建模测试,其准确率为90%~96%,表现最佳的J48算法达到了96.2574%的准确率,花费时间568.92 s。Alotaibi和Elleithy[5]针对AWID数据集构建了一个基于误用的无线局域网入侵检测系统(Wireless Intrusion Detection System, WIDS),测试了几种机器学习算法并利用多数投票技术将其组合起来,最终达到了96.32%的准确率,花费时间390 s,但也无法准确识别伪装攻击。Thing[6]针对AWID数据集利用栈式自动编码机深度学习方法提出了基于异常检测和分类的解决方案,通过调整激励函数来对网络进行优化,并最终获得了98.6688%的准确率,花费时间并未说明,虽然取得了较高的准确率,但实验过程并未提及所用的深度学习软件框架以及详细实验参数和步骤,所以其他研究人员很难重现其结果。Yin等人[7]对KDD’99有线网络攻击数据集提出了一种使用循环神经网络的入侵检测深度学习方法(RNN-IDS)并研究了模型在2元分类和多类分类中的表现,以及神经元的数量和不同学习速率对该模型性能的影响,为入侵检测提供了一种新的研究方法并获得了81.29%的准确率,花费时间11444 s,但是只针对有线网络建立检测模型,并未对无线网络入侵模型进行优化。陈红松等人[8]通过软件工程方法实现了用于内网用户异常行为分类的朴素贝叶斯算法。 通过对现状分析可知,深度学习有可能从数据中提取更好的特征表示以创建更好的模型。本文受循环神经网络启发,在隐含层引入了反馈机制,对时间序列数据的前后时间关联信息进行学习,实现时间序列数据的有效处理,本文提出一种基于循环神经网络的针对IEEE802.11无线网络环境的入侵检测分类模型,并通过实验进行验证和优化。2. 基于RNN的无线网络入侵检测预实验及问题描述
2.1 无线网络入侵检测数据预处理 通过对AWID数据集分析发现该数据集存在缺失、乱码和重复等问题,无法直接用于无线网络入侵检测模型的构建。为构建基于循环神经网络的IEEE802.11无线网络入侵检测系统,需对原始数据集进行数据清洗、数据变换、特征选择等预处理步骤。由于“脏数据”扭曲了原始数据信息内在的相关联系,严重影响数据分析和处理的运行效果。因此数据清洗时,需要利用自定义的清洗规则,手工或自动地将脏数据转换成满足数据质量要求的数据。数据清洗面对的主要问题是空缺值、错误数据、孤立点和噪声,解决方案是利用相同的常数填补数据集缺失,将存在的特殊符号及乱码进行清空或替换处理。由于AWID数据集存在的154个特征中,既有数值数据,也有字符数据,而RNN的输入值应该是一个数值化矩阵,所以需要将数据标准化,数据变换时,对非数值化特征如“wlan.ra”、“wlan.da”等转化为数值形式。 由于一些特征字段不一定能够用于区分合法用户和攻击者的痕迹,一些信息可能会阻碍分类任务,特别是在由许多不同特征字段组成的分类问题中,提取重要特征在降低开销的同时甚至可以提高分类器的准确度,因此特征选择对于提高分类器精度和效率都是十分必要的。本文采用基于机器学习模型的特征选择算法,对AWID数据集中的154个特征及类别标签建立预测模型并利用extra tree算法从中选取20维重要特征,包括frame.len, wlan.sa, wep.iv, wlan.ta等重要特征,如表1所示。将处理后的训练集作为训练样本构造RNN-IDS入侵检测模型,并用测试集进行测试。 2.2 基于RNN的无线网络入侵检测分类模型预实验及问题描述 本文利用TensorFlow开源机器学习软件框架进行预实验,构造基于RNN的无线网络入侵检测分类模型,所设置参数包括输入层、中间层、输出层3层,神经元使用基本RNN单元,网络结构参数包括输入层节点20个、输出层节点4个、中间层节点20个,学习率0.001,采用该RNN分类模型对AWID训练集进行训练,得到无线网络入侵检测分类模型。使用训练得到的RNN模型对测试集进行测试,得到分类准确率为92.17%,并且随循环轮次的增加分类准确率无法继续提高。经过对原始测试集和预测结果统计发现,原始测试集中正常标签样本数,洪泛攻击标签样本数,伪装攻击标签样本数和注入攻击标签样本数分别为530785、8097、20079和16682,经模型预测输出交叉矩阵,发现分类器将所有测试样本的类别标签全部预测为正常,即分类器无法识别任何攻击类别。 经分析发现,产生上述问题的原因是AWID训练集中存在数据类别不均衡的问题,经统计正常标签样本与攻击标签样本数量的比值接近10:1,训练集中数据类别不均衡问题会导致分类器对正常标签类别产生过拟合,而对其他攻击标签类别产生欠拟合。在实际网络环境中,会出现持续的正常流量和异常流量,然而正常流量的比例会明显大于异常流量,此时若不对正常流量进行欠采样操作,训练集数据类别不均衡问题会导致分类器产生过拟合现象,从而使攻击检测失效。因此需要对训练数据集样本进行实例选择,通过欠采样操作适度减少正常标签样本的数量,消除训练集中数据类别的不均衡问题。3. 基于RNN的无线网络入侵检测模型的构建与优化
针对RNN模型对攻击类型无法有效识别、原始训练集样本类别不均衡等问题,本文提出无线网络入侵检测分类模型的构建与优化流程,如图1所示。 由图1可知,经过对AWID原始数据集进行数据清洗变换,特征选择等预处理,需要继续进行3.1节—3.4节的优化及处理。 3.1 实例选择 AWID-CLS-R-Trn训练集共包含1795575条记录,其中1633190条记录为正常流量,162385条为攻击流量。该数据集采集了无线网络1 h的数据,前45 min是没有攻击的,只有后15 min包含攻击。因此数据集的前部分大量出现了正常样本,从而导致RNN分类器对正常样本过拟合,无法识别后续样本的标签。而且对于RNN来讲,类别不均衡问题会导致分类器性能显著下降甚至完全丧失分类能力。因此需要对AWID训练数据集进行实例选择,从而有效抑制训练数据样本分布不均衡问题。本文针对AWID训练数据集中正常样本过多导致分类器过拟合问题,具体采用的方法是对于正常样本进行欠采样操作。由于训练数据集是时间序列样本,采集的正常样本遍布整个采集周期,本文采用窗口的思想对数据进行欠采样。设样本空间 T={T1,T2,⋅⋅⋅,Tn} ,当前样本为Tt,正常样本为normal,基于窗口的实例选择算法SamSelect的伪代码如表2所示。 窗口阈值与采样数据分布关系如表3所示,将在后续模型评估中通过实验进行选择合适的窗口阈值。 3.2 训练模型 从上述推导可见RNN任意时刻输出,与之前时刻的输入均有关,这使得循环神经网络具有处理时序数据的能力。但RNN隐含层的输入会随时间的递推覆盖原有数据信息,导致上下文信息的缺失,产生梯度消失问题。 本文采用TensorFlow开源机器学习框架[10],利用前述约减后的数据集构造基于循环神经网络的无线网络入侵检测模型,使用基本RNN单元,网络参数为20个输入节点,4个输出节点,中间隐藏层1层,隐藏层节点20个,学习率0.001。本文训练模型核心代码如图4所示。 3.3 模型评估 本文实验网络结构参数为20个输入节点,4个输出节点,中间隐藏层节点为20个,学习率设置为0.001,循环轮次设置为300。分别测试了在实例选择窗口大小分别为5, 2时的分类实验结果,如表4、表5所示。 AWID-CLS-R-Tst测试集共有575643条样本,其中正常标签流量样本530785条,洪泛攻击标签流量样本8097条,伪装攻击标签流量样本20079条,注入攻击标签流量样本16682条。其中伪装攻击标签流量包含咖啡拿铁攻击(Caffe Latte)、牧羊人攻击(Hirte)、邪恶双胞胎攻击(Evil Twin)、蜜罐(Honeypot)等小类攻击,而训练集中没有牧羊人攻击的样本,因此测试集属于牧羊人攻击的样本对于RNN分类器来讲属于新类,所以对其不具有识别能力,可以解释RNN分类器伪装攻击标签流量识别的召回率和准确率均较低的现象。 由表3、表4可见,窗口大小变小时,训练集正常标签流量样本数量变少,因此RNN对于正常标签流量的召回率有些许降低,但准确率有微弱提升;对于洪泛攻击标签流量的召回率有所提高,但准确率有轻微下降;对于伪装攻击标签流量的召回率有大幅提高,在窗口为5和2时均对其具有了一定的识别能力。而窗口大小对于注入攻击标签流量的识别基本没有影响。在时间方面,窗口为5, 2的RNN分类器进行300次循环消耗的时间分别是553.7 s和437.7 s。可见实例选择窗口为2时,RNN分类器能够在训练时间显著减少的同时保持分类能力,甚至可以提高对于伪装攻击标签流量样本的识别效果,因此窗口选为2。 3.4 模型优化 3.4.1 网络单元结构优化 长短时记忆网络(Long Short-Term Momery, LSTM)[11]是一种特殊的RNN类型,其区别于普通RNN的地方,主要就在于它在算法中放置了3扇门,分别叫做输入门(input gates)、遗忘门(forget gates)和输出门(output gates),通过门结构的设计来避免梯度消失问题。门结构的存在可以让LSTM单元保存和获取长时间周期的上下文信息,LSTM单元内部结构如图5所示。 门控循环单元(Gate Recurrent Unit, GRU)[12]可以视为LSTM的一种变体,GRU的结构更为简单,计算量也相对较小。GRU将LSTM中的遗忘门和输入门整合为一个更新门(update gates),也就是将原来由3个门组成的细胞结构优化成两个门组成的细胞结构。重置门(reset gates)决定了如何将新的输入信息与前面的记忆相结合,更新门定义了前面记忆保存到当前时间步的量。如果将重置门设置为1,更新门设置为0,那么就得到标准RNN模型。 为达到更高的识别准确率,花费更少的时间,需对模型进行优化。网络结构优化效果对比如表6所示。 长短时记忆单元特有的门结构解决了传统循环神经网络时间维度的梯度消失问题,实现较大范围的上下文信息的保存与传输,提高了LSTM单元对具有长时间间隔相关性特点的序列信息的处理能力。由上述实验可知,LSTM在隐藏层数为两层,隐藏层节点为10个,学习率为0.005时,在不影响分类器准确率的同时达到了效率的提升。 3.4.2 激活函数选择 激活函数(activation function)是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。激活函数的主要作用是提供网络的非线性建模能力。每一种激活函数都有各自的优缺点,需通过实验选择最适合当前模型的激活函数。常见的激活函数有修正线性单元(Recitified Linear Unit, ReLU)函数、sigmoid函数、tanh函数和softmax函数等。在网络优化结构基础上,采用网络参数为LSTM神经元,隐藏层2层,隐藏层节点10个,学习率0.005。通过实验发现,ReLU获得了最高的准确率95.73%,且其时间也最低767.84 s。实验证明ReLU激活函数对于该数据集具有更好的拟合效果。 3.4.3 优化模型的复用 由于训练一个模型需要较长时间,且模型并不一定能每次都达到最为拟合数据的情况,因此tensorflow针对这一需求提供了Saver类,利用tensorflow中的Saver类对于本轮训练中的相关模型参数保存至checkpoints文件中。利用restore方法可以将保存的模型恢复,再对数据集进行测试,可达最优效果。为模型的迁移复用提供了便利。利用上述网络结构参数,对数据集进行了1000轮的学习测试,发现第579轮循环时得到了最优的模型结果,准确率达98.6699%,共耗时1717.00 s。将其模型保存后,利用restore方法读取并对测试集进行预测,准确率依然是98.6699%,但其所耗费的时间为9.13 s,大大提高了模型运行效率。4. 模型比较
本文利用处理后的数据集对于目前主流机器学习方法进行了训练测试,最后得到结果是K近邻(KNN)算法获得了最高的准确率95.87%,耗时528.84 s,而AdaBoost算法准确率最低为87.43%,耗时66.97 s。其余的算法如朴素贝叶斯(Naive Bayes, NB)、支持向量机(Support Vector Machine, SVM)、随机森林(Random Forest Classifier, RFC)、决策树(Decesion Tree, DT)、梯度提升(Gradient Boosting, GB),分别获得了92.49%到95.14%之间不等的准确率,耗费时间跨度也从4.41 s到6757.97 s。与以上方法对比,本文所提RNN-LSTM算法获得了98.67%的准确率,时间为1717.00 s。但利用保存好的模型,时间可以缩短到10 s以内,效果好于传统机器学习模型。分类模型效果对比如表7、表8所示。5. 结论
针对无线网络AWID训练数据集样本不均衡所导致的分类器无法识别攻击类别问题,本文提出基于窗口的实例选择算法,适度减少训练集中正常标签样本数量,提升攻击标签样本比例,使训练数据集中各标签样本分布较均衡,解决训练数据集样本不均衡问题,使训练出的分类模型可有效识别攻击类别。通过进一步优化循环神经网络结构、激活函数、复用分类模型,使优化后的分类模型在提高准确率的同时提高分类器执行效率。采用AWID测试数据集对优化后的分类模型进行测试,模型分类预测的准确率达到了98.67%,花费时间9.13 s,综合性能优于其他分类模型。本文所提实例选择算法、网络结构优化、激活函数选择、模型复用等优化方法对基于循环神经网络的入侵检测分类模型构建及优化具有一定参考价值。参考文献
[1]CHEN Dong. A survey of IEEE 802.11 protocols: Comparison and prospective[C]. Proceedings of the 2017 5th International Conference on Mechatronics, Materials, Chemistry and Computer Engineering, Chongqing, China, 2017: 589–598.
[2]KOLIAS C, KAMBOURAKIS G, STAVROU A, et al. Intrusion detection in 802.11 networks: empirical evaluation of threats and a public dataset[J]. IEEE Communications Surveys&Tutorials, 2016, 18(1): 184–208 doi: 10.1109/COMST.2015.2402161
[3]KOLIAS C and KAMBOURAKIS G. Organizations requested the dataset[EB/OL]. http://icsdweb.aegean.gr/awid/download.html, 2018.
[4]白琮, 黄玲, 陈佳楠, 等. 面向大规模图像分类的深度卷积神经网络优化[J]. 软件学报, 2018, 29(4): 1029–1038 doi: 10.13328/j.cnki.jos.005404
BAI Cong, HUANG Ling, CHEN Jianan, et al. Optimization of deep convolutional neural network for large scale image classification[J]. Journal of Software, 2018, 29(4): 1029–1038 doi: 10.13328/j.cnki.jos.005404
[5]ALOTAIBI B and ELLEITHY K. A majority voting technique for wireless intrusion detection systems[C]. Proceedings of 2016 IEEE Long Island Systems, Applications and Technology Conference, New York, USA, 2016: 1–6.
[6]THING V L L. IEEE 802.11 network anomaly detection and attack classification: a deep learning approach[C]. Proceedings of 2017 IEEE Wireless Communications and Networking Conference, San Francisco, USA, 2017: 1–6.
[7]YIN Chuanlong, ZHU Yuefei, FEI Jinlong, et al. A deep learning approach for intrusion detection using recurrent neural networks[J]. IEEE Access, 2017, 5: 21954–21961 doi: 10.1109/ACCESS.2017.2762418
[8]陈红松, 王钢, 宋建林. 基于云计算入侵检测数据集的内网用户异常行为分类算法研究[J]. 信息网络安全, 2018, 18(3): 1–7 doi: 10.3969/j.issn.1671-1122.2018.03.001
CHEN Hongsong, WANG Gang, and SONG Jianlin. Research on anomaly behavior classification algorithm of internal network user based on cloud computing intrusion detection data set[J]. Netinfo Security, 2018, 18(3): 1–7 doi: 10.3969/j.issn.1671-1122.2018.03.001
[9]MARTENS J and SUTSKEVER I. Learning recurrent neural networks with hessian-free optimization[C]. Proceedings of the 20th International Conference on Machine Learning, Washington, USA, 2011: 1033–1040.
[10]ABADI M, BARHAM P, CHEN Zhifeng, et al. Tensorflow: a system for large-scale machine learning[C]. Proceedings of the 12th USENIX conference on Operating Systems Design and Implementation, Savannah, USA, 2016: 265–283.
[11]KIM J, KIM J, LE THI THU H, et al. Long short term memory recurrent neural network classifier for intrusion detection[C]. Proceedings of 2016 International Conference on Platform Technology and Service, Jeju, South Korea, 2016: 1–5.
[12]ZHOU Guobing, WU Jianxin, ZHANG Chenlin, et al. Minimal gated unit for recurrent neural networks[J]. International Journal of Automation and Computing, 2016, 13(3): 226–234 doi: 10.1007/s11633-016-1006-2
你好,我想做关于RNN的可解释性,请问一下,可以有你这篇文章的代码吗?
博主你好,我也在做关于802.11无线网络的入侵检测,需要AWID-Reduce数据集,向官方申请到了连接,但是下的太慢了,可以请博主通过邮箱发我一份吗?
博主您好,研一学生正在学习AWID数据集,请问您可以提供一下预处理与训练的代码嘛