网络入侵检测方法和装置与流程

文档序号:11156531阅读:431来源:国知局
网络入侵检测方法和装置与制造工艺

本申请涉及网络安全技术领域,尤其涉及一种网络入侵检测方法和装置。



背景技术:

入侵检测系统(Intrusion Detection System,IDS)是一种网络安全设备或应用软件,可以对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施。

IDS的核心功能是入侵检测技术,入侵检测技术是发现违反安全策略的网络传输。同时入侵检测技术也广泛应用于入侵防御系统(Intrusion Prevention System,IPS)和下一代防火墙(Next generation firewall,NGFW)等网络安全产品之中。

现有入侵检测技术主要分为几类:简单模式匹配、状态模式匹配、基于协议解码的签名、启发式签名等。这些技术的共同特点是要事先了解攻击,针对每种攻击开发出特定的签名,入侵检测技术主要是高效的在数据流上做签名匹配。因此,现有技术存在两个比较明显的缺陷:一、对未知的攻击缺乏防御能力;二、对已知攻击识别的范化能力不足,黑客通过已知攻击变换一些攻击上的细节和流程很容易绕过检测。



技术实现要素:

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的一个目的在于提出一种网络入侵检测方法,该方法可以增加对未知攻击的识别能力,以及增加对已知攻击的范化能力。

本申请的另一个目的在于提出一种网络入侵检测装置。

为达到上述目的,本申请第一方面实施例提出的网络入侵检测方法,包括:获取待检测流量的特征向量;采用深度神经网络对所述特征向量进行检测,确定所述待检测流量属于的网络入侵类别,其中,所述深度神经网络是对训练数据进行训练后生成的,所述训练数据包括:正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括:原始攻击样本,以及,对所述原始攻击样本添加噪声后的样本。

本申请第一方面实施例提出的网络入侵检测方法,通过采用深度神经网络检测网络入侵类别,可以利用深度神经网络对复杂模式的表述能力强的优点,从而可以识别出复杂攻击,另外,深度神经网络在训练时采用的训练数据包括增加噪声后的攻击样本的特征向量,因此可以增加对未知攻击的识别能力,以及增加对已知攻击的范化能力。

为达到上述目的,本申请第二方面实施例提出的网络入侵检测装置,包括:获取模块,用于获取待检测流量的特征向量;检测模块,用于采用深度神经网络对所述特征向量进行检测,确定所述待检测流量属于的网络入侵类别,其中,所述深度神经网络是对训练数据进行训练后生成的,所述训练数据包括:正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括:原始攻击样本,以及,对所述原始攻击样本添加噪声后的样本。

本申请第二方面实施例提出的网络入侵检测装置,通过采用深度神经网络检测网络入侵类别,可以利用深度神经网络对复杂模式的表述能力强的优点,从而可以识别出复杂攻击,另外,深度神经网络在训练时采用的训练数据包括增加噪声后的攻击样本的特征向量,因此可以增加对未知攻击的识别能力,以及增加对已知攻击的范化能力。

本发明实施例还提出了一种网络设备,包括:一个或者多个处理器;存储器;一个或者多个程序,所述一个或者多个程序存储在所述存储器中,当被所述一个或者多个处理器执行时,执行如下方法:获取待检测流量的特征向量;采用深度神经网络对所述特征向量进行检测,确定所述待检测流量属于的网络入侵类别,其中,所述深度神经网络是对训练数据进行训练后生成的,所述训练数据包括:正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括:原始攻击样本,以及,对所述原始攻击样本添加噪声后的样本。

本发明实施例还提出了一种非易失性计算机存储介质,所述计算机存储介质存储有一个或者多个模块,当所述一个或者多个模块被执行时,执行如下方法:获取待检测流量的特征向量;采用深度神经网络对所述特征向量进行检测,确定所述待检测流量属于的网络入侵类别,其中,所述深度神经网络是对训练数据进行训练后生成的,所述训练数据包括:正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括:原始攻击样本,以及,对所述原始攻击样本添加噪声后的样本。

