当前位置: 首页 > 专利查询>浙江大学专利>正文

基于代码数据融合的攻击检测与溯源方法及系统技术方案

技术编号:39278204 阅读:8 留言:0更新日期:2023-11-07 10:53
本发明专利技术公开了一种基于代码数据融合的攻击检测与溯源方法及系统。本发明专利技术基于工业控制系统中的SCADA系统获取历史变量记录,通过定义系统状态、状态转移、以及状态转移周期,构建正常工况的工业控制系统有限状态机;通过校验实时变量记录与有限状态机,实时检测PLC异常状态。基于PLC指令表语言构建控制程序变量依赖路径;设计PLC程序变量的可疑攻击权重,并基于SCADA变量记录与PLC程序变量之间的映射关系,构建溯源路径。本发明专利技术在各个阶段都是非侵入式的;在数据采集及检测溯源时间满足工业控制系统的实时性要求,且相比于各类检测系统,能够与系统物理语义进行紧密结合,每个状态和转移都客观映射了系统的物理语义。转移都客观映射了系统的物理语义。转移都客观映射了系统的物理语义。

【技术实现步骤摘要】
基于代码数据融合的攻击检测与溯源方法及系统


[0001]本专利技术涉及工业控制系统入侵检测领域,特别涉及一种基于代码数据融合的攻击检测与溯源方法及系统。

技术介绍

[0002]可编程逻辑控制器(PLC)是工业控制系统现场使用最广泛的中小型控制系统之一,直接连接被控系统的传感器与执行器,通过预先设定的控制逻辑完成实时控制,是现场控制层的核心控制设备,对工控系统的现场防护具有重要价值。PLC本身在安全验证、通信数据加密等防护手段上设计滞后,导致攻击者可利用工控协议等脆弱点修改PLC内存,改变物理过程状态,导致如Stuxnet攻击等严重安全事件。为快速发现系统异常运行状态,需要针对PLC特定工作环境设计相应的入侵检测系统,同时为引导操作人员定位攻击向量、隔离攻击影响、恢复工控系统正常运行,需要进行具体的攻击点溯源。
[0003]现有面向工业控制系统的入侵检测方法通常从以下两个方面进行设计:1)基于通信行为的检测主要在网络组件、网络协议及通信过程等方面利用误用原则检测异常通信行为;2)基于物理过程动态的检测以系统物理数据作为监测对象,常基于物理过程正常行为模型,检测异常数据行为。现有面向工业控制系统的入侵检测对系统建模手段单一,缺乏对被控系统整体的关注,难以支持攻击检测后的攻击溯源需求;同时现有检测手段缺乏实时入侵检测与攻击溯源的联合设计,尤其缺乏在控制代码层级的攻击溯源,难以支撑被攻击系统正常行为状态的快速恢复,不利于减轻攻击影响。

技术实现思路

[0004]本专利技术的目的在于针对现有技术的不足,提供一种基于代码数据融合的攻击检测与溯源系统,适用于工业控制系统的入侵检测与溯源场景。面向工业控制系统中可编程逻辑控制器(Programmable Logic Controller,PLC)受攻击的场景,本方法对系统异常状态和攻击点溯源有良好的检出和溯源效果。本方法基于SCADA系统获取历史变量记录,利用有限状态机构建工业控制系统的正常工况模型,同时通过校验实时变量记录与正常工况模型,实时检测PLC异常状态。本专利技术基于PLC指令表语言,利用静态程序分析技术构建控制程序变量依赖路径,同时设计PLC程序变量的可疑攻击权重,并基于SCADA变量记录与PLC程序变量之间的映射关系,构建从PLC异常状态到可疑攻击变量的溯源路径。运用本方法的攻击检测与溯源系统具有检测实时性满足工业控制系统要求、非侵入式、不影响工业控制系统正常平稳运行等优点。
[0005]本专利技术的目的是通过以下技术方案实现的:
[0006]本专利技术提供一种基于代码数据融合的攻击检测与溯源方法,该方法应用于工业控制系统安全监测,包括以下步骤:
[0007]S1:获取工业控制系统中PLC的控制程序以及SCADA监控系统的历史记录数据,利用OPC UA获取SCADA实时变量记录;
[0008]S2:以SCADA监控系统的历史变量记录为输入,识别系统状态及状态转移,构建正常工况的系统有限状态机,并从SCADA监控软件的底层数据库访问SCADA变量记录与PLC程序变量之间的映射关系;
[0009]S3:以PLC控制程序为基础,利用静态程序分析技术提取程序变量依赖关系;
[0010]S4:在数据空间,以SCADA实时变量记录为基础,对比正常工况的系统有限状态机,识别系统异常状态及异常状态转移,完成攻击检测;
[0011]S5:在代码空间,以攻击检测机制检测到的系统异常为基础,根据程序变量依赖关系和SCADA变量记录与PLC程序变量之间的映射关系,构建可疑攻击溯源链,识别可疑攻击权重,进行攻击溯源。
[0012]进一步地,S2中,以SCADA系统变量记录log={v1,v2,

,v
m
}为输入(共含m个变量),将任意变量v
m
离散化到统一值空间J
m
,构成完整的系统状态空间同时结合系统运行规律以及物理状体约束,以各变量统一构建系统状态,使实际抽象的系统正常状态远小于
[0013]进一步地,S2中,定义SCADA系统第i时刻的变量记录u
i
={v
i1
,v
i2,
,

,v
im
}为状态,定义相邻时刻的变量记录u
i

u
i+1
为状态转移,定义相同状态转移的时间间隔为状态转移周期;以SCADA历史变量记录为输入,构建正常工况的有限状态机:以系统起始状态作为状态机初始状态、其余任何状态作为接收状态,在对应状态之间建立状态转移连边并记录相同连边出现的时间间隔。
[0014]进一步地,S2中,自动化地从SCADA监控软件的底层数据库访问变量记录,递归地构建有限状态机并支持新状态、新状态转移及新状态转移周期的在线更新。
[0015]进一步地,S3中,面向PLC基本指令表编程语言,以寄存器赋值运算为核心,构建PLC程序变量之间的依赖关系;具体地,针对PLC非跳转指令,设计传递函数D{Reg/Var}刻画PLC指令执行前后,寄存器存储变量Reg对相关操作变量Var的直接依赖关系;针对PLC跳转指令,刻画程序跳转前后的传递函数间D{Reg/Var}之间的依赖关系;针对PLC函数调用指令,刻画被调用函数的实际参数D{parameter}与形式参数D{argument}之间的依赖关系。
[0016]进一步地,S4中,针对任意时刻的SCADA变量记录,离散化到值空间J
m
并生成系统状态、状态转移、及状态转移周期,通过对比正常工况下系统有限状态机,在线实时地检测攻击。
[0017]进一步地,S5中,基于PLC程序变量依赖关系,建立PLC程序的攻击变量溯源图G(V,E),其中V定义所有PLC程序变量,E定义程序变量间的所有依赖关系;针对变量集合V,按照PLC变量定义规则,利用正则表达式识别程序中的所有变量;针对连边集合E,按代码执行顺序对所有程序指令添加或消除变量依赖,具体地,针对任意指令s,将其前驱输出寄存器依赖集合逐寄存器求并,得到指令s的输入依赖关系;若指令s
*
存在以程序变量Var为目的地址的写入行为,则将指令s的所有输入依赖变量添加至程序变量Var的依赖连边集合中;持续分析PLC程序指令直至待分析指令集合为空。
[0018]进一步地,S5中,当从SCADA变量记录中发现系统异常后,将根据SCADA变量记录与PLC程序变量之间的映射关系,自动定位异常程序变量Var
a
,并根据攻击变量溯源图G(V,E)溯源攻击变量的影响传播路径,具体为递归识别节点Var
a
的所有父节点,构建可疑攻击溯
源链。
[0019]进一步地,S3.2中,面对可能存在的多个可疑攻击变量,定义程序变量节点n的可疑攻击权重W
n

[0020][0021]其中,D
n
定义节点n到异常程序变量Var
a<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于代码数据融合的攻击检测与溯源方法,其特征在于,该方法包括以下步骤:S1:获取工业控制系统中PLC的控制程序以及SCADA监控系统的历史记录数据,利用OPC UA获取SCADA实时变量记录;S2:以SCADA监控系统的历史变量记录为输入,识别系统状态及状态转移,构建正常工况的系统有限状态机,并从SCADA监控软件的底层数据库访问SCADA变量记录与PLC程序变量之间的映射关系;S3:以PLC控制程序为基础,利用静态程序分析技术提取程序变量依赖关系;S4:在数据空间,以SCADA实时变量记录为基础,对比正常工况的系统有限状态机,识别系统异常状态及异常状态转移,完成攻击检测;S5:在代码空间,以攻击检测机制检测到的系统异常为基础,根据程序变量依赖关系和SCADA变量记录与PLC程序变量之间的映射关系,构建可疑攻击溯源链,识别可疑攻击权重,进行攻击溯源。2.根据权利要求1所述的基于代码数据融合的攻击检测与溯源方法,其特征在于,S2中,以SCADA系统变量记录log={v1,v2,

,v
m
}为输入,其中m表示SCADA记录的总变量个数,将任意变量v
m
离散化到统一值空间J
m
,构成完整的系统状态空间同时结合系统运行规律以及物理状体约束,以各变量统一构建系统状态,使实际抽象的系统正常状态远小于3.根据权利要求2所述的基于代码数据融合的攻击检测与溯源方法,其特征在于,S2中,定义SCADA系统第i时刻的变量记录u
i
={v
i1
,v
i2,
,

,v
im
}为状态,定义相邻时刻的变量记录u
i

u
i+1
为状态转移,定义相同状态转移的时间间隔为状态转移周期;以SCADA历史变量记录为输入,构建正常工况的有限状态机:以系统起始状态作为状态机初始状态、其余任何状态作为接收状态,在对应状态之间建立状态转移连边并记录相同连边出现的时间间隔。4.根据权利要求1所述的基于代码数据融合的攻击检测与溯源方法,其特征在于,S2中,自动化地从SCADA监控软件的底层数据库访问变量记录,递归地构建有限状态机并支持新状态、新状态转移及新状态转移周期的在线更新。5.根据权利要求1所述的基于代码数据融合的攻击检测与溯源方法,其特征在于,S3中,面向PLC基本指令表编程语言,以寄存器赋值运算为核心,构建PLC程序变量之间的依赖关系;具体地,针对PLC非跳转指令,设计传递函数D{Reg/Var}刻画PLC指令执行前后,寄存器存储变量Reg对相关操作变量Var的直接依赖关系;针对PLC跳转指令,刻画程序跳转前后的传递函数间D{Reg/Var}之间的依赖关系;针对PLC函数调用指令,刻画被调用函数的实际参数D{parameter}与形式参数D{argument}之间的依赖关系。6.根据权利要求1所述的基于代码数据融合的攻击检测与溯源方法,其特征在于,S4中...

【专利技术属性】
技术研发人员:陈积明胡玉娇程鹏杨泽域余华
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1