文/李学勇
近年来,烟草行业开始进行大规模技术改造,其中之一就是进行现代化物流系统建设。在该系统中,成套仓储、分拣设备的自动化运行,全部依赖于工业控制系统的支持。
由于“两化融合”的推动和工业物联网的出现,工控网络不可避免地从封闭走向开放,工控系统与信息系统的集成,给工业控制网络的安全带来了新的风险与挑战,尤其是以2010年爆发的“震网”病毒,给工业控制系统的安全敲响了警钟。
据工信部相关部门统计,在22个行业900套工业控制系统中,主要由国外厂商提供产品,相关系统运维也由厂商直接接管,存在漏洞的国外工业控制产品大量应用于我国重点领域工业控制系统,在数据采集与监控系统(SCADA)、分布式控制系统(DCS)、过程控制系统(PCS)中分别占据了55.12%、53.78%及76.79%的份额,在大型可编程控制器(PLC)中则占据了94.34%的份额。
在现代化烟草物流系统中,成套仓储、分拣设备的自动化运行,都依赖于工业控制系统的支持
图1: 2017年上半年全球范围内工控系统遭遇攻击分布
图2:不规则信号
图3:傅里叶变换稀疏后正弦基信号
2017年10月,卡巴斯基实验室通过对各种各样的信息系统,比如商业、政府组织、银行、电信运营商、工业企业和个人等的信息系统进行分析,发布了《2017上半年工业自动化系统威胁报告》。报告显示,中国工控系统遭受攻击程度排在第五位,占比达57.1%。2017年上半年全球范围内工控系统遭遇攻击分布,如图1。
(1)基础类
2010年美国国家标准与技术研究所发布了《工业控制系统安全指南》,2014年中国颁布了《工业控制系统信息安全》标准,2016年工业和信息化部印发《工业控制系统信息安全防护指南》,国家质检总局、国家标准委发布《工业通信网络 网络和系统安全》相关的6部推荐性国家标准。虽然这些都属标准和规范类的内容,并没有提出实际的安全防护机制,但是它们为后来的安全防护机制的研究提供了指导并奠定了基础。
(2)策略类
Liao等人提出了一种认证型的MODBUS协议,一般来说,现在占据国内PLC市场90%以上份额的国外品牌,基本都没有考虑过协议安全,因此,Liao等人提出了要对通过协议的信息进行加密处理。但是,类似于这种对协议通信进行加密的方式,都需要将已部署好的系统全部或者部分进行重新设计和布置,或者会很大程度增加通信负载,降低实时性。因此,对于实际的工控系统而言,这种基于改变原系统结构的方法都显得不太实用。
(3)检测类
比较常用的就是基于异常的网络入侵检测,其核心思想是通过网络流量信息,从正常的活动中识别出异常活动。Yong等人提出了一种异常检测方法,该方法通过分析he提取特征,识别异常活动。其它诸如此类的方法基本都能够取得较好的异常检测效果,但它们会消耗大量的网络资源,因此对工控系统的实时性有较大的影响,所以实际应用情况并不理想。
为了既不改变原有已部署的工控系统结构,又不要占用有限的网络资源,我们需要研究一种非侵入式的安全监测思路。该研究思路主要由旁路信息采集、特征提取以及异常检测等三部分组成。其中,旁路信息采集是通过技术手段,对工控系统主控制器PLC在运行中所泄露出来的各种信息进行采集;特征提取是针对采集到的旁路信息进行数学变换、基信号提取,用于设定正负样本和分类器;异常检测则是针对后来的攻击进行分类器对比,以确定是不是有效攻击。
旁路信息是指电子设备在运行过程中泄露出来的与其内部运行相关的各种物理信息,如温度变化、执行时间、功率消耗、电磁福射、声音等信息。利用这些旁路信息,可以识别电子设备的内部运行状态,这种技术被称为旁路分析技术。旁路分析技术中,应用比较广泛的是功耗分析、电磁辐射分析和时间分析,其中功耗分析由于其信息量丰富,受环境干扰相对较小,并且有分析效果比较好等优点,成为目前最有效的一种旁路信息分析方法,本文即以功耗为分析目标。
(1)旁路信息采集可行性探讨
工控系统的主控制器PLC是以循环扫描的方式工作的,一个扫描周期包括内部处理、通信服务、输入刷新、程序执行和输出刷新等五个阶段,其执行不同的指令集时,会消耗不同的功耗。事实上,PLC的如下特性使得用功耗分析来区分其内部运行的程序成为可能:
a.仓储、分拣工艺流程设计完成后,除非进行大的技改或者全部重新设计,否则在实际运行中,生产工艺不会经常改动,PLC的运行周期、环境和程序模块都有规律可循。
b.工艺固定、程序固定后,PLC的周期扫描工作方式就决定了,虽然是5个不同的阶段,但是以周期为单位,每个阶段的功耗消耗相对是固定的。
c.由于工控系统的稳定性要求,PLC的供电是以模块式供电,基本都采用厂家的电源转换模块给机架上其它各模块进行供电,因此我们可以很方便的在PLC的直流供电端采集CPU的功耗信息,而不需要对其内部的硬件或软件进行修改。
(2)旁路信息采集实现
对于功耗采集,一般有两种方式,一种是在直流电源端串入互感线圈,一种是并入采集电阻。但是由于互感线圈会收到PLC工作射频信号的干扰,所以一般采用并入采集电阻,阻值一般在0.1欧姆。而信号采集器,必须支持实时采集、存储和传输,与上位机有良好接口。
(1)提取原理
根据傅里叶变换原理,任何一个信号,都可以由一系列正弦函数表示,比如图2的不规则信号。
通过傅里叶变换,我们可以得到图3的一系列基信号。
当然可能不止4个,可以有更多,越多表示得越准确,这也反过来说明稀疏表示的一个问题,那就是稀疏到什么程度。上述信号,如果只用前2个基信号表示的话,肯定会差很多,用前3个表示会好一些。然而另一个问题可以看出,用两个表示,极其稀疏,表示起来也简单,但是效果差,用n个,很不稀疏,但是效果好,所以一个信号到底要稀疏表示到什么程度,这是一个变化的参数。
(2)提取算法
从原理阐述可以看出,任何一个信号都已分解为一系列基信号,这就是信号的特征库,为了更好地区分程序运行的正常样本和带有攻击的异常样本,就需要得到一组具有区分度,而且无信息冗余的特征值组合。而对于组合优化问题而言,基于傅里叶变换的稀疏编码算法是一个很好的解决方案。
当我们提取了合适的信号特征库后,就能建立起可用的信号样本。对于常用的检测攻击方法,都是将后续采集到的信号通过特征提取后,和原始建立的分类器进行对比,以此来判断是否存在攻击情况。然而,难点在于,我们在初始设计时,是无法采集到攻击情况下的信号特征值的,也就是负样本的采集率为零,这就只能基于正样本采集和训练进行检测的过程变得困难,因为我们需要获取足够多的正常样本。在获取正常样本后,通过比较待测样本与正常样本之间的差距来实现异常检测。基于长短记忆单元(LSTM)的神经网络模型克服了递归神经网络中的梯度消失和梯度爆炸问题,被证明在异常检测领域也有很好的效果,因此可以采用LSTM来实现对攻击的检测。
工控系统的主控制器PLC是以循环扫描的方式工作的,一个扫描周期包括内部处理、通信服务、输入刷新、程序执行和输出刷新等五个阶段,其执行不同的指令集时,会消耗不同的功耗。
本文针对当前工控系统遭到严重安全威胁的情况,研究了一种基于旁路分析技术的工控系统安全监测思路,介绍了旁路信息分析技术、旁路信息采集实现、特征值提取方法、算法以及异常检测算法等。该思路有别于其他介入式检测方法,对原始硬件系统和软件架构影响极小,对于工控安全防护具有较好的参考价值。