一种检测网络异常流量的方法及其系统与流程

文档序号:17585669发布日期:2019-05-03 21:17阅读:198来源:国知局
一种检测网络异常流量的方法及其系统与流程

本发明属于网络安全和机器学习技术领域,具体涉及一种检测网络异常流量的方法及其系统。



背景技术:

随着网络安全需求的不断增大,入侵检测系统(intrusiondetectionsystem,简称:ids)在网络中的应用越来越广泛。入侵检测是指"通过对行为、安全日志或审计数据或其它网络上可以获得的信息进行操作,检测到对系统的闯入或闯入的企图"。入侵检测是为了防止计算机误用的一门技术,主要作用是检测、响应、损失评估、预测攻击和证据支持;能够将硬件和软件搭配使用的组合就是入侵检测系统,入侵检测系统是网络信息安全的重要构成部分,能够通过发现和识别入侵行为,给出入侵警报,以便网络管理员进行填补漏洞。入侵检测系统是一种网络安全主动防御工具,已经成为网络安全领域中十分重要的一项技术。

然而,目前的入侵检测系统大都需要人工提取入侵流量特征,工作量巨大,并且更新缓慢,不能适应快速变化的网络环境。近年来,深度学习(deeplearning,简写dl)在计算机等各个领域取得了巨大的成功,比如,图像处理,语音识别和自然语言处理;只是深度神经网络关于入侵检测系统方面的应用相关的研究还很少。目前在深度学习领域,有研究人员提出了attention机制,结合长短期记忆网络(longshort-termmemory,lstm)或者循环神经网络(recurrentneuralnetwork,rnn)可以有效提升翻译和文本分类的准确率。但是,这种方法通过模拟人脑的注意力机制,给编码生成的隐变量赋予权重,用权重高低来模拟注意力强弱。

另外,入侵流量特征隐藏在整条tcp流中,而如果把一整条tcp流一次性处理,那么通用rnn模型要一次性处理所有流量中的数据,而在这些数据中只有少数特征是有用的,这就会导致通用rnn模型长时间训练,也无法训练完成。



技术实现要素:

本发明的目的在于,为解决现有的检测方法存在上述缺陷,本发明提出了一种检测网络异常流量的方法,结合了lstm神经网络模型以及attention机制,省去人工提取流量特征和设置判断器阈值的步骤,并且可以显著提升识别异常流量的准确率;有效解决目前网络异常流量检测方法中需要人工提取流量特征、只能对流量包识别而无法对整路tcp流识别的问题。

为了实现上述目的,本发明提供了一种检测网络异常流量的方法,其包括;

步骤1)采集已知网络流量,并进行预处理,获得预处理后的网络流量;所采集的已知网络流量包括:网络正常流量和网络异常流量,是按照识别需求采集已知不同类型的网络流量;

步骤2)建立lstm神经网络模型;将步骤1)获得的预处理后的网络流量作为输入数据,对lstm神经网络模型进行训练,获得训练完的lstm神经网络模型;训练完的lstm神经网络模型不需要人工提取流量特征,生成可识别整路tcp流中入侵流量的分类器,从而获得流量特征;训练完成的lstm神经网络模型可以直接输入预处理后的网络流量中的流量数据包,不需要设置阈值。其中,所述lstm神经网络模型是采用attention机制搭建的网络模型;

步骤3)捕获未知网络流量,并对未知网络流量进行预处理,获得预处理后的未知网络流量;

步骤4)将步骤3)获得的预处理后的未知网络流量作为输入数据,将其输入至步骤2)获得的训练完的lstm神经网络模型中,对预处理后的未知网络流量进行识别,输出识别结果;

步骤5)根据步骤4)获得的识别结果进行响应;如果识别出未知网络流量为入侵流量,则触发预警机制,通知网络管理人员切断带有入侵流量的网络。

作为上述方法的改进之一,所述步骤1)具体包括:

