文献标识码:A
DOI:10.19358/j.issn.2097-1788.2023.03.002
引用格式:刘俐媛,霍朝宾,贺敏超.面向模糊测试的工业控制协议逆向方法研究[J].网络安全与数据治理,2023,42(3):8-12.
0引言
在工业互联网背景下,工业控制系统在更加开放和智能的同时也面临着更大的安全挑战。其中工业控制协议作为工业控制系统通信的语言,在工业控制系统的安全研究上是至关重要的一部分。工业控制系统本身与互联网不同,系统本身存在很多未公开的私有协议,而这些协议没有经过公开的测试,协议本身可能会存在某些漏洞或缺陷,通过协议格式分析进行防御的手段无法对未知协议奏效。所以针对协议规范未知的自定义协议,通过协议逆向方法进行分析变得非常重要,为后续模糊测试等漏洞挖掘方法提供基础技术支撑。
协议逆向是对网络中存在的未公开的协议通过对其在网络中的输入输出、系统行为和程序执行流程进行监控和分析,提取协议规范描述信息的过程。在此基础上,模糊测试依据逆向分析出的协议格式及状态构建测试用例,能够分析发现系统中的漏洞并及时修补,对于应对工业控制系统在实际运行中遇到的风险有重大意义。本文通过协议逆向的方法提取出工业控制协议的格式信息和语义信息,指导模糊测试生成测试用例进行漏洞挖掘。
协议逆向主要分为两个研究方向:基于报文的协议逆向和基于指令执行轨迹的协议逆向。两种方法的分析对象有所不同,第一种以网络流量作为研究对象,通过网络抓包工具获取大量报文作为预处理的样本数据,研究各字段值的变化和特征,从而提取协议格式信息;第二种则是需要分析协议程序的报文解析过程,通过程序处理域边界的方式获得协议字段信息。
由于大部分工业控制协议属于二进制数据流传输信息,不像文本数据具有显著协议特征,因此基于报文的方法很难提取出较为准确的二进制协议格式。而基于指令执行轨迹的方法则是通过程序内部的数据调用过程进行分析,得到的格式信息更为准确,此方法主要利用动态污点分析技术实现报文解析。对于模糊测试技术的发展,从Sulley、Peach等模糊测试工具的研发使用到对模糊测试用例生成方法的改进研究,一直在致力于测试效率的提高,目前已经取得了一定成就。
针对以上研究,本文将协议逆向和模糊测试相结合,使用基于动态污点分析的方法,分析程序中的指令执行轨迹,得到协议格式并指导测试用例生成,通过Peach模糊测试框架进行模糊测试并对比,证明该方法能有效提高模糊测试的漏洞挖掘效率。
本文详细内容请下载:https://www.chinaaet.com/resource/share/2000005249
作者信息:
刘俐媛,霍朝宾,贺敏超
(华北计算机系统工程研究所,北京100083)