针对工控私有协议的黑盒模糊测试方法及系统技术方案

技术编号:32905425 阅读:22 留言:0更新日期:2022-04-07 11:55
本发明专利技术属于工控系统协议测试领域,特别涉及一种针对工控私有协议的黑盒模糊测试方法及系统,从工控环境和开源社区中收集协议数据包,通过对协议数据包进行逆向分析来识别字段语义并获取协议格式;根据字段语义构建用于指导模糊测试执行的协议状态机;根据协议格式生成测试用例,并利用协议状态机来指导选择状态迁移路径将测试用例发送至被测设备,利用主动探测方法监视被测设备是否存在异常。本发明专利技术通过协议逆向分析并根据功能码字段构建协议状态机来指导模糊测试执行过程,能够实现用更短的时间发现更多的协议漏洞,且无需知道协议先验知识,提高模糊测试效率和准确度,方案简单、便于实现,适用范围广,具有较好的应用价值。具有较好的应用价值。具有较好的应用价值。

【技术实现步骤摘要】
针对工控私有协议的黑盒模糊测试方法及系统


[0001]本专利技术属于工控系统协议测试领域,特别涉及一种针对工控私有协议的黑盒模糊测试方法及系统。

技术介绍

[0002]模糊测试(Fuzzing)是一种试图通过自动化的向被测目标发送大量随机输入来发现安全漏洞的技术,由于其简单、高效的特点,已经被广泛应用于软件、插件、协议等漏洞的挖掘上并且发现了大量的安全漏洞。针对工控协议的模糊测试主要是通过对协议实现的实体即工控设备测试实现的,由于工控设备对外严格密封,无法知道其内部实现,因此属于黑盒模糊测试的范畴。目前,采用的主流方法是基于生成的模糊测试,该方法需要事先根据工控协议的结构定义不同的数据模型,同时采用各种各样的变异策略对数据模型的不同字段进行变异,从而生成测试用例对工控设备进行模糊测试。
[0003]目前方法通常只对于公有协议比较有效,因为这类协议有公开的协议资料能够轻易的知道协议的结构,而对于工控私有协议来说,各工控设备厂商出于商业机密没有公开协议资料,因此无法根据协议格式生成有效的测试用例。且现有模糊测试方法的变异策略选择通常只是针对协议单个字段进行的,在不知道针对哪个字段变异更能有效触发设备异常的情况下,只针对单个字段变异导致生成的测试用例漏洞挖掘能力不足。此外,现有方法在模糊测试过程中存在盲目性较大的问题,缺乏协议状态机的指导导致无法与被测设备进行深入交互,降低了发现漏洞的概率。

技术实现思路