采集已知网络流量,将已知网络流量中的流量数据包进行tcp重组,因为已标记流量都是实验产生的,其ip地址有一定特异性,为了消除流量的特异性,防止模型学习到不必要的内容从而过拟合,将流量数据包中的ip头部的源ip地址和目的ip地址替换成随机ip数,并对过长的流量数据流进行裁剪,保留每路流的前半部分,超过预定固定长度的部分截断,对过短的数据流用零补齐,按照发送顺序汇聚成一路网络流量,标记整路网络流量,并且其能被lstm网络模型接受,获得预处理后的已知网络流量。其中,所述已知网络流量中的流量数据包为已标记的流量数据包。

作为上述方法的改进之一,所述步骤2)具体包括:

步骤2-1)建立lstm神经网络模型,所述模型的输入为:接收到的不提取特征的已知网络流量中的流量数据包;所述模型的处理过程为:将流量数据包编码成隐变量;采用注意力机制,通过对隐变量分配权重,将隐变量生成包含整路数据流信息的上下文变量;采用softmax函数作为激活函数,获得的上下文变量进行归一化处理得到识别结果,所述模型的输出为最后的识别结果;

步骤2-2)使用已知网络流量对步骤2-1)建立的lstm神经网络模型进行训练,通过梯度下降反向传播误差,不断调整模型各个节点和连接的权重,最终获得训练完成的lstm模型。

作为上述方法的改进之一,所述步骤3)具体包括:

捕获未知网络流量,将未知网络流量中的流量数据包进行tcp重组,因为已标记流量都是实验产生的,其ip地址有一定特异性,为了消除流量的特异性,防止模型学习到不必要的内容从而过拟合,将流量数据包中的将流量数据包中的ip头部的源ip地址和目的ip地址替换成随机ip数,并对过长的流量数据流进行裁剪,超过预定固定长度的部分截断,只保留数据流的前半部分,对过短的数据流用零补齐,按照发送顺序汇聚成一路网络流量,获得预处理后的未知网络流量,至此,预处理过程已经完成。说明,所述未知网络流量中的流量数据包为未标记的流量数据包。

作为上述方法的改进之一,所述步骤4)具体包括:

将步骤3)获得的预处理后的未知网络流量作为输入数据,输入训练好的lstm神经网络模型,该模型将未知网络流量中的流量数据包编码成隐变量;将隐变量生成包含整路数据流信息的上下文变量;采用激活函数对上下文变量进行归一化处理得到识别结果,输出识别结果。

如果识别预处理后的未知网络流量为入侵流量,则进行下一步骤;如果识别预处理后的未知网络流量为非入侵流量,不做任何处理,不影响网络正常通信。

一种检测网络异常流量的系统,包括存储器、处理器和存储在存储器上的并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述方法的步骤。

本发明的优点在于:

本发明的方法不需要手动提取特征,通过使用attention机制和lstm神经网络模型,能够在保证训练速度的情况下对整路流进行识别,而不仅是对一个包识别,提高了识别准确率和适用范围;另外,本发明的方法省去人工提取流量特征和设置判断器阈值的步骤,并且可以显著提升识别异常流量的准确率。

附图说明

图1是本发明的一种检测网络异常流量的方法的示意图;

图2是本发明的一种检测网络异常流量的方法的流程图。

具体实施方式

现结合附图对本发明作进一步的描述。

如图1和2所示,本发明提供了一种检测网络异常流量的方法,其包括;

步骤1)采集已知网络流量,并进行预处理,获得预处理后的网络流量;所采集的已知网络流量包括:网络正常流量和网络异常流量,是按照识别需求采集已知不同类型的网络流量;

步骤2)建立lstm神经网络模型;将步骤1)获得的预处理后的网络流量作为输入数据,对lstm神经网络模型进行训练,获得训练完的lstm神经网络模型;训练完的lstm神经网络模型不需要人工提取流量特征,生成可识别整路tcp流中入侵流量的分类器,从而获得流量特征;训练完成的lstm神经网络模型可以直接输入预处理后的网络流量中的流量数据包,不需要设置阈值。其中,所述lstm神经网络模型是采用attention机制搭建的网络模型;

