时间:2024-09-03
◆蔡洪民 王庆香
(广州中医药大学医学信息工程学院 广东 510006)
基于深度学习的入侵检测技术研究
◆蔡洪民 王庆香
(广州中医药大学医学信息工程学院 广东 510006)
大数据时代网络安全形势日趋严峻,本文提出了一种基于深度学习的异常入侵检测模型。首先,将网络流量数据进行数据预处理:针对网络流量数据的高维特征影响检测效率的问题,使用PCA等方法进行数据降维;其次,使用深度神经网络方法对预处理后的网络流量数据进行训练和类别预测;最后,使用混淆矩阵对模型输出结果进行评估,并与KNN和SVM两种经典算法进行对比。经过实验对比,本文模型均优于 KNN 算法和SVM算法,在准确率、召回率、F1-Score方面相比KNN和SVM的检测率提高2%。因此,本文模型有效提高了异常入侵检测的检测率,加强了网络安全。
异常入侵检测;深度学习;K近邻;支持向量机
互联网的飞速发展一方面推动了人类社会的日新月异的进步,另一方面网络安全事件频发给社会和人民生活带来重大安全问题。传统的计算机安全理论已不能适应动态变化的、多维互联的网络空间。随着物联网、云计算等技术的发展和大数据时代的来临,全球网络安全形势更加严峻。因此,通过机器学习的方法对网络大流量数据进行分析来识别入侵行为,成为加强网络安全的重要手段。
日趋复杂的网络环境使得简单的机器学习方法已经很难很好的解决实际问题。自2006年多伦多大学Geoffrey Hinton教授提出了深度学习网络以来,深度学习技术的发展对信号和信息处理方面的研究产生了广泛的影响。深度学习大大地拓展了机器学习研究领域,并推动人工智能的迅猛发展。因其强大的特征表达能力,基于深度神经网络的机器学习模型已在语音识别、图像识别和自然语言处理等领域取得突破性进展,越来越受到国内外学者的重视。国外已有研究者将其用于入侵检测上:文献[1]使用混合聚类和神经网络的方法实现了入侵检测;文献[2]将基于聚类的随机化数据用于检测僵尸网络上;文献[3]将深度神经网络用于车联网的安全上;文献[4]实现了基于深度信念网络的入侵检测。国内基于深度神经网络研究入侵检测的较少,文献[5]阐述了深度神经网络在大数据分析上的应用;文献[6]利用两层的限制玻尔兹曼机进行结构降维,用BP神经网络获得原始数据的最优表示,再利用SVM对数据进行入侵识别;文献[7]针对异常入侵检测中数据的高维特征会影响检测率的问题,提出基于信息增益特征选择的检测模型将随机森林分类器的检测率提高 0.2% ;文献[8]将ML-KNN算法应用于入侵检测并在KDD-CUP99数据集上的进行仿真,获得了高检测率和低误报率;文献[9]提出了一种基于多标记学习的入侵检测算法并在KDD CUP99数据集上进行仿真,有效提高了入侵检测系统的性能。
针对大数据时代网络流量的多维、复杂等特点,本文提出一种基于深度神经网络的异常入侵检测模型,经过网络流量数据集采集、数据预处理、特征选择、深度神经网络训练和预测等一系列步骤来识别网络中的异常流量,从而加强了网络安全。
深度学习使用多层人工神经网络,从大数据集中学习训练,最终可对新的数据样本做出智能识别和准确预测。与传统的浅层神经网络模型相比,深度学习模型的多层网络结构能够更加有效地表达复杂函数,从而学习到更准确的特征。可以说,深度学习已经拓展为机器学习和人工智能研究的主要方面[10]。
Keras是一个开源的深度学习库,其本质上是高层神经网络库。Keras由纯Python编写并基于Tensorflow或Theano。Keras 为支持快速实验而生,可以迅速将算法思想转换为程序运行结果。Keras深度学习库具有高度模块化、极简和可扩充等特性,并且支持CNN、RNN或二者的结合,可无缝在CPU和GPU之间切换。Keras的核心数据结构是模型,模型是一种组织网络层的方式。Keras中主要的模型是Sequential模型,Sequential是一系列网络层按顺序构成的栈。本文模型就是基于 Keras深度学习库中的Sequential模型来实现的。
Python的多线程并非真正的多线程,为了充分使用多核CPU的资源,在Python中多数情况需要使用多进程。Python提供了好用的多进程包 multiprocessing。借助此包,可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件。为了提高模型运行效率,本文模型就是基于Python的多进程技术实现的。
本文提出一种基于深度学习的异常流量检测模型,该模型有效地提高了网络异常流量的检测率。整个模型分为数据预处理器、特征选择器和深度神经网络分类器三部分,其中深度神经网络分类器是整个模型的核心模块[7]。本文模型的工作流程如图1所示。
图1 模型的工作流程
(1)数据预处理器分别读取训练数据集和测试数据集以及各自类别,然后进行规范化处理。
(2)特征选择器将经过预处理的训练集数据和测试集数据使用PCA算法和VarianceThreshold方法进行降维处理,去掉冗余数据,形成网络流量数据特征集。
(3)将训练集的数据特征和类别载入深度神经网络分类器,经过深度神经网络的训练,然后载入测试集的特征对其类别进行预测,得到测试集的数据分类预测结果。然后读取网络流量数据测试集中已有的类别标记进行对比,评估模型的优劣。
数据预处理器的主要目标是对网络流量数据进行规范化。具体来说,分别载入训练集数据和测试集数据,然后对其中异常数据进行检测与处理,例如清理丢失或错误的数据,添加、插入和删除无关数据等,最后进行数据分组和转换,以获得新的、有意义的新数据[11]。本文模型中此部分依据 Python数据分析包Pandas实现的。
数据经过预处理后进入特征选择器。特征选择器的作用是依据网络流量原始数据集创建新的数据特征。本文模型使用 PCA和VarianceThreshold方法进行数据维度约简形成新的数据集;然后选择合适的特征集进入深度神经网络分类器进行训练和分类预测[12]。
本文模型采用深度神经网络方法进行分类预测,深度神经网络算法主要分为输入层、隐含层、输出层三个部分。本文模型中设置多个隐含层,并且中间采用不同的激励函数来计算。本文模型中分类器的工作流程如下:
(1)分别将训练数据和测试数据载入本文模型的分类器中,其中训练数据进入深度神经网络分类器的训练模块,测试数据进入深度神经网络分类器的测试模块。
(2)训练数据经过深度神经网络分类器训练之后得到有效结果,然后载入测试数据,然后根据训练有效结果对测试数据集类别进行预测。得到预测结果,即完成一次分类预测过程。
(3)载入测试集类别标记与深度神经网络分类器预测值进行对比,根据混淆矩阵等方法进行模型性能评估,判断检测算法的优劣。
(4)重复相同步骤,分别使用KNN和SVM算法对同一网络流量数据集进行类似处理。最终根据三种机器学习方法的实验结果进行对比,得出三种算法针对本数据集的性能优劣。
实验部分包括实验环境与数据、实验过程与结果分析两部分内容。
本文以Windows Server 2008下的Anaconda作为实验平台,使用综合性的网络入侵检测系统数据集 UNSW-NB15作为实验数据集。在入侵检测领域,研究者们广泛使用 KDD CUP99和NSLKDD等数据集,这些数据集的使用时间都已经超过10年,已无法全面反映当今环境下的复杂网络流量特征[13]。UNSW-NB15数据集是综合性的网络攻击流量数据集,包括训练数据和测试数据,被广泛应用于异常入侵检测。UNSW-NB15数据集由一种正常流量和八种异常流量组成,八种异常流量类型分别为Reconnaissance、Analysis、Generic、Fuzzers、Backdoor、Exploits、Shellcode、DoS和 Worms。该数据集共有约 40 维特征,实验中使用该数据集的一个子集。为保证实验结果的准确性和随机性,本文模型从中提取 IPv4网络中常见协议的网络流量数据集,包括73222 条训练数据和 145938条测试数据。UNSW-NB15数据集各类型比例如表1所示,数据集特征如表2所示。
表1 实验所用UNSW-NB15数据集
?
表2 UNSW-NB15数据特征
混淆矩阵是数据科学、数据分析和机器学习中总结分类模型预测结果的情形分析表,是对分类模型进行性能评价的重要工具。它以矩阵形式将数据集中的记录按照真实的类别与分类模型作出的分类预测进行判断。由混淆矩阵可以计算真阳性率、假阳性率、真阴性率、假阴性率、准确率、精确率和F指标等各种评价指标。在机器学习领域,混淆矩阵是可视化工具,特别用于监督学习。本文模型就是采用混淆矩阵来解释异常入侵检测常用的准确率、召回率、F1-Score三项指标来评估本文实验模型的[14]。
本文模型实验在某大学校园网环境中一台 Windows Server 2008服务器上进行。整个实验过程包括两步:首先对本文提出的深度神经网络分类模型进行分类预测实验,然后将其实验结果与经典的有监督学习分类算法KNN分类器和SVM分类器分别进行对比,实验结果如图2和图3所示。由图可知,本文方法比KNN分类器和SVM分类器的分类预测效果都要好:针对本实验数据,在选取的三种分类方法中,KNN算法要优于SVM算法。当训练轮数为60次和80次时,深度神经网络方法的检测率与KNN算法基本相同。当训练轮数为200以上时,深度神经网络方法明显优于KNN算法,准确率、召回率、F1得分分别提高了4%,2%,2%。
图2 深度神经网络算法训练迭代过程
图3 三种分类算法检测率对比
综合以上实验结果,可以看出三类算法在检测率上都能达到75%以上;与 KNN算法和SVM算法相比,本文模型在准确率、召回率和F1-Score三项指标上均优于其他两种算法,检测率提高约2%。
针对高维数据对异常入侵检测的检测率和检测时间产生不利影响的问题,本文提出一种基于深度神经网络的异常流量检测模型,经过数据规范化后使用PCA算法和VarianceThreshold方法对数据进行维度约简,然后载入深度神经网络分类器进行分类预测,最终提高了分类的准确度。本文模型实验过程中采用Python多进程技术提高了检测效率,大大缩短了模型运行时间。实验结果表明,本文方法优于KNN算法和SVM算法,在准确率、召回率和F1-Score三项指标上均比KNN算法和SVM算法提高了约2%。
本文研究过程中使用 UNSW-NB15综合数据集进行研究和分析,UNSW-NB15综合数据集很好地反映了当今网络环境下的流量特征。下一步的研究将进一步优化本文提出的深度神经网络分类器并且针对采集现网数据进行研究[15]。
[1] Ma Tao,Wang Fen,Cheng Jianjun. A Hybrid Spectral Clustering and Deep Neural Network Ensemble Algorithm for Intrusion Detection in Sensor Networks. Sensors(Basel ,Switzerland),2016.
[2] Al-Jarrah Omar Y,Alhussein Omar,Yoo,Paul D. Data Randomization and Cluster-Based Partitioning for Botnet Intrusion Detection.IEEE TRANSACTIONS ON CYBERNETICS,2016.
[3] Kang Min-Joo,Kang Je-Won.Intrusion Detection System Using Deep Neural Network for In-Vehicle Network Security.PLOS ONE2016.
[4] Kamran Raza,Syed Hasan Adil.Intrusion Detection using Deep Belief Network.
[5] 张蕾, 章毅.大数据分析的无限深度神经网络方法.计算机研究与发展, 2016.
[6] 杨昆朋.基于深度信念网络的入侵检测模型.现代计算机,2015.
[7] 刘汝隽,贾斌,辛阳.基于信息增益特征选择的异常入侵检测模型.计算机应用,2016.
[8] 钱燕燕,李永忠,余西亚.基于多标记与半监督学习的入侵检测方法研究.计算机科学,2015.
[9] 钱燕燕,李永忠,章雷,余西亚.一种多标记学习入侵检测算法,合肥工业大学学报(自 然 科 学 版 ),2015.
[10] 李春林,黄月江,王宏,牛长喜.一种深度学习的网络入侵检测方法. 信息安全与通信保密,2014.
[11] 贾慧敏.基于 ML 改进技术的 IDS 的设计与实现.计算机技术与发展,2015.
[12] 马钲然,张博锋,王勇军.基于主题模型的网络异常行为分类学习方法研究.计算机科学,2016.
[13] 石云,陈钟,孙兵.基于均值聚类分析和多层核心集凝聚算法相融合的网络入侵检测.计算机应用研究,2016.
[14] 袁琴琴,吕林涛.基于改进蚁群算法与遗传算法组合的网络入侵检测.重庆邮电大学学报( 自然科学版),2017.
[15] Ghosh Abhrajit,Gottlieb Yitzchak M,Naidu Aditya.Managing High Volume Data for Network Attack Detection Using Real-Time Flow Filtering.CHINA COMMUNICATIONS,2013.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!