[发明专利]基于流量重放的工控协议模糊测试方法有效
申请号: | 201910615367.7 | 申请日: | 2019-07-09 |
公开(公告)号: | CN110505111B | 公开(公告)日: | 2020-12-01 |
发明(设计)人: | 徐向华;邵帅;王然;程宗毛 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L29/06;H04L29/08 |
代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 朱月芬 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 流量 重放 协议 模糊 测试 方法 | ||
1.基于流量重放的工控协议模糊测试方法,其特征在于:以工控设备运行环境的真实协议流量数据为基础,通过配置文件格式和工控协议报文定义格式,构建对应的协议解析器,提取设备协议状态报文,对用户指定工控协议字段进行模糊化,封装和重放报文,从而快速进行工控协议模糊测试;
具体步骤如下:
步骤1:配置文件读取;
首先读取用户填写的配置文件,其中包含需要测试的设备目标IP、指定设备所用的协议、指定重放的报文文件路径、工控协议报文格式文件路径、指定模糊测试的工控协议数据字段以及模糊测试的次数;
步骤2:协议解析器构建与协议解析;
根据配置文件中指定的协议,读取相关的协议报文格式文件,构建协议解析器;协议解析器通过读取测试协议相关的报文格式定义文件,构建协议树状结构,树状结构中的节点包含协议字段长度、字段类型、字段名称;最后使用协议解析器解析报文;
步骤3:测试协议相关报文提取;
已有的报文被加载后并不能直接用于测试,需要过滤其中不相关报文,为之后报文变异做准备;
步骤4:连接目标设备;
根据配置中指定的协议、目标IP,建立与目标之间的Socket连接,同时设置连接超时时间T,如果无法建立连接,将错误信息写入日志;
步骤5:设备存活确认;
在每次测试前,使用ICMP Ping报文确认设备处于工作状态;如果设备无响应,表明测试用例导致设备出现无响应,将异常测试用例保存;
步骤6:工控协议数据字段模糊化;
在测试报文发送到目标设备前,需要根据配置文件中指定的协议字段变异;针对协议字段的类型不同使用不同的变异方法,字符串类型字段使用开源工具RADAMSA,数值型字段使用随机数字;
步骤7:模糊测试报文封装和重放;
将变异后的测试用例组成新的报文发送到目标设备,等待设备响应,因为变异后的测试用例可能会被设备拒绝,如果出现连接重置,那么跳过当前测试用例之后的报文,重建与设备的连接,进入下一次测试。
2.根据权利要求1所述的基于流量重放的工控协议模糊测试方法,其特征在于步骤1具体实现如下:
步骤1.1使用配置解析器加载配置文件;首先根据传入的配置文件路径configPath打开配置文件,将读入的字节传入Python语言自带的json解析库函数,输出Python语言的字典类型表示配置信息config;
配置文件格式:字段的键在分号前,字段的值在分号后,其中配置文件必须包含字段:设备所用的工控协议protocol、目标设备IP地址dstIp、重放报文文件路径pcapPath、工控协议报文格式文件路径protocolPath、指定需要模糊测试字段fields、模糊测试次数count,模糊测试字段fields由数组表示,数组每个元素都指定需要进行变异的工控协议数据字段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910615367.7/1.html,转载请声明来源钻瓜专利网。