发明内容
有鉴于此,提供一种网络流量识别方法,解决网络流量识别正确率低的问题,实现将网络数据流综合成数据流图的数据结构,并利用网络流量识别模型判定网络流量以及对应的网络应用。
本申请实施例提供了一种网络流量识别方法,所述方法包括:
针对不同图模式的网络流量进行采集,并进行标注;
预处理采集到的所述网络流量,提取每一个网络会话的特征信息;
基于所述特征信息,生成数据流图;
利用所述数据流图的数据对图神经网络进行训练,生成网络流量识别模型;
将未知流量转换为数据流图的数据输入所述网络流量识别模型,所述网络流量识别模型将未知流量的数据流图和自身学习到的图模式进行匹配;
当匹配程度大于预设阈值时,则判定所述未知流量对应的图模式,从而确定未知流量对应的网络应用
在一实施例中,所述针对不同图模式的网络流量进行采集,并进行标注,包括:
使用脚本运行不同种类的网络应用;其中一种所述网络应用对应一种图模式;
监控并采集产生的网络流量,并根据不同种类的网络应用对所述网络流量进行对应标注。
在一实施例中,所述特征信息包括以下至少之一:
开始时间、持续时间、字节数序列、互联网协议地址、端口号。
在一实施例中,所述数据流图具有图的数据结构,其中:
每条数据流构成数据流图中的一个节点,所述特征信息作为所述节点的参数;其中,每条网络会话为一条数据流;
数据流之间的关联性构成数据流图中的一条边,所述关联性由流关联关系向量表示。
在一实施例中,所述流关联关系向量由一个五元组唯一确定,所述五元组包括源IP地址、源端口、目的IP地址、目的端口、传输层协议。
在一实施例中,所述利用所述数据流图的数据对图神经网络进行训练,包括:
归集所述数据流图预设范围内的数据;其中所述预设范围内的数据包括节点特征、邻居节点特征以及邻居边特征;
对所述预设范围内的数据进行卷积计算,利用以下公式:
其中,表示第l层中节点ν的特征,为一个向量;σ(·)为一个非线性函数relu;N(ν)为节点ν的邻居节点;AGG(·)为归集函数,表示归集邻居特征的方式;Wl为权重参数,COMBIN(·)函数得出最后输出的下一层对应节点的特征。
在一实施例中,所述利用所述数据流图的数据对图神经网络进行训练,还包括:
将训练生成的识别结果与所述标注的数据进行比对;
将所述比对的结果反向传播,更新所述图神经网络内部的参数。
为实现上述目的,还提供一种网络流量识别装置,包括:
流量标注模块,用于针对不同图模式的网络流量进行采集,并进行标注;
流量预处理模块,用于预处理采集到的所述网络流量,提取每一个网络会话的特征信息;
数据流图生成模块,用于基于所述特征信息,生成数据流图;
模型训练模块,用于利用所述数据流图的数据对图神经网络进行训练,生成网络流量识别模型;
流量识别模块,用于将未知流量转换为数据流图的数据输入所述网络流量识别模型,所述网络流量识别模型将未知流量的数据流图和自身学习到的图模式进行匹配;当匹配程度大于预设阈值时,则判定所述未知流量对应的图模式,从而确定未知流量对应的网络应用。
为实现上述目的,还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有网络流量识别程序,所述网络流量识别程序被处理器执行时实现上述任一所述的方法的步骤。
为实现上述目的,还提供一种网络流量识别设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的网络流量识别程序,所述处理器执行所述网络流量识别程序时实现上述任一所述的方法的步骤。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:针对不同图模式的网络流量进行采集,并进行标注;对原始网络流量进行采集并对应标注,初步形成训练集,保证网络流量识别模型的准确度。预处理采集到的所述网络流量,提取每一个网络会话的特征信息;基于所述特征信息,生成数据流图;所述数据流图灵活的描述出各个数据流之间的关系,提高网络流量识别的正确率。利用所述数据流图的数据对图神经网络进行训练,生成网络流量识别模型;图可以非常灵活的表示流量的特征,同时通过边将各个节点联系起来,使得图具有识别节点之间关系特征的潜力,图神经网络应用于网络流量的识别,挖掘了图神经网络的潜力,同时保证了关系特征在网络流量识别中的作用。将未知流量转换为数据流图的数据输入所述网络流量识别模型,所述网络流量识别模型将未知流量的数据流图和自身学习到的图模式进行匹配;当匹配程度大于预设阈值时,则判定所述未知流量对应的图模式,从而确定未知流量对应的网络应用。本发明解决网络流量识别正确率低的问题,实现将网络数据流综合成数据流图的数据结构,并利用网络流量识别模型判定网络流量以及对应的网络应用。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:针对不同图模式的网络流量进行采集,并进行标注;预处理采集到的所述网络流量,提取每一个网络会话的特征信息;基于所述特征信息,生成数据流图;利用所述数据流图的数据对图神经网络进行训练,生成网络流量识别模型;将未知流量转换为数据流图的数据输入所述网络流量识别模型,所述网络流量识别模型将未知流量的数据流图和自身学习到的图模式进行匹配;当匹配程度大于预设阈值时,则判定所述未知流量对应的图模式,从而确定未知流量对应的网络应用。本发明解决网络流量识别正确率低的问题,实现将网络数据流综合成数据流图的数据结构,并利用网络流量识别模型判定网络流量以及对应的网络应用。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
本申请涉及一种网络流量识别设备包括如图1所示:至少一个处理器012、存储器011。
处理器012可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器012中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器012可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器011,处理器012读取存储器011中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器011可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ReadOnly Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本发明实施例描述的系统和方法的存储器011旨在包括但不限于这些和任意其它适合类型的存储器。
参照图2,图2为本发明网络流量识别方法的第一实施例,所述网络流量识别方法,包括:
步骤S110:针对不同图模式的网络流量进行采集,并进行标注。
在计算机科学中,一个完整的图结构是由顶点集合和边集合组成,其中所有的顶点构成了一个顶点集合,所有的边构成一个边的集合。顶点也可称为节点或者交点,边也可称为链接。
图模式与网络应用一一对应,根据网络应用的配置与布局形成对应的图模式。
网络流量就是网络上传输的数据量。网络流量的大小对网络架构设计具有重要意义,就像要根据来往车辆的多少和流向来设计道路的宽度和连接方式类似,根据网络流量进行网络的设计是十分必要的。
标注是形成训练集的关键环节,在图模式对应的网络应用中进行标注,形成一个对应的标签,则可以使用监督学习的方式训练图神经网络。
步骤S120:预处理采集到的所述网络流量,提取每一个网络会话的特征信息。
预处理可以是预先做的准备工作,对网络流量进行预处理;
在两台主机之间的一次数据通信过程称之为一个会话(Conversation),或称为双向流。
特征信息将构成数据流图中每个节点的节点特征。
步骤S130:基于所述特征信息,生成数据流图。
如图3所示,数据流图为将采集到的数据流综合成数据流图的数据结构,每条数据流构成图的一个节点,数据流流的特征作为节点的参数,流和流之间的关联性就是图上的边,可以计算节点之间的关联性,边的特征则由流之间的关联性F(eij)表示。不同流之间的关联性可以从不同的层面描述,对应一个流关联关系向量。例如,两条流有相同的源IP地址,这两条流对应的节点之间的边的特征中,源IP有关的位可以置1。如此,捕获的多个流就可以表示成图的数据结构。
步骤S140:利用所述数据流图的数据对图神经网络进行训练,生成网络流量识别模型。
网络流量识别模型用于将未知流量转换为数据流图的数据与自身学习到的多种图模式进行匹配。
步骤S150:将未知流量转换为数据流图的数据输入所述网络流量识别模型,所述网络流量识别模型将未知流量的数据流图和自身学习到的图模式进行匹配。
输入数据的预处理过程为将未知流量转换为数据流图的数据,以符合网络流量识别模型的输入格式。
步骤S160:当匹配程度大于预设阈值时,则判定所述未知流量对应的图模式,从而确定未知流量对应的网络应用。
当未知流量的数据流图和网络流量识别模型自身学习到的图模式的匹配程度大于预设阈值时,则可以对未知流量对应的图模式进行判定,且图模式对应有网络应用(在步骤S110中就已标注),从而确定未知流量对应的网络应用。
在上述实施例中存在的有益效果为:针对不同图模式的网络流量进行采集,并进行标注;对原始网络流量进行采集并对应标注,初步形成训练集,保证网络流量识别模型的准确度。预处理采集到的所述网络流量,提取每一个网络会话的特征信息;基于所述特征信息,生成数据流图;所述数据流图灵活的描述出各个数据流之间的关系,提高网络流量识别的正确率。利用所述数据流图的数据对图神经网络进行训练,生成网络流量识别模型;图可以非常灵活的表示流量的特征,同时通过边将各个节点联系起来,使得图具有识别节点之间关系特征的潜力,图神经网络应用于网络流量的识别,挖掘了图神经网络的潜力,同时保证了关系特征在网络流量识别中的作用。将未知流量转换为数据流图的数据输入所述网络流量识别模型,所述网络流量识别模型将未知流量的数据流图和自身学习到的图模式进行匹配;当匹配程度大于预设阈值时,则判定所述未知流量对应的图模式,从而确定未知流量对应的网络应用。本发明解决网络流量识别正确率低的问题,实现将网络数据流综合成数据流图的数据结构,并利用网络流量识别模型判定网络流量以及对应的网络应用。
参照图4,图4为本发明网络流量识别方法第一实施例中步骤S110的具体实施步骤,所述针对不同图模式的网络流量进行采集,并进行标注,包括:
步骤S111:使用脚本运行不同种类的网络应用;其中一种所述网络应用对应一种图模式。
脚本(Script),是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。
利用脚本在网络平台上运行不同种类的网络应用,降低网络流量采集的难度,且可保证网络流量采集的正确性。
步骤S112:监控并采集产生的网络流量,并根据不同种类的网络应用对所述网络流量进行对应标注。
运行不同种类的网络应用,将运行过程中产生的网络流量进行记录,并对网络流量进行标注,可依据当前运行的网络应用产生标签。
在上述实施例中存在的有益效果为:利用脚本运行不同种类的网络应用,降低网络流量的采集难度;标注的过程产生高质量的训练集,从而保证网络流量识别模型的正确性。
在其中一个实施例中,所述特征信息包括以下至少之一:
开始时间、持续时间、字节数序列、互联网协议地址、端口号。
开始时间为当前会话开始的时间;持续时间为当前对话开始时间与结束时间之间的持续的时间;
字节数序列中存储的是字节的顺序,而排列字节的方法,分为大端法和小端法;其中大端法对于字节的排序为从左至右为从最高有效位至最低有效位,而小端法对于字节的排序为从左至右为从最低有效位至最高有效位。在本发明中根据实际对应的网络应用调整,在此不作限定。
在上述实施例中存在的有益效果为:特征信息为生成数据流图提供参数信息,为生成数据流图提供数据支持。
在其中一个实施例中,所述数据流图具有图的数据结构,其中:
一个完整的图的数据结构是由顶点集合和边集合组成,其中所有的顶点构成了一个顶点集合,所有的边构成一个边的集合。顶点也可称为节点或者交点,边也可称为链接。
每条数据流构成数据流图中的一个节点,所述特征信息作为所述节点的参数;其中,每条网络会话为一条数据流;
每条数据流对应一个节点,特征信息对应节点的参数。
数据流之间的关联性构成数据流图中的一条边,所述关联性由流关联关系向量表示。
数据流之间的关联性对应的是边的权重。
在上述实施例中存在的有益效果为:将数据流之间的关联性加入到网络流量的识别中来,提供网络流量识别的正确性。
在其中一个实施例中,所述流关联关系向量由一个五元组唯一确定,所述五元组包括源IP地址、源端口、目的IP地址、目的端口、传输层协议。
源IP地址可以为发送端的互联网协议地址;源端口可以为随机数,可以区分相同两台主机之间的多个会话;目的IP地址可以为接收端的互联网协议地址;目的端口一般为常用的互联网服务的公开端口;传输层协议一般为TCP或者UDP。
在上述实施例中存在的有益效果为:所述流关联关系向量表示的是数据流之间的相关性,流关联关系向量构建的正确性直接决定数据流之间的相关性是否正确加入到网络流量识别模型的训练中,所以流关联关系向量按照五元组的方式构建可以保证数据流之间的相关性正确加入到网络流量识别模型中,保证网络流量识别模型的正确性,从而保证网络流量识别的正确性。
参照图5,图5为本发明网络流量识别方法第一实施例中步骤S140的具体实施步骤,所述利用所述数据流图的数据对图神经网络进行训练,包括:
步骤S141:归集所述数据流图预设范围内的数据;其中所述预设范围内的数据包括节点特征、邻居节点特征以及邻居边特征。
收集数据流图预设范围内的节点的特征信息以及数据流之间的相关性信息。
步骤S142:对所述预设范围内的数据进行卷积计算,利用以下公式:
其中,表示第l层中节点ν的特征,为一个向量;σ(·)为一个非线性函数relu;N(ν)为节点ν的邻居节点;AGG(·)为归集函数,表示归集邻居特征的方式;Wl为权重参数,COMBIN(·)函数得出最后输出的下一层对应节点的特征。
在上述实施例中存在的有益效果为:图可以非常灵活的表示流量的特征,同时通过边将各个节点联系起来,使得图具有识别节点之间关系特征的潜力,图神经网络应用于网络流量的识别,挖掘了图神经网络的潜力,同时保证了数据流之间的相关性在网络流量识别中的作用。
参照图6,图6为本发明网络流量识别方法第一实施例中步骤S140的具体实施步骤,所述利用所述数据流图的数据对图神经网络进行训练,还包括:
步骤S141':归集所述数据流图预设范围内的数据;其中所述预设范围内的数据包括节点特征、邻居节点特征以及邻居边特征。
步骤S142':对所述预设范围内的数据进行卷积计算,利用以下公式:
其中,表示第l层中节点ν的特征,为一个向量;σ(·)为一个非线性函数relu;N(ν)为节点ν的邻居节点;AGG(·)为归集函数,表示归集邻居特征的方式;Wl为权重参数,COMBIN(·)函数得出最后输出的下一层对应节点的特征。
步骤S143':将训练生成的识别结果与所述标注的数据进行比对。
所述识别结果与所述标注的数据存在误差,经过比对计算识别结果与标注结果之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播至输入层。
步骤S144':将所述比对的结果反向传播,更新所述图神经网络内部的参数。
在反向传播的过程中,根据误差调整所述图神经网络内部的参数的值,不断迭代上述的过程,直至收敛。
与上述实施例相比,本实施例包括步骤S143'、步骤S144',其他步骤与上述实施例相同,在此不再赘述。
在上述实施例中存在的有益效果为:图可以非常灵活的表示流量的特征,同时通过边将各个节点联系起来,使得图具有识别节点之间关系特征的潜力,图神经网络应用于网络流量的识别,挖掘了图神经网络的潜力,并且通过反向传播更新图神经网络内部的参数,使网络流量识别模型的正确率进一步提高。
本发明还提供一种网络流量识别装置,包括:
流量标注模块,用于针对不同图模式的网络流量进行采集,并进行标注;
流量预处理模块,用于预处理采集到的所述网络流量,提取每一个网络会话的特征信息;
数据流图生成模块,用于基于所述特征信息,生成数据流图;
模型训练模块,用于利用所述数据流图的数据对图神经网络进行训练,生成网络流量识别模型;
流量识别模块,用于将未知流量转换为数据流图的数据输入所述网络流量识别模型,所述网络流量识别模型将未知流量的数据流图和自身学习到的图模式进行匹配;当匹配程度大于预设阈值时,则判定所述未知流量对应的图模式,从而确定未知流量对应的网络应用。
图7所示装置包括流量标注模块21、流量预处理模块22、数据流图生成模块23、模型训练模块24,流量识别模块25,该装置可以执行图2至图5所示实施例的方法,本实施例未详细描述的部分,可参考对图2至图5所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2至图5所示实施例中的描述,在此不再赘述。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有网络流量识别程序,所述网络流量识别程序被处理器执行时实现上述任一所述的方法的步骤。
本发明还提供一种网络流量识别设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的网络流量识别程序,所述处理器执行所述网络流量识别程序时实现上述任一所述的方法的步骤。
在本发明中,存在一种可实现的具体实施例:以淘宝网为例,首先流量标记模块使用脚本多次访问淘宝网网站,获取并标记淘宝网的流量样本。每次访问该网络应用,浏览器都会与淘宝网的多个服务器的CDN连接,产生多条流。这些流经过流量预处理模块提取流量特征之后,在FGG模块之中以每个流为节点,以流之间的关联性为边构建一张图。通过多次采集数据,产生多张图,送入流量训练模块进行训练,流量训练模块会利用图神经网络技术识别和记录淘宝网的流量模式特征。
在部署阶段,实现本发明的软件部署在路由器或者交换机等网络设备中,每隔一段时间就对经过网络设备的流量构建流关联图,经过训练的图神经网络将在流关联图中寻找训练过的网络应用模式,一旦匹配程度达到阈值,则判定这段时间内有对应的网络应用流量经过。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。