一种通信协议报文检验和算法推断方法及系统与流程

文档序号:35572913发布日期:2023-09-24 08:42阅读:151来源:国知局
一种通信协议报文检验和算法推断方法及系统与流程

本发明涉及报文检验和推断,具体是一种通信协议报文检验和算法推断方法及系统。


背景技术:

1、数据在网络通信过程中会经过路由器、交换机、网络接口或传输链路等物理设备,存在受到安全攻击被破坏或篡改的风险。因此通信协议会设置检验和字段,实现数据的完整性验证,防止数据被第三方破坏。

2、检验和字段的原理是发送方将要保护的数据输入检验和函数,生成一些比特附加在报文上一起发送,接收方收到报文后,执行相同的检验和函数并比较结果。如果结果相同,则说明数据没有被篡改或损坏;如果结果不同,则表示数据出错。依据具体的功能和性能要求,不同的协议选择不同的检验和算法,对字段进行保护验证。检验和算法的输入数据,可以是完整的一帧或一个分组,也可以是帧或分组的首部(控制部分)。目前网络通信协议中常用的检验和算法有累加取反、循环冗余校验(crc)、奇偶校验等,此外密码协议会使用加密算法生成信息摘要对数据进行校验保护。

3、检验和推断问题可以分为两个方面:一方面是定位报文中的检验和字段,并确定被保护字段的范围;另一方面是推断具体的检验和算法,判断协议是使用某种具体的算法生成检验和字段的以及被保护字段。目前协议逆向领域已有一些针对检验和识别方法的研究,比如pohl等人设计了一种针对无线通信协议中检验和搜索算法,对无线通信协议中的检验和的保护字段进行定位识别,同时利用循环冗余校验码的同态性将其与其他校验码进行区别;gregory等人设计了一种crc校验码识别工具,在校验码和被保护数据已知的情况下,可识别107种crc检验和算法;kleber等人通过对报文的某些部分进行迭代搜索,输入已知的散列算法实现检验和字段定位,同时利用不同数据编码具有的不同特征实现有限的算法推断;bossert等人设计了一种协议逆向工具,其中包括对检验和字段的识别,但缺乏检验和算法的推断过程;labell等人设计了一种从二进制样本中自动搜索检验和有效载荷的方法,并且定义了统一的代码对检验和算法进行输出,但研究对象是二进制样本无法对网络通信协议进行分析。

4、以上方法主要是针对无线通信协议或二进制样本,在处理通信协议时会存在以下局限性:

5、(1)现有研究主要针对二进制样本或无线通信协议进行检验和推断,此类分析对象检验和字段位置单一,基本位于数据的末尾,无法对结构复杂、位置多变的通信协议或设置多个检验和字段的工控协议进行检验和定位和算法推断。

6、(2)现有研究选择使用皮尔森系数和最大信息系数联合衡量消息内字段关联性,实现检验和字段的定位,但通信协议字段取值设置较为多样,从而导致最大信息系数出现偏差,字段定位不够准确。

7、(2)现有研究将检验和和保护字段作为已知的先验知识,输入多种算法进行枚举分析,当仅有报文样本,检验和字段和被保护字段位置未知时,无法对检验和算法进行推断。缺少一个合理完善的识别推断流程。


技术实现思路

1、为克服现有技术的不足,本发明提供了一种通信协议报文检验和算法推断方法及系统,解决现有技术存在的某些应用场景下不能实现有效推断、字段定位不够准确等问题。

2、本发明解决上述问题所采用的技术方案是:

3、一种通信协议报文检验和算法推断方法,利用滑动窗口对报文的载荷进行变量划分;然后定位检验和字段、被保护数据字段;再构建检验和算法库,向检验和算法库输入检验和字段、被保护字段实现对检验和算法推断。

4、作为一种优选的技术方案,包括以下步骤:

5、s1,数据预处理:对通信协议的网络流量进行预处理,得到分析数据集;

6、s2,变量拼接:利用滑动窗口划分变量,再将划分后的变量拼接;

7、s3,定位:计算信息系数,再定位检验和字段、被保护数据字段;

