多协议数据采集方法、系统、装置及计算机可读存储介质与流程

文档序号:25033254发布日期:2021-05-11 17:04阅读:194来源:国知局
多协议数据采集方法、系统、装置及计算机可读存储介质与流程

本申请涉及多协议数据采集技术领域,尤其是涉及一种多协议数据采集方法、系统、装置及计算机可读存储介质。



背景技术:

近年来,随着全球信息化的不断发展,现代计算机网络中应用有大量的网络服务和网络协议。在网络服务功能不断拓展的同时,对数据协议识别的时效性的要求越来越高,自动化的协议逆向分析技术成为人们追求的目标。

目前,一般可通过端口号、报文头和协议标识码的方式对协议进行识别,例如:以下为645协议的报文,可以根据报文的首字节68和尾字节16进行判断:681111111111116803103234b33a343333333733343334333412e716。

针对上述中的相关技术,发明人认为存在协议逆向分析耗时较长的缺陷,导致数据采集的速度较慢。



技术实现要素:

为了避免协议逆向分析耗时较长的问题,本申请提供一种多协议数据采集方法、系统、装置及计算机可读存储介质。

第一方面,本申请提供的一种多协议数据采集方法,采用如下的技术方案:

一种多协议数据采集方法,包括:

通过计算特征值的方式识别数据传输通道对应的数据传输协议;

将数据传输通道与对应的数据传输协议进行绑定;

根据协议的报文格式对采集的数据进行解析。

通过采用以上技术方案,通过计算特征值的方式识别数据传输通道对应的数据传输协议,从而可以有效缩短协议逆向分析的时间,进而提高数据采集的速度。

优选的,所述的通过计算特征值的方式识别数据传输通道对应的数据传输协议包括:

采集数据传输通道中的任意两段协议报文;

计算所述两段协议报文对应的特征值;

将所述特征值和已知协议的特征值进行比对,识别出数据传输通道对应的数据传输协议。

通过采用以上技术方案,从而可以较为快速、准确的识别出tcp流的协议类型。和其他算法相比,本申请的协议识别方法在保证易用性的同时,能够实现任意协议的快速、准确的识别,而且基于开发的协议识别模型,可以实时自动化运行。

优选的,所述的计算所述两段协议报文对应的特征值包括:

将所采集的数据传输通道中的任意两段协议报文作为输入,利用激活函数进行处理,获得所述两段协议报文对应的特征值。

通过采用以上方案,从而将无限制的输入转换为可预测形式的输出,为后续协议的快速识别奠定了基础。

优选的,若所述特征值和已知协议的特征值进行比对时,没有符合的特征值,则更新权重和偏置,获得更新后的协议识别模型,重新计算对应的特征值。

通过采用以上技术方案,从而使得本申请能在识别协议的过程中根据识别的效果自动计算权重系数和偏置值并将其更新应用到新一轮的识别中,能极大的提升二进制协议识别的准确性。另外,本申请采用了人工神经网络算法对二进制协议进行识别和纠错,利用网络流数据与图像的相似性,自动进行协议特征值选择和提取,直接将网络流数据作为神经网络的输入,进行监督学习,训练网络流量协议识别模型,而且通过以上方法进行模型的不断更新迭代,使得获得的协议识别模型可以实时优化并运行。

优选的,采用以下方式更新权重:

其中,wt+1表示更新后的权重,wt表示更新前的权重,η为常数,c表示损失函数,表示损失函数对权重求偏导。

通过以上方法对协议识别模型的权重进行更新,从而可以实现自动计算协议特征值,使得协议识别更加准确、快速。

优选的,采用以下方式更新偏置:

其中,

式中,bt+1表示更新后的偏置,bt表示更新前的偏置,η为常数,表示损失函数对偏置求偏导;n为递归计算损失函数的次数(以便最小化损失函数,直至计算出理想的预期值);ei表示输入为x、权重为wi、偏置为bi时,理想输出和实际输出之间的差异,每一层的ei值由当前的wi和bi通过计算得出来。

通过采用以上技术方案,从而可以实现自动计算更新特征值,最终获得较为准确的特征值,进而使得协议识别更加快速、准确。

优选的,所述的η的取值范围为大于等于0小于等于1。

通过采用以上技术方案,从而使得计算出来的特征值稳定,便于计算。

优选的,所述的激活函数采用sigmoid函数。

