Deep learning methods in network intrusion detection: A survey and an objective comparison翻译一(1-3节)
0摘要
将深度学习模型用于网络入侵检测任务一直是网络安全领域的一个活跃研究领域。虽然有几份优秀的调查报告涵盖了关于这个主题的越来越多的研究,但文献中缺乏对不同深度学习模型在受控环境下的客观比较,特别是在最近的入侵检测数据集上。在本文中,我们首先介绍了入侵检测中深度学习模型的分类,并总结了关于这个主题的研究论文。然后,我们在两个传统数据集(KDD 99、NSL-KDD)和两个现代数据集(CIC-IDS2017、CIC-IDS2018)上为入侵分类任务训练和评估了四个关键的深度学习模型--前馈神经网络、自动编码器、深度信念网络和长短期记忆网络。我们的结果表明,在所有四个数据集上,深度前馈神经网络在准确率、F1分数以及训练和推理时间方面产生了理想的评价指标。结果还表明,两种流行的半监督学习模型,自动编码器和深度信念网络的表现并不比监督前馈神经网络好。该实施方案和整套结果已经发布,供研究界今后使用。最后,我们讨论了调查中发现的研究文献中的问题,并提出了机器学习方法在入侵检测方面的几个潜在的未来研究方向。
1引言
在过去的十年里,计算机网络在规模、使用和复杂性方面有了很大的扩展。新类型的设备和网络架构已经出现,如云计算和物联网。随着这些网络和系统的扩展,其安全性已成为一个关键问题。根据CyberEdge集团发布的《2019年网络威胁防御报告》(CyberEdge, 2019),在过去五年中,对大型企业的全球网络的攻击一直在增加(图1)。这些攻击主要包括拒绝服务攻击、恶意软件和勒索软件攻击以及高级持续性威胁(APT)。APTs可能是特别危险和昂贵的,因为这些是由足智多谋的恶意行为者对政府和私人组织发起的有针对性的长期攻击,目的是为了渗出数据和破坏基础设施。网络安全报告M-Trends 2019(FireEye,2019)显示,在2018年,这些攻击的平均停留时间为184天(攻击在被发现前的有效时间)。
针对计算机系统的网络攻击的第一道防线是由一个精心设计的安全框架形成的,该框架执行标准的安全实践,其中包括保密性管理、访问控制、认证和其他安全政策。然而,由于操作失误、系统漏洞(尤其是那些零日漏洞的目标)和其他原因,攻击仍然可能构成威胁。入侵检测系统(IDS)执行的关键任务是检测计算机和网络上的此类攻击,并提醒系统操作员。在一个案例中,水务公司SCADA系统中的IDS通过提醒安全团队注意异常的HTTP流量,帮助检测到系统服务器上的加密挖掘恶意软件(Radiflow, 2018)。
IDS可以放置在网络中的单个主机上,也可以放置在一个专门的 中央位置,或分布在整个网络中。设计用于检测对计算机网络而不是单一主机的攻击的IDS称为网络入侵检测系统(NIDS)。这些系统以网络遥测的形式监测网络功能。其中可能包括网络流量、网络流的元数据(例如,NetFlow等协议)和网络流量。协议,如NetFlow)和主机的活动日志,并试图检测攻击的发生。
用于入侵检测的技术可大致分为两类:基于签名的方法和异常检测方法(Shimeall和Spring,2014)。基于签名的方法通过将输入的遥测数据与一组已知的攻击模式或签名相匹配来操作。这些方法对以前已知的攻击给出了准确的检测,但它们在检测未见过的新攻击方面却失败了。另一方面,异常检测方法在数据中建立了一个正常行为的概念,并将偏离这一行为(异常)的情况标记为攻击。这种检测方法能够检测到未曾见过的攻击。然而,由于它们将任何异常标记为攻击,这些方法已知会产生大量的错误警报。
研究人员对入侵检测的机器学习方法已经研究了20多年(Mukkamala等人,2002)。大量的网络遥测和其他类型的安全数据使入侵检测问题适合于机器学习方法。许多现代商业入侵检测系统使用基于机器学习的算法作为其检测策略的一部分(例如:安全平台Cisco Stealthwatch(Cisco,2018)和Microsoft Azure Sentinel(Microsoft,2019)。这些方法通常属于入侵检测技术中的异常检测类别。机器学习模型可大致分为两类:浅层学习或经典模型和深度学习模型。一般来说,目前使用的深度学习模型是具有大量隐藏层的神经网络模型。这些模型能够学习高度复杂的非线性函数,层的分层排列使它们能够从输入数据中学习有用的特征表示(Bengio, 2009)。深度学习方法最近在多个领域获得了成功,如图像分类(Krizhevsky等人,2012;He等人,2016)、语音识别(Hinton等人,2012;Amodei等人,2016)和机器翻译(Sutskever等人,2014;吴等人,2016)。在入侵检测领域,经典的机器学习模型(Buczak和Guven,2016)和深度学习模型(Berman等人,2019)都被使用,并取得了可喜的成果。
最近的几篇调查论文涵盖了用于入侵检测的深度学习方法的文献(Berman等人,2019;Mishra等人,2019)。然而,该文献缺乏对标准入侵数据集上评估的深度学习模型的实证评估;特别是,较新的数据集。在本文中,我们提出了一个分类法,并对入侵检测的深度学习方法这一主题的研究论文进行了广泛调查。文献中的四个关键深度学习模型在两个传统数据集(KDD 99,NSL-KDD)和两个现代数据集(CIC-IDS2017,CIC-IDS2018)上被训练和评估,这个基准实现及其完整结果集是公开的。本文的其余部分组织如下。第1节的其余部分简要回顾了相关文献并强调了本文的贡献。第2节是对入侵检测问题的初步讨论,第3节介绍了用于入侵检测的深度学习方法的分类法和文献调查。第4节详细描述了基准中的一系列实验和对结果的分析。第5节是对当前研究中的问题和未来方向的讨论,第6节给出了结语。
1.1相关工作
近年来发表了一些关于入侵检测的机器学习方法的文献综述,其中一些侧重于深度学习方法。在其中一项较早的调查中,Tsai等人(2009)回顾了2000年至2007年间发表在入侵检测领域的机器学习模型。由于这是一个较早的调查,它并没有捕捉到过去十年间入侵检测的研究发展。可以看出,在此期间(2000-2007年),经典的机器学习模型,如支持向量机、浅层人工神经网络和决策树在研究中一直很受欢迎。作者将这些模型分为三组:单一分类器、混合分类器(不同分类器的级联)和集合分类器(弱学习者的组合)。
Buczak和Guven(2016)以及Farah等人(2015)涵盖了入侵检测领域中广泛的机器学习算法。详细回顾了SVM、决策树和随机森林等经典算法的使用,以及隐马尔科夫模型和进化算法。这两项调查都回顾了2015年之前发表的研究,它们没有深入探讨任何一类算法。特别是,这些调查中没有涉及入侵检测中的深度学习方法。2018年和2019年发表的几项调查(Mishra等人,2019年;Chaabouni等人,2019年;Sultana等人,2019年)回顾了该主题的最新研究,其中包括一些深度学习方法。然而,这些文章中对深度学习算法的选择是有限的,因为它们的目的是对用于入侵检测的广泛的机器学习模型的调查。
有几篇调查论文关注了用于入侵检测的深度学习方法这一主题。Hodo等人(2017)提出了一个分类法,通过将深度学习方法分为两组来容纳它们:生成性和判别性架构。然而,重要的模型,如深度前馈网络和递归神经网络,在这篇评论中没有全面涉及。Kwon等人(2017)详细总结了关于入侵检测的深度学习模型的七篇研究论文。Xin等人(2018)回顾了网络安全中三种类型的深度学习模型:深度信念网络、递归神经网络和卷积网络。这两项调查对入侵检测中使用的深度学习模型都缺乏广度的覆盖。Al-Garadi等人(2018)调查了物联网安全领域的深度学习模型的广度。然而,所审查的作品中很少有与入侵检测相关的。
在最近的调查论文中,Berman等人(2019)对网络安全任务(包括入侵检测)中使用的深度学习模型进行了可能最全面的回顾。作者指出,受限玻尔兹曼机、自动编码器和递归神经网络在入侵检测领域特别受欢迎。他们还注意到比较不同模型的性能的困难,因为研究人员使用不同的数据集和指标进行模型评估。上面提到的调查论文都没有对审查的深度学习模型本身进行任何基准或实证分析。
Yan等人(2018)在两个入侵数据集(NSL-KDD和UNSW-NB15)上对四种深度学习模型(多层感知器(MLP)、受限玻尔兹曼机(RBM)、稀疏自动编码器(SAE)和具有特征嵌入的MLP)进行了实证性能分析。然而,他们的实验并不包括一些流行的模型,如递归神经网络,也没有对较新的入侵数据集进行评估。此外,作者只报告了实验的准确性、精确性和召回率,分析缺乏深度和对模型性能的洞察力。在最近同时进行的一项工作中,Ferrag等人(2020)分析了七个深度学习模型在CSE-CIC-IDS2018和Bot-IoT数据集上的性能。这个基准只在两个数据集上评估了模型,并报告了三个评估指标:每类检测率、总体准确率和训练时间。我们无法验证深度网络模型的重要参数,如隐藏层的数量。相比之下,我们研究的全部实施方案是公开的,以鼓励客观的比较并促进透明度。我们训练和评估了浅层和深层版本的神经网络模型,并报告了多样化的评估指标(准确性、F1分数、假阳性和阴性率、训练和推理时间等)。此外,我们还进行了实验来比较监督与半监督模型,进行了彻底的神经结构搜索以了解网络深度和宽度对性能的影响,并对前馈神经网络的数据效率进行了分析。
表4列出了先前关于入侵检测中的深度学习方法主题的调查。
1.2贡献
在本文中,我们试图解决目前关于入侵检测的深度学习模型的调查中存在的上述缺点。本文的主要贡献有以下几点。
- - 我们提出了一个用于入侵检测的深度学习方法的分类法,并总结了该分类法下最近的相关文献。
- - 我们实现了入侵检测文献中使用的四个关键深度学习模型的基准,并在两个传统数据集(KDD 99,NSL-KDD)和两个现代数据集(CIC-IDS2017,CIC-IDS2018)上对它们进行了评估。深度学习模型选自 分类法的前三个分支(图2),它们是构建深度学习模型的三种不同方法的代表:对流量实例进行分类的前馈神经网络、对流量序列进行分类的LSTM网络、用未标记和标记数据以半监督方式训练的自动编 码器和深度信念网络。这个实证比较旨在解决由于评价指标、数据集的操作以及对近期数据集的有限评价等方面的差异,难以通过研究工作中报告的结果来比较这些模型。
- - 实现和完整的实验结果集被发布,供研究界进一步使用和分析。
- - 我们讨论了当前机器学习在入侵检测方面的研究问题,并强调了在我们的发现指导下的几个未来研究方向。
2初步讨论
2.1网络入侵检测问题
入侵检测系统(IDS)的目标是监测系统的活动或行为,识别攻击发生的时间并产生警报,以便采取行动减轻后果。在计算机系统网络中,IDS的输入(要监测的活动)采取网络遥测(流量统计、从数据包头和内容中提取的信息)和来自主机的信息(进程行为、系统调用跟踪、应用程序日志、文件系统变化)的形式。IDS的输出可以是每个输入或一连串输入的标签或攻击分数。标签可以是二进制的:正常和攻击,也可以是表示不同类型攻击的多值。从机器学习的角度来看,这个问题可以表述为异常检测或分类问题。为了训练一个异常检测模型,一个正常输入的数据集就足够了。要训练一个分类器,必须有一个正常和攻击输入的标记数据集(未标记的数据也许有帮助,但大多数分类模型需要一定量的标记数据来训练)。在模型训练完成后,它可以被部署到系统的新数据上进行检测。
2.2数据集
许多网络入侵检测数据集都是公开的,其中一些已经被用于训练和评估所调查的作品中的模型。本文的范围不包括对所有数据集的全面概述(我们引导感兴趣的读者参考Ring等人(2019))。本节包含以下更经常使用的数据集的简要总结,以及在我们的实验中使用它们进行模型比较的理由。表1和表2总结了这些数据集的主要特征
- - kdd 99(kdd, 1999)。这是最早的入侵检测公共数据集之一,也是评论文献中最常使用的。它是一个基于流量的数据集(用来自主机的额外元数据进行扩展),有41个特征和四类攻击:拒绝服务(DoS)、探测、远程到本地(R2L)和用户到根(U2R)。尽管它被频繁使用,但该数据集包含许多缺陷,如重复记录、模拟工件以及它不能反映现代网络流量和攻击的事实。在我们的实验中,我们在KDD 99数据集上训练和评估机器学习模型有两个原因。1)作为第一步,验证模型是否按预期工作;2)能够与之前在该数据集上报告的结果进行比较。
- - NSL-KDD(Tavallaee等人,2009)。NSL-KDD数据集通过删除重复记录和选择难以分类的记录,解决了KDD 99数据集中的一些不足之处。它在结构上与KDD 99数据集相似。虽然这个数据集是KDD 99数据集的改进版,但它仍然不适合建立入侵检测模型,我们在实验中使用它的原因与引用KDD 99数据集的原因相同。
- - CIC-IDS2017(Sharafaldin等人,2018)。这个数据集是在一个模拟正常流量的小型网络环境中记录的。六类现代攻击是从一个单独的网络中发起的。原始数据包捕获和具有80个特征的Netflows都是可用的。本调查中审查的少量研究论文使用了这个数据集。我们认为这个数据集是现代网络流量的代表,因此我们在实验中使用它。
- - CSE-CIC-ID2018(CIC,2018)。这个数据集在结构和包含的攻击方面与CICIDS2017相似。然而,它是在一个更大的网络上准备的,代表一家公司作为受害者网络(420台客户机和30台服务器)和一个更大的攻击者网络(50台机器)。
2.3评价指标
有几个指标和工具被研究人员用来评估入侵检测中机器学习模型的性能。这些指标衡量一个模型或一个IDS系统的不同方面。下面是对每个指标和工具的简要描述。
混淆矩阵是一个模型所做的分类的表格,通常在行中有实际的类别(基本事实),在列中有预测的类别。它既可以用于二元分类(表3),也可以用于多类分类。它显示了一个模型的 "分类分布",并有助于识别模型的属性,例如,当它持续将一个类别错误地分类为另一个类别时。例如,一个模型可能将几乎所有的DDoS尝试都归类为数据渗漏。然后,研究人员可以检查这个问题的潜在原因。这种类型的洞察力并不容易从其他指标中收集到。其他几个重要的指标是根据混淆矩阵中的值计算的(表3)。它们包括总体准确性、精确性、召回率、特异性、假阳性率和F1得分。这些指标的定义见附录A。对于多类问题,这些指标可以按类计算,把分类当作一个一比一的问题。最后的指标可以通过三种方式中的一种对每类指标进行平均来获得。
- - Micro平均:使用每种分类的总和来计算指标(例如:TP = TPclass1 + TPclass2 + ...)。
- - Macro平均:计算每类指标,并对其进行平均(总和除以类的数量)。
- - 加权Macro平均:与Macro平均类似,只是每类指标按每类的实例数加权,以获得最终的平均数。
请注意,在灵敏度(召回率)和假阳性率(FPR)之间存在一个自然的权衡;也就是说,一个高灵敏度的模型(理想的)可能有一个高假阳性率(不理想的)。这种关系可以用接收操作特性(ROC)曲线来说明,横轴是FPR,纵轴是灵敏度(召回率)。ROC曲线是通过改变分类到阳性类(攻击)的阈值,并记录相应的FPR和召回率而得到的。然后,人们可以在ROC曲线上选择一个适合应用的点。ROC曲线下的面积(AUC)是分类器的另一个指标,反映了模型区分两类的能力。除了评估模型的分类性能的指标外,还有几个重要的指标反映了模型的复杂性。在一个深度学习模型中,复杂性是参数(权重)数量和架构的函数。
- - 训练的时间。这可以作为在样本外数据上达到目标指标(例如:目标准确度或目标F1分数)所需的训练历时数(梯度衰减等算法对数据集的迭代)来衡量。这些训练历时所花费的时间(以秒或分钟为单位)也可以被测量。如果模型是离线训练的,较长的训练时间可能是可以接受的。但是,如果模型必须实时训练,则需要快速训练。
- - 预测时间(延迟):这可以衡量为对固定大小的一批输入实例进行预测所需的时间。由于入侵检测系统的预测是在线进行的(实时),所以首选低延迟的数字。
- - 吞吐量:在一个时间段内可以进行的预测的数量。这是预测延迟和模型在IDS中部署方式的一个函数(例如:并行部署产生高吞吐量)。鉴于IDS必须检查大量的网络遥测数据,正常运行需要高吞吐量的数据。
3.用于入侵检测的深度学习方法的分类和调查
在以前关于入侵检测中的深度学习模型的调查中,已经提出了各种分类法(Hodo等人,2017;Kwon等人,2017;Chaabouni等人,2019)。我们为本次调查提出的分类法如图2所示。对于这个分类法,我们考虑了机器学习从业者的观点,而不是机器学习模型的概念性分类。例如,以前的分类法确定了生成性模型与判别性模型,这是一个重要的概念性分类。然而,我们所做的区分除了突出概念上的差异外,更有可能在数据预处理和实施模型构建管道方面帮助实践者。例如,实例与序列分类需要对数据集进行不同的安排,而半监督方法通常涉及机器学习管道中的预训练阶段(用未标记的数据)。迁移学习方法需要从资源库中下载一个合适的预训练模型。我们对入侵检测中的深度学习方法的研究文献进行了调查,并对关键工作进行了总结。表4显示了目前关于这个主题的调查论文列表,表5-8显示了分类法各分支下的研究论文。最后,从分类法的前三个分支中实现了四个关键的神经网络模型进行实证比较(第4节)。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!