本发明涉及协议信息分段领域,具体涉及一种基于比特一致性差异的二进制协议报文分段方法及系统。
背景技术:
1、报文分段是协议逆向工程处理报文的重要工作,对协议报文信息的正确分段可以方便理解协议结构,确定字段的作用,从而推动对协议报文的深入理解。议根据数据的传输方式的不同可以分为文本协议和二进制协议,其中文本协议的分段方法已较为成熟,而二进制协议的分段方法的准确度和执行效率还有待提升。
2、现今的大多数二进制协议的协议逆向分段工作参考了生物信息学的算法,其中最典型的有netzob协议逆向工具。类似于生物信息学中的序列比对,netzob通过寻找数据中的模式、规律、重复性和差异性来划分字段。需要注意的是,这种方法是通过观察协议报文信息间的共同特征和模式来进行分段,这会导致其时间复杂度为指数级,使其难以对大量的协议信息进行处理。
技术实现思路
1、本发明的目的在于提出一种基于比特一致性差异的二进制协议报文分段方法及系统。
2、实现本发明目的的技术解决方案为:一种基于比特一致性差异的二进制协议报文分段方法,包括如下步骤:
3、计算二进制协议报文相邻字节的相似性特征,获取比特一致性差异分布;
4、对比特一致性差异分布进行成像滤波处理;
5、从滤波处理后的图像中找出符合分段特征的点,将其记为推断的协议字段边界,完成协议报文分段。
6、进一步的,所述计算二进制协议报文相邻字节的相似性特征,获取比特一致性差异分布,具体方法为:
7、(1)使用wireshark捕获网络端口的真实流量数据;
8、(2)将捕获到的报文以单条报文信息为单位,将其按字节分割后放入列表,列表的每个元素为报文一个字节的二进制形式,比特一致性是衡量两个字节间比特相似性的度量,其定义如下:
9、对于两个字节b1和b2,将它们标记为bi和b-i,其中0≤i<8;两个字节间具有相同值的比特数称为cagree(b1,b2)=|0≤i<8:bi=b-i|,比特一致性bc如下所示:
10、
11、对报文相邻比特计算一致性后,即获得关于一条报文的比特一致性特征;
12、(3)对一条网络协议报文m的所有字节m0,...,mn进行迭代,确定其相邻字节的比特一致性差异分布,在长度为n+1字节的消息中,位置k处的比特一致性差异如下所示:
13、δbc=(bc(mk,mk+1)-bc(mk-1,mk))0<k<n
14、(4)通过迭代计算,得到报文m中[1,n-1]位的δbc,将计算得到的δbc以列表形式存储,完成对协议信息的预处理工作。
15、进一步的,所述对比特一致性差异分布进行成像滤波处理,具体方法为:
16、(1)创立一个坐标轴,x轴为δbc列表元素下标,y为δbc列表元素值,根据δbc列表内容作折线图;
17、(2)对折线图进行小波滤波,分为基函数选取、数据分解、滤波处理和数据重构。
18、进一步的,所述从滤波处理后的图像中找出符合分段特征的点,将其记为推断的协议字段边界,具体方法为:
19、(1)选择图像极小值和极大值作为候选点;
20、(2)对候选点集进行筛选,将比特一致性差异处于[-0.625,-1]之间的极小值点加入推断字段边界,两侧值之差的绝对值大于等于0.25的极大值或极小值点加入推断字段边界,将比特一致性差异大于等于零的极小值点加入推断字段边界。
21、一种基于比特一致性差异的二进制协议报文分段系统,实施所述的基于比特一致性差异的二进制协议报文分段方法,实现基于相邻字节比特一致性差异的协议报文分段。
22、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实施所述的基于比特一致性差异的二进制协议报文分段方法,实现基于相邻字节比特一致性差异的协议报文分段。
23、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实施所述的基于比特一致性差异的二进制协议报文分段方法,实现基于相邻字节比特一致性差异的协议报文分段。
24、本发明与现有技术相比,其显著优点为:以单个报文为单位进行分析,呈线性时间复杂度,利用协议信息自身固有的结构特征,可自动地、可靠地、高效地完成二进制协议报文分段工作。
1.一种基于比特一致性差异的二进制协议报文分段方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于比特一致性差异的二进制协议报文分段方法,其特征在于,所述计算二进制协议报文相邻字节的相似性特征,获取比特一致性差异分布,具体方法为:
3.根据权利要求1所述的基于比特一致性差异的二进制协议报文分段方法,其特征在于,所述对比特一致性差异分布进行成像滤波处理,具体方法为:
4.根据权利要求1所述的基于比特一致性差异的二进制协议报文分段方法,其特征在于,所述从滤波处理后的图像中找出符合分段特征的点,将其记为推断的协议字段边界,具体方法为:
5.一种基于比特一致性差异的二进制协议报文分段系统,其特征在于,实施权利要求1-4任一项所述的基于基于比特一致性差异的二进制协议报文分段方法,实现基于相邻字节比特一致性差异的协议报文分段。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实施权利要求1-4任一项所述的基于比特一致性差异的二进制协议报文分段方法,实现基于相邻字节比特一致性差异的协议报文分段。
7.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实施权利要求1-4任一项所述的基于比特一致性差异的二进制协议报文分段方法,实现基于相邻字节比特一致性差异的协议报文分段。