基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第1张图片

期刊:COMPUTERS & SECURITY

期刊信息:JCR分区Q1;中科院分区2区;引用因子4.85

摘要:

入侵检测系统可以通过分析网络流量的特征来区分正常流量和攻击流量。近年来,神经网络在自然语言处理,计算机视觉,入侵检测等领域得到了发展。在本文中,我们提出了一种将多尺度卷积神经网络与长短期记忆(MSCNN-LSTM)相结合的统一模型。该模型首先利用多尺度卷积神经网络(MSCNN)分析数据集的空间特征,然后利用长短期记忆(LSTM)网络处理时间特征。最后,该模型采用时空特征进行分类。在实验中,使用公共入侵检测数据集UNSW-NB15作为实验训练集和测试集。

关键词:Intrusion detection system;Long short-term memory;Multiscale convolutional neural network;Spatial-temporal features;UNSW-NB15

1 引言

在现代社会中,网络空间中的信息流以每年惊人的速度增长。近年来,在经济学,科学研究,军事,乃至人们日常生活的各个方面,网络信息安全问题都得到了越来越多的关注。目前,在该研究领域中,入侵检测系统(IDS)由于其可靠性,可扩展性和自主学习而成为最热门的研究主题之一。IDS可以为我们创建有效的防御系统,以防御各种网络攻击,在防御攻击期间执行动态分析,收集关键节点数据,并不断改进自身以保护我们的网络空间。基于机器学习的入侵检测模型是当前最主流的研究方向,例如支持向量机,贝叶斯网络,聚类(Miller等人,2014年)和深度学习神经网络。其中,支持向量机,贝叶斯网络和聚类属于常规的机器学习算法。许多研究人员已将这些算法应用于网络信息安全领域。Nagaraja等。(2010年)建立了一个模型,该模型使用随机游走聚类提取网络流量以检测P2P僵尸网络。Antonakakis等。(2012)使用图聚类来检测基于DGA的恶意软件家族;张等。(2013年)提出人们对机器人查询流量进行研究和分析,并使用分层聚类算法检测是否存在攻击行为。Chen等。(2011年)建立LS-SVM模型,并使用优化的SVM对僵尸网络的流量进行分类。这些有监督或无监督的常规机器学习算法在处理数据量较小,维数较小的数据集时可以获得更好的分类性能(Kuang等,2014),这些都是浅层学习算法。但是,在实际的网络环境中,存在大量的高维,无标签和非线性数据,这就要求我们建立新的入侵检测模型。

在深度学习领域,CNN(Danciu,2015)和LSTM(Sundermeyer等,2015)已应用于自然语言处理,计算机视觉,语音识别等。这两个深度学习框架具有自己独特的网络结构。在我们的工作中,构建了将多尺度卷积神经网络与长短期记忆相结合的统一模型(MSCNN-LSTM),这是一个基于多尺度时空特征的集成检测模型。

本文的其余部分安排如下:在第二部分中,我们描述了相关的工作;在第3节中,我们描述了详细设计;在第4节中,我们解释了入侵检测模型的具体工作流程;在第5节中,我们评估模型的实验结果;在第6节中,我们得出结论并指定未来的工作。

2 相关工作

2.1 入侵侦测系统

30多年前,人们开始逐渐重视网络信息安全。当前的许多IDS系统主要分为基于签名的检测系统和基于异常的检测系统。基于签名的检测系统通过分析已知的攻击方法来提取其流量签名,然后将这些签名与后续检测系统提取的签名进行比较,以发现后续的攻击流量并向用户发出警告。基于签名的检测系统的优点是准确率高,但是检测手段有限,无法分析未知的攻击方式,如0-day漏洞攻击和APT(Advanced Persistent Threat)攻击。

基于异常的检测系统,也称为基于网络行为的检测系统,主要依赖于常规的机器学习算法和深度学习算法。在这种方法中,部分交通特征将被提前提取。我们使用有监督或无监督的学习方法来建立基于这些功能的学习框架。基于网络行为的检测系统可以检测正常和恶意网络流量。这种方法的好处是它可以检测未知攻击。因此,这种入侵检测系统已经引起了研究界的越来越多的关注。