本发明实施例还提出了一种计算机程序,所述程序被执行时,执行如下方法:获取待检测流量的特征向量;采用深度神经网络对所述特征向量进行检测,确定所述待检测流量属于的网络入侵类别,其中,所述深度神经网络是对训练数据进行训练后生成的,所述训练数据包括:正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括:原始攻击样本,以及,对所述原始攻击样本添加噪声后的样本。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本申请一个实施例提出的网络入侵检测方法的流程示意图;

图2是本申请另一个实施例提出的网络入侵检测方法的流程示意图;

图3是本申请一个实施例提出的网络入侵检测装置的结构示意图;

图4是本申请另一个实施例提出的网络入侵检测装置的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

图1是本申请一个实施例提出的网络入侵检测方法的流程示意图。

如图1所示,本实施例的方法包括:

S11:获取待检测流量的特征向量。

待检测流量是指网络传输中的数据。

待检测流量的特征向量是指由待检测流量的特征信息组成的向量,特征信息可以根据需要设定。由于待检测流量在网络传输时是连续的,因此,可以对待检测流量以预设单位进行切分,将每个单位的流量转换为一个预设维度的特征向量,上述的单位是可设置的,例如以会话(session)为单位。

每个特征向量包括多个特征信息,特征信息有多种可选方式,在本实施例中,以特征信息包括流特征信息和内容特征信息为例。

因此,对应每个单位(如session)的流量,可以提起该单位流量的流特征信息f1和内容特征信息f2,再组合f1和f2得到相应的特征向量f,即f={f1,f2},例如,f1=[0,1],f2=[1,0],则f=[0,1,1,0]。

可以理解的是,上述对f1和f2的描述只是示例,具体的流特征信息和内容特征信息可以根据需要或经验等选取,可以为一个或多个,流特征信息例如包括:平均报文长度、重传率、延时均方差等。内容特征信息例如包括:通过对应用的识别,内容信息的解码(如果需要),对解码后与静态特征库(库中含有多个字符串或正则表达式)做多模匹配,将每个静态特征的命中次数,计入内容特征向量f2中。由于静态特库中的特征条目很多,所以f2是一个很高维的稀疏的特征向量。

S12:采用深度神经网络对所述特征向量进行检测,确定所述待检测流量属于的网络入侵类别,其中,所述深度神经网络是对训练数据进行训练后生成的,所述训练数据包括:正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括:原始攻击样本,以及,对所述原始攻击样本添加噪声后的样本。

深度学习(deep learning)是机器学习的一个分支,其使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象,能够表达足够复杂的模式。

深度神经网络是基于深度学习的神经网络,例如包括:无监督学习的深度置信网(Deep Belief Net,DBN)和包含多层自动编码器(auto-encoder)层的网络、有监督学习的卷积神经网络(Convolutional neural network,CNN)等。具体的,在本申请中,以深度神经网络是包含多层自动编码器(auto-encoder)层的网络为例。

当深度神经网络是包含多层自动编码器层的网络时,该网络包括输入层、中间层和输出层,其中,输入层用于输入流量的特征向量,中间层由多层的自动编码层和多个全连接层组成,输出层用于输出检测结果。其中,输出层包括的节点个数与网络入侵类别的个数相同,假设网络入侵类别为n种,则输出层的节点个数为n个,输出值分别是相应类别的概率值。进一步的,网络入侵类别可以分为非攻击或攻击两类,从而通过深度神经网络可以识别出待检测流量是否为攻击。或者,网络入侵类别不仅包括非攻击和攻击,还可以进一步划分攻击的类别,即网络入侵类别包括一种非攻击,及n-1种攻击。此时,不仅可以识别出待检测流量是否是攻击,还可以在是攻击时识别出具体的攻击类别。攻击类别是可设置的,例如包括分布式拒绝服务(Distributed Denial of Service,DDoS)攻击,结构化查询语言(Structured Query Language,sql)注入攻击等。

在通过深度神经网络进行检测之前,需要先训练生成深度神经网络。在训练生成深度神经网络时,需要对训练数据进行训练,以生成深度神经网络。训练数据包括正常样本的特征向量和攻击样本的特征向量,其中,正常样本是指非攻击样本。可以根据已有网络传输情况,收集到正常样本和攻击样本。

