流量识别方法、装置、电子设备及存储介质与流程

文档序号:23063624发布日期:2020-11-25 17:47阅读:112来源:国知局
流量识别方法、装置、电子设备及存储介质与流程

本发明实施例涉及it应用技术领域,特别涉及一种流量识别的方法、装置、电子设备及存储介质。



背景技术:

互联网业务的快速发展,使得各类网络应用层出不穷,这些网络应用给我们的生活带来便利的同时,也随之产生了异常庞大的网络流量,在海量的网络流量中如何准确有效地识别出部分网络应用所产生的流量,这对流量监控、入侵检测及用户行为分析等网络安全管理具有重要的实际应用价值。

传统的流量识别方法,主要是有基于端口的流量识别方法、基于负载的流量识别方法、基于主机行为的流量识别方法以及基于机器学习的流量识别方法。发明人发现,理论上这些方法均适用于网络应用的流量识别,但这些方法一般需要依赖端口号、负载信息及大量特征数据,导致计算复杂度偏高且识别准确性较低。



技术实现要素:

本发明实施方式的目的在于提供一种流量识别方法、装置、电子设备及存储介质,其能够解决依赖端口号及负载信息,导致计算复杂度偏高且异常流量识别准确性较低的问题。

为解决上述技术问题,本发明的实施方式提供了一种流量识别方法,所述方法包括:

将待识别流量数据输入至流量分类模型中,在所述流量分类模型内,利用深度堆栈自编码器计算所述待识别流量数据的流量分类,得到流量分类子集;

将所述流量分类子集输入至流量识别模型中进行卷积池化操作得到流量特征集,并根据所述流量特征集,计算得到流量识别结果。

为了解决上述问题,本发明还提供一种流量识别装置,所述装置包括:

流量分类模块,用于将待识别流量数据输入至流量分类模型中,在所述流量分类模型内,利用深度堆栈自编码器计算所述待识别流量数据的流量分类,得到流量分类子集;

流量识别模块,用于将所述流量分类子集输入至流量识别模型中进行卷积池化操作得到流量特征集,并根据所述流量特征集,计算得到流量识别结果。

存储器,存储至少一个指令;及

处理器,执行所述存储器中存储的指令以实现上述所述的流量识别方法。

为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的流量识别方法。

本发明实施例通过流量分类模型对流量数据进行分类,使用流量识别模型提取出分类后的多个流量数据,进而识别出是否为异常流量,由于流量分类模型基于深度堆栈自编码器进行分类计算,流量识别模型基于卷积池化操作,由于深度堆栈自编码器和卷积池化操作都以深度学习为基础,而深度学习具有自适应性强、提取精确的特点,故不需要依赖流量所在的端口号的同时,对异常流量的识别也更准确,另外由于卷积池化操作会大量减少流量数据的数据维度,因此可有效的解决计算复杂度偏高的问题。

优选地,本方法还包括构建所述流量分类模型,其中,所述构建包括:

利用深度堆栈自编码器及bp神经网络模型构建包括输入层、隐藏层及输出层的神经网络;

设置所述神经网络中输入层及输出层的神经元个数得到所述流量分类模型。

优选地,本方法还包括训练所述流量分类模型,其中所述训练所述流量分类模型包括:获取训练流量集,将所述训练流量集进行预处理及分类,得到有标记的训练流量集和无标记的训练流量集;

确定所述流量分类模型的批量处理尺寸,根据所述批量处理尺寸,使用所述无标记的训练流量集训练所述深度堆栈自编码器以调整所述深度堆栈自编码器的内部参数值无标记的训练流量集;

利用所述流量分类模型对所述有标记的训练流量集执行计算,得到误差值,根据所述误差值调整所述流量分类模型的内部参数值,直至所述误差值满足预设要求时,得到训练完成的所述流量分类模型。

优选地,所述利用所述流量分类模型对所述有标记的训练流量集执行计算,得到误差值,根据所述误差值调整所述流量分类模型的内部参数值,包括:

根据所述批量处理尺寸从所述有标记的训练流量集提取有标记训练流量,并输入至所述流量分类模型,计算得到预测分类数;

计算所述预测分类数与预设的流量分类数的误差值;

在所述误差值大于或等于预设阈值时,调整所述流量分类模型的内部参数。

本发明实施例使用无标记的训练流量集计算深度堆栈自编码器的内部参数值,并利用bp神经网络模型调整所述深度堆栈自编码器的内部参数,得到流量分类模型。因为无标记的训练流量集训练深度堆栈自编码器时,不需要预测和计算误差并直接调整内部参数,所以加快了训练速度,同时使用bp神经网络模型微调内部参数值,保证流量分类模型内部参数值误差不产生偏差,故在保证分类准确率的同时,提高了流量分类模型的训练速度。

优选地,所述流量识别模型通过深度卷积神经网络构建,及所述方法还包括训练所述流量识别模型,其中,所述训练所述流量识别模型包括:

从所述无标记的训练流量集中随机抽取无标记训练流量,训练所述流量识别模型。

优选地,所述方法还包括:

接收原始流量数据,根据预设的特征提取方法,从所述原始流量数据中筛选出特征;

