自动发现未知网络流的方法、装置、设备及存储介质与流程

文档序号:16787835发布日期:2019-02-01 19:29阅读:182来源:国知局
自动发现未知网络流的方法、装置、设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种自动发现未知网络流的方法、自动发现未知网络流的装置、自动发现未知网络流的设备及计算机存储介质。



背景技术:

网络流识别技术是当今计算机网络非常重要的部分。它能够识别互联网中网络流的应用类型,从而有助于更好地管理网络,提供网络服务,过滤不符合审计要求的网络流量,探测网络中具有潜在威胁或攻击的网络流。所以,网络流识别技术对于网络管理、网络服务质量提升与安全防护起着至关重要的作用。

然而传统网络流识别技术对于已知网络流应用类型能够实现较好的识别,但是对于未知网络流,往往会将其归入已知网络流类型,较易出现误判情况。例如使用svm支持向量机的方法,只能将一种网络流对应到一个已知的网络应用类型,并不能识别出未知的网络流。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种自动发现未知网络流的方法、自动发现未知网络流的装置、自动发现未知网络流的设备和计算机存储介质,旨在解决采用传统网络流识别技术会导致未知网络流的误判问题技术问题。

为实现上述目的,本发明提供一种自动发现未知网络流的方法,所述自动发现未知网络流的方法包括如下步骤:

获取网络数据包,根据所述网络数据包的五元组信息区分出网络流并提取所述网络流的特征;

将所述网络流的特征输入神经网络中进行处理,得到所述神经网络输出的所述网络流的分类结果,其中,所述神经网络的参数由已识别应用类型的网络流的特征训练得到;

将所述分类结果输入到归一化指数函数中进行处理,得到所述分类结果对应的分类概率结果;

将所述分类概率结果中的各个分类概率值分别与预设阈值进行判断;

当各个所述分类概率值均小于所述预设阈值时,确定所述网络流为应用类型未知的网络流;

其中,所述网络流的特征包括数据包长度特征、数据包时间特征和数据包服务类型特征。

优选地,所述获取网络数据包,根据所述网络数据包的五元组信息区分出网络流并提取所述网络流的特征的步骤之前还包括:

获取已识别应用类型的网络流,并提取所述已识别应用类型的网络流的特征;

将所述已识别应用类型的网络流的特征输入所述神经网络进行训练,以更新所述神经网络的参数。

优选地,所述将所述已识别应用类型的网络流的特征输入所述神经网络进行训练,以更新所述神经网络的参数的步骤包括:

将所述已识别应用类型的网络流的特征转换成特征向量或特征矩阵;

将所述特征向量或特征矩阵输入所述神经网络进行训练,以更新所述神经网络的参数。

优选地,所述数据包长度特征包括所述网络流的最大数据包长度、最小数据包长度、平均数据包长度和数据包长度方差;

所述数据包时间特征包括所述网络流的数据包到达最大间隔时间、数据包到达最小间隔时间、数据包到达平均间隔时间、数据包到达间隔时间方差和数据流平均持续时间、数据包传输中断时间和数据包传输空闲时间;

所述数据包服务类型特征包括数据包服务类型标识比特数、携带服务类型标识的数据包数量和各个所述服务类型标识的数据包数量。

优选地,所述当各个所述分类概率值均小于所述预设阈值时,确定所述网络流为应用类型未知的网络流的步骤之后还包括:

确定所述应用类型未知的网络流的应用类型,并提取所述应用类型未知的网络流的特征;

将所述应用类型未知的网络流的特征和所述应用类型未知的网络流的应用类型输入所述神经网络进行训练,以更新所述神经网络的参数。

优选地,所述确定所述应用类型未知的网络流的应用类型,并提取所述应用类型未知的网络流的特征的步骤包括:

采用深度包检测技术确定所述应用类型未知的网络流的应用类型,并提取所述应用类型未知的网络流的特征。

优选地,其特征在于,所述神经网络包括:

输入层、隐藏层和输出层。

此外,为实现上述目的,本发明还提供所述自动发现未知网络流装置,该装置包括:

特征提取模块,所述特征提取模块用于获取网络数据包,并根据所述网络数据包的五元组信息区分出网络流,并提取所述网络流的特征;

神经网络模块,所述神经网络模块用于将所述网络流的特征输入神经网络中进行处理,得到所述神经网络输出的所述网络流的分类结果,其中,所述神经网络的参数由已识别应用类型的网络流的特征训练得到;

