模块化工控协议包深度解析验证方法与系统与流程



1.本技术涉及工控系统安全技术领域,特别涉及一种模块化工控协议包深度解析验证方法与系统。


背景技术:



2.随着智慧工厂的建立和普及,具有数字信息化和网络化功能的工业控制系统所发挥的作用日益显著。工业控制系统由多种自动化组件构成且相互联通配合,共同承担数据采集、控制、监测等方面的功能。工业控制系统一般包括现场层、中间过程层和管理层。现场层包括工厂现场的各类数字化设备、仪表、dcs或plc控制站等;中间过程层包括工程师操作站、poc服务器、实时数据库服务器、监控中心等;而管理层包括mes系统、供应链管理系统等。
3.其中,现场层和中间过程层承担着整个工控系统大部分的数据采集传输与控制指令执行的功能。为了满足现场层以及中间过程层面向数据和指令的通信需求,存在大量专用化的工控协议,这些协议相比于其他领域的通信协议,更加关注于设施的控制能力,即通过包含预定功能代码段的协议包,能够对现场层和中间过程层的设施执行启停和执行过程调控,以及查看和修改监测数据等。除了比较通用的工控协议以外,现场层和中间过程层的很多设施还要求支持其特定的专有协议,这给工控安全防范带来了更为复杂的局面。在工控系统安全事件中,攻击者往往基于特殊编写的工控协议包,绕开管理层而直接针对现场层和中间过程层施加影响,达到破坏或者侵入现场层及中间过程层设施的目的。因此,加强面向现场层和中间过程层的工控安全防范尤为值得关注。
4.面向工控协议包的深度包解析和验证是通过提取工控协议包的典型特征,并在该特征的基础上,监测和验证受到工控协议包影响的工控系统状态,从而对恶意的工控协议包进行有效的识别。目前,针对工控协议包的特定字段识别、协议特征提取分析等已经有较多的研究,但是在工控协议包解析基础上的系统状态验证尚缺乏科学有效的方法,目前主要的方法是在向工控系统的模拟机输入工控协议包的特定关键字段或待验证字段后,监测记录该工控系统的事件响应,分析其中是否存在异常的、超权限的事件响应等。但是,对于在该工控协议包影响下工控系统的系统状态时序迁移及其影响,却没有适当的验证手段,导致无法对更深层次的潜在恶意行为做出有效的判断和防范。


技术实现要素:



