《电子技术应用》
您所在的位置:首页 > 测试测量 > 设计应用 > 面向模糊测试的工业控制协议逆向方法研究
面向模糊测试的工业控制协议逆向方法研究
网络安全与数据治理 2023年3期
刘俐媛,霍朝宾,贺敏超
(华北计算机系统工程研究所,北京100083)
摘要: 模糊测试是传统的漏洞挖掘方法之一,在工业控制领域,针对一些不公开协议规范的私有协议,由于无法获取协议格式及语义信息,模糊测试在对其脆弱性分析上存在用例冗余度高、测试效率低等问题。通过将协议逆向与模糊测试相结合,提出了应用动态污点分析的协议逆向方法,从函数和指令级分析工业控制协议报文在程序运行中的轨迹信息,依据轨迹日志构造协议语法树,生成语义信息,指导测试用例生成,并使用Peach模糊测试框架进行测试,证明了该方法能有效减少测试冗余,提高测试效率。
中图分类号:TP309
文献标识码:A
DOI:10.19358/j.issn.2097-1788.2023.03.002
引用格式:刘俐媛,霍朝宾,贺敏超.面向模糊测试的工业控制协议逆向方法研究[J].网络安全与数据治理,2023,42(3):8-12.
Research on reverse method of industrial control protocol for fuzz testing
Liu Liyuan,Huo Chaobin,He Minchao
(National Computer System Engineering Research Institute of China, Beijing 100083, China)
Abstract: Fuzz testing is one of the traditional vulnerability mining methods. In the field of industrial control, for some private protocols that do not disclose protocol specifications, fuzz testing has problems of high redundancy of use cases and low testing efficiency in vulnerability analysis due to the inability to obtain protocol format and semantic information. By combining protocol inversion with fuzz testing, this paper proposes a protocol inversion method based on dynamic stain analysis. It analyzes the track information of industrial control protocol message in program operation from function and instruction level, constructs protocol syntax tree based on track log, generates semantic information, and guides test case generation. The Peach fuzz test framework is used to test, which proves that this method can effectively reduce test redundancy and improve test efficiency.
Key words : industrial control;protocol reverse; fuzz testing; dynamic taint analysis

0引言

在工业互联网背景下,工业控制系统在更加开放和智能的同时也面临着更大的安全挑战。其中工业控制协议作为工业控制系统通信的语言,在工业控制系统的安全研究上是至关重要的一部分。工业控制系统本身与互联网不同,系统本身存在很多未公开的私有协议,而这些协议没有经过公开的测试,协议本身可能会存在某些漏洞或缺陷,通过协议格式分析进行防御的手段无法对未知协议奏效。所以针对协议规范未知的自定义协议,通过协议逆向方法进行分析变得非常重要,为后续模糊测试等漏洞挖掘方法提供基础技术支撑。

协议逆向是对网络中存在的未公开的协议通过对其在网络中的输入输出、系统行为和程序执行流程进行监控和分析,提取协议规范描述信息的过程。在此基础上,模糊测试依据逆向分析出的协议格式及状态构建测试用例,能够分析发现系统中的漏洞并及时修补,对于应对工业控制系统在实际运行中遇到的风险有重大意义。本文通过协议逆向的方法提取出工业控制协议的格式信息和语义信息,指导模糊测试生成测试用例进行漏洞挖掘。

协议逆向主要分为两个研究方向:基于报文的协议逆向和基于指令执行轨迹的协议逆向。两种方法的分析对象有所不同,第一种以网络流量作为研究对象,通过网络抓包工具获取大量报文作为预处理的样本数据,研究各字段值的变化和特征,从而提取协议格式信息;第二种则是需要分析协议程序的报文解析过程,通过程序处理域边界的方式获得协议字段信息。

由于大部分工业控制协议属于二进制数据流传输信息,不像文本数据具有显著协议特征,因此基于报文的方法很难提取出较为准确的二进制协议格式。而基于指令执行轨迹的方法则是通过程序内部的数据调用过程进行分析,得到的格式信息更为准确,此方法主要利用动态污点分析技术实现报文解析。对于模糊测试技术的发展,从Sulley、Peach等模糊测试工具的研发使用到对模糊测试用例生成方法的改进研究,一直在致力于测试效率的提高,目前已经取得了一定成就。

针对以上研究,本文将协议逆向和模糊测试相结合,使用基于动态污点分析的方法,分析程序中的指令执行轨迹,得到协议格式并指导测试用例生成,通过Peach模糊测试框架进行模糊测试并对比,证明该方法能有效提高模糊测试的漏洞挖掘效率。



本文详细内容请下载:https://www.chinaaet.com/resource/share/2000005249




作者信息:

刘俐媛,霍朝宾,贺敏超

(华北计算机系统工程研究所,北京100083)



微信图片_20210517164139.jpg

此内容为AET网站原创,未经授权禁止转载。