归一化模块,所述归一化模块用于将所述分类结果输入到归一化指数函数中进行处理,得到所述分类结果对应的分类概率结果;

判断模块,所述判断模块用于将所述分类概率结果中的各个分类概率值分别与预设阈值进行判断;

所述判断模块还用于当各个所述分类概率值均小于所述预设阈值时,确定所述网络流为应用类型未知的网络流;

其中,所述网络流的特征包括数据包长度特征、数据包时间特征和数据包服务类型特征。

此外,为实现上述目的,本发明还提供所述自动发现未知网络流设备,该设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的自动发现未知网络流的处理程序,所述自动发现未知网络流的处理程序被所述处理器执行时实现如上所述的自动发现未知网络流的方法的步骤。

此外,为实现上述目的,本发明还提出一种计算机存储介质,其特征在于,所述计算机存储介质上存储有自动发现未知网络流的处理程序,所述自动发现未知网络流的处理程序被处理器执行时实现如上所述的自动发现未知网络流的方法的步骤。

本发明实施例提出的一种自动发现未知网络流的方法、自动发现未知网络流装置、自动发现未知网络流设备和计算机存储介质,提取网络流的特征,将网络流的特征输入神经网络中进行处理,得到神经网络输出的网络流的分类结果,将分类结果输入到归一化指数函数中进行处理,得到分类结果对应的分类概率结果,当各个分类概率值均小于预设阈值时,确定所述网络流为应用类型未知的网络流。本发明通过将网络流的特征输入到神经网络进行处理,并将神经网络的输出经过归一化指数函数转换为概率,在概率低于预设阈值时判定该网络流的应用类型为未知,提供了一种准确高效的自动发现未知网络流的方法。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图;

图2为本发明自动发现未知网络流方法第一实施例的流程示意图;

图3为三层神经网络参数示意图;

图4为神经网络结构图;

图5为本发明自动发现未知网络流方法第二实施例的流程示意图;

图6为本发明自动发现未知网络流装置一实施例的功能模块示意图。

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

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的服务器(又叫事件处理设备,其中,事件处理设备可以是由单独的事件处理装置构成,也可以是由其他装置与事件处理装置组合形成)结构示意图。

本发明实施例服务器指一个管理资源并为用户提供服务的计算机,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。相对于普通pc(personalcomputer)个人计算机来说,服务器在稳定性、安全性、性能等方面都要求较高;如图1所示,该服务器可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),网络接口1004,用户接口1003,存储器1005,通信总线1002、芯片组、磁盘系统、网络等硬件等。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真wireless-fidelity,wifi接口)。存储器1005可以是高速随机存取存储器(randomaccessmemory,ram),也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

