论文部分内容阅读
随着互联网和信息技术的爆炸式发展与广泛普及,工业控制系统领域正积极进行产业变革,工业生产的信息化,智能化发展有着不可逆转的趋势。与此同时,各类破坏严重的工控安全事件随着工业控制信息技术的发展频频发生。PROFINET协议是典型的工业控制协议,是传输工业设备通信数据的载体,与其他类型的网络协议类似,存在着潜在的安全漏洞。本文将对PROFINET工控协议的漏洞扫描方法进行深入研究。挖掘协议漏洞的高效方法首先就是Fuzz技术,即输入非法的测试数据来触发协议潜在的安全问题。Fuzz技术已被安全行业广泛应用并发现了众多有价值的高危漏洞。在梳理和参考了 SPIKE、AFL等Fuzz框架的基础上,本文设计并实现了一种面向PROFINET工业控制协议的Fuzz方案,论文主要完成的工作如下:设计了面向PROFINET协议的Fuzz用例输入方法,利用嗅探,会话劫持等渗透技术实现了在不破坏物理连接的前提下对局域网中所有设备进行自动化Fuzz,与此同时还提出了一种基于中间人攻击技术的协议Fuzz方法。设计了一种基于状态的PROFINET协议Fuzz用例生成方法,引入PROFINET会话状态机模型的与状态机描述脚本,并提出一种Fuzz报文序列的生成算法。同时实现了三种测试用例生成方法,能够生成作为Fuzz报文序列载荷的测试用例。将方案中提出的方法整合,设计并实现了一个自动化的基于状态的面向PROFINET协议的Fuzz工具。给出了工具的总体框架、功能划分与实现。通过对真实环境的工控设备进行Fuzz,将方案实现的Fuzz工具与针对PROFINET协议族的ProFuzz测试工具、方案中的消息级Fuzz工具进行对比测试实验。测试的结果证明了本方案实现的Fuzz工具有着更高效的测试用例生成方案,相对较高的Fuzz命中率,并且能更有效地发现漏洞。