5.(一)申请目的基于此,本技术公开了一种模块化工控协议包深度解析验证方法与系统。本发明对工控协议包进行解析,提取其中的关键字段并转化为输入量,导入工控系统的模拟机;工控系统模拟机建立工控系统的状态迁移时序模型,对工控协议包输入量引起的模拟机状态时序迁移进行验证,从而实现对工控协议包是否存在深层恶意行为的解析判断。
6.(二)技术方案
本技术公开了一种模块化工控协议包深度解析验证方法,其特征在于,包括以下步骤:工控协议包解析步骤,基于所遵循的工控协议,对工控协议包进行逐层拆分,提取工控协议包各层字段中的有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控系统的状态迁移相关的参量;状态迁移输入量建立步骤,针对在预设的验证时间窗口内按时序接收的工控协议包,根据所述状态迁移相关的参量形成状态迁移时序序列;根据状态迁移时序序列形成对工控系统模拟机的状态迁移输入量;时序迁移状态生成步骤,将所述状态迁移输入量输入工控系统模拟机,基于工控系统模拟机的状态迁移时序模型,通过模型系数的滚动优化,确定所述状态迁移输入量引起的工控系统模拟机的时序状态;验证步骤,用于根据所述工控系统模拟机的时序状态,判断其中的非预定状态,并根据非预定状态的发生概率对所述工控协议包的安全性进行验证。
7.优选的是,在所述工控协议包解析步骤中,从工控协议包的报头相关信息中确定其遵循的工控协议名称和版本,进而根据对应的协议格式定义文件,对该工控协议包按层拆分为完整的报文,再对每一层的报文中的字段名称和字段取值进行解码和分析,排除与工控协议包的解析和验证无关的无效字段名称或字段取值,提取工控协议包各层字段中与工控协议包的解析与验证相关的字段名称及其字段取值,作为有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控系统的状态迁移相关的参量。
8.优选的是,所述状态迁移相关的参量表示为一系列的三元组构成的数组,该三元组数组包括数据域值、类型域值以及时序号域值。
9.优选的是,在状态迁移输入量建立步骤中,对于所述状态迁移相关的参量的每一个三元组,判断其数据域值和类型域值给工控系统所造成的预期响应类型和预期响应值,并由所述预期响应值按照时序排列形成整个验证时间窗口上的状态迁移时序序列。
10.优选的是,在时序迁移状态生成步骤中,所述状态迁移时序模型表示为:其中,表示预测长度,即自第k个时序号起始本模型所模拟的后续个时序号, 为在预测长度条件下的第个时序号下工控系统响应值;和为所述状态迁移输入量中第k个、第个时序号下的工控系统预期响应值;为第个时序号下工控系统的初始状态响应值,即假定没有该状态迁移输入量带来影响情况下工控系统的响应值;为比例系数;和表示实测工控系统进行建模所得到的参考量的个数。
11.进而,本发明提供了一种模块化工控协议包深度解析验证系统,其特征在于,包括:工控协议包解析模块,基于所遵循的工控协议,对工控协议包进行逐层拆分,提取工控协议包各层字段中的有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控
系统的状态迁移相关的参量;状态迁移输入量建立模块,针对在预设的验证时间窗口内按时序接收的工控协议包,根据所述状态迁移相关的参量形成状态迁移时序序列;根据状态迁移时序序列形成对工控系统模拟机的状态迁移输入量;工控模拟机,用于根据输入的所述状态迁移输入量,基于状态迁移时序模型,通过模型系数的滚动优化,确定所述状态迁移输入量引起的工控系统模拟机的时序状态;验证模块,用于根据所述工控系统模拟机的时序状态,判断其中的非预定状态,并根据非预定状态的发生概率对所述工控协议包的安全性进行验证。
12.优选的是,所述工控协议包解析模块用于从工控协议包的报头相关信息中确定其遵循的工控协议名称和版本,进而根据对应的协议格式定义文件,对该工控协议包按层拆分为完整的报文,再对每一层的报文中的字段名称和字段取值进行解码和分析,排除与工控协议包的解析和验证无关的无效字段名称或字段取值,提取工控协议包各层字段中与工控协议包的解析与验证相关的字段名称及其字段取值,作为有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控系统的状态迁移相关的参量。
13.优选的是,所述状态迁移相关的参量表示为一系列的三元组构成的数组,该三元组数组包括数据域值、类型域值以及时序号域值。
14.优选的是,所述状态迁移输入量建立模块,用于对于所述状态迁移相关的参量的每一个三元组,判断其数据域值和类型域值给工控系统所造成的预期响应类型和预期响应值,并由所述预期响应值按照时序排列形成整个验证时间窗口上的状态迁移时序序列。
15.优选的是,所述状态迁移时序模型表示为:其中,表示预测长度,即自第k个时序号起始本模型所模拟的后续个时序号, 为在预测长度条件下的第个时序号下工控系统响应值;和为所述状态迁移输入量中第k个、第个时序号下的工控系统预期响应值;为第个时序号下工控系统的初始状态响应值,即假定没有该状态迁移输入量带来影响情况下工控系统的响应值; 为比例系数;和表示实测工控系统进行建模所得到的参考量的个数。
16.(三)有益效果综上所述,本发明在针对工控协议包的关键字段进行特征化解析的基础上,将其量化且时序性表征为状态时序迁移序列,形成有效的输入量;进而,通过工控系统模拟机的状态迁移时序模型,对工控协议包输入量引起的模拟机状态时序迁移进行验证,从而能够有效模拟工控协议包所造成的实际工控系统的响应状态的演变规律,从而实现对工控协议包是否存在深层恶意行为的解析判断,且相对于传统的深度包解析的方式来说,通过验证更接近真实工控系统的响应,对工控协议包的分析层次更为深层化,对伪装性强、碎片化复杂组合复杂策略的恶意工控协议包有更强的判断能力。
附图说明
17.以下参考附图描述的实施例是示例性的,旨在用于解释和说明本技术,而不能理解为对本技术的保护范围的限制。
18.图1是本技术公开的一种模块化工控协议包深度解析验证方法的流程图;图2是本技术公开的的一种模块化工控协议包深度解析验证系统的框图。
具体实施方式
19.为使本技术实施的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行更加详细的描述。
20.本技术提供了一种模块化工控协议包深度解析验证方法与系统。本发明对工控协议包进行解析,提取其中的关键字段并转化为状态迁移输入量,导入工控系统的模拟机;工控系统模拟机建立工控系统的状态迁移时序模型,对工控协议包输入量引起的模拟机状态时序迁移进行验证,从而实现对工控协议包是否存在深层恶意行为和潜在风险等级等安全性实现解析判断。
21.参见图1,本发明所述的模块化工控协议包深度解析验证方法,包括以下步骤:工控协议包解析步骤,基于所遵循的工控协议,对工控协议包进行逐层拆分,提取工控协议包各层字段中的有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控系统的状态迁移相关的参量;状态迁移输入量建立步骤,针对在预设的验证时间窗口内按时序接收的工控协议包,根据所述状态迁移相关的参量形成状态迁移时序序列;根据状态迁移时序序列形成对工控系统模拟机的状态迁移输入量;时序迁移状态生成步骤,将所述状态迁移输入量输入工控系统模拟机,基于工控系统模拟机的状态迁移时序模型,通过模型系数的滚动优化,确定所述状态迁移输入量引起的工控系统模拟机的时序状态;验证步骤,用于根据所述工控系统模拟机的时序状态,判断其中的非预定状态,并根据非预定状态的发生概率对所述工控协议包的安全性进行验证。
22.具体来说,在工控协议包解析步骤中,能够支持的工控协议包括常用的iec 60870-104、modbus/tcp、bacnet/ip、cc-link等,也包括工控系统中各种设施可能具备的专有协议。能够从工控协议包的报头相关信息中确定其遵循的工控协议名称和版本,进而根据对应的协议格式定义文件,对该工控协议包按层拆分为完整的报文,再对每一层的报文中的字段名称和字段取值进行解码和分析,排除与工控协议包的解析和验证无关的无效字段名称或字段取值,从而提取工控协议包各层字段中与工控协议包的解析与验证相关的字段名称及其字段取值,作为有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控系统的状态迁移相关的参量。
23.举例来说,对于遵循iec 60870-104协议的一个工控协议包,首先该工控协议包中固定的报头相关信息进行解析,确定协议类型标识符、报文总长度等,并且确定数据链路层协议标识符;进而,针对从该工控协议包中拆分的数据链路层报文,由于对其中的源mac地址、目标mac地址以及网络层协议标识符进行解析,网络层协议标识符包括ipv4、arp、ipv6等;针对从该工控协议包中拆分的网络层数据包,进而提取源ip、目标ip以及传输层协议标
为在预测长度条件下的第个时序号下工控系统响应值,也即工控系统的时序状态;和为上文所述的状态迁移输入量中第k个、第个时序号下的工控系统预期响应值;为第个时序号下工控系统的初始状态响应值,即假定没有该状态迁移输入量带来影响情况下工控系统的响应值; 为比例系数,通过计算可得、、在本模型中的比重,基于循环滚动优化后的这三个参数,确定工控系统模拟机模拟的时序状态。
27.下面对参数的循环滚动优化方式进行说明。首先调入执行循环滚动优化的参考量和组成的参考量矩阵,,其中表示参考量的个数,表示参考量的个数;以上实际值中的各个和是实测工控系统进行建模所得到的。进而,按照以下循环滚动优化方式进行计算:(1)对执行循环滚动计算:设定初始条件:
ꢀꢀꢀꢀ
公式(二)根据初始条件赋值;进而,启动如下循环滚动:for j=2,