可选地,服务器还可以包括摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块;输入单元,比显示屏,触摸屏;网络接口可选除无线接口中除wifi外,蓝牙、探针、3g/4g/5g(前面的数字表示的是蜂窝移动通信网络的代数。就是表示是第几代的网络。英文字母g表示generation)联网基站设备等等。本领域技术人员可以理解,图1中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,该计算机软件产品存储在一个存储介质(存储介质:又叫计算机存储介质、计算机介质、可读介质、可读存储介质、计算机可读存储介质或者直接叫介质等,如ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及计算机程序。

在图1所示的服务器中,网络接口1004主要用于连接后台数据库,与后台数据库进行数据通信;用户接口1003主要用于连接客户端(客户端,又叫用户端或终端,本发明实施例终端可以固定终端,也可以是移动终端,在此不再赘述),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的计算机程序,并执行本发明以下实施例提供的事件处理方法中的步骤。

参照图2,本发明第一实施例提供一种自动发现未知网络流的方法,所述方法包括:

步骤s10,获取网络数据包,根据所述网络数据包的五元组信息区分出网络流并提取所述网络流的特征。

在接收到多个独立的网络数据包时,需要根据网络数据包的五元组信息区分出不同的网络流,即每一个待识别的网络流。具体地,从每个网络数据包的头部信息中识别出五元组信息,即源ip地址,目的ip地址,源端口号,目的端口号与协议类型。拥有同样的五元组信息的网络数据包属于同一种待识别的网络流。

需要说明的是,同一个网络流往往拥有双向传输的数据包,即包括发送端到接收端、接收端到发送端的双向数据包,此时属于发送端到接收端的数据包的源ip地址和源端口号分别为属于接收端到发送端的数据包的目的ip地址和目的端口号,将它们认为也认为是拥有同样的五元组信息的数据包,属于同一个网络流。

步骤s20,将所述网络流的特征输入神经网络中进行处理,得到所述神经网络输出的所述网络流的分类结果,其中,所述神经网络的参数由已识别应用类型的网络流的特征训练得到。

将网络数据包区分并归属于不同的待识别的网络流之后,提取各个网络流的特征,将各个网络流的特征输入神经网络中进行处理,神经网络运行的输出结果即为对网络流的应用类型的分类结果。

网络流的特征包括数据包长度特征、数据包时间特征和数据包服务类型特征。具体地,数据包长度特征包括网络流的最大数据包长度、最小数据包长度、平均数据包长度和数据包长度方差;数据包时间特征包括网络流的数据包到达最大间隔时间、数据包到达最小间隔时间、数据包到达平均间隔时间、数据包到达间隔时间方差和数据流平均持续时间、数据包传输中断时间和数据包传输空闲时间;数据包服务类型特征包括数据包服务类型标识比特数、携带服务类型标识的数据包数量和各个服务类型标识的数据包数量。

其中传输中断时间是指在有连续超过预设数目个数据包从同一个传输方向传送,而未收到来自于另一个传输方向的数据包的时间,该预设数目可优选设置为3;空闲时间是指在任何一个传输方向均未有数据包传输且持续时间超过预设时间,该预设时间可优选设置为两秒。此外,网络流的特征还包括源端口号和目的端口号。

本实施例中所使用的神经网络包含输入层、隐藏层和输出层。输入层作为神经网络的第一层,用于接收输入特征数据并传递到下一层,对输入的特征数据不做运算,没有自己的权重值和偏置值;输出层是神经网络的最后一层,通过对最后一个隐藏层的输入进行计算得到神经网络的最终输出结果,该输出结果是对目标进行预测的分类结果;输入层和输出层之间的层被称为隐藏层,隐藏层对上一层传递的数据进行处理,具体为对数据进行空间变换,使其可以被线性分类。上述的每一层中都有多个神经元,输入层中的神经元的个数需要与接收到的输入特征数据的维度匹配,输出层中的神经元个数与目标的维度匹配,即与输出类别的维度匹配,隐藏层的层数与每层的神经元数可以根据经验设定,或者先进行预设再根据预测效果进行调整。层与层之间的神经元是通过权重连接的,跨层的神经元之间没有连接,即输入层与输出层之间没有连接(除非没有隐藏层)。神经元通过首尾相连的方式进行连接并实现数据传递,上一个神经元的输出,会成为下一层神经元的输入。

当将待识别的网络流的特征输入神经网络中时,神经网络能够利用所输入的网络流的特征经过m个隐层的神经元的学习得到输出层的n个神经元取值,这n个神经元的取值形成神经网络的输出向量,对应为网络流的应用分类结果,通常输出向量所包含的元素的个数等于用于训练的已知应用类型的网络流的应用分类个数。

神经网络需要经过训练,不断优化其所包含的参数(也可称为权值),才可以保证其识别网络流应用类型的成功率。在本实施例中,可以采用三层神经网络,下面通过描述三层神经网络的数学模型来说明待训练优化的参数。需要说明的是,对于网络流应用类型识别问题而言,由于作为输入的网络流特征向量的维度并不是很高,优选采用三层或四层神经网络,也可以采取其他层数的神经网络,在此不对神经网络的层数进行任何限定。

如图3所示,三层神经网络包括一个输入层、一个隐藏层和一个输出层。输入层接收一组特征输入向量x=[x1,x2,......,xm],此组特征向量对应一种已识别应用类型的网络流的网络特征样本,输出层输出向量表示为y=[y1,y2,......,yn],向量中每个值对应为一种网络应用类型的预测值,其中,m值为特征的种类数目,n为网络应用类型种类的数目。

需要说明的是,上述特征输入向量是由已识别应用类型的网络流的特征转换得到,特征向量中的每一个值都是数值。

假定θ(j)为从第j层到j+1层的参数,ai(j)为第j层第i个神经元的输出值,g(z)为激励函数,那么隐藏层的输出可以表示为:

……

输出层的输出可以表示为:

……

可见隐藏层的参数θ构成了一个n1*m维的参数矩阵,输出层的参数θ构成了一个n1*n维的参数矩阵,这两个参数矩阵为训练过程中所需要估计的。

训练刚开始时,为参数向量中的元素赋上随机值,使用这些随机生成的参数,来预测训练数据中的样本。训练数据的样本对应的目标结果,即输出向量的期望向量为下列向量中的一种:[1,0,0,0,…,0],[0,1,0,0,…,0],[0,0,1,0,…,0],[0,0,0,1,…,0],……,[0,0,0,0,…,1],向量中的1表示属于对应的网络应用类型。

如果一个训练样本属于某个类别,那么这个训练样本在输出层的输出向量和期望向量越接近越好。可以使用损失函数中来判断一个输出向量和期望向量接近的程度,例如使用交叉熵函数,交叉熵函数刻画了两个概率分布之间的距离,为分类问题中使用比较广泛的损失函数。

训练的目标为:如何优化参数,能够让损失函数的值最小。解决这个优化问题使用的是梯度下降算法。梯度下降算法每次计算参数在当前的梯度,然后让参数向着梯度的反方向前进一段距离,不断重复,直到梯度接近零时截止。一般这个时候,所有的参数恰好达到使损失函数达到一个最低值的状态。

在神经网络模型中,由于结构复杂,每次计算梯度的代价很大。因此还需要使用反向传播算法。反向传播算法是利用了神经网络的结构进行的计算。不一次计算所有参数的梯度,而是从后往前。首先计算输出层的梯度,然后是第二个参数矩阵的梯度,接着是中间层的梯度,再然后是第一个参数矩阵的梯度,最后是输入层的梯度。计算结束以后,所要的两个参数矩阵的梯度就都有了。在反向传播算法中,梯度的计算从后往前,一层层反向传播。

需要说明的是,输入层的输入可以为特征矩阵,例如将m条网络流的网络特征一起作为输入,若每条网络流的特征种类数目为n1,那么输入为m*n1的特征矩阵,即输入的特征矩阵中的每一行对应一种类型的网络流的网络特征,若网络应用类型数目为n,此时输出层输出m*n输出矩阵,即输出矩阵的每一行对应着一种类型的网络流的分类结果。

步骤s30,将所述分类结果输入到归一化指数函数中进行处理,得到所述分类结果对应的分类概率结果。

任何事件所发生的概率值都在0与1之间,那么可以将一个网络流属于某个应用类别看成一个概率事件,此时可能是不同网络应用的概率值的和将为1。如图4所示,采用归一化指数函数softmax作为神经网络额外添加的一层,最终将神经网络的输出结果转化为概率的形式,从而根据最终得到的概率值来判断待识别的网络流属于哪一种类型。

假设神经网络的输出为y=[y1,y2,......,yn],经过softmax层之后的输出将转变为:

由此,神经网络的原始输出通过置信度转化为新的输出。

步骤s40,将所述分类概率结果中的各个分类概率值分别与预设阈值进行判断。

步骤s50,当各个所述分类概率值均小于所述预设阈值时,确定所述网络流为应用类型未知的网络流。

在本实施例中,预设阈值优选为85%。当某一个待识别网络应用类型的网络流对应的分类概率结果中有高于或等于85%的概率值时,可确定该待识别网络应用类型的网络流的应用类型为该概率值对应的网络应用类型;当该待识别网络应用类型的网络流的分类概率结果中的概率值均小于85%时,可确定该待识别网络应用类型的网络流为应用类型未知的网络流。

在本实施例中,通过将网络流的特征输入到神经网络进行处理,并将神经网络的输出经过归一化指数函数转换为概率,在概率低于预设阈值时判定该网络流的应用类型为未知,提供了一种准确高效的自动发现未知网络流的方法。

进一步的,参照图5,本发明第二实施例基于第一实施例提供一种自动发现未知网络流的方法,本实施例在步骤s50之后还包括:

步骤s60,确定所述应用类型未知的网络流的应用类型,并提取所述应用类型未知的网络流的特征。

在本实施例中,采用深度包检测技术确定应用类型未知的网络流的应用类型。

深度包检测技术需要对每个数据流中数据包的内部负载进行检测,导致包解析的时间比较长,对于网络中大规模的流量数据,检测速率比较慢。因此在本实施例中,采用基于神经网络、依据网络流特征的技术对网络流进行应用类型的识别,当识别出未知应用类型的网络流时,再采用深度包检测技术对其进行进一步的应用类型的识别,并提取该网络流的特征,以将该网络流的特征值与相应的类别作为新的样本,对神经网络再次进行训练,通过将基于神经网络的技术和深度包检测技术相结合来提高对网络流的应用类型的识别率。

具体地,深度包检测根据特征规则数据来识别数据包,特征规则数据库按照以下步骤进行构建:通过网络抓包软件从网络业务流量中抓取各种不同应用的数据报文,通过相关的分析软件解析抓取到的数据报文,从中提取对应的字符特征,将提取到的字符特征按照特定的组合格式生成特征规则,将生成的特征规则汇集在一起生成特征规则数据库。进一步地,当有新应用类型出现时,需要更新应用特征规则数据库,以具有对新应用类型的网络流的识别能力。

采用深度包检测技术对网络流的识别过程包括对数据包的预处理和检测过程。

通过使用网络抓包软件如wireshark对数据包进行预处理,预处理包括对数据包进行传输协议的解析,例如分析出tcp、udp、arp等,解析出各个协议字段对应的数据,解析数据包头以提取数据包的有效载荷,并保存有助于识别应用类型的数据包。

当获取到经预处理过的数据包时,采用模式匹配算法,判断数据包的有效载荷携带的特征信息是否和特征规则数据库中的特征字段信息匹配,若匹配则标记其识别成功,保存相应的识别到的应用类型信息。

步骤s70,将所述应用类型未知的网络流的特征和所述应用类型未知的网络流的应用类型输入所述神经网络进行训练,以更新所述神经网络的参数。

在本实施例中,通过确定未识别应用类型的网络流的应用类型,提取其的网络特征作为新的训练样本对神经网络再次进行训练,增强神经网络识别网络流功能的健壮性。

参照图6,本发明还提供一种自动发现未知网络流装置,该自动发现未知网络流装置包括:

特征提取模块10,所述特征提取模块10用于获取网络数据包,并根据所述网络数据包的五元组信息区分出网络流,并提取所述网络流的特征;

神经网络模块20,所述神经网络模块20用于将所述网络流的特征输入神经网络中进行处理,得到所述神经网络输出的所述网络流的分类结果,其中,所述神经网络的参数由已识别应用类型的网络流的特征训练得到;

归一化模块30,所述归一化模块30用于将所述分类结果输入到归一化指数函数中进行处理,得到所述分类结果对应的分类概率结果;

判断模块40,所述判断模块40用于将所述分类概率结果中的各个分类概率值分别与预设阈值进行判断;

所述判断模块40还用于当各个所述分类概率值均小于所述预设阈值时,确定所述网络流为应用类型未知的网络流;

其中,所述网络流的特征包括数据包长度特征、数据包时间特征和数据包服务类型特征。

可选地,所述特征提取模块10用于获取已识别应用类型的网络流,并提取所述已识别应用类型的网络流的特征;

所述神经网络模块20还用于将所述已识别应用类型的网络流的特征输入所述神经网络进行训练,以更新所述神经网络的参数。

可选地,所述神经网络模块20还包括:

特征转换单元,所述特征转换单元用于将所述已识别应用类型的网络流的特征转换成特征向量或特征矩阵;

训练单元,所述训练单元用于将所述特征向量或特征矩阵输入所述神经网络进行训练,以更新所述神经网络的参数。

可选地,所述自动发现未知网络流装置还包括:

未知网络流处理模块,所述未知网络流处理模块用于确定所述应用类型未知的网络流的应用类型,并提取所述应用类型未知的网络流的特征;

所述神经网络模块20用于将所述应用类型未知的网络流的特征和所述应用类型未知的网络流的应用类型输入所述神经网络进行训练,以更新所述神经网络的参数。

可选地,所述未知网络流处理模块包括:

深度包检测单元,所述深度包检测单元用于采用深度包检测技术确定所述应用类型未知的网络流的应用类型;

所述特征提取模块10还用于提取所述应用类型未知的网络流的特征。

可选地,其特征在于,所述神经网络模块20包括输入层单元、隐藏层单元和输出层单元。

本发明还提供一种自动发现未知网络流设备,该自动发现未知网络流设备包括:存储器、处理器、摄像头及存储在所述存储器上并可在所述处理器上运行的自动发现未知网络流处理程序,所述自动发现未知网络流处理程序被所述处理器执行时实现所述的自动发现未知网络流的方法的步骤。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有自动发现未知网络流处理程序,所述自动发现未知网络流处理程序被处理器执行时实现所述的自动发现未知网络流的方法的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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