苏 畅,熊申铎,罗安琴,张 帅,龚钢军,刘 韧,刘文彬,吴秋新
(1.华北电力大学 北京市能源电力信息安全工程研究中心,北京 102206;2.北京信息科技大学,北京 100192;3.北京卓识网安技术股份有限公司,北京 102206)
工业控制系统(Industrial Control System,ICS)一般由SCADA、DCS、PLC、RTU等组成,广泛应用于电力、石油化工、轨道交通等涉及国计民生的重要领域[1]。随着信息化与工业化的深入融合,以及“互联网+”与“智慧能源”、“智慧城市”、“智能制造2025”等的快速推进,最初完全封闭的ICS越来越不能满足管理控制一体化的生产需求,ICS原有相对封闭的使用环境逐渐被打破,开放性和互联性越来越强,信息安全问题已经从传统的互联网范围延伸到了工业控制领域[2-3],物理隔离不再绝对安全,近几年连续出现了专门针对ICS攻击的“震网”、“duqu”和“火焰”等病毒,给伊朗等一些国家的关键基础设施造成了巨大破坏,也为各国工控领域信息安全敲响了警钟[4]。目前,我国已经形成了以电力系统为代表的世界上系统规模最大、结构层次最多、复杂程度最高的ICS[5-6]。我国的能源电力行业安全防护水平差异很大,其中,电网企业的信息安全防护水平高于发电企业。发电企业的ICS普遍存在工控协议安全性差、系统主动防御水平低、纯物理隔离防护致使系统互联互通性不足等问题。而且,由于发电企业历来更重视工业生产的稳定性与连续性,致使生产控制系统的升级改造频次少、系统设备老化严重、生产控制系统与信息安全防护设备匹配性差,形成了“安全问题多、极易出问题、但无人敢动”的局面,因此,亟需在现有安全防护体系、安全监测体系、安全响应体系的基础上,构建电厂典型仿真验证模型,开发基于“可信、可管、可控”环境下的仿真演练平台。
电厂ICS具有很强的复杂性和专用性,传统IT系统风险评估中采用的漏洞扫描、渗透测试等入侵方法会对ICS系统运行产生影响[7-8]。仿真方法以其安全性、经济性和可重复性等优点成为ICS安全研究的一种重要手段。目前业内多以软件仿真进行测试,但要想分析各种计算机病毒和恶意软件对ICS信息物理系统所造成的真实的影响有着相当大的难度,而且软件无法完全仿真与硬件相关的部分,不能完全代替硬件仿真,软件仿真多针对网络攻击,无法及时发现隐蔽性和滞后性较强的其他类型攻击,缺乏与真实网络设备组件的交互,不能真实反映恶意攻击对ICS中的信息物理系统进行破坏的情况。因此,本文依照计算机网络、工控安全、虚拟化与半实物仿真等技术,提出了基于LabVIEW和MATLAB的ICS半实物仿真模型。
仿真中将实际控制对象引入到仿真控制系统的方法叫做半实物仿真,它具有开发周期短、可靠性强、置信度高及研发经费少等优点,而且实物部分放入仿真中以系统整体性指标进行检验,更具有真实性,也更符合工业现场生产业务的连续性和稳定性的保障需求。文献[9]采取半实物建模的虚实结合的动态仿真方法,构造可以用来测试主机攻防技术的SCADA主机仿真靶场,通过软件实现了机组启停、模拟量信号、正常运行以及故障等功能,并利用真实攻击以及防御实验验证了靶场用于测试的可行性,其系统模型的响应与ICS中的实际物理过程一致,而且系统子模块能自由取舍、易于修改。相对于纯软件仿真,半实物仿真可以更加清晰、真实地再现ICS工作过程、发现存在的信息安全问题,以达到灵活、主动安全防御的实际效果。
本文参照IEC62264标准的层次结构模型[10],同时将SCADA系统、DCS系统和PLC系统的模型的共性进行抽象,将通用ICS按功能划分为5个层次。具体如图1所示。
图1 ICS层次架构
图1中,ICS具体分为企业资源层、生产管理层、过程监控层、现场控制层和现场设备层。企业资源层和生产管理层主要与工业运行管理有关,称之为管理区;过程监控层、现场控制层和现场设备层主要与现场控制相关,称为控制区。本文针对ICS参考模型控制区所对应的三层架构开展半实物仿真测试,在模型中利用MATLAB来模拟电厂现场实际物理过程,用LabVIEW软件构造监控系统操作界面,通过OPC协议及共享变量引擎SVE实现LabVIEW与MATLAB之间的实时数据交换,同时通过控制PLC来对现场数据进行采集,构建了ICS半实物仿真模型,实现发电厂ICS关键设备运行状态模拟、数据采集、远程与现场控制等功能,可有效验证ICS工业控制过程及其存在的安全漏洞。
在图1控制区中,上层是过程监控层,有数据采集与监视控制系统SCADA和人机交互界面HMI,利用图形化界面实现系统和用户之间信息的动态交互,操作员可以看到仿真机运行的实时信息并进行及时操作。中间层为过程控制层,使用德国西门子公司S7系列PLC,负责现场信号接入接出,与工控机、HMI等通信,并完成信号采集、处理标准的控制算法。底层是现场设备层,现场设备是基于MATLAB/SIMULINK的现场全物理过程仿真模型,通过OPC协议及共享变量引擎SVE实现MATLAB与LabVIEW之间的通信。本文所设计的半实物仿真系统架构如图2所示。
图2 工控系统半实物仿真系统架构
本系统可以分成仿真和监控两个部分:底层仿真部分,MATLAB对现场设备进行仿真与LabVIEW进行数据交互,并把信号通过PLC传至上位机HMI等设备;上层监控部分,上位机可以通过指令对PLC进行操作,实现对控制对象运行的在线监控。
在LabVIEW中调用MATLAB/SIMULINK的方法有利用动态数据交换DDE技术、动态链接库DLL技术、ActiveX技术[11]。本文用过程控制对象连接与嵌入协议(Object Linking and Embedding for Process Control,OPC)及其共享变量引擎SVE来解决两者之间的通信问题。SVE为创建一个与SIMULINK模型连接的用户界面提供了一种方法。使用SVE,可以在同一个程序框图的不同循环之间或者网络上的不同VI之间共享数据,当要添加共享变量到一个LabVIEW项目后,可以将其拖至VI程序框图中进行读写操作,然后进行共享变量网络发布,网络发布的共享变量通过SVE在不同的VI之间通信,具体的SVE利用NI-PSP数据传输协议来允许用户读写数据[12-13]。图3具体描述了MATLAB与LabVIEW之间的信息交互。共享变量部署到SVE上,网络上的任何节点都可以读写SVE发布的共享变量。当写入到一个共享变量节点,LabVIEW将这个新值发送给部署和托管这个变量的SVE,SVE处理环路发布这个值,从而MATLAB可以得到更新后的变量值。
图4 三相同步电机MATLAB程序框图
本文以发电厂典型的三相同步电机的仿真为例设计了一个由三相同步发电机、三相电压电流测量装置、三相RLC负载以及三个断路器组成的Simulink仿真模型,如图4所示。断路器的作用是电流、电压速断保护,当流过的电流大于整定值时断路器跳。断路器与三相并联负载相连,可以进行逻辑判断,产生控制脉冲,能够在规定的时间内承载和开断异常回路条件下的电流,对过载、短路、欠压有着速断保护的作用。启动仿真之后,可以在LabVIEW中看到仿真实时数据,如转速、电流、电压、功率等。
图3 共享变量在MATLAB与LabVIEW之间的交互流程图
由于ICS存在漏洞且缺乏防护措施,当外来攻击源攻破工业网络时,对SCADA主站系统或PLC设备完全接管,从而下发错误指令或伪造上传的数据;对系统感染病毒和植入木马程序,使其工作异常;隐秘窃取其核心数据,而不被发现[15]。2010年爆发的“震网”病毒就是典型的通过病毒感染PLC设备,实现异常控制现场物理运行装置,并同时伪造现场上传数据为正常状态,从而欺骗上位机SCADA系统。因此,为了更好地模拟测试电厂ICS系统的信息安全问题,可根据以上方法搭建一个虚实结合的ICS信息安全半实物仿真模型验证平台,从而可以具体再现工控网络攻防情景,如图5所示。
图5示例结合半实物仿真平台,复现发电厂工控网络典型拓扑结构,突出发电厂PLC的核心控制功能。验证测试系统中部署了两套不同的PLC,一套为低版本未加固PLC-a,存在一些公开漏洞和后门账户,开启Telnet服务,通过交换机直接与上位机SCADA操作员站相连,另一套为高版本升级加固后PLC-b,已禁止Telnet、FTP、HTTP等服务,通过防火墙、交换机与上位机SCADA操作员站相连。攻击分为以下两个层次:
(1)通过对SCADA软件植入木马来实现对SCADA软件的接管,同时利用PLC-a的漏洞,向其下发停止信号使其通信模块暂停(如:构建Modbus的playload代码:04 8b 00 00 00 06 ff 08 00 04 00 00,利用UDP的17185端口让PLC-a重启),如图6(a)所示。
(2)采用DDoS攻击,不断地向PLC-a发送垃圾指令,造成PLC-a设备拒绝服务,上位机与PLC-a设备通信中断,但攻击结束后,通信自动恢复正常,如图6(b)所示。
同理对PLC-b进行上述攻击,未发现监控系统的异常情况,如图6(c)所示,测试中发现,由于系统设备自身版本、设备配置和策略配置的差异性,PLC-a的防攻击能力要低于经加固升级后的PLC-b,因此具体对二者的攻击行为和攻击难度均有较大差异。通过攻击测试和仿真系统的现象展示,切实反映出工业控制系统的漏洞与风险是能防范的、可控制的。
图6 同攻击下三相同步电机电流运行图
本文研究了ICS半实物仿真平台的架构,验证了通过OPC技术、共享变量等技术建立MATLAB与LabVIEW之间通信的可行性,在实验室条件下,采用MATLAB模拟三相同步电机发电系统,并在LabVIEW中对其运行情况进行有效的监控,直观显示在三相同步负载下实时的电流、电压、功率以及转速的情况,验证了仿真模型的联通性。最后,本文将半实物仿真模型与现有工控安全漏洞相结合,针对平台模型难以重现的工控安全问题采用虚拟化手段,建立半实物仿真模型,切实模拟发电厂实际问题,再现了真实现场异常情况,这也对ICS信息安全防护提供了一种新的思路。