System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于多臂老虎机算法的Modbus TCP协议模糊测试方法技术_技高网

基于多臂老虎机算法的Modbus TCP协议模糊测试方法技术

技术编号:40264813 阅读:13 留言:0更新日期:2024-02-02 22:53
本发明专利技术涉及一种基于多臂老虎机算法的Modbus TCP协议模糊测试方法,属于工业控制化系统的安全领域。该方法通过规则提取及构建模块,通过将协议提取特征后矩阵化、变异因子特征矩阵化以及变异因子选择分布概率矩阵化的操作使得在生成用例的过程更加清晰,经过自适应变异策略模型调整变异因子选择概率生成测试用例,并将其结果反馈到模型中,以便于后续生成的测试用例能更有效地提高漏洞挖掘率。本发明专利技术能够有效降低模糊测试技术中测试用例生成的随机性,减少生成测试用例的丢弃率,从而使得生成的测试用例有效性更高,从而能够提高挖掘Modbus TCP工业协议漏洞效率。

【技术实现步骤摘要】

本专利技术属于工业控制化系统的安全领域,涉及一种基于多臂老虎机算法(multi-armed bandits)的modbus tcp协议模糊测试方法。


技术介绍

1、由于工业控制系统和工业领域息息相关,面对存在漏洞的工业控制设备,对攻击所产生的危害进行预防措施,对保障工业控制领域的信息安全具有重大意义。

2、漏洞挖掘是检测工业控制协议的一大关键技术,它的优势是能在问题出现之前排除重大安全隐患,因此许多专业人员利用模糊技术(fuzzing)进行漏洞挖掘,模糊技术的核心思想在于通过变异生成大量非法数据包发送给目标设备,从而引发设备异常来达到预防的效果。fuzzing采用的是黑盒测试方法,在不了解被测设备内部构造的前提下就可以达到其预期效果,具有高度自动化、适用范围广等优点;同时存在由于生成测试用例的方法具有随机性使得效率过低的问题。


技术实现思路

1、有鉴于此,本专利技术的目的在于提供一种基于多臂老虎机算法(multi-armedbandits)的modbus tcp协议模糊测试方法,通过规则提取及构建模块,通过将协议提取特征后矩阵化、变异因子特征矩阵化以及变异因子选择分布概率矩阵化的操作使得在生成用例的过程更加清晰,经过自适应变异策略模型调整变异因子选择概率生成测试用例,并将其结果反馈到模型中,以便于后续生成的测试用例能更有效地提高漏洞挖掘率。

2、为达到上述目的,本专利技术提供如下技术方案:

3、一种基于多臂老虎机算法的modbus tcp协议模糊测试方法,该测试方法对对应的模糊测试结构包含四个模块:规则提取及构建模块、自适应变异策略模块、处理模块以及异常监测模块。

4、该方法具体包括以下步骤:

5、s1:规则提取及构建协议约束规则集(对应规则提取及构建模块的功能);

6、提取的规则包括协议字段关系、通信数据关系和协议异常机制;通过协议规约构建协议约束规则集,并据此构建协议特征矩阵,具体是通过深度解析协议规约对协议单元划分特征集合划并建立矩阵模型即协议特征矩阵,从而初步形成协议测试数据;将协议特征矩阵pfm描述为一个6元特征关系组:pfm={<t,p,l,u,f,d>};

7、s2:构建自适应变异策略模型(对应自适应变异策略模块的功能):确定当前阶段属于探索阶段还是利用阶段,初始时进入探索阶段,采用随机方式选择多种变异算子生成测试用例,后续进入利用阶段后,根据变异算子概率分布分别构建分类变异概率矩阵pd和分类变异特征矩阵vfm;

8、s3:协议处理(对应处理模块的功能):从待测功能码的角度出发提出基于滑动矩阵s的向量提取模式,并逐行提取矩阵vfm行向量中的变异特征作用于矩阵pfm中待测功能码所在行的部分特征值,根据约束规则调整l、d等关联字段的特征值,结合分类变异概率矩阵pd从而形成新的协议攻击向量即生成测试用例;

9、s4:异常监测(对应异常监测模块的功能):将生成的测试用例以生成策略概率队列存储并按序发送给被测设备执行模糊测试,监测被测对象进行模糊测试后是否触发异常,实时捕获异常情况并进行记录,利用结果分析反馈调整自适应变异策略模型中变异算子的概率分布,指导后续测试用例的生成,从而使得生成的测试用例能有效地触发漏洞。

10、进一步,步骤s1中,所述协议字段关系:由于传输层、应用层字段间存在着长度关系,令li表示modbus协议所有字段中各字段长度,在modbus协议中传输层字段主要指的是mbap header,应用层字段主要指是modbus应用数据单元的pdu部分,其中:i∈{tranid,proid,len,unitid,funcode,data},其中tranid,proid,len,unitid,funcode,data分别表示事务标识符、协议标识符、长度、单元标识符、功能码以及数据;

