本发明属于网络信息安全,涉及私有网络协议解析技术及工控系统的漏洞挖掘技术,具体涉及一种基于协议解析的工控私有网络协议漏洞挖掘方法及系统。
背景技术:
1、随着互联网技术的迅速发展,数字化转型已成为传统行业的必然选择。工业领域作为国家经济的重要支柱。工业互联网作为重要组成部分,其将互联网技术与工业领域相结合,实现了工业系统的数字化,智能化和互联互通。但其所存在的安全问题仍然是其转型所面临的重大挑战之一。工业控制系统在设计之初主要侧重实时性与稳定性,从而缺乏安全设计。在转型过程中,原本封闭的生产环境被暴露在了互联网上,其中所隐藏的大量安全漏洞可以轻易被远程入侵,造成难以估量的重大损失。
2、模糊测试作为一种高效的自动化漏洞挖掘技术,在传统网络环境中被广泛使用。该技术通过向被测系统(system under test,sut)注入大量随机变异后的测试用例,以及时揭露潜在的安全漏洞与功能缺陷。但测试用例的变异过程仍需遵循协议规范的指导,来确保其能够被sut有效接收。因此,尽管该技术在公有协议上已成功发现了大量漏洞,但在面对工业控制系统(industrial control system,ics)环境中规范未公开的私有协议时,仍存在以下局限:
3、首先传统方法无法辨认私有协议中不可变异的关键字段,从而浪费大量时间生成无效测试用例。协议中的字段通常被分为携带重要信息的关键字段与仅为补充信息的非关键字段。而传统方法在失去协议规范的指导后,由于无法区分两者而采取相同的变异方法。这使得测试用例中关键字段的重要信息被错误变异,从而被sut拒绝接收。其次,传统方法理想化的测试策略与现实环境存在偏差,导致漏洞的发现率较低。部分协议状态由于ics环境的周期性操作,例如对设备的监控和检查,会反复出现于无关的状态转移流程中。不同任务间的频繁中断极有可能隐藏严重的逻辑漏洞,例如对共享资源的错误修改。而传统方法由于失去协议状态的指导,降低了发现这些漏洞的可能性。最后,传统方法采用的单包发送方法前后关联性较弱,对协议状态的覆盖率较低。为了保证生产环境的稳定性,ics私有协议在到达特定状态前需要遵循严格的状态转移路径。然而,单包发送由于一次只发送单个测试用例,其前后的关联较弱,从而只能覆盖路径较短的协议状态。
技术实现思路
1、本发明的目的在于设计一种基于协议解析的工控私有协议漏洞挖掘方法及系统,该方法机系统基于流量对协议规范与状态机进行解析,以指导测试用例的生成,实现对工控系统的漏洞挖掘。
2、为实现上述目的,本发明采用的技术方案如下:
3、一种基于协议解析的工控私有网络协议漏洞挖掘方法,具体过程如下:
4、步骤1:以原始工控流量集合作为输入,对集合中的数据包进行预处理,提取每个数据包的载荷字节信息,并以连续三个字节作为一个单位,将每条载荷转换为3-gram字节序列。
5、步骤2:以步骤1得到的3-gram字节序列为输入数据,通过关系推理模型筛除其中随机程度较高的3-gram来提取流量的指纹作为其结构特征
6、步骤3:以步骤2得到的多组流量报文作为输入数据,对流量指纹使用无监督聚类算法将原始流量数据划分为具有不同格式的多组流量。针对每组流量划分其格式中不同字段的边界,然后根据字段熵值推断每个字段的语义类型,从而得到该组流量所属格式的协议规范。
7、步骤4:以原始工控流量集合作为输入,根据步骤3得到的协议规范推断每条流量所处的状态,并以流量所处时间的先后作为协议状态转换顺序,最终在去除重复状态后构建协议的状态机。
8、步骤5:以原始网络流量集合作为输入,根据步骤3和步骤4得到的协议规范与状态机,分别指导数据包变异与组合为测试用例,对被测工控协议中的指定状态进行测试
9、一种基于协议解析的工控私有网络协议漏洞挖掘系统,其特征在于其包含的协议规范解析模块,协议状态重建模块与模糊测试模块,具体过程如下:
10、首先,协议规范解析模块根据原始工控流量集合,对协议中每种格式所包含字段的边界与语义进行划分推断,从而得到协议规范。之后,协议状态重建模块根据协议规范,提取原始工控流量中每个数据包的关键功能码作为其所处状态,并以流量的时间先后作为状态之间转换的顺序重建协议的状态机。最后模糊测试模块根据解析的协议规范与重建的协议状态机,指导原始流量变异与组合成为合格测试用例,对被测协议的指定状态进行模糊测试。
11、本发明的关键技术点在于:
12、一、提出了新的协议解析方法,基于深度学习方法与流量指纹来提取每条流量的关键特征,从而实现私有协议下不同格式流量的分类与对应规范的解析。
13、二、提出了新的状态机构建方法,根据解析的协议规范提取出每条流量的所粗状态,从而实现私有协议下状态机的重构。
14、三、提出了组合报文测试,根据状态机将多条报文进行有序组合,从而实现私有协议下对指定状态的模糊测试。
15、利用本专利的方法可以实现对私有工控的高效漏洞挖掘,与已公开的相关技术相比,具有如下优点:
16、一、本发明根据流量指纹对私有协议中不同格式的规范进行解析,通过解析规范指导测试用例的变异,有效提升了测试用例变异后在被测设备上的接收率,实践证明该方法可以生成大量能够符合协议规范的测试用例。
17、二、本发明使用了状态引导的模糊测试算法,通过组合引导报文与测试用例来构造符合转换轨迹的测试序列,有效保证了测试用例能够准确到达目标协议状态进行测试,实践证明该方法在相同的测试用例数量内测试更多的协议状态。
1.一种基于协议解析的工控私有网络协议漏洞挖掘方法,其特征在于,包括:
2.根据权利要求1所述的基于协议解析的工控私有网络协议漏洞挖掘方法,其特征在于,所述步骤2中提取流量指纹的具体方法为:
3.根据权利要求1所述的基于协议解析的工控私有网络协议漏洞挖掘方法,其特征在于,步骤3所述的解析协议规范的具体方法包括:
4.根据权利要求1所述的基于协议解析的工控私有网络协议漏洞挖掘方法,其特征在于,所述步骤4所述的重建协议状态机的具体方法包括:
5.根据权利要求1所述的基于协议解析的工控私有网络协议漏洞挖掘方法,其特征在于,所述步骤5所述的模糊测试的具体方法包括:
6.一种实现如权利要求1-5任一所述方法的基于协议解析的工控私有网络协议漏洞挖掘系统,其特征在于,包括协议规范解析模块、协议状态重建模块与模糊测试模块;具体过程如下: