使用svm对光学字符数据进行分类_基于卷积神经网络的入侵检测进行检测Dos攻击...

如今,网络已成为生活中必不可少的部分之一。网络安全在系统管理中也起着重要作用,并监视系统的运行。入侵检测系统(IDS)是在系统受到影响之前检测并防御恶意流量的重要模块。该系统可以从网络系统中提取信息并快速指示反应,从而为系统提供实时保护。但是,由于恶意流量数量众多且种类繁多,因此检测起来非常复杂。此外,检测和执行时间的准确性也是一些检测方法所面临的挑战。本文提出了一种基于卷积神经网络(IDS-CNN)的IDS来检测DoS攻击。实验结果表明,基于CNN的DoS检测最多可达到99.87%的高精度。此外,与其他机器学习技术(包括KNN,SVM和朴素贝叶斯)的检测表现比较表明,基于卷积神经网络的方法优于传统的机器学习方法。

一. 入侵检测现状:

入侵检测系统是网络安全系统中的重要模块。它用于发现,确定和识别未经授权的使用,复制,更改和破坏信息系统。在复杂的网络中,安全性对于系统的运行非常重要。在IDS中实现了多种技术来检测DOS攻击流量,例如基于误用,基于异常的方法。其中,基于误用的方法旨在通过使用攻击流量的签名来检测已知攻击。以其他形式,基于异常的检测可以监视网络流量以发现偏差。当前,诸如KNN,SVM,朴素贝叶斯之类的机器学习(ML)技术非常受欢迎。它们在许多领域中实现,例如图像处理,语音处理。关于IDS,已经有一些应用ML来检测DoS攻击的研究。机器学习中还有另一种判别算法,它是图像处理中众所周知的深度学习方法,称为卷积神经网络(CNN)模型。对网络流量进行分类并查找恶意流量是一种合适的潜在技术。

二. 卷积神经网络

卷积神经网络是目前最先进的图像分类模型。CNN对图像的原始像素数据应用多个过滤器(卷积核)来提取和学习更高层次的特征,然后模型可以使用这些特征进行分类。CNN包含三个主要组件:输入层、输出层和隐藏层,这些层包括卷积层、池化层和全连接层。

首先,卷积层对图像应用一定数量的卷积过滤器(卷积核)。对于每个子区域,该层执行一组具有特定空间范围和步长值的数学运算,在输出特征图中产生一个单独的值。然后,卷积层通常对输出应用一个激活函数,执行非线性操作。

其次,池化层对卷积层提取的图像数据进行降维处理,以降低特征图像的维数,保留最大值,舍去其他的值。最后,全连通层对卷积层提取的特征进行分类。在全连接层中,层中的每个节点都连接到前一层中的每个节点。

本文提出基于CNN的IDS来检测Dos流量。然后解释了如何对数据进行归一化,并在CNN的输入数据处生成数据的矩阵像素。我们还讨论了如何实现CNN模型来获得较高的检测性能。

三. 基于卷积神经网络的入侵检测系统实现架构

该入侵检测系统实现的架构主要是包括四部分:数据收集,数据处理,基于卷积神经网络的Dos检测模型,决策判断。

3.1. 数据收集

在系统的最底层,它接收来自采样器或收集器系统的实时网络流量以及KDD Cup 99等现有数据。

3.2. 数据处理

CNN是一种著名的图像分类模型,所以CNN的输入格式应该是图像。然而,在某些情况下,CNN也可以用来对语音或文本进行分类,输入数据也有很大的不同。因此,这类数据集应归一化为一般数据集,即包含图像像素值的矩阵。像素中的每个值的取值范围是0到255。

85d78842c37201caf39fe4eec5353ff3.png

图1: 数据归一化算法

KDD 1999数据集是一个包含41个属性的异构类型记录的网络流量。它可以是字符串、整数或浮点数,其数据中的数值范围则完全不同。这个数据集输入到CNN是不合适的,我们必须将数据规格化到一个新的数据集,这个数据集包含了整数值,范围是0到255。同时,从直观上可以看出,KDD数据集中的大部分值都小于122,很少有区域的异常情况大于255。为了规范数据集,我们提供了算法1来预处理数据。如果数据是一个字符串,我们可以很容易地在第5行将值匹配为一个从0到255的整数。复杂的情况下,需要计算每一行的平均值,如算法的第七行,然后,如果任何一行的值小于122,我们可以通过将原来的值加倍来对它们进行标准化,如果原来的数字小于这个平均值的二倍,就如第十三行进行计算这个新的值,另一种情况是在255之外,我们将255赋给新值。

