[发明专利]一种基于污点分析的PLC固件模糊测试系统及测试方法在审
申请号: | 201711485758.9 | 申请日: | 2017-12-29 |
公开(公告)号: | CN108255711A | 公开(公告)日: | 2018-07-06 |
发明(设计)人: | 李兰;詹俊;赖俊;申超;汪雅果;段斌 | 申请(专利权)人: | 湖南优利泰克自动化系统有限公司;湘潭大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;H04L12/26 |
代理公司: | 长沙思创联合知识产权代理事务所(普通合伙) 43215 | 代理人: | 肖战胜;陈华俊 |
地址: | 410000 湖南省长沙市高新开发区麓*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 模糊测试 污点 仿真环境 数据包 源标记 子模块 字域 分析 工业控制系统 测试 安全领域 测试系统 仿真模式 仿真平台 分析过程 跟踪模块 记录模块 建立通信 控制模块 数据变异 网络协议 研究对象 正常网络 敏感 穿透性 网卡 监视 | ||
1.一种基于污点分析的PLC固件模糊测试系统,其特征在于,包括仿真环境端和模糊测试端,所述模糊测试端可构造正常网络数据包,以及接收仿真环境端反馈的包括敏感字域的信息后构造精确变异后的模糊测试用例,并与仿真环境端建立通信连接;所述仿真环境端包括仿真平台以及搭建在仿真平台上的子模块,所述子模块包括:
网卡:负责仿真环境端与模糊测试端之间的通信;
控制模块:用于仿真环境端在污点分析状态以及模糊测试执行状态之间的控制切换;
启动污点分析状态时,控制模块从网卡接收模糊测试端发送的正常网络数据包,污点源标记模块、污点跟踪模块和敏感字域确定模块处于工作状态,执行污点分析过程;启动模糊测试执行状态时,网卡接收模糊测试端发送的精确变异后的模糊测试用例数据包,模糊测试用例直接输入至运行状态下被测的PLC固件,异常监视记录模块处于工作状态;
污点源标记模块:接收控制模块发送的来自模糊测试端的正常网络数据包,并对其进行污点源标记;
污点跟踪模块:按照污点传播规则,对仿真平台中执行的每条污点操作指令进行跟踪,记录途径污点操作相关指令的污点源及其危险权值;
敏感字域确定模块:根据污点跟踪模块记录的污点源及其危险权值,筛选出危险值达到阈值的污点源,并将其作为敏感字域反馈至模糊测试端,作为重点变异字域;
异常监视记录模块:仿真环境端在模糊测试执行状态下,异常监视记录模块对接收模糊测试用例输入的PLC固件进行指令级监控,监测与记录PLC固件运行状态,出现异常进行记录并报警。
2.根据权利要求1所述的基于污点分析的PLC固件模糊测试系统,其特征在于,所述模糊测试端包括:
通信协议格式解析模块:针对被测的PLC固件中包含的网络服务器,对预定的通信协议进行格式解析,形成协议脚本并构造正常网络数据包;
异常元素库:储存异常数据元素;
测试用例生成模块:接收仿真环境端的反馈的包括敏感字域的信息,利用协议脚本,将异常元素库中的异常数据元素数据插入仿真环境端的反馈的敏感字域中,并按照协议格式进行封装形成精确变异后的模糊测试用例;
模糊测试执行模块:对模糊测试用例进行管理并控制网络数据收发模块的数据收发速率,记录测试用例执行信息;
网络数据收发模块:与仿真环境端的网卡建立通信连接,进行正常网络数据包以及模糊测试用例的数据包的收发。
3.根据权利要求2所述的基于污点分析的PLC固件模糊测试系统,其特征在于,所述污点操作指令至少包括函数调用指令、内存读写指令和敏感函数参数传递指令;制定的污点传播规则如下:对于函数调用指令,如果函数目的地址被污染源污染,则对应污染源权值危险递增;如果函数为敏感函数,且敏感函数参数被污点源污染,则对应污点源危险权值递增;对于内存读写指令,如果内存访问的地址被污染源污染,则对应污染源危险权值递增。
4.根据权利要求1~3任意一项所述的基于污点分析的PLC固件模糊测试系统,其特征在于,所述仿真平台由QEMU构造并提供PLC固件运行所需的硬件架构及指令集环境。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南优利泰克自动化系统有限公司;湘潭大学,未经湖南优利泰克自动化系统有限公司;湘潭大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711485758.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种脚本的异常检测方法及其终端
- 下一篇:数据系统的测试系统和测试方法