,
ꢀꢀ
dofor i=1,

,p doend forend for其中对于,根据公式(三)可得:
ꢀꢀ
公式(三)(2)对执行循环滚动计算:通过公式(四)设定初始条件:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(四)
根据初始条件赋值;进而,启动如下循环滚动:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
for j=2,

,
ꢀꢀ
do
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
for i=1,

,p do
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
end for
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
end for其中对于根据公式(五)可得:
ꢀꢀꢀ
公式(五)(3)对执行循环滚动计算: 通过公式(六)设定初始条件:= 0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(六)根据初始条件赋值根据初始条件赋值;进而,启动如下循环滚动:
ꢀꢀꢀꢀ
for i=1,

, do
ꢀꢀꢀꢀꢀꢀ
end for其中,对于根据公式(七)可得:
ꢀꢀꢀꢀ
公式(七)在验证步骤中,用于根据上述步骤中所述工控系统模拟机所模拟的预测长度上的时序状态,判断其中的非预定状态的发生比率,并根据非预定状态的发生概率对所述工控协议包的安全性进行验证。如果预测长度上非工控系统预定下的时序状态的占比高于预设的占比阈值,则认为本次验证的工控协议包存在安全性方面的风险。
28.本发明进而提供了模块化工控协议包深度解析验证系统,参见图2,包括:工控协议包解析模块,基于所遵循的工控协议,对工控协议包进行逐层拆分,提取工控协议包各层字段中的有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控系统的状态迁移相关的参量;状态迁移输入量建立模块,针对在预设的验证时间窗口内按时序接收的工控协议包,根据所述状态迁移相关的参量形成状态迁移时序序列;根据状态迁移时序序列形成对工控系统模拟机的状态迁移输入量;工控模拟机,用于根据输入的所述状态迁移输入量,基于状态迁移时序模型,通过
模型系数的滚动优化,确定所述状态迁移输入量引起的工控系统模拟机的时序状态;验证模块,用于根据所述工控系统模拟机的时序状态,判断其中的非预定状态,并根据非预定状态的发生概率对所述工控协议包的安全性进行验证。
29.优选的是,所述工控协议包解析模块用于从工控协议包的报头相关信息中确定其遵循的工控协议名称和版本,进而根据对应的协议格式定义文件,对该工控协议包按层拆分为完整的报文,再对每一层的报文中的字段名称和字段取值进行解码和分析,排除与工控协议包的解析和验证无关的无效字段名称或字段取值,提取工控协议包各层字段中与工控协议包的解析与验证相关的字段名称及其字段取值,作为有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控系统的状态迁移相关的参量。
30.优选的是,所述状态迁移相关的参量表示为一系列的三元组构成的数组,该三元组数组包括数据域值、类型域值以及时序号域值。
31.优选的是,所述状态迁移输入量建立模块,用于对于所述状态迁移相关的参量的每一个三元组,判断其数据域值和类型域值给工控系统所造成的预期响应类型和预期响应值,并由所述预期响应值按照时序排列形成整个验证时间窗口上的状态迁移时序序列。
32.优选的是,所述状态迁移时序模型表示为:公式(八)其中,表示预测长度,即自第k个时序号起始本模型所模拟的后续个时序号, 为在预测长度条件下的第个时序号下工控系统响应值;和为所述状态迁移输入量中第k个、第个时序号下的工控系统预期响应值;为第个时序号下工控系统的初始状态响应值,即假定没有该状态迁移输入量带来影响情况下工控系统的响应值;为比例系数;和表示实测工控系统进行建模所得到的参考量的个数。
33.综上所述,本发明在针对工控协议包的关键字段进行特征化解析的基础上,将其量化且时序性表征为状态时序迁移序列,形成有效的输入量;进而,通过工控系统模拟机的状态迁移时序模型,对工控协议包输入量引起的模拟机状态时序迁移进行验证,从而能够有效模拟工控协议包所造成的实际工控系统的响应状态的演变规律,从而实现对工控协议包是否存在深层恶意行为的解析判断,且相对于传统的深度包解析的方式来说,通过验证更接近真实工控系统的响应,对工控协议包的分析层次更为深层化,对伪装性强、碎片化复杂组合复杂策略的恶意工控协议包有更强的判断能力。
34.本文中的模块、单元或组件的划分仅仅是一种逻辑功能的划分,在实际实现时可以有其他的划分方式,例如多个模块和/或单元可以结合或集成于另一个系统中。作为分离部件说明的模块、单元、组件在物理上可以是分开的,也可以是不分开的。作为单元显示的部件可以是物理单元,也可以不是物理单元,即可以位于一个具体地方,也可以分布到网格单元中。因此可以根据实际需要选择其中的部分或全部的单元来实现实施例的方案。
35.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何
熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。