但是,基于网络行为的入侵检测系统在实际应用中仍然存在一些问题。最困难的是设计一组代表性的特征代码来检测网络流量并训练模型。特征码集的设计对整个系统至关重要,对误报率(FAR)和误报率(FNR)有很大的影响。选择不同的特征码通常在检测性能上有很大的不同。

2.2 深度神经网络

CNN和递归神经网络(RNN)是两种使用最广泛的深度学习算法。它们每个都可以有效地提取数据集的空间和时间特征。在神经网络中,每个隐藏层中每个神经节点的值是上层节点权重的总和,并通过激活函数传输到相应的下一层节点。CNN主要用于提取数据集的空间特征,并在许多计算机视觉领域取得了显著成就。RNN基于通用神经网络,向每个神经网络节点添加一个自连接加权值作为存储单元,可以存储神经网络的先前状态。其中,由于RNN在结构中添加了“忘记门”单元,因此开发了长短期记忆(LSTM)网络。因此,LSTM网络可以有效地从长序列中提取时间特征,这已用于解决许多自然语言处理问题,例如机器翻译。时空特征是入侵检测系统中两个最常见的检测特征。例如,Zeng等。(2014年)首次使用CNN研究HAR问题。通过分析传感器传回的序列,将它们转换为“图像信息”,然后识别人类行为。Wang等。(2017)尝试使用CNN来检测恶意软件攻击,并将网络流量转换为矩阵形式作为CNN的训练集。

另一方面,托雷斯等。(2016年)首先使用LSTM网络分析线性数据流的时间特征,并提高了恶意软件攻击的检测准确性。近年来,研究人员已经采用CNN和RNN构建基于空间特征或时间特征的网络入侵检测模型。所有这些研究方法都有共同的特点:它们都应用CNN或RNN来构建单个模型,这显然并不全面。

根据不同的网络协议,将多个网络流量字节组合为一个网络包,然后将多个数据包组合为一个数据流。这些网络流量的字节,数据包和数据流与自然语言处理中的字符,句子和段落非常相似。对网络流量的分类类似于将自然语言中的段落分为正样本和负样本(Farhadloo,2015年)。在自然语言处理领域,近年来研究人员开始尝试整合检测方法(Goldberg,2016年 ; Marie-Sainte,Alalyani,Alotaibi,Ghouzali,Abunadi,2019年)); 该模型在学习自然语言的时空特征的同时,具有良好的性能。因此,我们还可以从其研究工作中学到一些东西,并结合两个深度神经网络来学习原始网络数据流的时空特征。

3 MSCNN-LSTM的设计

本文提出的MSCNN-LSTM检测模型是自动利用CNN和LSTM提取目标数据集的时空特征,有效提高入侵检测系统的准确性。模型的学习过程如图1所示。

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第2张图片

MSCNN-LSTM模型的局部细节如图2所示。

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第3张图片

3.1 数据集的选择

在该研究领域中,研究人员通常使用KDDCUP99和NSL-KDD,它们在前者上有所改进。自诞生以来,KDDCUP99已在该领域使用了近20年,但存在严重缺陷。例如,数据样本极不平衡,缺少某些特征值,依此类推。NSL-KDD由Tavallaee M等在2009年基于KDDCUP99(Tavallaee等,2009)在添加了一部分新样本数据后获得。尽管有改进措施,NSL-KDD和KDDCUP99仍然存在许多问题。近年来,一些研究人员观察到这两个数据集的缺陷将对入侵检测系统的分类性能产生负面影响。主要原因如下(Moustafa和Slay,2015年):首先,缺乏当今网络中常见的低级别攻击样本。低级别攻击将随着时间的流逝逐渐减弱其特性,并成为正常流量,这是一种隐形攻击。其次,这两个数据集的测试集包含一部分新数据,这有助于训练集和测试集的不同分布,并导致误报。第三,由于网络环境随时间而变化,两个数据集中有很多冗余数据似乎非常不合理。总而言之,尽管这两个数据集在入侵检测的发展中做出了重大贡献,但它们还不足以反映现在的真实网络环境。

因此,在这项工作中,将使用由澳大利亚网络安全中心(ACCS)实验室创建的公共数据集UNSW-NB15(Moustafa,Slay,2015;Moustafa,Slay,2016)。UNSW-NB15中的异常行为分为九大类,每种异常行为类别也将分为特定的攻击行为。与KDDCUP99的四种类别相比,UNSW-NB15的特定攻击行为数量几乎是其五倍。由于UNSW-NB15数据集的异常行为新颖,均衡且比例合理,因此更适合相关研究人员进行入侵检测研究。

3.2 数据预处理

此部分包括模型学习过程中的数据标准化和数据格式转换。它打算对数据进行量化和标准化。例如,在原始数据集中,某些项目是字符串属性,包括第49个项目“标签”。在“标签”中,只有两个属性值,即“攻击”或“正常”。为了作为数据流输入到神经网络模型中,我们必须将字符串属性转换为数值属性。

数据集具有9种主要的异常行为类型,即Fuzzers,Analysis,Backdoors,DoS,Exploits,Generic,Reconnaissance,Shellcode和Worms。每个样本包含49个特征和1个标签,在其中标识了标签。数据集的特征可以具体分为以下类型:流量特征,基本特征,内容特征,时间特征,附加生成的特征和标签特征。UNSW-NB15的49个功能中显然存在一部分冗余。这些冗余功能将极大地影响分类器的分类性能。由于UNSW-NB15的建立时间相对较短,因此目前仅对该数据集的特征选择进行研究。因此,在这项工作中,Khammassi和Krichen(2017)。这些特征子集通过使用遗传算法作为特征搜索策略并使用逻辑回归作为分类器来获得,如表1所示。

A.数据标准化

在该功能中,“ proto”,“ state”,“ service”和“ Attack_act”的属性值是符号性的,我们需要将其转换为数值类型。例如,在'proto'属性中,我们将网络流量中的三个最重要的值'tcp','udp'和'icmp'映射到1、2和3,并将其余值映射到4。数字化特征值相对易于处理。

B.数据归一化

对于特征的每个维度,其各自维度中的值都不一致,并且值的范围也大不相同。这在UNSW-NB15数据集中尤为突出。数据集的规范化是必要的。高幅度数据具有较高的权重,这使得低幅度的数据对结果的影响很小,并且丢失了一些隐藏在原始数据集中的信息。预处理方法如公式(2.1)所示,特征值将通过如下线性变换归一化为[0,1]。

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第4张图片

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第5张图片

3.3 空间特征学习

大多数时候,CNN用于了解二维图像的空间特征。在本文中,整个流动图像的空间特征是从单个p×q图像中学习的,如图2所示,然后,MSCNN结构的输出是单个流动向量。

3.4 时态特征学习

LSTM用于学习多个流量矢量之间的时间特征。在本文中,LSTM学习了多个流向量之间的时间关系,如图2所示。输出是单个流向量,代表网络流的时空特征。它将根据提取的特征进行分类。

3.5 多尺度卷积

这项工作改编了CNN结构。CNN体系结构用于图像处理,在图像处理领域取得了良好的研究性能。但是,在图像处理过程中,CNN专注于图像的某些局部特征,例如边缘信息。网络流量的识别不仅可以依靠一些离散的局部特征,还需要结合多个局部特征以进行分类。因此,将CNN调整并转换为MSCNN以完成此任务。当人类视觉感知系统在大脑中绘制图像时,它将首先形成从远到近,从模糊到清晰的完整图像集。因此,MSCNN在人眼识别过程中模拟物体在视网膜上不同距离处的不同投影。网络流量是一个高维数据集,仅通过几个离散的功能就无法识别。在MSCNN中,本文使用多个大小不同的卷积核来提取特征图,并将其组合以获得多组局部特征,以实现准确的识别。MSCNN结构将基于三个原始的多尺度卷积层,三个卷积层,一个池化层和三个完全连接的层。网络结构参数显示在 三个卷积层,一个池化层和三个完全连接的层。网络结构参数显示在 三个卷积层,一个池化层和三个完全连接的层。网络结构参数显示在表2。

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第6张图片

MS卷积层将使用1 * 1、2 * 2和3 * 3卷积核来提取数据集的特征。由于2 * 2,3 * 3卷积核在卷积层上进行卷积运算非常耗时,因此本文引用了增量网络结构(Szegedy et al. 2016),在2 * 2,3 * 3卷积之前,添加一个1 * 1的卷积过程以减小特征的尺寸。MS卷积层结构如图3所示。

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第7张图片

3.6 LSTM网络

LSTM网络是专门为学习时间序列数据而设计的。RNN和LSTM之间的最大区别在于,内部存在一个“单元”结构来确定输入信息是否有用。它由一个输入门,一个忘记门和一个输出门组成。当信息有用时,将由算法保留,而无用的信息将被丢弃。这项工作使用双向LSTM网络扫描和反向扫描整个序列。LSTM网络在自然语言处理中的应用表明,双向扫描可以更准确地提取时间特征(Li等,2016)。LSTM网络通过不同的“单元”结构输入信息,该“单元”结构使用三个“门”来实现信息选择,每个门通过包含S型函数的神经层和逐点乘法运算来完成各自的任务。

3.7 池化层

池化是卷积神经网络中经常使用的基本操作。当池作用在图像的不同区域时,如下图所示,我们将池窗口的大小定义为图4中的 SizeX 。,即下图中红色正方形的边长,并将两个相邻合并窗口的水平位移定义为Stride。当不重复合并的窗口时,SizeX等于Stride。通用池化方法主要分为两种:最大池化和均值池化。池化层的主要作用是执行下采样。池层的设计旨在减小参数尺寸并加快网络训练速度。当完成窗口滑动卷积时,滑动窗口之间存在大量重叠,结果值将具有大量冗余,并且合并操作可以使冗余最小化。当池化层减少冗余信息时,本地信息将丢失,并且保留重要特征。冗余信息的减少还可以显着防止过度拟合并提高模型的泛化能力。近年来,主流的分类模型是最大池,很少考虑均值池。一般来说,最大池化效果更好。尽管最大池化和均值池对数据进行了二次采样,但最大池化主要选择具有更好分类和标识的特征。特征提取的误差主要来自两个方面:有限的邻域大小导致的估计值方差增加,卷积层参数的误差导致估计平均值的偏差。在这种情况下,均值合并可有效减少第一类错误并保留更多背景特征信息。相反,最大池化可以减少第二个错误并保留更多纹理特征信息。因此,均值池强调整体特征信息的二次采样,并且在信息的完全传递中会反映出更多的贡献。即使将数据标准化并映射到[0,1]间隔,在该间隔中倾向于以0和1结尾的数据仍然存在,如果使用max-pooling方法将丢失某些特征信息。

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第8张图片

4 实验仿真

4.1 实验材料

实验的整个过程是在Ubuntu 16.04 LTS环境中进行的,使用Keras 2.0结构库和Tensorflow 1.1.0作为后端计算。这项工作中使用的训练和测试子集基于UNSW-NB15数据集。已从UNSW-NB15数据集中提取了一部分数据作为训练集和测试集,训练集中有175,341条数据,测试集中有82,332条数据。采样需要遵循大样本平均采样和小样本完整采样的原则。通过采样获得的测试集为Test_Set_A。下表3中显示了每个数据集中的异常行为类别和分布。为了进一步测试模型的泛化能力,这项工作中使用了新的测试集Test_Set_B。观察预设的训练集和测试集,我们可以发现网络流量的正常行为大约占总流量的三分之一,而罕见的攻击类别“蠕虫”和“ Shellcode”仅占很小的比例因此,在用于测试系统特定泛化能力的新测试集中,“蠕虫”和“ Shellcode”类型的比例有所增加。表4中显示了测试集Test_Set_B的具体分布。

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第9张图片

