论文部分内容阅读
工控系统现在已普遍应用于几乎所有的工业领域和关键基础设施中,工控系统的安全问题对国民经济的正常运转和国家的安全有着重大的影响。对工业控制系统可能存在的Oday漏洞进行检测和挖掘,可以帮助厂商提前解决设备的安全问题,最大可能的减少工业生产的损失。通过Fuzz测试方法进行漏洞挖掘的方式已被工业界广泛采用,模糊测试也是网络安全和软件设备安全的一个重要保障。本文研究了 Fuzz测试工具Peach框架在工业控制系统中进行漏洞挖掘的应用方法,并对Peach框架进行了扩展,使其能够支持像PROFINET-DCP 一样基于Ethernet层的协议的测试;为了在测试过程中进行漏洞定位时节省大量的人力和时间,提出了漏洞定位与快速重现的算法。本文针对Peach在工控系统漏洞挖掘中的应用进行了改进,具体包括:详细分析了 Modbus/TCP、EtherNetIP 和 PROFINET-DCP 三种常用工控协议的协议结构,根据分析结果编写了 23个PitFile测试脚本,供Peach用来进行Fuzzing测试;通过引用SharpPcap框架,编写扩展了 PROFINET Publisher模块,使Peach框架支持了对PROFINET-DCP的测试;利用扩展之后的Peach框架,借助已编写的测试脚本生成的1305204个测试用例,对三个国际主流工控厂商的系统设备进行了测试,并发现了拒绝服务和缓冲区漏洞;实验过程中漏洞定位需消耗大量人力和时间,为优化漏洞定位过程,提出了漏洞定位与快速重现的算法,大大提高了测试的效率。