通过采用以上技术方案,由于sigmoid函数的输出在(0,1)之间,输出范围有限,因而优化稳定,可以用作输出层,而且其为连续函数,便于求导。

优选的,还包括:定时扫描解码失败的报文,并利用更新后的协议识别模型重新识别数据传输通道对应的数据传输协议。从而可以实现对解码失败的报文进行定时纠错。

第二方面,本申请提供一种多协议数据采集系统,采用如下的技术方案:

一种多协议数据采集系统,包括:

协议识别模块,用于通过计算特征值的方式识别数据传输通道对应的数据传输协议;

绑定模块,用于将数据传输通道与对应的数据传输协议进行绑定;

数据解析模块,用于根据协议的报文格式对采集的数据进行解析。

通过采用以上技术方案,通过计算特征值的方式识别数据传输通道对应的数据传输协议,从而可以有效缩短协议逆向分析的时间,进而提高数据采集的速度。

优选的,所述的协议识别模块包括:

协议报文采集模块,用于采集数据传输通道中的任意两段协议报文;

特征值计算模块,用于计算所述两段协议报文对应的特征值;

比对模块,用于将所述特征值和已知协议的特征值进行比对,识别出数据传输通道对应的数据传输协议。

通过采用以上技术方案,从而可以较为快速、准确的识别出tcp流的协议类型。和其他算法相比,本申请的协议识别方法在保证易用性的同时,能够实现任意协议的快速、准确的识别,而且基于开发的协议识别模型,可以实时自动化运行。

优选的,所述的特征值计算模块,将所采集的数据传输通道中的任意两段协议报文作为输入,利用激活函数进行处理,获得所述两段协议报文对应的特征值。

通过采用以上方案,从而将无限制的输入转换为可预测形式的输出,为后续协议的快速识别奠定了基础。

优选的,所述的协议识别模块还包括:

权重和偏置更新模块,用于若所述特征值和已知协议的特征值进行比对时,没有符合的特征值,则更新权重和偏置,获得更新后的协议识别模型,重新计算对应的特征值。

通过采用以上技术方案,从而使得本申请能在识别协议的过程中根据识别的效果自动计算权重系数和偏置值并将其更新应用到新一轮的识别中,能极大的提升二进制协议识别的准确性。另外,本申请采用了人工神经网络算法对二进制协议进行识别和纠错,利用网络流数据与图像的相似性,自动进行协议特征值选择和提取,直接将网络流数据作为神经网络的输入,进行监督学习,训练网络流量协议识别模型,而且通过以上方法进行模型的不断更新迭代,使得获得的协议识别模型可以实时优化并运行。

优选的,所述的权重和偏置更新模块,采用以下方式更新权重和偏置:

其中,wt+1表示更新后的权重,wt表示更新前的权重,η为常数,c表示损失函数,表示损失函数对权重求偏导;

其中,bt+1表示更新后的偏置,bt表示更新前的偏置,η为常数,表示损失函数对偏置求偏导;n为递归计算损失函数的次数(以便最小化损失函数,直至计算出理想的预期值);ei表示输入为x、权重为wi、偏置为bi时,计算获得的特征值与实际特征值的偏差。

优选的,还包括:

定时扫描及处理模块,用于定时扫描解码失败的报文,并利用更新后的协议识别模型重新识别数据传输通道对应的数据传输协议。从而可以实现对解码失败的报文进行定时纠错。

优选的,所述的η的取值范围为大于等于0小于等于1。

第三方面,本申请提供一种多协议数据采集装置,采用如下的技术方案:

一种多协议数据采集装置,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如前述任一种方法的计算机程序。

第四方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:

一种计算机可读存储介质,存储有能够被处理器加载并执行如前述任一种方法的计算机程序。

综上所述,本申请包括以下至少一种有益技术效果:

1.通过计算特征值的方式识别数据传输通道对应的数据传输协议,从而可以有效缩短协议逆向分析的时间,进而提高数据采集的速度;

2.本申请能在识别协议的过程中根据识别的效果自动计算权重系数和偏置值并将其更新应用到新一轮的识别中,能极大的提升二进制协议识别的准确性。另外,本申请采用了人工神经网络算法对二进制协议进行识别和纠错,利用网络流数据与图像的相似性,自动进行协议特征值选择和提取,直接将网络流数据作为神经网络的输入,进行监督学习,训练网络流量协议识别模型,而且通过以上方法进行模型的不断更新迭代,使得获得的协议识别模型可以实时优化并运行。