8、s4,推断:构建检验和算法库,将已定位的检验和字段、被保护字段输入检验和算法库,推断具体的检验和算法。

9、作为一种优选的技术方案,步骤s1包括以下步骤:

10、s11,得到原始的通信协议的网络流量后,按照五元组对通信协议的网络流量进行划分,得到五元组相同的数据包集合p={p1,p2,...pn};其中,五元组指源ip地址、源端口号、目的ip地址、目的端口号和网络传输层协议,n代表数据包序号;

11、数据包pn内由具有时序关系的多个报文组成,表示为pn={mn1,mn2,…,mnj};其中,j代表报文序号,n代表报文所属的数据包序号;

12、s12,得到数据包集合p后,提取集合内数据包pn中偏移量相同报文的有效载荷作为分析数据集dataset={payload(m1j),payload(m2j),…,payload(mnj)};其中,n为数据包序号,j为报文序号。

13、作为一种优选的技术方案,步骤s12中,使用scapy提取集合内数据包pn中偏移量相同的报文的有效载荷作为分析数据集。

14、作为一种优选的技术方案,s2包括以下步骤:

15、s21,设置滑动窗口的宽度winsize,从通信协议报文数据的尾部向通信协议报文数据头部滑动,滑动窗口内的字节序列为检验和变量,加入集合cks;

16、s22,对于滑动窗口前的字节序列,从后向前依次获得winsize~(n-winsize)字节长度的序列;其中,对于长度大于winsize的字节序列先进行补零与异或折叠操作,将生成变量的字节序列长度对齐为winsize,得到变量集合c;

17、s23,得到cks、c后,将cks、c进行拼接得到变量帧。

18、作为一种优选的技术方案,步骤s3包括以下步骤:

19、s31,计算变量帧内变量的信息系数tic-s2并排序;

20、s32,取tic-s2值最大所关联的两个变量分别作为检验和字段、被保护字段;其中,属于集合cks的变量为检验和字段,属于集合c的变量对应的折叠前序列为被保护字段。

21、作为一种优选的技术方案,步骤s4中,构建检验和算法库时,将多种开源的检验和算法库进行集成;多种开源的检验和算法库包括crc算法、累加取反类算法、哈希算法。

22、作为一种优选的技术方案,还包括以下步骤:

23、s5,循环推断:完成一次推断后,若剩余字节序列长度域大于设定阈值,则重复步骤s2至步骤s4。

24、一种通信协议报文检验和算法推断系统,用于实现所述的一种通信协议报文检验和算法推断方法,包括依次相连的以下模块:

25、数据预处理模块:用以,对通信协议的网络流量行预处理,得到分析数据集;

26、变量拼接模块:用以,利用滑动窗口划分变量,再将划分后的变量拼接;

27、定位模块:用以,计算信息系数,再定位检验和字段、被保护数据字段;

28、推断模块:用以,构建检验和算法库,将已定位的检验和字段、被保护字段输入检验和算法库,推断具体的检验和算法。

29、作为一种优选的技术方案,还包括分别与变量拼接模块、推断模块连接的以下模块:

30、循环推断模块:用以,完成一次推断后,若剩余字节序列长度域大于设定阈值,则重复步骤s2至步骤s4。

31、作为一种优选的技术方案,

32、本发明相比于现有技术,具有以下有益效果:

33、(1)本发明利用滑动窗口对报文的载荷进行变量划分,考虑到较长报文划分后字节序列较长的情况,对序列进行折叠操作,统一为与检验和字段相同宽度的变量组成;

34、(2)本发明利用总信息系数,在选择最优分割点时考虑变量间的均值、标准差等其他统计信息,对变量进行排序、秩次转换和归一化互信息计算,解决最大信息系数在特定条件下可能存在的偏差和不准确性问题,挖掘消息内字段关联性;

35、(3)本发明设置从后向前为推断方法,完成一次检验和推断后计算剩余字节序列,判断是否进行下一次推断,实现多检验和字段的定位;

36、(4)本发明将包括crc、累加取反类、哈希等算法在内的通信协议常用检验和算法进行集成,构建检验和算法库,输入检验和字段和被保护字段结合数据编码特征实现对检验和算法推断。

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