SCADA系统信息安全技术
2013-08-18吴亚凤中国劳动关系学院北京100048
吴亚凤(中国劳动关系学院,北京 100048)
1 问题的提出
当今的SCADA(Supervisory Control And Data Acquisition)系统已经成为电力、石化、市政、管网、交通运输等各个领域的控制神经中枢,它运行的安全与否直接决定了其被控装置能否正常运行。而随着2010年10月发生在伊朗核电站的“震网”(Stuxnet)病毒事件,以往被认为SCADA系统是专用系统难于受外部侵入的观念被打破,SCADA信息安全问题被推向了有史以来最为严峻的地步,工信部随后发451号通知,明确提出工业控制系统信息安全面临的严峻形势,要求加强工业控制系统信息安全管理工作。
在IEC62443中针对工业控制系统对信息安全的定义是[1]:保护系统所采取的措施;由建立和维护保护系统的措施所得到的系统状态;能够免于对系统资源的非授权访问和非授权或意外的变更、破坏或者损失;基于计算机系统的能力,能够保证非授权人员和系统既无法修改软件及其数据也无法访问系统功能,却保证授权人员和系统不被阻止;防止对工业控制系统的非法或有害入侵,或者干扰其正确和计划的操作。
针对SCADA系统的信息安全防范内容就是防止有意或者无意、非授权的对系统进行访问、修改或者破坏。
2 SCADA系统与IT系统
一个最基本的SCADA系统一般由以下几个部分组成:
数据服务器:它为SCADA系统提供各种数据服务,包括:实时数据库和实时数据服务、历史数据服务、报警管理服务、日志服务、用户和授权管理等。
客户监控站:它提供给操作人员一个人机交互的界面(HM I),使得操作人员在其上完成对现场被控对象的各种监视和操作任务。
通讯站(前端机):通讯站是SCADA与现场单元之间的交互接口,按照其协议不同,又可分为很多种类。
其他站点:包括计算站、WEB服务站、移动接入设备(如手持终端、便携机、ipad)等。
现场单元:指的是直接与被控物理装置连接的设备单元,包括但不限于:可编程逻辑控制器(PLC)、集散控制系统(DCS)、远程测控终端(RTU)、智能电子设备(IED)等。
网络:SCADA系统的网络是最为复杂的,一般包括:连接各个现场设备的现场总线网络,连接数据服务器、通讯站与现场设备的控制网络,连接SCADA系统的各类服务器、监控站、工程师站和打印机等节点的系统网络,连接其他站点(如手持终端、便携机、ipad)的远程接入网络,以及用于连接企业上层管控系统(如MES、ERP)的管理网络。
在一些比较大型的SCADA系统中,又有分级的概念,如城铁SCADA系统中分为变电所、车站、控制中心三级。在上一级上可以监控下一级的全部设备,在上一级系统里有下一级的全部数据库以及各项服务。
早期的SCADA系统一般是由设备制造商封闭开发的,它有如下特点:采用专有通讯网络、专有操作系统、甚至专有的操作站硬件、专用的存储设备与存储介质、不使用通用以太网、没有Internet的接入等特点,从信息安全的角度来看,这个系统是“本质安全”的。
随着计算机技术、互联网的飞速发展,SCADA系统越来越多地采用了大量通用IT技术和设备,表现出如下特点:采用通用的计算机硬件设备,以太网无处不在、无线设备与无线网络接入、远程配置与远程控制、Windows和Linux通用操作系统的使用、通用基础软件(数据库软件、Office软件)、商务供应订单系统在线连接等,从网络安全的角度来看,这一系统“有巨大的挑战,很容易被利用”,并且采用的是通用设备与通用技术,其技术更容易被人掌握。
但是SCADA系统与通用IT系统在信息安全方面还有很多差异点,如表1所示[2]。
表1 SCADA与IT系统的信息安全差异
这些差异点就造成SCADA系统信息安全防护技术和管理理念与IT系统是不尽相同的,不能套用IT系统的防范手段。
3 SCADA信息安全风险和安全目标
现在SCADA系统由于其开放性的设计,采用了大量IT技术与通用IT设备,使得SCADA系统不再是一个封闭的系统,这些变化包括:
采用通用IT硬件,包括:服务器/计算机、交换机、网卡、显示器、输入/输出设备、标准以太网等。
采用通用的软件,如数据库软件、Office软件、Windows操作系统、TCP/IP协议、OPC技术等。
恶意入侵:来自界外有意识的侵入,以窃取和破坏为目的。
“两网融合”和SCADA系统开放接口造成的安全冲击,给系统带来巨大的风险。
高级系统应用功能,例如:远程配置与维护管理、生产制造执行系统(MES)连接、商务现场供应(订单批量配方生成)。
复杂的网络构架,如广域网接入、工业无线网络、异构网络等。
设备故障:设备故障带来的主要是“无意性”的安全风险,会导致系统信息可用性降低、甚至丧失,最终导致系统瘫痪,对被控装置带来灾难性的后果。
SCADA系统的上述特点与变化,决定了它会存在以下的信息安全风险:
第一类信息安全风险,可称之为狭义的信息安全风险,是通用计算机网络信息安全,是与常规IT系统相同的,但防范手段会有差异,包括:
黑客入侵类:信息窃取、篡改、破坏;
病毒类:蠕虫(资源消耗)、破坏(拒绝服务)、木马(信息窃取);
系统漏洞:包括操作系统漏洞、平台软件漏洞(如数据库软件)、SCADA软件本身漏洞。
功能异常类:如设备损坏导致系统瘫痪、异常保护(回路环风暴);
第二类信息安全风险,可称之为SCADA特有的信息安全风险,包括:
数据自然损坏:由于SCADA系统运行环境复杂,干扰源多、杂、强等特点,系统数据在传输、加工、存储等环节极易出错,导致系统可用性问题;
时序失序和实时性:SCADA系统是工业控制系统,它对系统响应的实时性要求非常高,不同于常规IT系统,且动作执行的时序性要求也高,当前的多任务操作系统、防病毒软件会对它带来风险。
人为失误和人为破坏:SCADA系统的高可靠性要求系统能尽可能地防范人为失误以及人为破坏,如二次确认功能。
对于SCADA系统而言,信息安全一般至少要实现以下三个目标:
可用性:保证系统在任何外界环境下,能不丧失原有设计的各项功能;
正确性:包含信息的完整性和准确性;
保密性:包括信息不被未经授权的人获取、删除、篡改、冒充等。
SCADA系统信息安全首要考虑的是所有系统部件的可用性。正确性则在第二位,保密性通常都在最后考虑。因为目前的SCADA系统的通讯数据都是原始格式,需要配合有关使用环境进行分析才能获取其价值。而系统的可用性则直接影响到企业生产,生产线停机或者误动作都可能导致巨大经济损失,甚至是人员生命危险和环境的破坏。
4 SCADA信息安全分层
目前,越来越多的人关注SCADA系统的信息安全防范工作,也从不同角度给出了许多信息安全防护建议,如建立工业控制系统安全管理体系[3],工业控制SCADA系统的安全防护体系[4]等。其基本思想是从宏观和整体角度,给出SCADA系统从外层到里层的防护手段,包括:
隔离措施:防火墙技术、VPN技术、网关等;
防病毒软件的监控和安装;
计算机的安全策略的实施;
基于操作系统的身份验证;
系统安全漏洞自动更新;
安全管理和安全服务措施。
但是以上的这些角度都是延续传统IT系统的信息安全防护技术与思想,面对SCADA这种工业控制系统所特有的一些要求,上述手段不全面、有效性差,也难于实施,甚至有些手段会带来负面效应(如常规的防病毒技术)。
从对SCADA系统信息安全风险分析和防护手段分析来看:SCADA信息安全可以分为两类:一类是上述基于IT系统的信息安全防护技术,另一类是基于SCADA系统特性的防护技术,本文称之为SCADA内部信息安全的保护技术,即针对SCADA系统的特点以及它对信息安全的特殊要求,做特殊的防护设计,它主要是在SCADA系统设计时实现的,期望接近或者达到SCADA系统“本质安全”的目标。
因此,常规的信息安全防护手段作为SCADA系统的第一层防护,它强调的是系统外部信息安全,保证SCADA系统运行环境的安全,例如:系统和网络的隔离、操作系统的安全漏洞、进入系统的安全策略等,本文不对这部分内容做详细介绍。第二层防护是提高SCADA系统本身对外部攻击、侵入、破坏等的抵御能力,增强SCADA系统的信息安全度。
5 SCADA内部信息安全的保护技术
SCADA系统内部信息安全是在产品设计过程中完成的,这与外部信息安全防护技术不同,是一种“设计出来的安全功能”,它能对外界侵入、访问、数据篡改、干扰有天然的保护。安全保护技术包括以下几个方面:
(1)专用软、硬件技术
最早期的SCADA系统是封闭的,全部软、硬件都由产品制造商提供或者开发,因此产品对信息安全具有最高级别的控制能力,系统对外表现为封闭和本质安全。后来随着IT技术的发展以及产品开发、制造成本的压力,开放和集成是必由之路。但是开放意味着安全风险增大,失去天然安全屏障。
因此,提出一种“深度集成”的理念,借助与现代高度发达的CPU技术,要求系统所集成的产品开源、可编程或者可二次开发。借此达到硬件开放集成,固件或者软件专用化,降低产品成本和开发成本,不降低系统开放性,提高系统安全性的目的。与网络相关的有如下几个方面:
接管操作系统的某些功能,如监视可移动设备的接入,开发定制网卡驱动,监视网卡数据,对其数据包进行过滤和检查;
二次开发专用交换机:目前某些交换机支持二次开发,可以对其固件进行修改,使得合法的报文放行、合法的端口放行,所谓合法就是SCADA系统使用的报文或者端口,其他的一律阻止。
(2)内部防病毒技术
通用防病毒技术对SCADA系统是不满足的,它版本升级快,病毒库需要随时升级,每个版本与SCADA系统的兼容性无法保证,防病毒软件从机制上不能满足实时性和时序性要求,会造成SCADA系统数据交换的延迟、失序等问题。
在SCADA系统内部,可以采用如下方式对各种类型的病毒进行防范:
白名单技术:SCADA系统只接受自己能识别的访问,不能识别的访问一律抛弃;计算机系统上只放行系统识别的端口、任务、进程,其他的一律禁止;
签名:在访问系统时需要签名认证,验证身份是否合法,保证访问的合法性;
对异常数据包进行过滤,例如异常的数据包类型,异常的访问流量(如DOS攻击)。
(3)数据合法性保护
目的是保证SCADA系统访问、存储、使用的数据是合法的,这些数据可能是来源于SCADA系统内部,也可能来源于外部,但是都必须通过合法性验证之后,才能被使用;另外在生产这些数据时,也要保证数据的合法性。数据合法性保护包括:
数据的合法性加工、数据校验以验证其合法性;
编译技术:对代码合法性进行判断,采用签名与验证技术;
运算执行保护:控制运算的合法性判断,漏洞保护(溢出、死循环、除零)、任务最大时间限制等。
(4)数据搬运/传输保护
SCADA系统的运行环境往往是恶劣的,有电磁干扰、腐蚀等,其网络是复杂的,如有线网、无线网、异构网络,以及网络地域分布广泛,其网络拓扑结构多变,节点设备种类多。这就使得数据在网络以及SCADA系统内部传输过程中,非常容易发生错位、失序、丢失、被窃取、被伪装、篡改等各种风险。为了解决数据在搬运和传输过程中的问题,一般可以采取如下的一些技术:
加密传输(防窃取、防伪装、防篡改);
校验与纠错(防失效、错位、丢失与不完整);
内存数据硬件校验ECC;
存储器数据读、写CRC校验;
内部总线数据传输奇偶校验或者CRC校验。一般来讲,各种通讯协议都会在各层、各个环节进行校验,但是这种校验是局部的,可以防范局部异常。作为SCADA系统设计而言,对数据的保护应该是基于结果的校验,即数据校验制作在数据源头执行,数据检验检查在数据使用者完成,可以保证在数据搬运/传输的全过程中是无差错的。
(5)数据冗余技术
为了保证系统访问/数据的合法性与完整性,数据冗余技术是一种较好的设计思想,它是利用数据的冗余信息来保护自己。一般的方法是:
位冗余(如:BOOL类型数据采用55AA编码技术),这可以有效地解决数据的“位变”难题。
数据质量位,数据质量位代表了该数据的质量状况,可以检测、传递数据的质量,避免系统使用错误的数据。
数据缩略图:在对数据有较高要求的场合,可以使用数据缩略图的形式对数据进行验证与保护。
6 小结
随着SCADA系统的应用日益广泛,它的信息安全问题已经成为系统能否长期稳定可靠运行的主要问题,从对其应用的电力、冶金、建材、化工、市政、交通等各个行业的影响来说,也是关系国计民生的大事。因此,对SCADA系统信息安全的研究工作是非常重要的。
[1] IEC 62443-2010,工控网络与系统信息安全标准[S].
[2]徐金伟.工业领域基础设施SCADA系统简介[J]. 计算机安全,2012,(01):4-8.
[3]张帅.工业控制系统安全风险分析[J].信息安全与通信保密,2012,(03):15-19.
[4]余勇,等.工业控制SCADA系统的信息安全防护体系研究[J].理论研究,2012,(05):74-76.