康荣保,张 晓,杜艳霞
(中国电子科技集团公司第三十研究所,四川 成都 610041)
工业控制系统(Industrial Control Systems,ICS)是由各种自动化控制组件和对实时数据进行采集、监测的过程控制组件共同构成的确保工业基础设施自动化运行、过程控制与监控的业务流程管控系统[1]。这些控制系统广泛应用于国家关键信息基础设施关键业务系统(电力、油气、交通、供水等),是确保这些系统正常运行的核心。工业控制系统建设之初,由于网络封闭性、业务高实时性、可靠性、功能安全性等特点,对系统信息安全设计考虑较少。近年来,Stuxnet、Havex、BlackEnergy、Industroyer、TRITON等工业控制系统攻击事件频发,国家、专业组织支持的攻击背景引起了各国政府、标准化组织、工控企业和安全厂商对工业控制系统安全的高度重视。
工业控制系统包括数据采集与监控系统(Supervisory Control and Data Acquisition,SCADA)、 分 布式控制系统(Distributed Control Systems,DCS)、过程控制系统(Process Control System,PCS)、可编程控制器(Programmable Logic Controller,PLC)、人机交互界面设备(Human Machine Interface,HMI)以及确保各组件通信的接口技术[1]。SCADA系统包括数据采集终端、数据传输网络和人机交互软件,提供集中的监视和控制,以便进行过程的输入和输出,主要用于控制分散的资产,以便进行集中数据采集,在电力传输和分配系统、水处理、石油天然气管道、铁路和其他公共运输系统等分布式系统中应用广泛。DCS系统按区域把微处理机安装在测量装置与控制执行机构附近,将控制功能尽可能分散,管理功能相对集中,常用于发电厂、炼油、污水处理厂、化工厂和制药厂等生产作业集中程度较高的领域。PLC是用户可编程控制器,可用于保存实现特定功能的指令,如I/O控制、逻辑、定时、计数、PID控制、通信、算术、数据和文件处理等。PLC是组成SCADA系统和DCS系统重要的控制部件。
根据工业控制系统应用场景行业和控制系统功能需求的不同,其控制系统中的工业流程、设备组成、通信协议和网络拓扑也有一定的区别,但是基本架构是相同的。工业控制系统的系统架构通常由企业网络层、控制中心层、现场设备层以及采集执行层组成,如图1所示。
图1 工业控制系统典型网络结构
企业网络层包括企业管理中运行相关的各种业务(ERP系统、企业办公网、企业公开服务(邮箱、web站点)等)、MES制造执行系统等。控制中心层由集中监视、管理的计算机和服务器组成,实现业务、流程的远程监控。现场设备层由各种控制终端组成,具有扫描、信息预处理及监控等功能,并能在与控制中心的通信中断时独立工作。采集执行层由传感器、变送器和执行器或泵机组、压缩机组等组成,实现现场的数据采集与控制执行。SIS(Safety Instrumented System)安全仪表系统是一个独立的控制系统,可独立监控受控过程的状态。如果过程中有参数超过了定义的危险状态,则SIS会尝试将过程恢复到安全状态或自动执行流程的安全关闭(紧急停车),主要为核电站、炼油、石化和其他过程工业提供连续的工艺监视、安全联锁和保护。
工业控制通信协议为工业控制系统主站(操作员站、工程师站、SCADA主站等)与工业控制设备、设备与设备之间的通信规约。工业控制通信协议设计之初,大都由工业控制厂商设计开发专有的通信协议,后期随着工业控制协议的广泛应用、互联互通互操作的需求,众多标准化组织(如IEC、ISO、ANSI等)、工业组织、企业联盟开始致力于工业控制协议的标准化工作。目前,应用比较广泛的公开工业控制协议有Modbus TCP/IP、ProfiNet、HSE、EtherNet/IP、OPC-UA、IEC60870-5-101、IEC60870-5-103、IEC60870-5-104、IEC61850、DNP3.0和BACnet等。此外,各工业控制系统厂商还针对自身的工业控制设备,开发了私有通信控制协议,如Siemens S7协议、OMRON FINS协议和Phoenix Contact PCWORX协议等。大多数工业控制通信协议有一个共同点:协议设计之初都没有考虑信息安全(机密性、完整性、可认证性)要素。随着工业以太网的快速发展和普及,工业控制通信协议安全问题日益突出。
工业控制系统攻击事件频发,造成的影响日益严重。下面选取Stuxnet、Havex、BlackEnergy、Industroyer、TRITON等工业控制 APT(Advanced Persistent Threat)攻击进行特征分析,如表1所示。
表1 典型工业控制系统攻击事件
通过上述的工业控制攻击事件分析,可以看出目前工业控制系统威胁的特点。
(1)工业控制系统攻击入口多样
工业控制系统由于应用场景的特殊性和重要性,大都采用封闭网络建设。随着工业互联网的发展,工业控制系统和设备通过企业网或直接连入互联网的情况逐渐增多,为攻击者渗透接入提供了便利。从工业控制攻击事件统计看出,目前针对工业控制系统的攻击接入方式包括移动设备摆渡、企业网渗透跳板接入、工作人员便携式运维终端摆渡、社会工程学(钓鱼邮件)、水坑攻击、联网工业控制服务/终端漏洞直接利用等。
(2)工业控制系统攻击广度宽泛
从攻击案例可以看出,工业控制系统攻击对象覆盖了工业控制系统的专业应用软件、通信协议、控制设备等多类目标,目标范围广泛。同时,利用工业控制系统基础网络、硬件/软件环境存在的漏洞实施综合攻击,最终达到信息窃取、攻击破坏的目的。
(3)工业控制系统攻击深度升级
从攻击案例可以看出,工业控制系统攻击类型包括以Havex为代表的敏感信息窃取类攻击、以BlackEnergy和Industroyer为代表的工业控制系统破坏并造成一次系统停工类攻击和以Stuxnet和TRITON为代表的物理损毁目标类攻击。随着时间轴线的发展,攻击者对目标业务理解不断深入,攻击深度不断升级。
工业控制系统安全主要包括功能安全和信息安全两方面。功能安全主要保障工业控制系统应用场景和环境的物理安全、生态安全和人身安全等。信息安全主要包括工业控制系统的网络安全、设备安全、应用安全和业务安全等。
2.1.1 工业控制系统的功能安全(Safety)模型
以石油石化行业为例,工业控制系统的功能安全(safety)模型如图2所示的洋葱模型组成。从里层到外层,包括工艺设计、基本工艺控制系统(如DCS系统)、报警/操作人员干预、自动执行的安全仪表系统(SIS)、安全泄放设施、物理防护和应急响应。目前,先进的、具有国际水平的工业控制工艺装置基本上采用了该模型的安全防护策略。
图2 石油石化行业典型安全(Safety)模型
2.1.2 工业控制系统的信息安全(Securtiy)模型
国际标准化组织和工控行业协会已针对工控系统提出一系列信息安全标准,如IEC 62443。IEC 62443-《工业过程测量、控制和自动化网络与系统信息安全》是IEC/TC65(工业过程测量、控制和自动化标准化技术委员会)WGl0(网络与系统信息安全工作组)为实现工业控制系统的安全保护而制定的标准[2]。该标准指导系统集成商、产品提供商和服务提供商对其产品和服务进行安全性评估,将工业控制系统分为现场设备层、监控层和企业层,指出每层都应采取相关安全防护措施。
国内以电力行业为例,针对电力监控系统的安全和稳定运行,我国制定了一系列规定和要求,如发改委第14号令《电力监控系统安全防护规定》、国家能源局第36号文《关于印发电力监控系统安全防护总体方案等安全防护方案和评估规范的通知》等,要求电力监控系统安全防护工作应当落实国家信息安全等级保护制度,按照国家信息安全等级保护的有关要求,坚持“安全分区、网络专用、横向隔离、纵向认证”的原则[3],保障电力监控系统的安全。基于该原则构建的电力监控系统信息安全(Security)模型,如图3所示。
该模型为发电企业、电网企业以及相关规划设计、施工建设、安装调试、研究开发等单位的安全防护工作起到了指导作用。它注重强化电力监控系统的边界保护,目的在于保障电力监控系统安全,防范黑客及恶意代码等对系统的攻击,防止电力监控系统的崩溃和瘫痪以及由此造成的电力设备事故或电力安全事故。
图3 电力监控系统信息安全(Security)模型
在分析工业控制系统安全模型的基础上,重点开展工业控制系统信息安全防护技术的研究,以工业控制系统在线环境、安全测试环境为安全保障测试对象,从安全防护能力体系(监测预警、体系防护、攻防评估)、防护层次(网络防护、设备防护、应用防护、业务防护)和防护流程(事前防护与评估、事中检测与响应、事后恢复与取证)等多个维度,提出“多维一体、体系防护”的工业控制系统信息安全防护技术框架,如图4所示。
图4 工业控制系统信息安全防护技术框架
2.2.1 安全防护能力体系
监测预警。对接入专用网络和互联网的工业控制系统面临的威胁态势进行监视,并对工业控制系统内部及外部连接进行全时段、全流量及多业务分析,构建早期异常行为和攻击前兆特征发现预警能力,提供工业控制信息安全事件的追溯能力。
体系防护。以确保工业控制安全生产为前提,通过流量监控、分域防护、边界保护、密码加固等手段形成纵深防护体系,结合不同行业的特点,提供针对性的工业控制信息安全解决方案和服务,强化工业控制信息安全管理能力,保障工业控制信息系统的运行安全。
攻防评估。以高逼真度工业控制系统攻防仿真环境为基础,分析工业控制网络、协议、设备、系统、应用、软件及工艺流程等方面存在的漏洞,同时评估其存在的风险,以攻防对抗评估工业控制设备、系统、方案的安全性、可靠性等。
2.2.2 安全防护层次
网络防护。基于“安全分区、网络专用、横向隔离、纵向认证”等安全原则,部署网闸设备、防火墙/工业控制防火墙、通信加密认证装置等产品,实现网络分域防护、边界防护、网络通信加固等,达到网络防护安全增强的目的。部署工控系统态势感知系统,通过对工业控制系统实施网络探测感知、业务分析、威胁监测,掌握非法外联设备、安全漏洞、威胁告警等态势信息。
设备防护。针对工业控制系统应用部署的设备平台(数据库服务器、工作站等),在不影响生产业务的前提下,国产自主设备替代、安装可信模块等方式,提高应对恶意软件攻击的能力。针对工业控制系统专用设备(PLC、RTU等),一方面针对设备存在的安全漏洞或配置漏洞,通过固件更新、身份认证增强(如设置高强度配置访问口令)缓解设备遭受攻击的风险;另一方面,国内已有相关厂商进行安全RTU、安全PLC等设备研发,通过替换部署具有安全基因的控制设备,进一步提升应对攻击的能力。
应用防护。针对工业控制系统应用部署的设备系统和软件,在不影响生产业务的前提下,实施安全漏洞补丁修复;针对工业控制系统专业应用软件加强身份认证和角色访问控制手段,加大攻击者获取工业控制应用控制权限的难度;针对关键数据库、应用控制系统实施双机一致性认证、容灾备份手段,提升工业控制应用系统的健壮性。
业务防护。通过流量监控,部署工业控制防火墙、业务数据分析系统等产品,结合工业控制系统工艺流程,对工业控制协议实施深度解析,分析业务执行逻辑关系,实现工业控制系统工艺流程业务的深度识别和合法性判定,具备“错误的时间出现的正确业务报文”“非授权操作人员执行的正确业务操作报文”“逻辑顺序错误的合规业务报文”等非正常业务操作识别筛选和阻断能力。
2.2.3 安全防护流程
事前防护与评估。通过多层次防护手段,对目标工业控制系统实施立体防护;针对上线前的工业控制设备、系统,实施漏洞挖掘、分析与安全评估;针对上线后的工业控制系统,在不影响现有业务的前提下,实施在线的渗透测试、流量监测、漏洞扫锚探测等,分析评估目标系统的安全状态,获取目标系统的安全态势。
事中检测与响应。采用流量分析、日志分析等手段,通过漏洞攻击特征匹配、基于行为的攻击检测、业务报文逻辑分析等技术,实现攻击入侵行为检测和日志记录,进行威胁等级判定和实时预警,同时通过工业控制防火墙实现威胁阻断,并启动相关应急响应机制和流程,保证生产系统的正常运行。
事后恢复与取证。针对识别发现阻断的攻击,实施审计、取证和溯源分析;针对造成破坏效果的攻击,启动应急响应机制和流程,迅速开展生产业务恢复,并开展安全审计、攻击取证和溯源定位。
工业控制系统漏洞是工业控制系统攻防双方关注的焦点。知己知彼,方能百战不殆。掌握工业控制系统漏洞挖掘与分析技术,是做好工业控制安全防护的前提。漏洞挖掘是对协议标准、源代码、二进制代码、中间语言代码中的漏洞特别是未知漏洞进行主动发现的过程[4]。工业控制系统漏洞挖掘,针对工业控制系统软件、协议、设备等目标对象,综合利用静态挖掘方法(流分析、符号执行方法、模型检测分析方法、指针分析方法等)和动态挖掘方法(模糊测试方法、动态污染传播等)实施漏洞挖掘。工业控制漏洞分析验证主要采用私有协议逆向分析、固件逆向、软件反编译分析、软件动态调试、状态监控等技术对目标对象实施漏洞分析与验证。
工业控制数据采集与融合分析技术是工业控制系统威胁监测预警、态势感知的基础,涉及工业控制网络信息采集、数据格式化、预处理、协议深度解析和业务数据关联等环节。通过对工业控制系统实时数据流量、网络协议、通信行为、操控指令、设备状态和行为的数据采集和处理,结合建立的已知工控协议和未知私有协议分析模型,实现工业控制协议的深度解析。以此为基础,结合工业控制工艺业务流程,分析数据报文的关联关系。
工业控制系统威胁监测预警技术主要涉及威胁建模与等级划分、已知漏洞利用攻击检测、未知威胁检测和基于工控协议的业务攻击检测等内容。根据攻击的危害程度,对工业控制攻击实施威胁等级划分。针对已知漏洞利用攻击,通过漏洞攻击数据/代码特征匹配识别发现已知攻击。针对未知威胁,以行为监测为核心,采用沙箱动态执行技术,利用动态行为仿真分析、行为基线分析、数据建模分析相结合的手段,对工控特种木马、未公开漏洞、APT等未知威胁进行实时监测。结合工业控制系统工艺业务流程,对工控协议数据包进行关联分析,挖掘数据包逻辑关系,识别基于工业控制协议的特定攻击。
工业控制系统是国家关键基础设施的重要组成部分,工业控制系统攻击取证与追踪溯源技术是国家关键基础设施防御的关键技术。综合使用基于日志的协作追踪溯源技术、网络恶意行为特征、跳板主机回溯、工业控制系统蜜罐、攻击代码分析、威胁情报库等技术和资源[5],对工业控制系统攻击源主机、攻击组织、攻击路径进行追踪溯源,为工业控制系统深度防御和进一步的反制提供支撑。
工业控制系统是国家关键信息基础设施正常运行的核心,开展工业控制系统安全防护研究与实践,是保护国家关键信息基础设施的必要举措。因此,急需通过构建工业控制系统安全防护技术框架和体系,提高对工业控制系统安全加固、状态监视以及对威胁事件的监测预警能力,以应对工业控制系统面临的安全威胁挑战。