将所述特征进行格式转化,得到所述待识别流量数据。

优选地,所述特征包括:流量源ip、流量目的ip、流量ip协议、流量持续时间、每条流量中数据包数量以及每条流量中数据包比特数。

本发明较佳实施例在对流量数据进行识别之前,先对流量数据进行包括特征提取及格式转化的操作,其中特征提取可剔除部分与流量识别无关的数据,提高了流量识别的速度。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1为本发明第一实施例提供的流量识别方法流程示意图;

图2为本发明第一实施例提供的流量识别方法中训练流量分类模型的详细实施流程示意图;

图3为本发明第一实施例提供的流量识别方法中训练流量识别模型的详细实施流程示意图;

图4为本发明第二实施例提供的流量识别装置的模块示意图;

图5为本发明第三实施例提供的实现流量识别方法的电子设备的内部结构示意图。

本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的实施方式涉及一种流量识别方法,本实施方式的核心在于利用流量分类模型及流量识别模型对流量数据进行异常识别,从而解决依赖端口号及负载信息,导致计算复杂度偏高且异常流量识别准确性较低的问题。下面对本实施方式的流量识别实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

参阅图1所示,图1是本发明第一实施方式中流量识别的流程图,包括:

s1、将待识别流量数据输入至流量分类模型中,在所述流量分类模型内,利用深度堆栈自编码器计算所述待识别流量数据的流量分类,得到流量分类子集。

本发明其中一个实施例应用于应用软件中的异常流量的识别,因此,本发明实施例可以获取所述应用软件的流量数据,并通过对所获取的流量数据进行预处理后,得到所述待识别流量数据。其中,所述应用软件一般以软件定义网络(softwaredefinednetwork,sdn)为安装基础。所述软件定义网络是未来网络的部署方式,在软件定义网络中能够智能化识别所运行的应用软件,也是未来网络智能化表现之一。本发明实施例可以通过在软件定义网络中使用爬虫等手段获取到所述应用软件的流量数据。

由于获取到的流量数据一般是使用爬虫等手段获取到的,以通信协议为基础的数据,所包括的数据信息众多,且不符合本发明实施例后续模型的输入条件,因此需要对所述流量数据进行预处理,得到待识别流量数据。

本发明其中一个优选实施例中,所述预处理操作包括:根据预设的特征提取方法,从所述流量数据中筛选出特征;将所述特征进行格式转化得到所述待识别流量数据。

较佳地,本发明实施例中所述特征一般包括流量匹配的源ip、流量匹配的目的ip、流量匹配的ip协议、流量持续时间、每条流量中数据包数量以及每条流量中数据包比特数,流量优先级等信息。

进一步地,本发明实施例中所述格式转化是将所述特征转化为以向量基础的待识别流量数据。

在得到所述待识别流量数据后,本发明实施例将所述将待识别流量数据输入至训练完成的流量分类模型,以进行流量分类。

其中,本发明实施例中所述流量分类模型主要以深度学习为基础构建。优选地,本发明实施例中,所述流量分类模型是由深度堆栈自编码器(deepstackedautoencoder,dsae)及bp神经网络(back-propagationnetwork,反向传播神经网络)构建的dsae-bp模型。所述深度堆栈自编码器用于训练流量分类模型的内部参数,所述bp神经网络模型用于微调流量分类模型的内部参数。

进一步地,本发明实施例中,构建所述流量分类模型包括:利用深度堆栈自编码器及bp神经网络模型构建包括输入层、隐藏层及输出层的神经网络;设置所述神经网络中输入层及输出层的神经元个数得到所述流量分类模型。其中,本发明其中一个实施例可使用tensorflow深度学习框架调用当前已公开的深度堆栈自编码器及bp神经网络模型的软件包构建出包括输入层、隐藏层及输出层的神经网络。所述输入层及输出层的神经元个数需根据实际场景的不同而设定,如输入层的神经元可以设定为128,输出层的神经元个数可以设定为64等。

进一步地,本发明实施例还包括训练所述流量分类模型。参照图2所示,所述训练所述流量分类模型的详细实施流程包括:

s11、获取训练流量集,将所述训练流量集进行预处理及分类,得到有标记的训练流量集和无标记的训练流量集。

其中,所述分类是根据训练流量是否为异常流量为标准,对训练流量集进行分类得到有标记的训练流量集和无标记的训练流量集,其中训练流量集是为了训练后续的流量分类模型及流量识别模型。例如,在有标记的训练流量集标记了第一训练流量为正常流量、第二训练流量为异常流量、第三训练流量为异常流量……,与有标记的训练流量集对应的,无标记的训练流量集并未标记训练流量是否为异常流量。

s12、确定所述流量分类模型的批量处理尺寸。

所述批量处理尺寸(batch-size)是指每次输入至模型中的训练流量的训练尺寸,属于深度学习中一个重要参数,会直接影响模型训练的速度和梯度下降的方向。若批量处理尺寸设置太小,会使模型达不到最佳收敛位置,若批量处理尺寸设置太大,会使模型的收敛精度陷入局部极值。本发明较佳实施例中,可使用人为实际经验确定批量处理尺寸。

