首页  专利技术  电子通信装置的制造及其应用技术

基于范式语法和强化学习的工控协议模糊测试方法及系统

2026-02-22 13:40:06 26次浏览
基于范式语法和强化学习的工控协议模糊测试方法及系统

本发明属于协议安全测试,具体涉及一种基于范式语法和强化学习的工控协议模糊测试方法及系统。


背景技术:

1、工业控制系统(industrial control system,ics)是现代工业基础设施的核心,负责监控和控制各种工业过程。ics通常由多个组件组成,它们之间通过特定的ics协议进行通信。这些协议定义了数据格式和交互规则,以确保系统的稳定运行和高效管理。随着工业自动化和智能化的发展,ics协议的安全性和可靠性变得尤为重要。

2、模糊测试技术在软件测试领域,特别是ics协议测试中,已被广泛应用。它通过向协议解析模块发送变异的非正常报文,检测系统是否能够妥善处理异常输入,从而识别潜在的安全漏洞。目前,有两种主要的方法用于生成非正常的输入数据:基于数据生成的方法和基于数据变异的方法。基于生成的方法依赖于对协议格式的深入理解,而基于变异的方法则通过修改合法输入样本来探索更多的执行路径。但基于生成的方法可能无法覆盖所有可能的输入情况,基于变异的方法生成的测试用例可能包含大量随机性,导致测试结果的不稳定。因此近几年来,技术人员更多地采用基于覆盖引导的模糊测试技术,该方法利用代码覆盖信息来指导测试输入的生成和变异,从而更有效地发现协议中的漏洞和缺陷,主要包括基于强化学习的协议模糊测试方法和基于覆盖率反馈的模糊测试方法。

3、尽管现有技术在ics协议测试中取得了一定的进展,但仍存在一些局限性:基于强化学习的协议模糊测试方法虽然能够自适应选择变异策略,但可能生成不符合协议规约要求的测试用例,影响测试的有效性;基于覆盖率反馈的模糊测试方法过于侧重于反馈信息的收集,而忽略了数据模型建模的重要性,这可能导致测试用例无法充分探索协议的所有潜在行为。


技术实现思路

1、本发明针对上述现有技术的不足之处,提出了一种基于范式语法和强化学习的工控协议模糊测试方法及系统,结合范式语法和强化学习方法实现对工控协议的模糊测试。

2、为实现上述目的,本发明提供了一种基于范式语法和强化学习的工控协议模糊测试方法,包括以下步骤:

3、步骤s1:使用扩展巴克斯范式abnf描述工控协议的结构,识别出工控协议的报文中的各个字段,构造工控协议的语法树,对所述语法树进行实例化得到变异树,初始化所述变异树中每个叶子节点的权重;

4、步骤s2:根据权重的大小选择需要变异的叶子节点,对变异树进行变异,遍历变异后的变异树得到测试用例,将所述测试用例发送到所述工控协议进行模糊测试;

5、步骤s3:根据模糊测试结果对各叶子节点的权重进行更新,利用步骤s2中的方法得到新的测试用例;

6、步骤s4:重复步骤s2至步骤s3,直到达到设定的迭代次数。

7、优选地,步骤s1中对语法树进行实例化得到变异树包括以下步骤:将所述工控协议的报文作为根节点,报文中的各个字段作为子节点,根据所述工控协议的abnf描述计算每个字段的字节长度,以每个字段的中间字节为界限将子节点划分为两个中间子节点,重复执行划分操作,直到中间子节点只包含一个字节,将单字节的中间子节点作为叶子节点,构造工控协议的变异树。

8、优选地,步骤s2中对变异树进行变异包括以下步骤:将权重大于预设阈值的叶子节点作为预选变异点,随机选取若干个预选变异点作为变异节点,制定多种变异策略,采用启发式算法为每个变异节点选择变异策略,所述变异策略包括类型变异、操作变异和组合字段变异。