技术特征:


1.一种模块化工控协议包深度解析验证方法,其特征在于,包括以下步骤:工控协议包解析步骤,基于所遵循的工控协议,对工控协议包进行逐层拆分,提取工控协议包各层字段中的有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控系统的状态迁移相关的参量;状态迁移输入量建立步骤,针对在预设的验证时间窗口内按时序接收的工控协议包,根据所述状态迁移相关的参量形成状态迁移时序序列;根据状态迁移时序序列形成对工控系统模拟机的状态迁移输入量;时序迁移状态生成步骤,将所述状态迁移输入量输入工控系统模拟机,基于工控系统模拟机的状态迁移时序模型,通过模型系数的滚动优化,确定所述状态迁移输入量引起的工控系统模拟机的时序状态;验证步骤,用于根据所述工控系统模拟机的时序状态,判断其中的非预定状态,并根据非预定状态的发生概率对所述工控协议包的安全性进行验证。2.根据权利要求1所述的模块化工控协议包深度解析验证方法,其特征在于,在所述工控协议包解析步骤中,从工控协议包的报头相关信息中确定其遵循的工控协议名称和版本,进而根据对应的协议格式定义文件,对该工控协议包按层拆分为完整的报文,再对每一层的报文中的字段名称和字段取值进行解码和分析,排除与工控协议包的解析和验证无关的无效字段名称或字段取值,提取工控协议包各层字段中与工控协议包的解析与验证相关的字段名称及其字段取值,作为有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控系统的状态迁移相关的参量。3.根据权利要求2所述的模块化工控协议包深度解析验证方法,其特征在于,所述状态迁移相关的参量表示为一系列的三元组构成的数组,该三元组数组包括数据域值、类型域值以及时序号域值。4.根据权利要求3所述的模块化工控协议包深度解析验证方法,其特征在于,在状态迁移输入量建立步骤中,对于所述状态迁移相关的参量的每一个三元组,判断其数据域值和类型域值给工控系统所造成的预期响应类型和预期响应值,并由所述预期响应值按照时序排列形成整个验证时间窗口上的状态迁移时序序列。5.根据权利要求4所述的模块化工控协议包深度解析验证方法,其特征在于,在时序迁移状态生成步骤中,所述状态迁移时序模型表示为:其中,表示预测长度,即自第k个时序号起始本模型所模拟的后续个时序号, 为在预测长度条件下的第个时序号下工控系统响应值;和为所述状态迁移输入量中第k个、第个时序号下的工控系统预期响应值;为第个时序号下工控系统的初始状态响应值,即假定没有该状态迁移输入量带来影响情况下工控系统的响应值;为比例系数;和表示实测工控系统进行建模所得到的参考量的个数。
6.一种模块化工控协议包深度解析验证系统,其特征在于,包括:工控协议包解析模块,基于所遵循的工控协议,对工控协议包进行逐层拆分,提取工控协议包各层字段中的有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控系统的状态迁移相关的参量;状态迁移输入量建立模块,针对在预设的验证时间窗口内按时序接收的工控协议包,根据所述状态迁移相关的参量形成状态迁移时序序列;根据状态迁移时序序列形成对工控系统模拟机的状态迁移输入量;工控模拟机,用于根据输入的所述状态迁移输入量,基于状态迁移时序模型,通过模型系数的滚动优化,确定所述状态迁移输入量引起的工控系统模拟机的时序状态;验证模块,用于根据所述工控系统模拟机的时序状态,判断其中的非预定状态,并根据非预定状态的发生概率对所述工控协议包的安全性进行验证。7.根据权利要求6所述的模块化工控协议包深度解析验证系统,其特征在于,所述工控协议包解析模块用于从工控协议包的报头相关信息中确定其遵循的工控协议名称和版本,进而根据对应的协议格式定义文件,对该工控协议包按层拆分为完整的报文,再对每一层的报文中的字段名称和字段取值进行解码和分析,排除与工控协议包的解析和验证无关的无效字段名称或字段取值,提取工控协议包各层字段中与工控协议包的解析与验证相关的字段名称及其字段取值,作为有效载荷信息,并且根据有效载荷信息确定该工控协议包与工控系统的状态迁移相关的参量。8.根据权利要求7所述的模块化工控协议包深度解析验证系统,其特征在于,所述状态迁移相关的参量表示为一系列的三元组构成的数组,该三元组数组包括数据域值、类型域值以及时序号域值。9.根据权利要求8所述的模块化工控协议包深度解析验证系统,其特征在于,所述状态迁移输入量建立模块,用于对于所述状态迁移相关的参量的每一个三元组,判断其数据域值和类型域值给工控系统所造成的预期响应类型和预期响应值,并由所述预期响应值按照时序排列形成整个验证时间窗口上的状态迁移时序序列。10.根据权利要求9所述的模块化工控协议包深度解析验证系统,其特征在于,所述状态迁移时序模型表示为:其中,表示预测长度,即自第k个时序号起始本模型所模拟的后续个时序号, 为在预测长度条件下的第个时序号下工控系统响应值;和为所述状态迁移输入量中第k个、第个时序号下的工控系统预期响应值;为第个时序号下工控系统的初始状态响应值,即假定没有该状态迁移输入量带来影响情况下工控系统的响应值;为比例系数;和表示实测工控系统进行建模所得到的参考量的个数。

技术总结


本申请属于工业安全领域,公开了一种模块化工控协议包深度解析验证方法与系统。本发明对工控协议包进行解析,提取其中的关键字段并转化为输入量,导入工控系统的模拟机;工控系统模拟机建立工控系统的状态迁移时序模型,对工控协议包输入量引起的模拟机状态时序迁移进行验证,从而实现对工控协议包是否存在深层恶意行为的解析判断。恶意行为的解析判断。恶意行为的解析判断。


技术研发人员:

周磊 姜双林 王自强

受保护的技术使用者:

北京安帝科技有限公司

技术研发日:

2022.10.26

技术公布日:

2022/12/6

本文发布于:2024-09-25 05:22:00,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/37644.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:工控   协议   时序   状态
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议