特别的,在本申请中,攻击样本不仅包括原始攻击样本,还包括对原始攻击样本添加噪声后的样本,其中,原始攻击样本是指收集到的攻击样本的原始数据,添加噪声后的样本是指对原始数据加噪声后的数据。

由于在实际的网络传输中,大量存在的是正常报文,攻击报文的数量较少,因此,能够收集到大量的正常样本,但仅能收集到较少的攻击样本。而本申请中,通过对原始攻击样本进行增加噪声操作,可以增加对未知攻击的识别能力,以及增加对已知攻击识别的范化能力。

本实施例中,通过采用深度神经网络检测网络入侵类别,可以利用深度神经网络对复杂模式的表述能力强的优点,从而可以识别出复杂攻击,另外,深度神经网络在训练时采用的训练数据包括增加噪声后的攻击样本的特征向量,因此可以增加对未知攻击的识别能力,以及增加对已知攻击的范化能力。

图2是本申请另一个实施例提出的网络入侵检测方法的流程示意图。

上一实施例主要给出了检测阶段的流程,而在本实施例中将增加训练阶段的流程,其中,在训练阶段生成深度神经网络,以在检测阶段对待检测流量进行网络入侵检测。

另外,上一实施例中主要体现了采用深度神经网络进行检测的内容,但是,全流量检测会造成非常大的开销,因此,可以在深度神经网络检测之前先进行过滤,过滤掉部分不需要经过深度神经网络检测的流量,以降低开销。因此,在本实施例中在检测阶段还包括了过滤流程。

参见图2,本实施例的方法包括:

S21:收集原始样本,所述原始样本包括:正常样本和原始攻击样本。

其中,可以对已有的网络传输报文进行收集,得到大量的样本,并且根据已有信息可以区分出正常样本和攻击样本。另外,为了与后续添加噪声后的样本进行区分,此时收集到的攻击样本可以称为原始攻击样本。

S22:对所述原始攻击样本添加噪声,得到添加噪声后的攻击样本。

考虑到能够收集到的正常样本的数量较多,因此可以不对正常样本添加噪声,而仅对攻击样本添加噪声。当然,可以理解的是,本申请也不排除对正常样本添加噪声的可能性。本实施例以对攻击样本添加噪声为例。

假设原始攻击样本用d表示,添加噪声后的攻击样本用N(d)表示。

一方面,在添加方式上,可以根据样本库和规则库进行噪声添加。样本库中包含大量的有标签的数据样本(即包含正常样本和攻击样本),作为添加噪声的素材,规则库可以根据安全专家对攻击变种和逃逸的理解,人为编写的噪声添加的规则,以根据这些规则从样本库中选择样本得到添加噪声后的攻击样本。这些规则例如包括:“在攻击样本d1中随机的插入正常样本d2的数据的片段,攻击的性质不变”,这些规则并不保证绝对的正确,仅需要在较大概率上正确即可。因为那些生成的少量的错误样本,神经网络本身的抗噪声能力自然可以处理。

另一方面,在数量上,对应每个d,相应的N(d)的数量可以为多个。进一步的,不同原始攻击样本对应的添加噪声后的样本的数量可以不同,例如,用公式表示为:

其中,li是某个原始攻击样本d对应的添加噪声后的样本N(d)的数量,γ是已知的一个较大的值,n是网络入侵类别的总数,ci是d所属分类的已有攻击样本数量。

通过上述公知可知,li与ci成反比,因此,在给网络增加范化能力的同时,可以使得网络的训练样本在各个类别上保持均衡,均衡的训练集有助于控制网络最终训练结果的误差。

S23:对所述正常样本、原始攻击样本和添加噪声后的攻击样本分别进行特征提取,得到正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括原始攻击样本和添加噪声后的攻击样本。

例如对应一个样本,可以提取流特征信息f1和内容特征信息f2,再对f1和f2组合后得到该样本的特征向量。具体的特征提取的流程可以如上一实施例所示。

S24:将所述正常样本的特征向量和攻击样本的特征向量作为训练数据,对所述训练数据进行训练,生成深度神经网络。

深度神经网络的训练流程分为两个阶段,分别为per-training阶段和fine-tuning阶段。在per-training阶段,是无监督学习到每一层网络的参数,以完成网络的初始化。其中,在无监督学习时,是从底层开始,每次只训练一层,将其结果作为高一层的输入。在fine-tuning阶段,是采用从顶层到底层的监督算法(如BP算法)对每一层的初始化参数进行调整。

以深度神经网络是包含多层自动编码器层的网络为例,在训练阶段的目标是使得不带噪声的输入向量,与带噪声的输入向量经过深度神经网络后的输出尽量接近。即,假设不带噪声的输入向量用x表示,带噪声的输入向量用x’表示,x’经过深度神经网络后的输出用z(x’)表示,则训练阶段的目标是使得x与z(x’)尽量接近。

上述的不带噪声的输入向量是指对原始样本进行特征提取后得到的特征向量,带噪声的输入向量是指对添加噪声后的样本进行特征提取后得到的特征向量。

因此,在收集到原始样本后,可以对原始样本添加噪声得到添加噪声后的样本,如上所示,以对攻击样本进行噪声添加为例,可以得到d和N(d),再根据上一实施例所示的特征提取方式,可以分别提取到d对应的特征向量x,以及N(d)对应的特征向量x’,之后以每对{x,x’}作为一组独立的向量,以上述目标对深度神经网络进行训练,得到每一层网络的参数。

