当前位置: 首页 > 专利查询>上海大学专利>正文

一种针对Modbus/TCP的天牛须模糊测试用例生成方法技术

技术编号:21891492 阅读:35 留言:0更新日期:2019-08-17 14:21
本发明专利技术公开了一种针对Modbus/TCP的天牛须模糊测试用例生成方法,能够大量减少冗余的测试用例,提高模糊测试效率。该方法包含初始化BAS算法,划分协议子空间进行并行搜索,设置目标函数生成最优测试用例子串,通过数据整合得到完整测试用例并将其发送给被测设备,利用自适应反馈模块,根据测试结果更新算法参数,调整搜索路径重新进行测试用例的生成。本发明专利技术方法测试用例构造速度更快,利用协议分析将协议划分为各协议子空间,通过BAS算法并行搜索,生成各协议子串再进行组合,构造模糊测试用例,大大提高了测试用例的构造速度。

A Fuzzy Test Case Generation Method for Modbus/TCP Longhorn Musker

【技术实现步骤摘要】
一种针对Modbus/TCP的天牛须模糊测试用例生成方法
本专利技术涉及工控网络安全领域,具体涉及一种针对Modbus/TCP的天牛须(BASAlgorithm)模糊测试用例生成方法。
技术介绍
工业控制系统(IndustrialControlSystem),简称“工控系统”,是通过监视和控制现场设备来实现采集数据、控制设备和调节参数等功能的业务流程管控系统。其由各种自动化控制组件以及对实时数据进行采集监控的过程控制组件组成。随着工业化与信息化融合度越来越高,工控系统已经从“封闭系统”逐渐变成“开放系统”,工控系统现在已经暴露在IT系统和互联网,这显然增加了恶意入侵的风险。工控系统大量使用Modbus/TCP等明码传输协议,这些报文没有严格的身份识别,安全性极其脆弱。因此,工控协议受到攻击后可能使系统网络完全瘫痪,造成不可弥补的损失。针对此种风险,针对Modbus/TCP的漏洞挖掘显得十分必要。漏洞挖掘中一种重要的方法就是模糊测试。模糊测试通过构造畸形输入数据,将其发送给被测系统,并监测被测系统是否发生故障来测试其安全性。模糊测试的关键在于如何生成测试效率更高的测试用例,目前针对Modbus/TCP的模糊测试用例生成方法比较少,并且生成方法也未针对该协仪报文简短、高度结构化的特点进行优化,使构造的测试用例冗余度较高,导致测试效率低下。
技术实现思路
针对Modbus/TCP安全缺陷,本专利技术的目的是提出一种针对Modbus/TCP的天牛须模糊测试用例生成方法,减少测试冗余度,提高模糊测试效率。BAS算法是受到天牛觅食原理启发而开发的算法,食物的气味相当于一个目标函数,此函数在空间中每个点的值都不相同,天牛两个须可以采集自身附近两点的气味值,天牛的目的就是找到全局气味值最大的点,是一种高效的智能搜索算法。本方法利用BAS算法收敛速度快,设置合理步长和适应度函数可以得到全局最优解的优点搜索最优测试用例,同时设置自适应反馈模块,根据测试结果更新算法参数,调整搜索路径,大量减少冗余测试用例。将此种方法运用在Modbus/TCP模糊测试用例生成上可以极大地减少测试冗余度,提高模糊测试效率。为达到上述目的,本专利技术采用如下技术方案:一种针对Modbus/TCP的天牛须模糊测试用例生成方法,利用BAS算法优化搜索空间,生成模糊测试用例,具体包括以下步骤:1)建立模糊测试目标函数f(xt),初始化BAS算法参数;2)划分协议字段子空间,在协议字段子空间中利用BAS算法进行并行搜索;3)更新状态变量xt,计算f(xt)并与目标函数进行比较,更新搜索参数;4)根据目标函数最大时的各协议字段子空间内搜索路径进行数据整合,构造模糊测试用例并发送给被测设备;5)设置自适应反馈模块,根据测试结果更新搜索步长,调整搜索路径,进行下一轮搜索。所述步骤2)中的协议字段子空间的产生方式为:对目标协议进行分析,根据协议各个字段的具体含义划分为不同的协议字段子空间,利用BAS算法在各子空间中并行搜索。所述步骤5)中的自适应反馈模块包括测试结果分析器和自适应优化因子;所述测试结果分析器通过分析测试结果返回的ErrorCode判断测试用例触发异常的类别,所述自适应优化因子根据测试结果分析器得出的异常类别指导下一次搜索时的搜索步长和搜索路径。与现有技术相比,本专利技术所提出的技术方案有如下优势:(1)本专利技术方法测试用例构造速度更快,利用协议分析将协议划分为各协议子空间,通过BAS算法并行搜索,生成各协议子串再进行组合,构造模糊测试用例,大大提高了测试用例的构造速度。(2)测试用例冗余度减少,利用设置的自适应反馈模块对测试结果进行分析,实时更新算法步长和搜索路径,指导下一轮的测试用例生成。附图说明图1为本专利技术方法的流程图。图2为本专利技术方法的详细结构示意图。具体实施方式下面结合附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。本例对工业控制系统中广泛使用的Modbus协议基于TCP/IP工作模式下进行模糊测试漏洞挖掘。如图1和图2所示,本专利技术所述的一种针对Modbus/TCP的天牛须模糊测试用例生成方法,包含初始化BAS算法,划分协议子空间进行并行搜索,设置目标函数生成最优测试用例子串,通过数据整合得到完整测试用例并将其发送给被测设备(SystemUnderTest),利用自适应反馈模块,根据测试结果更新算法参数,调整搜索路径重新进行测试用例的生成。1)初始化BAS算法,设置目标函数f(xt),其具体含义为:同一功能码下本专利技术构造的测试报文与正常Modbus/TCP报文序列比对的差异情况,差异越大说明模糊测试用例构造的畸形度越高,此处取其负数形式作为目标函数。其中变量xt=[x1,x2,x3,...,xi]T,具体含义为:模糊测试用例,其中最小的单位为1比特,初始化值设设为0。其具体含义为搜索的方向,在此方法中意味着在此bit位上的取值为0还是1,此处定义xl为选择0,xr为选择1。其中dt为两须之间长度,初始值设为3,搜索步长初始值设置为1。对目标函数分别取左右两处xl和xr的值比较大小,之后更新下一步的位置。2)划分协议字段子空间,具体地,根据Modbus/TCP协议规范,Modbus/TCP协议字段为一串二进制的bit数据流,其应用层负载可划分为如下几个子空间,事务处理标识符TID(2个字节),事务处理标识符TID(2个字节),事务处理标识符TID(2个字节),协议标识符PID(2个字节),长度LEN(2个字节),单元标识符UID(1个字节),功能码FC(1个字节),数据段DATA(max:252个字节),其中数据段又包含地址段和若干其他特定字段,需要根据功能码进行具体分析具体划分,划分空间最小粒度为一个字节。然后利用BAS算法在各协议子空间中并行搜索。3)更新算法参数以及比较目标函数大小,具体地,两须之间长度更新公式:dt=0.95dt-1+0.01,步长更新公式δt=0.95δt-1。比较f(xr)和f(xl)的大小,根据公式更新并与目标函数最优值fbst进行比较,进入适应度函数判断,设置终止条件,如果满足则退出搜索算法,进入4)数据整合阶段,否则继续进行搜索。所述适应度函数判断为:计算min(f(xr),f(xl))并将其与目标函数fbst进行比较,如果小于目标函数则令fbst=f(xt),xbst=xt,否则更新算法参数。所述终止条件为:测试用例最长子串是否超过其子空间最大搜索范围,如果超过范围则停止搜索,输出当前子串,;如果未超过子空间最大搜索范围则当前已搜索完毕的子串从头开始重新搜索直到最长子串搜索完毕。4)数据整合,具体地,根据协议格式规定,将各自协议子空间内并行搜索得到的最优协议子串进行拼接,得到最终的模糊测试用例,并利用测试用例发送模块将其发送到被测设备中。所述测试用例发送模块为Peach,Scapy等测试用例发包软件。5)自适应反馈,通过Wireshark抓取被测设备返回报文,分析其中的ErrorCode异常功能码,通过匹配规则判断测试用例触发异常的类别。其中Modbus/TCP异常功能码包括:01非法的功能码,02非法的数据地址,03非法的数据值。根据异常的类别可以构造相应的自适应优化因子,01异常码增大搜索步长,02和本文档来自技高网...

【技术保护点】
1.一种针对Modbus/TCP的天牛须模糊测试用例生成方法,其特征在于,利用BAS算法优化搜索空间,生成模糊测试用例,具体包括以下步骤:1)建立模糊测试目标函数f(x

【技术特征摘要】
1.一种针对Modbus/TCP的天牛须模糊测试用例生成方法,其特征在于,利用BAS算法优化搜索空间,生成模糊测试用例,具体包括以下步骤:1)建立模糊测试目标函数f(xt),初始化BAS算法参数;2)划分协议字段子空间,在协议字段子空间中利用BAS算法进行并行搜索;3)更新状态变量xt,计算f(xt)并与目标函数进行比较,更新搜索参数;4)根据目标函数最大时的各协议字段子空间内搜索路径进行数据整合,构造模糊测试用例并发送给被测设备;5)设置自适应反馈模块,根据测试结果更新搜索步长,调整搜索路径,进行下一轮搜索。2.根据权利要求1所述的一种针对...

【专利技术属性】
技术研发人员:付敬奇易慕白曹一帆沈仁亮张越
申请(专利权)人:上海大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1