11、所述通信数据关系:正常通信期间的请求与响应报文传输标志符和功能码应保持一致,req.tranid==res.tranid,req.unitid==res.unitid;

12、所述协议异常机制:对于不同协议的异常机制各不相同,而就modbus协议而言,主要从2个方面进行考虑:1)若proid!=0,则不能执行modbus tcp协议的通信行为,同时产生无效的事务处理,服务端返回异常响应码;2)若功能码funcode无效,则返回异常响应码,其异常码格式为res.funcode==req.funcode+0x80。

13、进一步,步骤s1中,通过深度解析协议规约对协议单元划分特征集合划并建立矩阵模型,从而初步形成协议测试数据,具体包括:分别将事务标志t、协议标志p、长度l、单元标志u、功能码f和数据域d视为6个协议字段特征集,将协议特征矩阵pfm(protocolfeaturematrix)描述为一个6元特征关系组:

14、pfm={<t,p,l,u,f,d>}                       (1)

15、其中,t、p、l、u、f、d分别表示事务标识符字段、协议标识符字段、长度字段、单元标识符字段、功能码字段以及数据字段。

16、对应行数不定但列数固定的矩阵形式为

17、

18、其中,“*”号表示当前字段特征的单一数值,其值可能与当前列的某一元素值相同,也可能异同;矩阵中每个特征值下角标的第1位表示所在列数,后两位表示该特征集合的不同元素值编号;

19、协议标志符proid==0为工控设备建立连接的充分必要条件,因此p所在列的特征值需全部置为0,即pfm矩阵中部分特征值经调整后,该矩阵为

20、

21、该矩阵中的每一行均是一个协议输入向量piv(protocol input vector):

22、piv=<t,p,l,u,f,d>                       (4)

23、pfm矩阵每列元素表示对应特征的特征值集合,且t,p,l,u,f,d这6个特征集合之间满足笛卡尔积,即

24、piv=t×p×l×u×f×d                   (5)

25、piv在形式上等价于pfm的行向量,因此协议测试用例的输入形式为

26、rowvector=t+p+l+u+f+d            (6)

27、这里的加号代表的是拼接的含义,比如经过笛卡尔积后构造的一条输入数据为t101,0,l302,u403,f502,d603。

28、进一步,步骤s2中,构建自适应变异策略模型具体包括以下步骤:

29、s21:数学模型的建立:自适应变异策略模型建立的是一个改进的单抗模型,与传统模型一样的是不断地选择动作以尽可能地获得最大奖励,但与传统ucb和ts等单抗模型不同的是根据模糊过程定制了单抗模型的探索和利用阶段,在探索阶段,采用随机变异本文档来自技高网...

【技术保护点】

1.一种基于多臂老虎机算法的Modbus TCP协议模糊测试方法,其特征在于,该方法具体包括以下步骤:

2.根据权利要求1所述的Modbus TCP协议模糊测试方法,其特征在于,步骤S1中,所述协议字段关系:令Li表示Modbus协议所有字段中各字段长度,在Modbus协议中传输层字段指的是MBAP Header,应用层字段指是Modbus应用数据单元的PDU部分,其中:i∈{TranID,ProID,Len,UnitID,FunCode,Data},其中TranID,ProID,Len,UnitID,FunCode,Data分别表示事务标识符、协议标识符、长度、单元标识符、功能码以及数据;

3.根据权利要求2所述的Modbus TCP协议模糊测试方法,其特征在于,步骤S1中,通过深度解析协议规约对协议单元划分特征集合划并建立矩阵模型,从而初步形成协议测试数据,具体包括:分别将事务标志T、协议标志P、长度L、单元标志U、功能码F和数据域D视为6个协议字段特征集,将协议特征矩阵PFM描述为一个6元特征关系组:

4.根据权利要求3所述的Modbus TCP协议模糊测试方法,其特征在于,步骤S2中,构建自适应变异策略模型具体包括以下步骤:

5.根据权利要求4所述的Modbus TCP协议模糊测试方法,其特征在于,步骤S3中,协议处理具体包括以下步骤:

6.根据权利要求5所述的Modbus TCP协议模糊测试方法,其特征在于,步骤S4中,异常监测具体包括以下步骤:

...

【技术特征摘要】

1.一种基于多臂老虎机算法的modbus tcp协议模糊测试方法,其特征在于,该方法具体包括以下步骤:

2.根据权利要求1所述的modbus tcp协议模糊测试方法,其特征在于,步骤s1中,所述协议字段关系:令li表示modbus协议所有字段中各字段长度,在modbus协议中传输层字段指的是mbap header,应用层字段指是modbus应用数据单元的pdu部分,其中:i∈{tranid,proid,len,unitid,funcode,data},其中tranid,proid,len,unitid,funcode,data分别表示事务标识符、协议标识符、长度、单元标识符、功能码以及数据;

3.根据权利要求2所述的modbus tcp...

【专利技术属性】
技术研发人员:谢昊飞秦艺纹蒋金橙胡坤志李昭
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:

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

1