9、优选地,所述类型变异根据变异树的叶子节点的字符类型选择变异策略:

10、当所述叶子节点的字符类型为数值时,取所述数值的边界处的临界值对叶子节点进行变异;

11、当所述叶子节点的字符类型为字符串时,生成超长字符串或包含特殊字符的字符串对叶子节点进行变异;

12、当所述叶子节点的字符类型为二进制时,采用位反转操作对叶子节点进行变异。

13、优选地,所述操作变异随机选择以下策略对变异树进行变异:

14、a、随机选择一个叶子节点进行复制或删除操作;

15、b、随机选择一个数值型的叶子节点,对其值进行随机增加或减少;

16、c、随机选择一个叶子节点,用随机生成的数据覆盖其值;

17、d、随机打乱叶子节点的顺序。

18、优选地,所述组合字段变异将权重最接近的两个叶子节点组合为一个新的叶子节点。

19、优选地,步骤s3中根据模糊测试结果对各叶子节点的权重进行更新包括以下步骤:

20、步骤s31:根据模糊测试结果计算测试用例的奖励得分:

21、reward=coverage_reward+exception_reward

22、coverage_reward=coverage_gain×coverage_weight;

23、exception_reward=exception_gain×exception_weight

24、其中,reward为测试用例的奖励得分;coverage_reward为测试用例的覆盖率得分;exception_reward为测试用例的异常发现率得分;coverage_gain为测试用例的覆盖率;coverage_weight为覆盖率权重;exception_gain为测试用例的异常发现率,当测试用例引发异常时为1,否则为0;exception_weight为测试用例的异常发现率权重;

25、步骤s32:根据测试的需求调整覆盖率权重和异常发现率权重的值,如果测试中更重视覆盖率的提升,则提高覆盖率权重,如果测试中更重视异常的发现,则提高异常发现率权重。

26、本发明还提供一种基于范式语法和强化学习的工控协议模糊测试系统,基于上述的一种基于范式语法和强化学习的工控协议模糊测试方法实现,包括范式语法描述模块、变异模块、用例生成模块和强化学习模块;

27、所述范式语法描述模块使用扩展巴克斯范式abnf描述工控协议,构造协议的语法树,对语法树进行实例化得到变异树;

28、所述变异模块采用启发式算法选择变异策略,对变异树进行变异;

29、所述用例生成模块遍历变异后的变异树,生成测试用例,将测试用例发送到待测协议进行模糊测试;

30、所述强化学习模块根据测试结果计算测试用例的奖励函数,动态更新字段权重,指导后续测试用例的生成和变异。

31、本发明还提供了一种电子设备,包括:存储器、处理器和计算机程序,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现上述的一种基于范式语法和强化学习的工控协议模糊测试方法。

32、本发明另外提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行以实现上述的一种基于范式语法和强化学习的工控协议模糊测试方法。

33、本发明的有益之处至少包括:

34、1、利用扩展巴克斯范式abnf对工控协议进行统一的描述,保证了生成测试用例时的系统性和结构化,确保所有协议字段和组合都被正确解析和生成测试用例;

35、2、通过初始化并更新变异树中每个叶子节点的权重,流程能够自适应地调整变异策略,提高测试用例的覆盖率和发现漏洞的概率;

36、3、通过迭代和权重更新,能够更有效地利用有限的测试资源,集中测试那些更有可能发现问题的部分,同时测试结果被用来指导后续的测试用例生成,使得测试过程更加智能和目标导向。

文档序号 : 【 40163870 】

技术研发人员:向剑文,廖松松,郑倩荣,周俊伟,赵冬冬,郝蕊,田璟
技术所有人:武汉理工大学

备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
向剑文廖松松郑倩荣周俊伟赵冬冬郝蕊田璟武汉理工大学
一种实时播放空间视频系统及方法与流程 一种矿物绝缘电缆密封结构及其密封方法与流程
相关内容