本发明涉及网络入侵检测,具体是一种基于深度学习神经网络的网络入侵检测方法、装置、系统及存储介质。
背景技术:
1、近20年来,网络技术发展迅速,在经济、军事、教育等领域得到了广泛而深入的应用,深刻影响着社会发展。同时,针对网络系统的攻击越来越严重,攻击范围越来越大,各种新的攻击工具和方法层出不穷,不仅造成经济损失,甚至威胁国家安全。因此,有效的网络入侵检测(nid)解决方案最终对现代社会至关重要。入侵检测系统(ids)是一种广泛使用的网络安全设备,可以实时监控网络活动和检测威胁。nids是一种部署在网络节点上的ids,通过直接分析网络流量来检测攻击。
2、nids包括误用检测和异常检测,其中,误用检测方法使用一系列规则根据专家知识定义恶意活动,并通过逐行匹配网络流量来检测攻击,在实际部署中广泛使用,因为它可以快速检测到攻击,误报率低。然而,攻击者不断升级攻击工具和策略,误用检测方法无法检测这些未知攻击。异常检测方法可以检测未知攻击,是近年来入侵检测的重点。机器学习和深度学习是入侵检测的主要技术。
3、基于机器学习的入侵检测方法首先通过特征工程从原始流量中提取特征,然后训练方法检测异常。常规入侵检测方法,如随机森林、支持向量机(svm)。虽然基于机器学习的方法已经取得了相对较高的性能,但随着数据复杂性和多样性的增加,它们高度依赖于通过复杂的特征工程提取的特征,特征的设计依赖于专业知识并导致信息丢失,这些问题成为了机器学习方法的瓶颈。针对上述问题,基于深度学习的入侵检测方法突破了基于机器学习的入侵检测方法的瓶颈,通过从原始数据中自动学习特征来获得更好的性能。近十年来,随着硬件的发展和海量数据的产生,深度学习技术得到了快速发展,并在包括入侵检测在内的各种应用中取得了令人瞩目的成果。代表性的深度学习方法包括卷积神经网络(cnn),递归神经网络(rnn),长短期记忆(lstm),transformer和生成对抗网络(gan)。这些方法从不同的角度学习特征,例如,cnn学习网络流量的空间特征,lstm学习时间特征。
4、尽管现有的基于深度学习的方法已经取得了较高的性能,但它们仍然存在以下不足:
5、(1)包头和包有效载荷在入侵检测中起着关键作用,但大多数基于深度学习的方法将它们作为一个整体同时处理,这在方法中无法学习到更集中的特征。
6、(2)会话中包含的数据包数量和数据包的大小是不固定的,现有方法通过直接截断或修补到固定长度来解决这个问题,但是截断的部分不能使用,这无疑会导致信息丢失。
7、(3)忽略数据包之间的时间间隔,会话可以被认为是多个数据包的序列,就像一个句子可以被认为是多个单词的序列。然而,与句子的模式不同,会话中元素之间的距离范围很广。由于在处理会话期间丢失时间信息,现有的普通序列方法效果不佳。
技术实现思路
1、针对上述问题,本发明通过构建一种基于深度学习神经网络的网络入侵检测方法、装置、系统及存储介质,其是基于cnn、rnn及self-attention的一种新型入侵检测方法(crnn-sa),该方法利用一维卷积神经网络(cnn)和递归神经网络(rnn)分别提取空间特征和时间特征,将二者提取的特征“并联”得到融合特征,通过并联的方式组合模型已学习到更集中的特征,引入self-attention以提取可变长度会话的特征,进一步进行特征提取以选择重要的特征信息,防止了信息的丢失,可以有效的提高网络入侵检测的能力。
2、一种基于深度学习神经网络的网络入侵检测方法,包括如下步骤:
3、步骤一、构建cnn网络提取网络流量数据的空间特征;
4、步骤二、构建lstm网络提取网络流量数据的时间特征;
5、步骤三、将步骤一提取的空间特征和步骤二提取的时间特征进行并联得到融合特征;
6、步骤四、利用self-attention对融合特征分配不同的权重,进行二次特征提取以选择重要的特征信息,基于所述选择的重要的特征信息通过检测模型的输出层进行网络入侵检测。
7、进一步的,所述步骤一具体包括:
8、步骤1.1、卷积通过一组过滤器或内核将输入数据转换为突出输入数据特征的输出,卷积输出由激活函数进一步处理,然后通过池化进行下采样以去除不相关的数据;
9、步骤1.2、cnn通过多轮的学习过程自动调整过滤器来学习输入数据,使其输出特征图有效地表示原始输入数据,捕获空间特征;网络数据包以一维形式存在,一维卷积表示如下:
10、
11、其中,g表示图,i和j表示序列数据中不同值的位置,f是大小为m的滤波器;
12、步骤1.3、使用批量归一化来调整rnn模块中的cnn输出,调整cnn捕获的空间特征,如下所示:
13、
14、其中,x是输入批量中的值,μb和δb分别表示批量均值和方差,ε是一个常数值;基于归一化产生的归一化得到公式(3)所示的输出
15、
16、其中γ和β表示超参数。
17、进一步的,所述步骤二具体包括:
18、步骤2.1、通过构建长短期记忆网络lstm提取时间特征,lstm抽象为四个子网络、一组控制门和一个记忆组件的连接,输入和输出值是由输入x(t)确定的相同大小的向量,保存在内存中的状态s(t)作为对当前学习的反馈,具体表示如下:
19、b+u×x(t)+w×h(t-1) (4)
20、其中,x(t)表示当前输入,h(t-1)表示先前输出,b表示偏置,u表示权重矩阵;
21、步骤2.2、使用子网(p(t),g(t),f(t),q(t)),通过两种类型的控制门(α,tanh)来确定反馈s(t)从之前的学习和当前的输出h(t),具体表示如下:
22、s(t)=σ(f(t))*s(t-1)+σ(p(t))*tanhg(t) (5)
23、h(t)=tanhs(t)*σ(q(t)) (6)
24、其中,σ表示激活函数,lstm通过调整这些网络中的权重和σ值来学习输入,以便可以在输出中有效地生成输入数据之间的时间特征。
25、进一步的,所述步骤四具体包括:
26、步骤4.1、通过使用自注意力机制从大量的信息中选出更重要的部分,以提高入侵检测的准确率,通过利用注意力机制来动态地生成不同连接的权重,用来处理变长的输入序列,作为神经网络中的一层来使用,表示如下:
27、
28、式中,q表示一组查询向量矩,k表示一组键向量矩阵,v表示向量矩阵;首先计算q与k的点乘,然后除以以防止其结果过大,再利用softmax函数将其结果归一化为概率分布,最后乘以矩阵v得到权重;
29、步骤4.2、通过使用自注意力机制获得的权重进行二次特征提取,以捕获重要的流量数据特征信息;通过添加一个维度重朔层来重塑下一模块的数据;使用一个额外的卷积层和一个全局平均池化层来进一步提取时空特征,最终的学习输出由最后一层全连接层生成。
30、一种基于深度学习神经网络的网络入侵检测装置,包括:
31、空间特征提取模块,用于构建cnn网络提取网络流量数据的空间特征;
32、时间特征提取模块,用于构建lstm网络提取网络流量数据的时间特征;
33、特征融合模块,用于将提取的空间特征和时间特征进行并联得到融合特征;
34、二次特征提取模块,用于利用self-attention对融合特征分配不同的权重,进行二次特征提取以选择重要的特征信息,基于所述选择的重要的特征信息通过检测模型的输出层进行网络入侵检测。
35、进一步的,所述空间特征提取模块,具体用于:
36、卷积通过一组过滤器或内核将输入数据转换为突出输入数据特征的输出,卷积输出由激活函数进一步处理,然后通过池化进行下采样以去除不相关的数据;
37、cnn通过多轮的学习过程自动调整过滤器来学习输入数据,使其输出特征图有效地表示原始输入数据,捕获空间特征;网络数据包以一维形式存在,一维卷积表示如下:
38、
39、其中,g表示图,i和j表示序列数据中不同值的位置,f是大小为m的滤波器;
40、使用批量归一化来调整rnn模块中的cnn输出,调整cnn捕获的空间特征,如下所示:
41、
42、其中,x是输入批量中的值,μb和δb分别表示批量均值和方差,ε是一个常数值;基于归一化产生的归一化得到公式(3)所示的输出
43、
44、其中γ和β表示超参数。
45、进一步的,所述时间特征提取模块,具体用于:
46、通过构建长短期记忆网络lstm提取时间特征,lstm抽象为四个子网络、一组控制门和一个记忆组件的连接,输入和输出值是由输入x(t)确定的相同大小的向量,保存在内存中的状态s(t)作为对当前学习的反馈,具体表示如下:
47、b+u×x(t)+w×h(t-1) (4)
48、其中,x(t)表示当前输入,h(t-1)表示先前输出,b表示偏置,u表示权重矩阵;
49、使用子网(p(t),g(t),f(t),q(t)),通过两种类型的控制门(α,tanh)来确定反馈s(t)从之前的学习和当前的输出h(t),具体表示如下:
50、s(t)=σ(f(t))*s(t-1)+σ(p(t))*tanhg(t) (5)
51、h(t)=tanhs(t)*σ(q(t)) (6)
52、其中,σ表示激活函数,lstm通过调整这些网络中的权重和σ值来学习输入,以便可以在输出中有效地生成输入数据之间的时间特征。
53、进一步的,所述二次特征提取模块,具体用于:
54、通过使用自注意力机制从大量的信息中选出更重要的部分,以提高入侵检测的准确率,通过利用注意力机制来动态地生成不同连接的权重,用来处理变长的输入序列,作为神经网络中的一层来使用,表示如下:
55、
56、式中,q表示一组查询向量矩,k表示一组键向量矩阵,v表示向量矩阵;首先计算q与k的点乘,然后除以以防止其结果过大,再利用softmax函数将其结果归一化为概率分布,最后乘以矩阵v得到权重;
57、通过使用自注意力机制获得的权重进行二次特征提取,以捕获重要的流量数据特征信息;通过添加一个维度重朔层来重塑下一模块的数据;使用一个额外的卷积层和一个全局平均池化层来进一步提取时空特征,最终的学习输出由最后一层全连接层生成。
58、一种基于深度学习神经网络的网络入侵检测系统,包括:计算机可读存储介质和处理器;
59、所述计算机可读存储介质用于存储可执行指令;
60、所述处理器用于读取所述计算机可读存储介质中存储的可执行指令,执行所述的基于深度学习神经网络的网络入侵检测方法。
61、一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的基于深度学习神经网络的网络入侵检测方法。
62、本发明具有如下优点:
63、1.本发明提出了一种基于(crnn-sa)的新型入侵检测方法,该方法通过cnn网络和lstm网络提取了原始网络流量各个组成部分的特征,可以分层学习网络流量的时空特征;
64、2.本发明引入了自注意力机制对每个输入赋予的权重取决于输入数据之间的关系,即通过输入项内部之间的相互博弈决定每个输入项的权重,以此给融合后的特征分配不同的权重;从大量信息中,有选择的筛选出少量重要信息,并聚焦到这些重要信息上,忽略掉大多数不重要的信息;权重越大越聚焦于其对应的值上,即权重代表了信息的重要性,而值是其对应的信息,进行二次特征提取以选择重要的特征信息;
65、3.本发明在unsw-nb15数据集上进行了评估,实验结果表明本发明方法的有效性和鲁棒性。