在有了一个新的数据集之后,出现了一个问题:如何用像素矩阵来表示它们。为了回答这个问题,可以考虑CNN的输入图像,它应该是一个方矩阵,最适合包含41个属性的最小图像是7x7大小的矩阵。我们可以将新数据集中的每个记录转换为大小为7x7的方阵,如图2所示。对于矩阵的最后八位,我们将它们设置为0。

这一步将从原始数据中为CNN模型准备输入数据。数据采集到底层后,通过以上的数据归一化过程进行预处理。这些数据可能包括一些非常大的值、小的值和不同的类型。它需要规范化为一种类型和一个范围[0…255]。矩阵转换模块将数据归一化后转换成矩阵作为CNN模型的输入。

116f06b6c1a8cfee8d61a87a9766b8fc.png

图2: 数据预处理

3.3. 基于卷积神经网络的Dos检测模型

下一层是检测模型,使用训练好的CNN模型将输入流量分成五类,可以是正常流量,也可以是前面提到的四类具体的攻击流量(Dos, r21, u2r,Probe)。

3.4. 决策判断

该体系结构的最后一层是决策判断,用于在获得结果后为流量提供判断。获得分类结果后,应做出决定以阻止或允许流量通过。如果检测到该流量为攻击,我们可以将其阻止或重新路由到其他服务器以进行更多分析。此外,我们可以使用检测结果来更新知识数据库,以提高系统的检测能力。

806c79e0f6dfa73ab1058bd854bf7260.png

图3: 系统架构图

四. 针对Dos入侵检测的卷积神经网络实现

通常,没有用于对输入数据具有最佳性能进行分类的特定CNN架构,因此我们设计和实现具有不同结构的网络,然后多次执行以确定最佳的网络结构。如上所述,简单的CNN架构是一系列三层结构,每个三层结构通过一个可区分的函数(激活函数)将一个激活量转换为另一个激活量。在该系统中,设计了一个具有两个卷积层和三个全连接层的CNN架构,如下图所示。在该CNN架构中不使用池化层,因为对于数据集尺寸较小(例如,图像尺寸为7x7)的样本不必执行缩小尺寸操作。

bad4b1c5921342cc220c4d38bc768813.png

图4: 卷积神经网络结构

4.1. 卷积层

该结构使用了两个卷积层。在第一卷积层Conv1中,设计使用大小为[3x3]的64个卷积核。该层的输入数据是从网络流量数据生成的2D图像,每个图像的大小为[7x7]。该层将生成尺寸为[7x7x64]的特征图。第二个卷积层Conv2使用大小为[3x3]的128个卷积核,因此它会生成大小为[7x7x128]的特征图。两个卷积层都使用相同的参数:步幅,S = 1;零填充,P = 0; ReLU激活功能使每一层的体积大小保持不变。

4.2. 全连接层

该网络结构使用三个全连接层。Conv2生成的特征图用作第一个全连接层的输入。第二个完全连接的层使用与第一个相同的参数:隐藏单元数,h = 100;偏置b = 0; 激活功能是ReLU。最后一个全连接层(输出层)将计算类别得分,从而得出大小为[1x1x5]的向量,其中5个数字中的每一个都对应一个类别得分,例如5种类别中的DoS攻击。此外,我们使用drop-out参数d = 0.5,以避免在CNN训练阶段出现过拟合问题。

五. 实验评估

为了评估本文提出的模型,一个实验展示了提出的CNN模型的性能。该实验并拿CNN模型和其他机器学习技术进行比较。该实验使用Python语言的TensorFlow深度学习框架来实现CNN模型。该实验使用两种不同的设置评估CNN模型。第一个实验,评估不同卷积层的个数对检测准确率的影响。将模型的卷积层数从1层更改为3层。然后,保留具有最佳结果的层数,并使用1000、10000和15000训练迭代次数来更改训练迭代次数。之后,第二个实验通过按照实验一提供的最佳结果参数进行配置神经网络,将CNN与其他机器学习技术(例如SVM,朴素贝叶斯和KNN)的准确性和执行时间进行了比较。

708e77fec899189053c4d72729318118.png

图4: 卷积层的个数对准确率的影响

f5c39a23eca5c5477b1e69daa1fa77b1.png

图5: 训练的轮数对准确率的影响

335f898d7ec0be597c1d58007780590d.png

图6: 不同的机器学习方法的准确率对比

84179027a7e8737c864f66779dfaaf64.png

图7: 不同机器学习方法的执行时间对比

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值