附图说明

图1是本申请的一种实施例的方法流程图。

图2是本申请的实施例中通过计算特征值的方式识别数据传输通道对应的数据传输协议的方法流程图。

具体实施方式

以下结合附图1-2对本申请作进一步详细说明。

本申请实施例公开一种多协议数据采集方法。参照图1,一种多协议数据采集方法,包括:

s1,通过计算特征值的方式识别数据传输通道对应的数据传输协议;

s2,将数据传输通道与对应的数据传输协议进行绑定;

s3,根据协议的报文格式对采集的数据进行解析。

可选的,如图2所示,步骤s1包括:

s11,采集数据传输通道中的任意两段协议报文(也就是截取传输通道中任意两段二进制数据流);

s12,计算所述两段协议报文对应的特征值;

s13,将所述特征值和已知协议的特征值进行比对,识别出数据传输通道对应的数据传输协议。

所述的已知协议的特征值是根据已知的协议,通过激活函数进行计算获得的。

可选的,步骤s12包括:

将所采集的数据传输通道中的任意两段协议报文作为输入,利用激活函数进行处理,获得所述两段协议报文对应的特征值。

其中,所述激活函数的权重和偏置在初始化时可以设置为任意数值,后续在应用的过程中逐步进行更新优化。

可选的,如图2所示,步骤s13中,若所述特征值和已知协议的特征值进行比对时,没有符合的特征值,则更新权重和偏置,获得更新后的协议识别模型,重新计算对应的特征值。

后续对新的数据通道协议进行识别时,采用的也是权重和偏置更新后的协议识别模型,依次类推,所述的协议识别模型不断的被更新,从而可以提高协议识别的准确率。

可选的,可采用以下方式更新权重:

其中,wt+1表示更新后的权重,wt表示更新前的权重,η为常数,c表示损失函数,表示损失函数对权重求偏导。权重的初始值可以设置为0。

可选的,采用以下方式更新偏置:

其中,

式中,bt+1表示更新后的偏置,bt表示更新前的偏置,η为常数,表示损失函数对偏置求偏导;n为递归计算损失函数的次数(以便最小化损失函数,直至计算出理想的预期值);ei表示输入为x、权重为wi、偏置为bi时,计算获得的特征值与实际特征值的偏差。偏置的初始值可以设置为1。

可选的,所述的η的取值范围可以为大于等于0小于等于1。

可选的,所述的激活函数可采用sigmoid函数;所述的激活函数还可以采用tanh、relu、leakyrelu、prelu、elu或maxout等函数。

在具体实施时,还可以定时扫描解码失败的报文,并利用更新后的协议识别模型重新识别数据传输通道对应的数据传输协议。

本申请实施例还公开一种多协议数据采集系统。一种多协议数据采集系统,包括:

协议识别模块,用于通过计算特征值的方式识别数据传输通道对应的数据传输协议;

绑定模块,用于将数据传输通道与对应的数据传输协议进行绑定;

数据解析模块,用于根据协议的报文格式对采集的数据进行解析。

可选的,所述的协议识别模块包括:

协议报文采集模块,用于采集数据传输通道中的任意两段协议报文;

特征值计算模块,用于计算所述两段协议报文对应的特征值;

比对模块,用于将所述特征值和已知协议的特征值进行比对,识别出数据传输通道对应的数据传输协议。

可选的,所述的特征值计算模块,将所采集的数据传输通道中的任意两段协议报文作为输入,利用激活函数进行处理,获得所述两段协议报文对应的特征值。

可选的,所述的协议识别模块还包括:

权重和偏置更新模块,用于若所述特征值和已知协议的特征值进行比对时,没有符合的特征值,则更新权重和偏置,获得更新后的协议识别模型,重新计算对应的特征值。

可选的,所述的权重和偏置更新模块,采用以下方式更新权重:

其中,wt+1表示更新后的权重,wt表示更新前的权重,η为常数,c表示损失函数,表示损失函数对权重求偏导。

可选的,采用以下公式更新偏置:

其中,

式中,bt+1表示更新后的偏置,bt表示更新前的偏置,η为常数,表示损失函数对偏置求偏导;n为递归计算损失函数的次数(以便最小化损失函数,直至计算出理想的预期值);ei表示输入为x、权重为wi、偏置为bi时,计算获得的特征值与实际特征值的偏差。

