一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于深度度量学习的网络攻击检测方法

2022-12-20 21:47:35 来源:中国专利 TAG:


1.本发明属于网络安全技术领域,涉及网络攻击检测,具体涉及基于深度度量学习的网络攻击检测方法。


背景技术:

2.使用互联网进行沟通具有很强的便利性,迅速的信息传播能力与高度的开放性,使得其用户遍布全球各地。随着用户数量的增多,大量数据不间断地流入网络,其中不少重要数据成为黑客攻击所关注的对象,因此互联网在带来便利性和开放性的同时,也会带来巨大的安全隐患和隐私数据泄露风险。
3.传统的入侵检测系统通常基于正常的网络流量来构建安全防护模型,目的是将异常的网络流量与正常的网络流量分开,这样的检测系统并不需要网络异常流量的先验知识和数据库,就能有一定的入侵检测成功率。随着对入侵检测技术的深入研究,特征选择算法和机器学习技术也被应用其中,但是这些方法在检测系统的表现不够出色,由于无法提取数据样本特征与标签之间的内在联系或潜在信息,导致分类不平衡,例如林晓斌在《计算机网络安全的入侵检测技术现状分析》中提到的,基于统计学等方式的检测系统很难检测出不常见的攻击手段,而对于ddos攻击的响应却过于敏感等。


技术实现要素:

4.针对现有技术的不足,本发明提出了基于深度度量学习的网络攻击检测方法,通过分析网络流量数据中基于流的特征,利用深度度量学习方法,在训练阶段学习网络数据的深层信息,并在预测阶段加以应用,从而在对新型的恶意网络攻击预测中取得良好的性能。
5.基于深度度量学习的网络攻击检测方法,具体包括以下步骤:
6.步骤1、构建深度度量学习模型
7.构建多尺度cnn模型与triple network模型的混合网络,作为深度度量学习模型。其中多尺度cnn模型通过对不同阶段的输出进行结合实现数据重建,输出三元组数据,在triple network模型进行特征映射。
8.所述多尺度cnn模型的结构如表1所示:
9.[0010][0011]
表1所述triple network模型的结构如表2所示:
[0012]
[0013][0014]
表2
[0015]
步骤2、训练深度度量学习模型
[0016]
设置输出层的激活函数为sigmoid函数,选择adam优化器,使用公开的网络入侵检测数据集作为训练集,分别利用正常网络数据与网络攻击数据对步骤1中的多尺度cnn模型进行优化,然后利用多尺度cnn模型的输出数据对triple network模型进行训练,保存训练后的模型参数。
[0017]
步骤3、网络攻击检测
[0018]
将收集的网络流量数据输入步骤2训练后的深度度量学习模型中,判断是否为网络攻击数据,完成网络攻击检测。
[0019]
本发明具有以下有益效果:
[0020]
基于encoder-decoder结构构建了多尺度cnn网络,对样本数据进行重建,输出triple network模型所需的三元组数据,相比随机三元组数据的正负锚点,重建数据可以在训练中更好的收敛。利用triple network模型的深层网络结构实现特征空间的非线性映射,然后在特征空间进行距离度量,在极端的小样本分类任务中可以表现出更好的性能。
[0021]
在训练阶段,分别利用正常的网络流量和攻击流量训练两个独立的多尺度cnn模型,然后训练triple network模型对网络流量数据进行特征映射。预测阶段利用多尺度cnn模型将未知的流量数据恢复到非线性映射空间中最近的重建,这样预测阶段就利用了在训练阶段学习到的网络数据的深层信息,能够对网络流量中的新型恶意攻击取得良好的预测性能。
附图说明
[0022]
图1为基于深度度量学习的网络攻击检测方法流程图;
[0023]
图2为实施例中多尺度cnn模型结构示意图;
[0024]
图3为实施例中triple network模型结构示意图;
[0025]
图4为实施例中深度度量学习模型训练流程示意图;
[0026]
图5为实施例中triple network模型的训练运行截图;
[0027]
图6为实施例中3个模型的roc曲线图。
具体实施方式
[0028]
以下结合附图对本发明作进一步的解释说明;
[0029]
如图1所示,基于深度度量学习的网络攻击检测方法,包括深度度量学习模型的建立、训练以及网络流量数据识别。为了说明本方法的有效性,本实施例还建立了浅层神经网络模型、cnn lstm混合模型,采用与本技术所提深度度量学习模型相同的训练方法与评价指标,进行检测效果对比,具体包括以下步骤:
[0030]
步骤1、构建不同的学习模型:
[0031]
s1.1、构建浅层神经网络模型,第一层为全连接层,激活函数为relu,第二层为全连接层,激活函数为sigmod,损失函数采用标签交叉熵损失函数,具体结构如表3所示:
[0032][0033]
表3
[0034]
s1.2、构建cnn lstm混合模型,第一~第三层为conv dropout层,激活函数为relu,第四~第五层为lstm dropout层,激活函数为relu,最后是两层全连接层,激活函数为sigmod,损失函数采用标签交叉熵损失函数,具体结构如表4所示:
[0035]
[0036][0037]
表4
[0038]
s1.3、构建深度度量学习模型
[0039]
所述深度度量学习模型包括多尺度cnn模型与triple network模型。其中多尺度cnn模型通过对不同阶段的输出进行结合实现数据重建,第一~第三层为conv层,激活函数为relu,在第三层的conv层后有一个dropout层;第四层为conv层,激活函数为relu,第四层conv层的输出与第二层conv层的输出相结合,将尺寸reshape成128后作为第五层conv层的输入;第五层conv层的激活函数为relu,其输出与第一层conv层的输出结合,将尺寸reshape成256之后作为第六层conv层的输入;第七层为conv层,激活函数为relu,具体结构如图2与表5所示:
[0040]
[0041][0042]
表5
[0043]
triple network模型的输入为多尺度cnn模型输出的三元组数据,其中每组数据的大小均为78,在triple network模型中,三组数据通过四层全连接层后输出单元为512,最后计算输出各单元之间的欧式距离;其中第一~第三层全连接层的激活函数为relu,第四层全连接层的激活函数为sigmod,第一、第二层全连接层后接有dropout层,具体结构如图3与表6所示:
[0044]
[0045][0046]
表6
[0047]
步骤2、准备训练数据
[0048]
本实施例使用公开的cic-ids2017数据集中的数据完成上述三个模型的训练与检验。选择cic-ids2017数据集中的100000条数据,将其中除了二进制类型以外的其他数据进行归一化处理,将其映射到[0,1]的范围之内,加快梯度下降求最优解的速度并且提高深度学习的精度。然后按照8:2将处理后的数据随机划分为训练集和测试集。对于训练集中的数据,需要将classification字段下的benign数据改成1,即正常记录,非benign数据改为0,即异常记录;将flow_packets和flow_bytes字段下的无穷值改为该字段的最大值;保留数据中二进制类型的值,如fwd psh flags等。
[0049]
步骤3、模型训练
[0050]
如图4所示,设置浅层神经网络模型、cnn lstm混合模型的输出层激活函数为sigmoid函数,损失函数为标签交叉熵损失函数;triple network模型的输出层激活函数为sigmoid函数,损失函数为软边界三重损失函数;多尺度cnn模型输出层的激活函数为relu函数,损失函数为mse损失函数。使用步骤2构建的训练集对三种模型进行batch size大小相同、迭代次数相同的训练,并选择adam优化器进行优化。adam优化器与随机梯度下降优化算法相比,能够在训练的过程中不断地迭代神经学习率,不仅能基于一阶矩均值计算适应性参数学习率,同时还能充分利用梯度的二阶矩均值。保存训练后的模型结构参数和模型数据。
[0051]
步骤4、网络攻击检测
[0052]
将步骤2中的测试集数据输入步骤3训练后的三个模型中,其中浅层神经网络和cnn lstm混合模型直接以其输出作为检测结果,深度度量学习模型将两个模型输出值的欧式距离进行比较,取值更小的一个作为检测结果,运行结果如图5所示。以数据标签为真实值,计算三个模型在测试集上的准确率、精确率、召回率和f1-measure,记录训练和测试的消耗时间,结果如表7所示:
[0053] 深度度量学习模型cnn lstm浅层神经网络
准确率0.97690.94900.9348精确率0.91810.91690.8997召回率0.97560.91890.8946f1-measure0.94590.91790.8972训练10轮时间(秒)315.7353.4826.98测试时间(秒)152.3530.2220.48
[0054]
表7
[0055]
准确率acc、精确率precision、召回率recall和f1-measure考虑了真阳性tp(正确检测到的攻击数量)、真阴性tn(正确检测到的正常样本数量)、假阳性fp数量(错误检测为攻击的正常样本数量)和假阴性fn数量(错误检测为攻击的正常样本数量),可以客观的反应检测效果,具体计算公式为:
[0056][0057][0058][0059][0060]
根据统计数据绘制了roc曲线如图6所示,表7中三个模型的各项指标对比可以看出,混合模型的各项指标大体上优于单一模型,即准确率、精准度更高,消耗时间更短。
[0061]
从cnn lstm混合模型与深度度量学习模型对比分析来看,本方法在准确率、召回率和f1-measure指标均优于cnn lstm的混合模型和浅层神经网络模型。
[0062]
深度度量学习模型模型与浅层神经网络模型对比分析可知,由于浅层神经网络模型只包含一层神经网络,该层包含128个神经元,所以相较于其对比模型在训练时间与测试时间上都要更短。但是深度度量学习模型在准确率、召回率和f1-measure指标均大幅度优于浅层神经网络模型。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献