本申请公开了一种工控协议测试方法、系统及设备和介质,方法包括:利用文法描述模型和工控协议样本数据构建文法解析树;对文法解析树进行遍历,查找文法解析树中的未测试节点;基于预设变异策略和未测试节点文法元素对应的属性规则对未测试节点进行变异处理,生成测试用例;利用测试用例对待测工控协议进行测试,得到针对待测工控协议的测试结果。本申请结合工控协议样本数据和文法描述模型构建文法解析树,查找文法解析树中的未测试节点进行变异,得到对应的测试用例,利用测试用例对待测工控协议进行测试,进而可利用测试结果进行后续针对工控协议的脆弱性分析,以提升工控系统协议脆弱性分析能力以及电力工控系统协议层面安全威胁的应对能力。
An industrial control protocol test method, system, electronic equipment and storage medium
【技术实现步骤摘要】
一种工控协议测试方法、系统及电子设备和存储介质
本申请涉及工控系统
,更具体地说,涉及一种工控协议测试方法、系统及一种电子设备和一种计算机可读存储介质。
技术介绍
工业控制系统(IndustrialControlSystems,ICS)通常是由计算机设备和工业生产控制部件组成的系统,工业控制系统是电力、冶金、交通、能源等工业基础设施的核心组成部分,也是国民经济、社会运行和国家安全的重要基础。工业控制系统与互联网技术深度融合,工业控制系统中越来越多的通用协议取代私有协议,大量采用通用硬件和通用软件,使其不再是一个独立封闭的系统,开放性与日俱增,因此系统安全漏洞和缺陷容易被攻击者所利用,导致工控系统的安全问题更加突显。工业控制系统的脆弱性归根结底就是漏洞问题,安全漏洞是工控系统面临的首要安全问题,根据历年公开的ICS漏洞数量来看,工控安全漏洞逐年增加。面向工控系统的网络与信息安全攻击呈高级定制化趋势,攻击机理复杂、隐蔽性高、专业性强,工控协议安全缺陷成为新的攻击目标。工控系统的安全策略配置不完善、安全更新不及时、安全防护不到位等问题,使得系统存在被入侵的风险,但由于面向工控系统的科学、系统化的攻击仿真验证技术缺失,一方面导致无法及时有效的识别工控系统的攻击入侵行为,另一方面也会制约工控安全防护措施的适用性与防御有效性。工控系统的入侵攻击与传统信息系统攻击相比存在较大差异,需要深入了解工控业务逻辑,进行深度定制,通过恶意控制指令的模拟实现对系统的破坏,而目前由于工控通信协议注重实时性,部分典型工控通信协议缺乏安全机制,使工控控制命令易被伪造,威胁工控设备安全稳定运行,为此,如何对工控协议进行安全性分析以提高电力工控系统协议层面安全威胁的应对能力是本领域技术人员需要解决的问题。
技术实现思路
本申请的目的在于提供一种工控协议测试方法、系统及一种电子设备和一种计算机可读存储介质,提升了工控系统协议脆弱性分析能力以及电力工控系统协议层面安全威胁的应对能力。为实现上述目的,本申请提供了一种工控协议测试方法,包括:获取文法描述模型和工控协议样本数据,并利用所述文法描述模型和所述工控协议样本数据构建文法解析树;对所述文法解析树进行遍历,查找所述文法解析树中的未测试节点;基于预设变异策略和所述未测试节点的文法元素对应的属性规则,对所述未测试节点进行变异处理,生成测试用例;利用所述测试用例对待测工控协议进行测试,得到针对所述待测工控协议的测试结果。可选的,所述获取文法描述模型和工控协议样本数据,并利用所述文法描述模型和所述工控协议样本数据构建文法解析树,包括:获取文法描述模型和工控协议样本数据,并接收用户输入的起始字段;判断所述起始字段是否为所述文法描述模型中的起始字段;如果是,则将所述起始字段创建为所述文法解析树的根节点;在所述文法描述模型的产生式集合中查找以所述起始字段作为起始字段的目标产生式集合;依次对所有所述目标产生式集合进行处理,得到文法解析树中每层的各个节点;根据所述工控协议样本数据确定所述各个节点的属性值,构建生成对应的文法解析树。可选的,所述构建生成对应的文法解析树之后,还包括:对所述文法解析树进行遍历,对比所述文法解析树中的每个节点是否存在子节点与节点自身相同;如果是,则将所述子节点作为当前节点的父节点的子节点,并删除所述当前节点。可选的,所述基于预设变异策略和所述未测试节点的文法元素对应的属性规则,对所述未测试节点进行变异处理,包括:判断所述未测试节点的节点类型是否为叶子节点或中间节点;若所述未测试节点的节点类型为叶子节点,则根据所述未测试节点的字段属性选择对应的变异策略进行变异处理;若所述未测试节点的节点类型为中间节点,则对所述未测试节点进行结构内变异处理或结构体变异处理。可选的,所述若所述未测试节点的节点类型为叶子节点,则根据所述未测试节点的字段属性选择对应的变异策略进行变异处理,包括:若所述未测试节点的节点类型为叶子节点,则确定所述未测试节点的字段属性;所述字段属性为字段类型、字段长度、字段值或字段对应语义中的任一项信息;若所述字段属性为字段类型,则根据所述字段类型对所述未测试节点进行分隔符字段变异处理或格式标识字段变异处理;若所述字段属性为字段长度,则对所述未测试节点进行长度字段变异处理或计数字段变异处理;若所述字段属性为字段对应语义,则对所述未测试节点进行二进制字段变异处理。可选的,所述若所述未测试节点的节点类型为中间节点,则对所述未测试节点进行结构内变异处理或结构体变异处理,包括:若所述未测试节点的节点类型为中间节点,则对所述未测试节点进行属性规则变异,或通过递归查找到所述未测试节点的目标子节点,并对所述目标子节点生成的数据进行组合字段变异,实现结构内变异处理;或,对以所述未测试节点为起始节点的子树进行复制、删除或调整位置的操作实现结构体变异处理。可选的,对所述未测试节点进行变异处理,生成测试用例,包括:对所述未测试节点进行变异处理,并根据所述未测试节点的文法元素对应的属性规则对所述未测试节点相关字段的属性值进行计算更新;通过读取变异后文法解析树中叶子节点的值,得到测试用例集合。为实现上述目的,本申请提供了一种工控协议测试系统,包括:构建模块,用于获取文法描述模型和工控协议样本数据,并利用所述文法描述模型和所述工控协议样本数据构建文法解析树;查找模块,用于对所述文法解析树进行遍历,查找所述文法解析树中的未测试节点;变异模块,用于基于预设变异策略和所述未测试节点的文法元素对应的属性规则,对所述未测试节点进行变异处理,生成测试用例;测试模块,用于利用所述测试用例对待测工控协议进行测试,得到针对所述待测工控协议的测试结果。为实现上述目的,本申请提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现前述公开的任一种工控协议测试方法的步骤。为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种工控协议测试方法的步骤。通过以上方案可知,本申请提供的一种工控协议测试方法,包括:获取文法描述模型和工控协议样本数据,并利用所述文法描述模型和所述工控协议样本数据构建文法解析树;对所述文法解析树进行遍历,查找所述文法解析树中的未测试节点;基于预设变异策略和所述未测试节点的文法元素对应的属性规则,对所述未测试节点进行变异处理,生成测试用例;利用所述测试用例对待测工控协议进行测试,得到针对所述待测工控协议的测试结果。由上可知,本申请结合工控协议样本数据和文法描述模型构建文法解析树,查找文法解析树中的未测试节点进行变异,得到对应的测试用例,利用测试用例对待测工控协议进行测试,进而可利用测试结果进行本文档来自技高网...
【技术保护点】
1.一种工控协议测试方法,其特征在于,包括:/n获取文法描述模型和工控协议样本数据,并利用所述文法描述模型和所述工控协议样本数据构建文法解析树;/n对所述文法解析树进行遍历,查找所述文法解析树中的未测试节点;/n基于预设变异策略和所述未测试节点的文法元素对应的属性规则,对所述未测试节点进行变异处理,生成测试用例;/n利用所述测试用例对待测工控协议进行测试,得到针对所述待测工控协议的测试结果。/n
【技术特征摘要】
1.一种工控协议测试方法,其特征在于,包括:
获取文法描述模型和工控协议样本数据,并利用所述文法描述模型和所述工控协议样本数据构建文法解析树;
对所述文法解析树进行遍历,查找所述文法解析树中的未测试节点;
基于预设变异策略和所述未测试节点的文法元素对应的属性规则,对所述未测试节点进行变异处理,生成测试用例;
利用所述测试用例对待测工控协议进行测试,得到针对所述待测工控协议的测试结果。
2.根据权利要求1所述的工控协议测试方法,其特征在于,所述获取文法描述模型和工控协议样本数据,并利用所述文法描述模型和所述工控协议样本数据构建文法解析树,包括:
获取文法描述模型和工控协议样本数据,并接收用户输入的起始字段;
判断所述起始字段是否为所述文法描述模型中的起始字段;
如果是,则将所述起始字段创建为所述文法解析树的根节点;
在所述文法描述模型的产生式集合中查找以所述起始字段作为起始字段的目标产生式集合;
依次对所有所述目标产生式集合进行处理,得到文法解析树中每层的各个节点;
根据所述工控协议样本数据确定所述各个节点的属性值,构建生成对应的文法解析树。
3.根据权利要求2所述的工控协议测试方法,其特征在于,所述构建生成对应的文法解析树之后,还包括:
对所述文法解析树进行遍历,对比所述文法解析树中的每个节点是否存在子节点与节点自身相同;
如果是,则将所述子节点作为当前节点的父节点的子节点,并删除所述当前节点。
4.根据权利要求1所述的工控协议测试方法,其特征在于,所述基于预设变异策略和所述未测试节点的文法元素对应的属性规则,对所述未测试节点进行变异处理,包括:
判断所述未测试节点的节点类型是否为叶子节点或中间节点;
若所述未测试节点的节点类型为叶子节点,则根据所述未测试节点的字段属性选择对应的变异策略进行变异处理;
若所述未测试节点的节点类型为中间节点,则对所述未测试节点进行结构内变异处理或结构体变异处理。
5.根据权利要求4所述的工控协议测试方法,其特征在于,所述若所述未测试节点的节点类型为叶子节点,则根据所述未测试节点的字段属性选择对应的变异策略进行变异处理,包括:
若所述未测试节点的节点类型为叶子节点,则确定所述未测试节...
【专利技术属性】
技术研发人员:李千目,吴丹丹,孙哲,申海元,桑笑楠,
申请(专利权)人:江苏中天科技软件技术有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。