可选的,所述的η的取值范围为大于等于0小于等于1。

可选的,还包括:

定时扫描及处理模块,用于定时扫描解码失败的报文,并利用更新后的协议识别模型重新识别数据传输通道对应的数据传输协议。

本申请实施例还公开一种多协议数据采集装置。一种多协议数据采集装置,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至9中任一种方法的计算机程序。

本申请实施例还公开一种计算机可读存储介质。一种计算机可读存储介质,存储有能够被处理器加载并执行如权利要求1至9中任一种方法的计算机程序。

所述计算机可读存储介质例如包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

实验例:

利用提前训练好的协议识别模型对数据传输通道的tcp流进行识别,判断出该tcp通道对应的二进制协议,然后将该tcp通道绑定一个协议标识码(即协议对应的特征值)。最后调用相应的协议处理该tcp通道的数据流,解析对应的报文并记录解码成功率。此外,定时扫描解码失败的报文进行识别,利用更新后的协议识别模型重新识别协议,并重新标记该tcp通道的协议标识。

所述的协议识别模型的训练过程如下:

1、将采集数据传输通道中的任意两段协议报文作为输入,并初始化偏置和对应的权重(初始化时,偏置和对应的权重设置为任意值),然后将两个输入(协议报文x1、x2)乘以权重(w1、w2):

x1→x1×w1

x2→x2×w2

2、把两个结果相加,再加上一个偏置b,即得:

(x1×w1)+(x2×w2)+b

3、将以上数据经过激活函数(activationfunction)处理得到输出(即得到协议报文对应的特征值):

y=f(x1×w1+x2×w2+b)。

激活函数的作用是将无限制的输入转换为可预测形式的输出。一种常用的激活函数是sigmoid函数。

sigmoid函数的输出介于0和1,可以理解为它把(-∞,+∞)范围内的数压缩到(0,1)以内。正值越大输出越接近1,负向数值越大输出越接近0。

例如,将神经元里的权重和偏置取如下数值:

w=[0,1](w=[0,1]是w1=0、w2=1的向量形式写法),b=4。

给神经元一个输入x=[2,3],则可以利用向量点积的形式把神经元的输出(即得到协议报文对应的特征值)计算出来:

w·x+b=(x1×w1)+(x2×w2)+b=0×2+1×3+4=7;

y=f(w·x+b)=f(7)=0.999。

4、将计算获得的协议报文对应的特征值与已知协议的特征值进行比对;若其与任何一个已知的特征值均不相等,则计算损失函数对所有权重和偏置的偏导数,并使用更新公式更新每个权重和偏置,其中,通过以下方法更新权重:

其中,wt+1表示更新后的权重,wt表示更新前的权重,η为常数,它的含义是学习率(learningrate),决定了训练网络速率的快慢,c表示损失函数,表示损失函数对权重求偏导,当是正数时,wt+1会变小;当是负数时,wt+1会变大。

通过以下方法更新偏置:

其中,

式中,bt+1表示更新后的偏置,bt表示更新前的偏置,η为常数,表示损失函数对偏置求偏导;n为递归计算损失函数的次数(以便最小化损失函数,直至计算出理想的预期值);ei表示输入为x、权重为wi、偏置为bi时,计算获得的特征值与实际特征值的偏差。

通过利用该方法逐步改变网络的权重w和偏置b,损失函数就会缓慢降低,从而改进了神经网络,使得其对协议识别的准确率大大增加。

损失函数(lossfunction)是用来估量模型的预测值与真实值的不一致程度,它是一个非负实值函数,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。

通过以上方法对协议识别模型进行训练及更新后,再利用更新后的协议识别模型对数据传输通道的tcp流进行识别,判断出该tcp通道对应的二进制协议,然后将该tcp通道绑定一个协议标识码(即协议对应的特征值)。最后调用相应的协议处理该tcp通道的数据流,解析对应的报文并记录解码成功率。然后再定时扫描解码失败的报文进行识别,利用更新后的协议识别模型重新识别协议,并重新标记该tcp通道的协议标识。以此类推。

以上均为本申请的较佳实施例,并非依此限制本申请的保护范围,故:凡依本申请的结构、形状、原理所做的等效变化,均应涵盖于本申请的保护范围之内。

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