步骤3)捕获未知网络流量,并对未知网络流量进行预处理,获得预处理后的未知网络流量;

步骤4)将步骤3)获得的预处理后的未知网络流量作为输入数据,将其输入至步骤2)获得的训练完的lstm神经网络模型中,对预处理后的未知网络流量进行识别,输出识别结果;

步骤5)根据步骤4)获得的识别结果进行响应;如果识别出未知网络流量为入侵流量,则触发预警机制,通知网络管理人员切断带有入侵流量的网络。

作为上述方法的改进之一,所述步骤1)具体包括:

采集已知网络流量,将已知网络流量中的流量数据包进行tcp重组,将流量数据包中的ip头部的源ip地址和目的ip地址替换成随机ip数,并对过长的流量数据包进行裁剪,保留前半部分,对过短的数据包用零补齐,按照发送顺序汇聚成一路网络流量,标记整路网络流量,并且其能被lstm网络模型接受,获得预处理后的已知网络流量。其中,所述已知网络流量中的流量数据包为已标记的流量数据包。

作为上述方法的改进之一,所述步骤2)具体包括:

步骤2-1)建立lstm神经网络模型,所述模型的输入为:接收到的不提取特征的已知网络流量中的流量数据包;所述模型的处理过程为:将流量数据包编码成隐变量;采用注意力机制,通过对隐变量分配权重,将隐变量生成包含整路数据流信息的上下文变量;采用softmax函数作为激活函数,获得的上下文变量进行归一化处理得到识别结果,所述模型的输出为最后的识别结果;

步骤2-2)使用已知网络流量对步骤2-1)建立的lstm神经网络模型进行训练,通过梯度下降反向传播误差,不断调整模型各个节点和连接的权重,最终获得训练完成的lstm模型。

作为上述方法的改进之一,所述步骤3)具体包括:

捕获未知网络流量,将未知网络流量中的流量数据包进行tcp重组,将流量数据包中的ip头部的源ip地址和目的ip地址替换成随机ip数,并对过长的流量数据包进行裁剪,保留前半部分,对过短的数据包用零补齐,按照发送顺序汇聚成一路网络流量,获得预处理后的未知网络流量。其中,所述未知网络流量中的流量数据包为未标记的流量数据包。

作为上述方法的改进之一,所述步骤4)具体包括:

将步骤3)获得的预处理后的未知网络流量作为输入数据,输入训练好的lstm神经网络模型,该模型将未知网络流量中的流量数据包编码成隐变量;将隐变量生成包含整路数据流信息的上下文变量;采用激活函数对上下文变量进行归一化处理得到识别结果,输出识别结果。

如果识别预处理后的未知网络流量为入侵流量,则触发预警机制,通知网络管理员进行处理;如果识别预处理后的未知网络流量为非入侵流量,不做任何处理,不影响网络正常通信。

如图1所示,采集网络中的已知网络流量,对其进行预处理,不做特征提取,直接将其作为输入数据,输入到lstm神经网络模型中,lstm神经网络模型对输入的流量数据包进行编码处理后,会生成与输入流量数据包相对应的隐变量。在这个过程中,lstm神经网络模型将输入数据进行了压缩,而又保留了大部分信息熵,并且还能保留相邻流量数据包之间的交叉熵。采用attention机制,可以在训练过程中给每个隐变量分配权重,使用各个已经分配好权重的隐变量生成上下文变量,最后使用softmax函数作为激活函数,得到判断输出,获得判断结果。训练完成后的lstm神经网络模型可以直接输入预处理后的未知网络流量中的流量数据包,并进行识别,直接输出识别结果,并对该识别结果进行响应;不需要设置阈值,能够自动判断网络流量中隐含的各种攻击行为。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

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