基于工控协议的Fuzzing测试方法研究及工具实现

来源 :电子科技大学 | 被引量 : 4次 | 上传用户:nikun0081
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,信息技术高速发展与广泛应用,打破了工业控制系统在国家关键基础设施领域的隔离机制,同时各类安全事件的频发已引起业界对工业控制系统安全问题的高度关注。工控协议是工业控制系统实现远程控制以及自动化功能的通信媒介,通过对其测试可以有效挖掘工业控制系统中潜在的异常或漏洞。为提高测试效率,本文将对工控协议的自动化测试方法进行深入研究。Fuzzing测试方法作为一种高效的自动化测试技术,已被广泛使用并取得良好的效果。通过对Fuzzing测试的理论基础梳理,对典型的Fuzzing测试工具Sulley的工作原理和应用特点剖析,本文提出了一种面向工控协议的Fuzzing测试报文生成算法,并实现了相应的原型系统。首先,为提高Fuzzing测试效率,本文引入了ABNF协议模型对工控协议进行统一描述。同时,本文通过引入解析树和样本树的概念,提出了基于协议描述模型的Fuzzing测试报文解析生成算法。算法根据模型构造带有属性值和取值范围的解析树,经过初始化、裁剪、细粒度划分等操作构造双向样本树,最后对树节点变异生成测试用例集合用于Fuzzing测试,其主要包含解析树构造算法、样本树构造算法、报文变异算法以及测试用例生成算法四个算法。随后,本文基于该报文解析生成算法,设计并实现了层次化的面向工控协议的Fuzzing测试工具原型。该原型主要包含执行驱动层、调用支持层和测试用例层三层结构。其中,执行驱动层用于针对不同的待测对象和载体协议,编写相应的执行驱动程序。调用支持层主要是为其他框架层提供功能支撑组件。测试用例层主要提供测试用例生成的具体实现,并传递给执行驱动层进行Fuzzing测试。在本文工具原型中,调用支持层、测试用例层及执行驱动层之间均存在数据交互及组件调用。最后,本文为对提出的Fuzzing测试方法进行比较分析,分别将实现的工具原型和Sulley工具对基于Modbus TCP协议的PLC进行测试,并对二者进行了定量分析和定性分析。通过测试结果可以发现,本文实现的测试工具能够有效的检测工控设备中的异常,并且在测试用例的生成能力、通用性以及适应性等方面,较Sulley都有所提升,在运行速度上较Sulley稍有下降。
其他文献
随着互联网和信息技术的快速发展,特别是Web的全球普及,使得Web上的用户数目和信息量都在不断地增加。这样就产生了两方面的主要问题:一方面是如何让站点提供者通过分析用户的浏
在医学可视化中,一些快速简单的方法通常被广泛的应用到实际中,如最大强度投影算法,其优点在于绘制速度快及交互的实时性,然而会造成最终图像的深度失真。为了将此类算法更好
随着Internet的飞速发展,互联网的信息大爆炸给人们带来信息过载的问题,新闻资讯作为人们接触最多的一种媒体信息,发布方式已经从传统媒体逐渐的转移到互联网上。新闻资讯作为互
移动机器人视觉导航过程中图像处理的关键问题是道路识别和障碍物检测,论文是基于计算机单目视觉技术对非结构化道路识别和运动障碍物检测进行研究。在已有的技术基础上,经分
光线跟踪是一种真实的显示虚拟场景的算法,该算法所渲染出的图像具有非常逼真的效果,清晰度可以达到照片的级别,而且算法的原理简单易懂,实现方便,因此自从光线跟踪算法出现
长期以来,存储一直都是整个计算机系统的性能瓶颈之一。人们总希望获得低延时,高可靠,低能耗,持久化的存储设备。而新型非易失型存储器(NVM,Non Volatile Memory)的出现,则使
随着大量的基于互联网的服务与大量的服务托管在云平台上的趋势日益流行,需要更加强大的后端存储系统来支持这些服务。一方面存储系统自身应该要有更强大的处理高并发和高强
虚拟化技术是实现云计算的关键技术。通过虚拟化技术,可以在一台物理机上创建多台虚拟机,运行多个相互隔离的操作系统,从而增强系统的安全性,提高资源的利用率。随着虚拟化技
随着我国各方面建设的加强,尤其是受石油、电力等行业迅速发展的拉动,作为物料搬运的主要设备之一的起重机,其市场需求增长显著,同时对其自动化作业控制功能要求也越来越高。本文