4.2 仿真实验

MSCNN-LSTM模型在卷积层中使用三种不同大小的内核。填充方法与填充相同,并且通过Categorical_crossentropy函数解决了误差损失。优化器使用AdamOptimizer,并且每层的初始权重和偏移值均采用0均值的高斯初始化进行。

模型训练过程的梯度下降方法有很多种选择,如果每个梯度下降都是所有训练数据的计算平均梯度,则这种梯度下降方法称为全批次梯度下降方法。当训练数据量达到百万时,一次迭代需要等待很长时间,这大大降低了训练速度。相反,随机梯度下降的批次大小为1,并且每个训练数据都需要更新权重。学习率较低时,噪声要小得多,但梯度下降的速度也会减慢。为解决上述问题,该模型采用小批量梯度下降法,在1到最大训练数据量之间选择要训练的批量大小数据量,每次只训练一小部分数据,为了提高整个网络的泛化能力,在全连接层使用了dropout方法来避免过度拟合。实验研究了dropout层的连接概率p。结果在下面的图5中示出。该模型将连接概率p设为0.5。

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第10张图片

4.4实验结果

设计了三组比较实验,并将数据输入到经典网络Lenet -5(Lecun等,1998),MSCNN和Wang等人提出的HAST网络中。(2018)进行比较。MSCNN模型比较了这项工作中提出的MSCNN-LSTM检测模型的单一特征和时空特征,以提高检测精度。Lenet-5和HAST网络每一层的卷积内核使用相同的比例,并且将用作比较入侵检测模型中多比例卷积的优势。

验证结果用于在准确性,误报率和误报率方面衡量模型的性能,以确保实验的可靠性。最终的实验结果如下表所示:

融合检测模型MSCNN-LSTM在准确性,误报率和误报率方面优于其他模型,并且在计算时间上仅稍逊一筹。本文表中记录的实验时间包括模型训练和分类过程。模型训练后,测试集的识别时间非常短,可以满足实时检测的要求。

下面的图6比较了在罕见攻击情况下这四个模型的检测能力,因为罕见攻击通常被隐藏并且具有较长的等待时间和更大的破坏力。因此,罕见攻击的重点是减少其FNR。在图6中,示出了在针对罕见攻击的检测准确性和误报率方面,综合检测模型优于其他模型。

在最后一组比较实验中,这项工作使用Testing_Set_B作为模型的最终输入测试集来测试模型的泛化能力,并获得表6。

基于常规神经网络的入侵检测系统不分析UNSW-NB15数据集。在这项工作中,我们基于现有模型提出了一种新的集成检测模型。通过对三个实验的分析,发现集成检测模型在准确性,误报率,误报率和罕见攻击的泛化能力方面更适合入侵检测系统。

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第11张图片

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第12张图片

5 结论与未来工作

该方法在面对高维和高复杂度数据集时显示出强大的功能。该方法不需要常规入侵检测系统中使用的任何工程技术。实验结果表明,与其他现有方法相比,该模型有效地提高了精度。此外,许多当前入侵检测方法的FAR通常很高。我们的实验结果表明,MSCNN-LSTM有效地降低了FAR,因为它可以自动学习时空特征,从而提高了IDS的整体性能。在将来的工作中,将进一步改进模型的特征选择部分,并且该模型在不平衡数据集上将具有良好的检测性能。在现实世界中,恶意软件流量与正常流量相比很小,并且不同类别的恶意软件流量的比例通常相差很大。当然,提高模型的泛化能力也是研究方向之一。

参考文献

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第13张图片

基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型_第14张图片

你可能感兴趣的:(基于python的入侵检测系统毕设_基于时空特征融合的入侵检测系统模型)