徐 博 杜 鑫 周纯杰
(华中科技大学人工智能与自动化学院 武汉 430074)
工业控制系统(industrial control system, ICS)简称工控系统,常用于国家基础设施[1-2],如受到破坏将造成重大损失.近年来,由于开放的工业通信协议的普及,缺乏信息安全考虑的ICS面临严重信息安全威胁[3],如Stuxnet病毒[4]、Colonial勒索事件[5]等.异常检测可以检出ICS的信息安全威胁,及时发现异常行为[6].
随着工业大数据、工业物联网等技术的应用,工业界开始数字化转型,世界各国出台了对应的发展战略[7],如美国工业互联网、中国制造2025、德国工业4.0等.在这种背景下,工控系统庞大的数据规模加大了异常检测难度.
目前的异常检测技术主要是基于数据驱动方法[8],如神经网络[9]、遗传算法[10]、支持向量机[11]等,它们在现阶段的工控系统中都存在以下瓶颈:
1)异常运行样本缺失.工控系统的变量种类繁多且变量间高度耦合,单个变量的隐蔽异常行为容易被其他变量的鲁棒响应所掩盖,导致自然记录的异常样本中异常特征不明显.
2)大规模数据的实时传输能力较差.工控系统原有的数据传输方案和数据存储技术难以满足大规模数据的实时传输需求.
3)缺乏协同性和可视化效果[12].现有工控系统的人机界面设计简单,只具备过程监控等简单的显示功能,监控员难以直观看到异常告警信息.
近年来,数字孪生技术先后经历了概念产生期[13]、航空航天应用期[14]、多行业应用期[15].如今数字孪生技术的应用也扩展到工业控制领域.在主流的数字孪生5维模型中,异常检测是孪生服务中的重点应用,在二者的结合方面已有初步研究.为此本文将数字孪生技术应用于工控系统的建模及其异常检测中,充分发挥数字孪生技术的虚实一致性、实时交互性和可视化优势,以解决当前异常检测的瓶颈问题;同时借助数字孪生系统的算力和实时测量数据,实现在线异常检测.
首先设计了面向异常检测的数字孪生模块,借助数字孪生技术的虚实一致性和实时交互性解决异常检测方法中标签数据难获取、实时检测能力差的问题;并基于该孪生系统,设计了攻击状态下的异常检测模块,实现工控系统的在线异常检测.
如图1所示,数字孪生驱动的工控系统异常检测总体框架包含2个子模块:面向异常检测的数字孪生模块、攻击状态下的异常检测模块.
图1 数字孪生驱动的工控系统异常检测框架
数字孪生模块为异常检测模块提供离线训练数据和实时监测数据,异常检测模块为数字孪生模块返回在线异常检测结果.最后数字孪生模块对异常检测结果进行分析,并判断是否需要触发异常告警.
2个子模块的设计思路:
1)数字孪生模块(面向异常检测).综合被控对象的资料,分别建立机理模型、数据模型、3维模型.机理模型为后续异常检测算法模拟异常数据;数据模型采用高性能数据通信协议和高扩展性数据存取平台,实现海量监测数据的实时传输;3维模型提供人机交互与异常告警功能.
2)异常检测模块(攻击状态下).构建长短期记忆(long short term memory, LSTM)网络,结合工控系统的异常模拟数据,训练离线状态预测模型;将离线模型部署到搭建的数字孪生模型中,实现在线状态预测;最后对系统状态预测值和实际测量值进行偏差分析,判断是否发生异常.
工控系统的数字孪生技术有如下特性[16]:孪生对象与物理对象在全生命周期实时映射,通过实时数据修正孪生模型;实现物理对象从数据采集、信息提取到模型集成的全流程闭环应用.
图2所示为面向异常检测的数字孪生模块的示意图,其中包含3个子模型,采用数字孪生的模型一致性、实时交互性、3维可视化方法解决异常检测的瓶颈问题.
图2 面向异常检测的数字孪生模块设计
1)机理模型.利用数字孪生的虚实一致性解决异常检测样本数据少的难题.该机理模型为工业系统物理过程模型,推导机理公式并将其转为孪生体的输入输出映射脚本.在孪生系统中注入异常,选取影响系统安全的关键变量为目标,随机更改该目标值;同时记录模拟运行数据,将其用于后续训练.
若系统监测变量过多,可通过数据降维筛选出重要控制变量及对应的因变量,分别用yj和xi表示,其中i∈{1,2,…,m},j∈{1,2,…,n}.用xi推导yj的数学表达式,得到如下的数学表达形式:
(1)
以变量yj为例,在高阶比例积分微分(proportion integration differentiation, PID)控制系统中,其数学表达形式可以是多项式:
(2)
对于式(2)中的参数Ki,考虑到元件的老化问题,采用数据拟合的方式进行计算.
2)数据模型.利用数字孪生的实时交互性解决在线异常检测能力差的问题.选取应用于过程控制的OLE统一架构(OLE for process contrl: unified architecture, OPC UA)通信协议[17]和MySQL数据库构建高速可扩展读写平台,满足多平台访问需求.
通过TCP/IP协议将现场可编程逻辑控制器(programmable logic controller, PLC)采集的监测数据发送到车间OPC服务器,再通过订阅式OPC UA协议将服务器中的数据转发到远程OPC客户机.利用ODBC接口从客户机的WinCC平台中读取数据,并写入MySQL数据库.
3)3维模型.利用数字孪生的3维可视化能力增加异常检测的协同性和人机交互性.在Unity 3D软件绘制孪生元件和孪生设备,进而构建孪生场景,添加监测数值显示、被控对象运动轨迹、异常告警弹窗等动画,以直观反映异常信息.
4)数模联动.如图3所示,对上述3个子模型进行整合,实现三者的数模联动.首先在3维模型中,将机理模型中的数学公式映射为每个孪生元件的C#脚本;随后根据孪生元件之间的输入输出关系和数据流方向,将所有孪生元件依次连接,并控制仿真数据在孪生元件之间的流动过程;最后将仿真数据同步记录到数据模型的MySQL数据库中.
图3 数模联动设计图
如图4所示,本文主要在攻击状态下进行分析,给出攻击状态下工控系统异常检测模块的示意图,其中包含模型训练、在线预测、异常检测3个部分.
图4 攻击状态下的ICS异常检测模块设计
1)离线模型训练.
循环神经网络(recurrent neural networks, RNN)能挖掘数据中的时序信息,解决时序分析问题[18],符合本文需求.但是其存在长期依赖问题,LSTM网络便为解决这个问题应运而生[19].
在短时状态ht的基础上,LSTM网络新增了长时状态ct、遗忘门、输入门和输出门,以解决长期依赖问题.计算公式如式(3)~(6)所示,其中xt,wt,bt分别为输入、权重、偏置.
遗忘门:
ft=σ(wf·[ht-1,xt]+bf).
(3)
输入门:
(4)
长时状态:
(5)
输出门:
(6)
图5所示为3层LSTM网络,将上文数字孪生模块生成的模拟攻击数据作为训练集,在Keras环境下训练离线模型.
图5 3层LSTM网络结构图
为衡量和比较预测效果,使用MSE,RMSE,MAE,MAPE,SMAPE这5个误差指标进行分析.
2)在线预测模型.
将离线模型导出为h5格式文件,通过单机部署的方式将其部署到数字孪生系统中,结合实时监测数据,在线预测工控系统的状态值.
3)在线异常检测.
对系统状态的预测值和测量值进行偏差分析,这里的偏差程度有如下2种计算指标:
(7)
其中,xi为预测值与检测值的绝对差值,i∈{1,2,…,m},即系统有m个关键变量.differ1i和differ2分别表示系统单变量的偏差程度、所有变量的偏差程度加权和.αi,βi为权重系数.式(8)条件成立时表示系统出现异常:
differ1i≥THR1或differ2≥THR2,
(8)
其中THR1和THR2为对应的判断阈值.
最后计算每轮检测的异常检测精度.为排除单个异常数据集的偶然性,对多个数据集进行异常检测,统计平均每轮的精度.
在工业生产控制过程中,双容水箱是一个经典的受控对象[20].本文在不影响正常运行的前提下,以双容水箱平台作为实验对象,对工控系统异常检测展开深入研究.
1)数字孪生模型的搭建.
图6所示为双容水箱平台的物理结构图,图中3个水箱为阶梯式分布,有较强的耦合关系[21],其中3#水箱不受控制.
图6 水箱平台物理结构图
根据以上设计框架,搭建该水箱平台的数字孪生模型如图7所示:
2)水箱机理模型推导.
筛选出l1,l2,l3,v1,v2,f,p,D1,D2这9个关键变量,分别对应1#~3#水箱液位(level1~level3,单位cm)、1#和2#阀门开度(valve1和valve2,单位%)、流量值(flow,单位L/min)、压力值(pressure,单位Kpa)、1#和2#水箱液位设定值(D1和D2,单位cm).
(9)
(10)
(11)
f=6.97×(1.02v1)-11.64,
(12)
p=-7.03×(1.022×v1)+48.34.
(13)
3)攻击注入及异常数据模拟.
这里对物理层关键变量进行篡改攻击,以实现攻击注入.将决定水箱液位高度的D1和D2作为篡改对象,在数字孪生系统的机理模型中以不规律间隔篡改二者数值,且保证篡改值随机.总计进行26次篡改攻击,获取6 000行异常样本数据,采样频率为1 Hz,采样间隔为1 s.攻击路线如表1所示:
表1 攻击路线表
给出在6 000行离线异常样本上的训练效果,如图8所示.再将离线模型部署至数字孪生系统,其2 000行在线测量数据的预测效果如图9所示.
图8 离线训练效果
图9 在线预测效果
受篇幅限制,只绘制了level1,level2,flow,pressure的对比曲线.随后计算在线预测时5个变量的预测误差,如表2所示:
表2 在线预测误差表
计算结果表明,在线预测时各变量的误差整体较小,但其中level2和pressure的误差较大,认为这是受神经网络的外延性差、未知工况预测能力低等影响所致[22].这是异常检测方法存在误报的原因,但对异常检测率的影响有限.
进行10轮在线异常检测实验,每轮都随机注入篡改攻击,以验证异常检测方法的在线应用能力及其检测结果的可重复性,计算结果如表3所示:
表3 异常检测率
表3计算结果显示,平均每轮异常检测率为88.46%,该检测率符合预期标准,验证了本文所提检测方法的有效性.同时,通过对比得出,常规异常检测方法的平均异常检测时间为104 ms,数字孪生驱动的异常检测方法的平均异常检测时间为67 ms,这验证了本文所提检测方法的实时检测性能.此外,当在线检测到异常时,数字孪生系统会给出如图10所示的UI界面和告警动画,这体现了本文所提检测方法的可视化优势.
图10 数字孪生系统的在线异常告警界面
本文分析了工控系统异常数据缺失和实时检测能力差的问题,为其引入数字孪生技术,设计了数字孪生驱动的工控系统异常检测框架.结合数字孪生技术中虚拟实体与物理实体的模型一致性、实时交互性,基于在线异常检测模型,实现网络攻击下ICS的物理过程的异常检测.
随后以双容水箱为实验对象,运用WinCC,Unity3D,MySQL等开发环境,搭建了数字孪生系统,并在此基础上实现了系统状态实时预测和在线异常检测.
后续将进一步研究机理模型与数据驱动模型相融合来改进异常检测模型,进一步提高工控系统网络攻击下异常检测的准确性.