比如,每一层网络的参数包括W、b、b’,设H为以W、b、b’构成的向量,则采用梯度下降法更新H可以得到每一层网络的参数,用公式表示为:H=H-α×ΔHL,通过一定数量的迭代,可以得到每一层网络的参数。其中,α是已知参数,ΔHL表示对L求导,L=||x-z(x')||2,z(x’)=s(WTy(x’)+b’),y(x’)=s(Wx’+b),s是一个非线性的映射函数,如sigmoid函数。

可以理解的是,与通常的深度神经网络训练流程不同的是,本实施例的训练数据还包括添加噪声后的样本的特征向量,训练阶段的目标是使得x与z(x’)尽量接近,而其余未说明步骤可以参照通常流程进行,在此不再详细说明。

上述的S21-S24可以在训练阶段完成,以用于下面的检测阶段。

S25:获取待检测流量的特征向量。

具体内容可以如上一实施例所示,在此不再详细说明。

S26:根据线性分类器对所述特征向量进行识别,确定所述待检测流量是否需要采用深度神经网络进行检测,若是,执行S27,否则执行S28。

其中,线性分类器也可以是在训练阶段,通过对训练数据的训练生成的。

线性分类器的目标是对流量进行快速分类,以区分流量是否为可疑流量,对可疑流量再送给深度神经网络中去处理。由于线性分类器确定出的可疑流量还会送给深度神经网络,所以线性分类器的设计侧重降低对攻击识别的漏报率而非误报率。

线性分类器在实现上具体可以采用逻辑回归算法,在训练时可以通过收集的一定数量的攻击样本和正常流量样本进行训练,训练的过程就是对其内部权重的调整过程,以使得输出值表明其是攻击的概率。在其运行阶段,输入一个流量的特征向量,算法输出其可能是攻击的概率p(0≤p≤1)。当p大于某个临界常数k时,确定相应流量是需要采用深度神经网络进行检测,否则不需要深度神经网络进行检测。

S27:采用深度神经网络对所述特征向量进行检测,确定所述待检测流量属于的网络入侵类别。

其中,深度神经网络的输入是待检测流量的特征向量f,输出是各网络入侵类别的概率值,如用向量o∈[0,1]n表示,即输出是n维向量,该向量每个维度的值介于0和1之间,每个维度的值对应一种网络入侵类别,网络入侵类别具体可以包括一种非攻击以及n-1种攻击类别,根据具体的值可以确定待检测流量属于的网络入侵类别,例如,输出向量对应非攻击的值为1(或近似为1),其余值为0(或近似为0),则确定待检测流量为非攻击,或者,输出向量对应DDoS攻击的值为1(或近似为1),其余值为0(或近似为0),则确定待检测流量为DDoS攻击。

S28:确定待检测流量为非攻击。

本实施例中,通过采用深度神经网络检测网络入侵类别,可以利用深度神经网络对复杂模式的表述能力强的优点,从而可以识别出复杂攻击,另外,深度神经网络在训练时采用的训练样本包括增加噪声后的攻击样本,因此可以增加对未知攻击的识别能力,以及增加对已知攻击的范化能力。进一步的,通过在深度神经网络处理之前采用线性分类器对待检测流量进行分类,可以降低需要深度神经网络处理的流量,降低系统开销,提升在实际网络环境中的攻击识别的性能。

图3是本申请一个实施例提出的网络入侵检测装置的结构示意图。如图3所示,本实施例的装置30包括:获取模块31和检测模块32。

获取模块31,用于获取待检测流量的特征向量;

检测模块32,用于采用深度神经网络对所述特征向量进行检测,确定所述待检测流量属于的网络入侵类别,其中,所述深度神经网络是对训练数据进行训练后生成的,所述训练数据包括:正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括:原始攻击样本,以及,对所述原始攻击样本添加噪声后的样本。

一些实施例中,参见图4,该装置30还包括:

分类模块33,用于根据线性分类器对所述特征向量进行识别,确定所述待检测流量是否需要采用深度神经网络进行检测,以便在需要采用深度神经网络进行检测时,触发所述检测模块执行。

一些实施例中,参见图4,该装置30还包括:

训练模块34,用于收集原始样本,所述原始样本包括:正常样本和原始攻击样本;对所述原始攻击样本添加噪声,得到添加噪声后的攻击样本;对所述正常样本、原始攻击样本和添加噪声后的攻击样本分别进行特征提取,得到正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括原始攻击样本和添加噪声后的攻击样本;将所述正常样本的特征向量和攻击样本的特征向量作为训练数据,对所述训练数据进行训练,生成所述深度神经网络。

一些实施例中,所述训练模块34用于根据预先确定的样本库和规则库,对所述原始攻击样本添加噪声,得到添加噪声后的攻击样本。

一些实施例中,对应每个原始攻击样本,相应的添加噪声后的攻击样本的个数为多个。

一些实施例中,所述添加噪声后的攻击样本的个数与对应的原始攻击样本所属类别的已有攻击样本数量成反比。

一些实施例中,深度神经网络包括多层自编码网络。

可以理解的是,本实施例的装置与上述方法实施例对应,具体内容可以参见方法实施例的相关描述,在此不再详细说明。

本实施例中,通过采用深度神经网络检测网络入侵类别,可以利用深度神经网络对复杂模式的表述能力强的优点,从而可以识别出复杂攻击,另外,深度神经网络在训练时采用的训练数据包括增加噪声后的攻击样本的特征向量,因此可以增加对未知攻击的识别能力,以及增加对已知攻击的范化能力。

本发明实施例还提出了一种网络设备,包括:一个或者多个处理器;存储器;一个或者多个程序,所述一个或者多个程序存储在所述存储器中,当被所述一个或者多个处理器执行时,执行如下方法:获取待检测流量的特征向量;采用深度神经网络对所述特征向量进行检测,确定所述待检测流量属于的网络入侵类别,其中,所述深度神经网络是对训练数据进行训练后生成的,所述训练数据包括:正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括:原始攻击样本,以及,对所述原始攻击样本添加噪声后的样本。

本发明实施例还提出了一种非易失性计算机存储介质,所述计算机存储介质存储有一个或者多个模块,当所述一个或者多个模块被执行时,执行如下方法:获取待检测流量的特征向量;采用深度神经网络对所述特征向量进行检测,确定所述待检测流量属于的网络入侵类别,其中,所述深度神经网络是对训练数据进行训练后生成的,所述训练数据包括:正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括:原始攻击样本,以及,对所述原始攻击样本添加噪声后的样本。

本发明实施例还提出了一种计算机程序,所述程序被执行时,执行如下方法:获取待检测流量的特征向量;采用深度神经网络对所述特征向量进行检测,确定所述待检测流量属于的网络入侵类别,其中,所述深度神经网络是对训练数据进行训练后生成的,所述训练数据包括:正常样本的特征向量和攻击样本的特征向量,所述攻击样本包括:原始攻击样本,以及,对所述原始攻击样本添加噪声后的样本。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1