- 文献综述(或调研报告):
对于网络入侵检测的研究,最早的记录应该是在1980年James P.Anderson[2]第一次提出了对系统异常行为进行检测的概念,他在一篇名为《计算机安全威胁监控和监视》的技术报告中,提出了计算机安全威胁模型,如今看来其实就是指入侵,此外他还介绍了如何通过监控用户行为而得到数据信息,这应该是网络异常行为检测研究的开端。
入侵检测的目的是识别网络和计算机系统中入侵者引起的异常行为。根据如何进行入侵检测,IDS可以实现误用检测(基于签名)和异常检测[3] [4]。误用检测通过对已知的攻击行为进行分析,提取攻击特征,建立相应的攻击签名库,利用文件或者网络流量数据与攻击签名的匹配情况判断入侵行为;而异常检测首先构建主机、用户或网络连接的正常行为描述,通过判断所检测到的行为是否偏离了正常行为模式,从而判断是否发生了入侵行为。
如今网络异常行为检测的问题已得到广泛研究。主流方法分为四个主要类别[5]:基于端口/基于规则;深度/随机数据包检查;统计和行为技术。前三种方法很普遍,并且在入侵检测领域已取得了数十年的高性能,第四种基于行为的检测技术渐渐地发展出了一种基于网络流量异常检测算法的研究:例如Jin SY[6]提出以协方差分析为基础对异常流量进行检测的算法模型。该算法对单位时间内的所有数据包进行统计,并依据不同的网络协议分类计算,得到每类对应的协方差矩阵,并依据该矩阵对异常进行检测。但是该算法需要进行大量的复杂数学计算,容易在进行异常检测时影响正常网络通信的使用。Barford等[7]以流量数据间的时间相关性为切入点,提出了多尺度分析并结合小波变换的检测算法,但是,这项算法仅仅只能分析单一的某条链路中抓包的流量数据,也只能完成该条链路中的异常检测。
由于上述算法的不足,Rubinstein等人[8]提出了基于主成分分析(PCA)的网络异常行为检测方法,该方法将原始数据转换为流量矩阵,以不同链路之间流量数据的空间差异性为基础,在算法建立的子空间下对数据进行检测处理。但这些算法都存在共同的缺点:一方面在数据较大时这些算法的计算都比较复杂而且耗时,另一方面针对网络异常数据的特征提取难以避免主观性带来的偏差,无法完全依靠算法来完成异常数据的特征提取、分类以及检测。
近年来,随着大数据研究发展以及机器学习、神经网络算法在各个领域的实践研究都表明,深度学习等新兴算法在对数据特征的提取以及处理上有着显著优势,因为不需要人工手动提取特征的公式,完全依靠自身的网络结构对数据进行学习,通过反向传播、梯度下降等学习算法提取出数据的特征矩阵。因此,深度学习是将来改善异常检测的有效方法[9]。
在这里,我调研了几种基于深度学习的比较先进的流量分类方法以及它们在通用数据集上的性能表现。王伟[10]结合CNN和LSTM两种神经网络结构来分别学习网络流量的空间特征和时序特征,并提出了一个网络流量异常检测系统HAST-NAD。首先利用卷积神经网络对每个数据包的空间特征进行提取,再利用LSTM在数据包特征向量的序列上提取其时序特征,然后综合网络流的空间特征和时序特征,实现对网络流量异常的精准检测,在DAPRA1998和ISCX2012两个数据集中,都有着很高的检测精度,同时保持相对较低的误报率。
Ren-Hung Hwang[11]等提出了一个有效的异常流量检测机制D-PACK,它由一个卷积神经网络和一个无监督的自动编码器组成,用于自动剖析流量模式和过滤异常流量。重要的创新点在于D-PACK只检查每个流中前n个数据包的前l个字节,这样就减少了需要预处理的数据量从而可以进行早期检测。他们的实验结果表明,在USTC-TFC2016[12]数据集上通过仅检查每个流中的前两个包,D-PACK仍然以接近100%的准确率执行,同时具有极低的误报率,如0.83%。另外,他们的这种设计可以激发对在线异常检测系统的努力,该系统的特点在于既减少了处理的数据包数量又能及时阻止恶意流量。
Farahnakian等[13]提出了一种基于深度自动编码器的入侵检测方法,并通过逐层贪婪训练来避免过度拟合,并在KDDCup99(旧版NSL-KDD)上评估,在二分类和多元分类上,均有着较高的准确度。Al-Qatf等[14]提出基于堆叠自编码器的自我学习框架进行特征学习和降维,并使用SVM进行分类的方法,该方法在两类和多分类中也表现出良好的性能,在NSL-KDD数据集上实现了很高的异常检测准确率,同时缩短了训练和测试时间,表现出高效的检测性能。Javaid等[15]讨论了现有NIDS技术所面临的问题,为此提出了一种新型的栈式非对称自动编码器(SNDAE)用于无监督特征学习,在此基础上,利用随机森林算法对学习到的样本特征进行分类,分别在KDDCup99和NSL-KDD数据集上训练并测试该方法,结果表明,该模型拥有较高的准确性、精确度和召回率,同时缩短了训练时间,与基于深度置信网络的方法相比,模型精度提高5%,训练时间缩短高达98.81%。
虽然这些利用机器学习方法实现的流量异常检测系统在特定的数据及上都取得非常好的实验效果,还存在着一些尚未解决的难点,比如对于数据包较少的网络数据流(短流),难以根据这些数据包获得有效的流特征,进而无法进行流量分类和异常检测;此外,加密协议的增强和数据分布的不平衡都制约了训练出的模型的效果。
下表总结了最新的一些相关的研究成果:
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。