[0004]为此,本专利技术提供一种针对工控私有协议的黑盒模糊测试方法及系统,通过协议逆向分析并根据功能码字段构建协议状态机来指导模糊测试执行过程,能够实现用更短的时间发现更多的协议漏洞,且无需知道协议先验知识,提高模糊测试效率和准确度,便于工控系统实际场景应用。
[0005]按照本专利技术所提供的设计方案,一种针对工控私有协议的黑盒模糊测试方法,包含如下内容:
[0006]从工控环境和开源社区中收集协议数据包,通过对协议数据包进行逆向分析来识别字段语义并获取协议格式;根据字段语义构建用于指导模糊测试执行的协议状态机;
[0007]根据协议格式生成测试用例,并利用协议状态机来指导选择状态迁移路径将测试用例发送至被测设备,利用主动探测方法监视被测设备是否存在异常。
[0008]作为本专利技术针对工控私有协议的黑盒模糊测试方法,进一步地,利用网络抓包工具抓取真实工控环境中的协议数据包,并从代码托管平台的开源社区收集公开的协议数据包,对抓取和收集到的协议数据包进行逆向分析来获取协议的字段语义和协议格式。
[0009]作为本专利技术针对工控私有协议的黑盒模糊测试方法,进一步地,对协议数据包进行逆向分析中,首先,对协议数据报进行预处理,采用四元组方式过滤无关数据包,通过提
取剩余数据包中的消息内容来构建消息序列;然后,针对消息序列,通过多序列比对算法和字段划分算法来获取协议字段结构;利用启发式规则通过识别各字段语义来获取协议格式,并构建协议状态机。
[0010]作为本专利技术针对工控私有协议的黑盒模糊测试方法,进一步地,多序列比对算法和字段划分算法对消息序列进行处理中,首先,通过多序列比对算法对齐所有消息序列并获取协议中的动态字段和静态字段,然后,利用字段划分算法划分可变长度字段并合并相邻静态字段,进而得到协议字段结构。
[0011]作为本专利技术针对工控私有协议的黑盒模糊测试方法,进一步地,通过多序列比对算法对齐所有消息序列中,以字节为单位进行消息序列比对,首先计算所有消息序列中最长的消息序列长度,在预设偏移范围内遍历所有消息序列并通过填充字符来对齐所有消息序列,其中,预设的偏移范围设置为[0,最长的消息序列长度];并在对齐过程中,通过比较每个字段相似性,通过判断所有消息序列中同一偏移位置内容是否发生变化来标记字段为静态字段或动态字段。
[0012]作为本专利技术针对工控私有协议的黑盒模糊测试方法,进一步地,利用字段划分算法划分字段过程中,首先计算所有消息序列中最短的消息序列长度,遍历所有消息序列,将大于该最短的消息序列长度的消息序列长度中的静态字段和动态字段统一合并为可变长度字段,并通过遍历所有动态字段和静态字段,将相邻的静态字段进行合并,得到协议的字段结构。
[0013]作为本专利技术针对工控私有协议的黑盒模糊测试方法,进一步地,利用启发式规则通过识别各字段语义来获取协议格式,包含如下内容:依据字段的值是否随通信时间推移进行递增来识别序列号字段,依据字段的值是否随消息序列长度改变来识别长度字段,依据消息序列长度的相似性并通过聚类不同字段的值来识别功能码字段;按照功能码字段相邻原则建立用于表示状态迁移过程的状态迁移对,并通过遍历对状态迁移对进行合并和去重;以功能码字段为顶点,以不同功能码字段的状态迁移为边,利用递归迭代构建有向图,直到所有功能码字段加入到有向图中,形成协议状态机。
[0014]作为本专利技术针对工控私有协议的黑盒模糊测试方法,进一步地,根据协议格式,采用多种变异策略生成测试用例,其中,多种变异策略至少包含:对单个动态字段进行变异的单字段变异策略,对多个动态字段进行变异的多字段变异策略,及随机选取单字段变异策略或多字段变异策略的随机变异策略。
[0015]作为本专利技术针对工控私有协议的黑盒模糊测试方法,进一步地,利用主动探测方法监视被测设备是否存在异常中,周期性地向被测发送测试指令来测试被测设备是否正常通信,其中,测试指令包含:ping指令和arp请求。
[0016]进一步地,本专利技术还提供一种针对工控私有协议的黑盒模糊测试系统,包含:逆向分析模块和模糊测试模块,其中,
[0017]逆向分析模块,用于从工控环境和开源社区中收集协议数据包,通过对协议数据包进行逆向分析来识别字段语义并获取协议格式;根据字段语义构建用于指导模糊测试执行的协议状态机;
[0018]模糊测试模块,用于根据协议格式生成测试用例,并利用协议状态机来指导选择状态迁移路径将测试用例发送至被测设备,利用主动探测方法监视被测设备是否存在异
常。
[0019]本专利技术的有益效果:
[0020]1、本专利技术针对工控私有协议的黑盒模糊测试方法,针对当前模糊测试过程中未能对协议状态进行有效区分,导致浪费大量资源测试一些无意义的协议状态,降低模糊测试效率的问题。利用协议逆向的方式从大量数据包中得到协议格式及字段语义,然后根据功能码字段构建协议状态机,从而指导模糊测试执行的过程,以此增加漏洞触发的概率,并且实现用更短的时间发现更多的协议漏洞,具有较好的应用前景。
[0021]2、本专利技术通过结合协议逆向及模糊测试两个方面的技术,在不带来额外较大开销的前提下,实现了针对工控私有协议的模糊测试,并且可以与其它模糊测试工具进行有效结合,在原有测试工具的基础上进一步提升漏洞发现效率,并且直接适用于多种工控私有协议,无需知道协议的先验知识,便于实际场景中的应用。
附图说明:
[0022]图1为实施例中针对工控私有协议的黑盒模糊测试方法流程示意;
[0023本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对工控私有协议的黑盒模糊测试方法,其特征在于,包含如下内容:从工控环境和开源社区中收集协议数据包,通过对协议数据包进行逆向分析来识别字段语义并获取协议格式;根据字段语义构建用于指导模糊测试执行的协议状态机;根据协议格式生成测试用例,并利用协议状态机来指导选择状态迁移路径将测试用例发送至被测设备,利用主动探测方法监视被测设备是否存在异常。2.根据权利要求1所述的针对工控私有协议的黑盒模糊测试方法,其特征在于,利用网络抓包工具抓取真实工控环境中的协议数据包,并从代码托管平台的开源社区收集公开的协议数据包,对抓取和收集到的协议数据包进行逆向分析来获取协议的字段语义和协议格式。3.根据权利要求1或2所述的针对工控私有协议的黑盒模糊测试方法,其特征在于,对协议数据包进行逆向分析中,首先,对协议数据报进行预处理,采用四元组方式过滤无关数据包,通过提取剩余数据包中的消息内容来构建消息序列;然后,针对消息序列,通过多序列比对算法和字段划分算法来获取协议字段结构;利用启发式规则通过识别各字段语义来获取协议格式,并构建协议状态机。4.根据权利要求3所述的针对工控私有协议的黑盒模糊测试方法,其特征在于,多序列比对算法和字段划分算法对消息序列进行处理中,首先,通过多序列比对算法对齐所有消息序列并获取协议中的动态字段和静态字段,然后,利用字段划分算法划分可变长度字段并合并相邻静态字段,进而得到协议字段结构。5.根据权利要求4所述的针对工控私有协议的黑盒模糊测试方法,其特征在于,通过多序列比对算法对齐所有消息序列中,以字节为单位进行消息序列比对,首先计算所有消息序列中最长的消息序列长度,在预设偏移范围内遍历所有消息序列并通过填充字符来对齐所有消息序列,其中,预设的偏移范围设置为[0,最长的消息序列长度];并在对齐过程中,通过比较每个字段相似性,通过判断所有消息序列中同一偏移位置内容是否发生变化来标记字段为静态字段或动态字段。6.根据权利要求4所述的针对工控私有协议的黑盒模糊测试方法,其特征在于,利用字段...

【专利技术属性】
技术研发人员:麻荣宽杨亚辉吴茜琼魏强谢耀滨王红敏
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1