PCA和KNN特征选取的网络入侵检测
2021-01-13周颖
周颖
如今人们的生活越来越离不开网络,网络安全的重要性日益凸显,而网络入侵检测是网络安全的重中之重,已经成为许多现代网络应用的重要安全工具。入侵检测系统入侵检测系统的任务是识别、分类,并对恶意的、可疑的或偏离公认标准的活动做出反应,入侵检测系统包含特征选择和训练样本两个模块。有效的特征选择(Feature Selection,FS)可为入侵检测从海量数据中筛除大量的噪声,选出有效的关键特征,在训练样本中使用不同的算法对于不同量级的数据集会有显著差异。为了提高入侵检测系统的性能,采用PCA和KNN算法进行特征选择,在KDD-CPU99入侵检测的大量实验结果表明,KNN算法表现优异,可提高入侵检测系统的准确性、降低误报率。
网络级的入侵检测可以分为数据包的捕获、预处理以及对数据包进行攻击检测的过程。系统通过分析网络流量或系统审计纪录等,来发现网络或系统中是否有违反安全策略的攻击行为,以便系统管理员采取有效的措施。因系统要对网络中的海量数据进行分析,必然会影响系统处理的实时性,降低了系统的检测速度,影响系统的检测效果,因此在保证检测准确率的前提下,如何提高入侵检测速度成为当前研究热点。
特征选择是有效检测的重要技术之一,FS的重要性可以从两方面来看:第一个方面是滤除噪声,消除无关和冗余特征,由于数据集中有大量嘈杂、不相关或误导性的特征,FS是强制性的;另一方面,FS可以被认为是一个优化问题,其特征的最优子集可更好地满足期望。可以使用某些评估标准来衡量FS优化的质量,由于FS是一个难题,所以目前没有完全适用的方法来找到它的最佳特征子集。
针对入侵检测的特征选择,研究人员已经做了大量的研究工作,有人提出了基于粒子群优化(Partical Swarm Optimization, PSO)算法的入侵检测特征选择方法;有人对网络数据的特征选择采用基于距离准则的适应度函数指导PSO的方法,此方法提高了分类算法质量;有人将PSO算法与免疫思想相结合应用于特征选择,在一定程度上提高了PSO算法的收敛速度;有人提出基于量子粒子群优化(Quantum Partical Swarm Optimization, QPSO)的入侵特征选择方法,实现网络入侵特征子集的优化选择,主要依靠QPSO算法有较好的全局寻优能力;有人提出基于KNN算法及禁忌搜索算法的特征选择方法在入侵检测中的应用研究;有人分别将入侵检测中的特征选择问题看作多目标优化问题来处理,该方法在显著提高检测算法效率的同时,检测精度也得到提高;有人提出的入侵检测特征选择算法是基于遗传算法的,算法在保证特征分类精度和确保入侵检测漏检率、误检率尽量小的前提下明显提高了入侵检测的效率。但以上特征选择算法均存在容易陷入局部最优、迭代后期收敛速度慢的缺陷。
KDD-CPU99入侵检测方法采用蚁群优化算法和分类器来选择识别新入侵的重要特征,解决了入侵检测问题领域的降维问题。实验是在NSL-KDD数据集上进行和确定的,该方法从41个特征中选择了24个,准确率为98.9 %,误报率为2.59 %。结果表明该模型对入侵检测系统是有效的。
参考以上可以得出结论,一些特征在入侵检测中非常重要,此外证明,没有单一的通用分类器能够对所有攻击类型进行分类。相反,在某些情况下,特定的分类器比其他分类器性能更好。因此,这些工作促进了入侵检测模型采用多分类器集成和融合,所以KDD-CPU99数据集作为入侵检测模型的样本数据,并选择BP神经网络等常用入侵检测方法进行性能对比分析,是两种特征选择与分类器融合选择中的较优模型。
KDD-CPU99数据集是在入侵检测领域中广泛使用的数据集,主要分为训练数据集和测试数据集两部分。该数据集提供了从一个模拟美国空军局域网上采集的9个星期的网络连接数据,其中训练数据集包含了7个星期的大约500万条连接记录,测试数据集包含了2个星期的大约200万条连接记录,其中每个记录包含41个特征。
由于KDD-CPU99数据集规模比较大,在普通的笔记本电脑上运行计算耗时过长,为此,选择KDD官方网站提供的抽取10%的数据集(kddcup.testdata.unlabeled_10_percent.csv)和测试子集(corrected)进行仿真实验。实验运行的机器环境如下:Intel酷睿i5-10210U处理器,1.6 GHz基础频率,睿频4.2 GHz,运算性能为4核8线程。
神经网络训练结果为Instructions for updating:this property should not be used in TensorFlow 2.0, as updates are applied automatically.0.0008896411208646513 0.99004745。其中Epoch代表迭代次数,在第9层神经网络中已经达到丢失数据率为0.21 %,准确率达到97.56 %。
KNN训练后准确率达到了100 %,宏平均是对每个类别的精准、召回和F1加和求平均,达到了70 %。
从以上实验可以发现,使用PCA進行特征选择和BP神经网络训练样本进行预测,与使用KNN进行特征选择与样本预测均在KDD官方网站提供的抽取10 %的数据集上有良好的表现。KNN的表现较为优秀,可能由于实验采用的数据集仅抽取了KDDcup99数据集中的一小部分,而通过以往的文献可知,KNN在数据集较小时表现更为优异,神经网络在大数据集下表现更为突出。
在网络入侵检测建模过程中,特征和训练样本的选择对于网络检测效果具有重要的影响。为此,在小数据集的情况下,对比基于TensorFflow平台的BP神经网络和PCA特征选取与KNN分类器组合的网络入侵检测模型,实验结果表明,PCA-KNN提高了入侵检测的正确率,宏平均达到了70%,证明了该方法的有效性和可行性。