s13、根据所述批量处理尺寸,使用所述无标记的训练流量集训练所述深度堆栈自编码器以调整所述深度堆栈自编码器的内部参数值。

当批量处理尺寸确实后,本发明其中一个实施例可使用无标记的训练流量集训练所述深度堆栈自编码器的内部参数值,训练的方法与当前公开的深度卷积神经网络、循环神经网络等模型的训练方法相同,在此不在赘述。

s14、利用所述流量分类模型对所述有标记的训练流量集执行计算,得到误差值,根据所述误差值调整所述流量分类模型的内部参数值,直至所述误差值满足预设要求时,得到训练完成的所述流量分类模型。

详细地,所述s14包括:

根据所述批量处理尺寸从所述有标记的训练流量集提取有标记训练流量,并输入至所述流量分类模型,计算得到预测分类数;

计算所述预测分类数与预设的流量分类数的误差值;

在所述误差值大于或等于预设阈值时,调整所述流量分类模型的内部参数,直到所述预测分类数与所述流量分类数的误差值小于预设阈值,得到所述流量分类模型。

本发明较佳实施例中,利用有标记的训练流量集调整内部参数后即可得到流量分类模型,此时训练完成后的流量分类模型是具有一定的将流量进行分类能力,如预先设定流量分类模型的分类数为5,则流量分类模型按照分类数的设定,将上述的训练流量集进行数据处理后共分为5类流量分类子集,同理将所述待识别流量数据输入至所述流量分类模型中进行分类,得到与所述待识别流量数据对应的分类流量。

s2、将所述流量分类子集输入至流量识别模型中进行卷积池化操作得到流量特征集,并根据所述流量特征集,计算得到流量识别结果。

本发明实施例中,所述流量识别模型是通过深度深度卷积神经网络(deepconvolutionneuralnetwork,dcnn)构建的dcnn模型。本发明其中一个实施例同样可使用tensorflow深度学习框架调用当前已公开的dcnn软件包,构建出包括输入层、卷积层、池化层及全连接层的流量识别模型。

进一步地,本发明实施例还包括训练所述流量识别模型。参照图3所示,所述训练所述流量识别模型的详细实施流程包括:

s21、根据所述无标记训练流量集,训练所述流量识别模型;

s22、直至满足训练要求,得到训练完成后的流量识别模型。

同样的,训练方法与当前公开的深度卷积神经网络训练方法相同,在此不在赘述。

本发明实施例将s1得到的流量分类子集输入至训练完成的流量识别模型,得到对应的流量特征集。所述流程特征集是可代表待识别流量数据的数据,一般为多维数组形式。

进一步地,本发明可使用softmax函数或二分类函数计算得到流量识别结果,如softmax函数为:

其中y为异常流量的概率值,e为无限不循环小数,ω为所述流量特征集的流量特征,故利用softmax函数等函数,可计算流量特征集属于异常流量的概率大小,根据概率值得到流量数据是否为异常流量的识别结果。

如图4所示,是本发明第二实施例提供的流量识别装置的模块示意图。

本发明所述流量识别装置100可以安装于电子设备中。根据实现的功能,所述流量识别装置可以包括流量分类模块101、流量识别模块102。本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。

在本实施例中,关于各模块/单元的功能如下:

流量分类模块101,用于将待识别流量数据输入至流量分类模型中,在所述流量分类模型内,利用深度堆栈自编码器计算所述待识别流量数据的流量分类,得到流量分类子集。

流量识别模块102,用于将所述流量分类子集输入至流量识别模型中进行卷积池化操作得到流量特征集,并根据所述流量特征集,计算得到流量识别结果。

本申请所提供的流量识别装置100中的模块能够利用训练完成的流量分类模型及训练完成的流量识别模型对流量数据进行异常识别,其在具体运行时可以取得与上述的方法实施例一样的技术效果,即能够解决依赖端口号及负载信息,导致计算复杂度偏高且异常流量识别准确性较低的问题。

如图5所示,是本发明第三实施例提供的实现流量识别方法的电子设备的内部结构示意图。

所述电子设备1可以包括处理器12、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器12上运行的计算机程序,如流量识别程序110。

其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smartmediacard,smc)、安全数字(securedigital,sd)卡、闪存卡(flashcard)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如流量识别程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

所述处理器12在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器12是所述电子设备的控制核心(controlunit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行流量识别程序110等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。

所述总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器12等之间的连接通信。

图5仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图5示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器12逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。

进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。

可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

所述电子设备1中的所述存储器11存储的流量识别程序110是多个指令的组合,在所述处理器12中运行时,可以实现上述实施步骤,在此不再赘述。

进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)。

所述计算机可读存储介质上存储有流量识别程序,所述流量识别程序可被一个或多个处理器执行,以实现如下操作:

将待识别流量数据输入至流量分类模型中,在所述流量分类模型内,利用深度堆栈自编码器计算所述待识别流量数据的流量分类,得到流量分类子集;

将所述流量分类子集输入至流量识别模型中进行卷积池化操作得到流量特征集,并根据所述流量特征集,计算得到流量识别结果。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。

因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。

此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

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