杨景利,刘 元,孟庆军,高 超,王童生
(北京广利核系统工程有限公司,北京 100094)
核电是我国能源行业国家级战略产业,其自身运行过程具有特殊性,所以对核电厂仪控系统有更为严格的安全要求。一旦发生事故,除了生产运行受到影响外,还可能导致环境污染和人员辐射危害,并进一步波及全球核电行业。伊朗震网事件、韩国核电厂泄密事件等重大的核电网络安全事件说明了核电网络安全的重要性和关键性。在我国核电网络安全建设运维过程中,由于进口设备多、维护团队多,潜在植入漏洞和引入漏洞的风险较大。
在核电厂仪控系统运行过程中,如果缺少网络、主机、应用、数据等各方面的网络安全防护手段,一旦恶意软件感染核电厂,便可能发起攻击,造成严重后果。因此,对于核电厂仪控系统运行过程中的网络安全所采取的策略至关重要,既要考虑对核电机组正常运行的影响,还要兼顾网络安全防护效果。
在核电网络安全标准方面,美国标准已经细化到指南层面。美国能源局已将RG 5.71作为发放核电经营许可证的一项重要核查导则,其内容基本覆盖了管理和技术两个层面的实际操作过程。IEC方面,目前已经完成管理标准(IEC 62645)和网络安全与功能安全协调设计方法(IEC 62859)的制定。近年来,国内一大批工控网络安全标准由TC 124和TC 260组织发布。
①GB/T 30976-1~2:工业控制系统信息安全(第一部分评估规范;第二部分验收规范)[1]由TC 124发布。该标准推出了一系列覆盖管理和技术的指标体系,在验收上提出了信息安全验收项。
②部分标准主要从工业控制系统的分类角度对GB/T 30976进行了扩展。GB/T 33007-2016 工业通信网络网络和系统安全建立工业自动化和控制系统安全[2];GB/T 33008.1-2016 工业自动化和控制系统网络安全可编程序控制器(PLC) 第1部分系统要求[3];GB/T 33009.1-2016《工业自动化和控制系统网络安全集散控制系统(DCS)第1部分:防护要求》[4];GB/T 33009.2-2016《工业自动化和控制系统网络安全集散控制系统(DCS)第2部分:管理要求》[5];GB/T 33009.3-2016《工业自动化和控制系统网络安全集散控制系统(DCS)第3部分:评估指南》[6];GB/T 33009.4-2016《工业自动化和控制系统网络安全集散控制系统(DCS)第4部分:风险与脆弱性检测要求》[7]。
③GB/T 32919 信息安全技术工业控制系统信息安全应用指南[8]。该标准由TC 260发布,结合2016年10月工信部发布的《工业控制系统信息安全防护指南》进行细化和扩展。
④等保2.0的工业控制系统安全扩展要求:该系列标准由TC 260牵头(在研),是对等级保护通用要求的扩展,形成了要求、测评和设计三个标准。
上述标准均属于通用行业标准,未考虑到核电厂仪控系统的重要性和特殊性。
从方法论上讲,核电厂仪控系统防御的主要方法是“隔离”和“净化”。简化的网络安全防御架构如图1所示。
图1 简化的网络安全防御架构图
“隔离”方面,RG 5.71中明确规定[9],仅允许单向数据流,即从第4级流向第3级,从第3级流向第2级;禁止从安全级别较低的数字资产向安全级别较高的数字资产发起通信。数据仅通过在各个级别之间强制执行安全政策的设备,从一个级别流向其他级别。保持检测、阻止、延迟网络攻击,减轻网络攻击所带来的后果,并在发生攻击事件之后恢复正常功能。
“净化”方面,RG 5.71提出必须有业务权限的全面设计,保障最小权限策略的执行;主机上不允许安装仪控系统以外的任何非必要软件和移动设备。
除隔离与净化以外,IEC 62859还提出了核电网络安全工作与物理安防工作的融合原则。物理安防已经实现网络安全功能的,不得重复实现;网络安全与物理安防有冲突的,以物理安防优先考虑,网络安全需要修改其实现方法。
“隔离”一般对应的技术方法是根据业务把网络分区分段,避免网络之间的直接连通。通过单向隔离网闸或工业防火墙等设备进行隔离,限制访问权限,避免恶意软件和报文的扩散。
“净化”一般对应的技术方法可以分为两大类:黑名单和白名单。
传统的防病毒软件、入侵检测系统(intrusion detection system,IDS)、入侵防御系统(intrusion protection system,IPS)等都属于典型的黑名单类产品。黑名单类产品基于已知特征进行恶意软件识别、恶意行为识别,通过设置规划好的“不允许”规则来检测匹配文件、报文、行为等,实现对恶意软件和攻击行为的识别和阻止,达到净化效果。
在核电厂的网络环境里,黑名单类产品有如下缺点。
①内置特征库,需要实时更新才能达到较好的防护效果;核电厂仪控系统与外网隔离,无法及时更新系统补丁,不能保证防护效果。
②在特征匹配过程中会消耗较多资源,可能会造成系统拥堵或缓慢、实时性较差,不满足核电厂仪控系统高实时性的要求。
③特征匹配不能保证完全准确,可能会存在误报;特别是行为特征识别中,往往会将仪控系统的I/O卡读写等驱动层面的操作当成恶意行为进行阻止。
④只能对已知特征进行匹配,发现已知的恶意软件和攻击行为,无法防护“0 day”漏洞和有针对性的攻击。
综合考虑上述黑名单类产品的弱点,需要在核电厂仪控系统的安全防护方案中引入不同于黑名单的防护技术——白名单技术。
白名单和黑名单技术对比如图2所示。
图2 白名单和黑名单技术对比图
白名单类产品相对黑名单类产品而言,强调“确定的安全”,所有未知都不允许。“白名单”是一个多维度全方位的安全结构模型,覆盖系统的各个层面,包括程序白名单(或应用白名单)、协议白名单、指令白名单、外设白名单等。白名单技术恰好可以弥补黑名单技术的不足,是一个极其有限的安全防护策略。
根据核电厂仪控系统的实际情况,经过对工控流量、操作系统及应用程序的监控和分析,建立核电厂仪控系统及网络的安全基线模型,进而形成核电厂仪控体系的“安全白环境”,是一个更有效的安全防护方案。该方法能根本上达到“净化”的效果。
程序白名单是一个主机上的合法应用软件的基线列表,只有在这个列表内的程序才允许运行,其他任何程序(包括病毒、木马或者其他非恶意软件)都不能运行。这就是程序白名单的安全机制。
采用白名单技术的工控主机防护软件可以抵御“0-day”漏洞和有针对性的攻击,实现操作员站、工程师站、数据服务器等工控机的安全防护,改善并提升主机安全防护能力,最大限度保障工控机的安全稳定运行。在工控机防护方面,白名单技术产品相对防病毒技术更有优势,防护能力更好。
国际权威测评机构Tolly给出的应用程序白名单软件Bit9和防病毒软件产品安全防护能力的对比如表1所示。
表1 白名单软件与杀毒软件防护能力对比
注:①“阻止”表示被测试的系统阻止了入侵攻击,起到了防护作用;
②“未阻止”表示被测试的系统没有阻止入侵攻击,没有成功保护被攻击对象;
③针对Web服务器,Symantec推荐使用它的关键系统保护产品作为终端保护产品的必要补充来进行防护,McAfee则推荐使用高级终端防护套件来进行防护(数据来源,Tolly,2012年2月)
从表1可明显看出,应用程序白名单软件抵御了所有的5类攻击,而防病毒厂商赛门铁克和迈克菲公司的产品仅抵御了一部分攻击。防护能力出色并不是白名单技术产品优势的全部,其优点还表现在以下几方面。
①有效抵御“0-day”及APT攻击。
②系统资源开销低,对主机性能几乎没有影响。
③无需升级库,易于维护,其使用不会对生产过程产生影响。
程序白名单可以应用在核电厂仪控系统中的操作员站、工程师站、服务器和通信站网关等计算环境中。
通过控制软件实现移动介质合法性注册,建立介质白名单,实现移动介质的合法识别和读写控制,保证核电厂仪控系统不受外部恶意软件的侵袭。外设白名单的主要特点如下。
①通过外设开关控制外设接口,保证没有非法数据接入和内部数据外泄。
②通过移动介质注册管理,既能保证内部数据流动性,又可减少U盘随意使用带来的威胁。
③通过对读写权限的控制,可保证数据流动方向,避免恶意软件感染。
外设白名单原理如图3所示。
图3 外设白名单原理图
外设白名单可以应用在核电厂仪控系统中的操作员站、工程师站、服务器和通信站网关等计算环境中,以控制外设的使用。
协议白名单原理如图4所示。
图4 协议白名单原理图
通过安全防护设备(如工业防火墙等)对网络报文进行深度解析和指令识别。按照白名单要求,阻断无关的协议,过滤非法的工业协议数据和非法指令,仅允许正确的协议数据或工控指令通过,可有效保证工控网络通信安全。①协议识别,阻止非法协议。②协议深度解析,阻止非法报文。③解析控制协议指令,阻止非法指令。④确定指令的源和目的,阻止非法通信。
协议白名单可以应用在核电厂仪控系统的安全域入口,一般是在工业防火墙上,以过滤进出该子网的协议流量。
工控网内所有节点之间的连接建立,以及指令下发、数据上报等网络交互都属于工控行为。基于对指令的深度解析、业务的深度理解,从正常的工控业务学习工控行为基线,可以建立工控行为白名单。
工控协议白名单负责过滤非法报文,保证进入网络的都是合法报文、合法连接,但不能阻止误操作或恶意操作(比如:对公司不满的员工在正常的操作员站下发不合适的指令,停止设备运行)。工控行为白名单的主要作用是弥补工控协议白名单的不足,阻止误操作或恶意操作。
建立工控行为白名单需要经过较长的学习过程,采集大量数据,结合多种特征建立行为模型。工控行为白名单生成过程如图6所示。
图5 工控行为白名单生成过程图
工控行为建模重点是回答4个问题,简称4W:谁(Who),什么时间(When),使用哪些主机(Where),做哪些事情(What)。
Who:对应主机的用户,或者系统账号。核电厂仪控系统的所有操作必须能对应授权的操作员。这部分数据由安装在主机上的主机防护软件提供。
When:工控行为的时间,也就是网络报文的时间,这部分数据由审计设备提供。对工控行为建模要求整个系统必须统一时钟,否则可能导致学习模型不准确。
Where:工控行为涉及的主机节点,即每个工控指令或报文的双方。这部分数据由审计设备提供。
What:工控行为的具体内容,对应工控指令。这部分数据由审计设备提供。对工控报文解析得越细,对工控业务理解得越深刻,这个模型就越准确。
上述4W数据中,Who的数据需要由主机防护软件提供,其他数据都是由审计设备提供。为保证系统的松耦合,在没有Who的情况下,其他3个W(When、Where、What)可以完成建模工作。在有Who的情况下,模型可以精确到具体的人/账号;在没有Who的情况下,模型精确到网络中的主机。
有了4W模型,就可以建立工控行为白名单,即从模型生成规则。这些工控行为白名单下发到审计设备或防火墙后,就可以及时发现异常行为、阻止异常行为。
工控行为白名单包括以下特点。①报文深度解析,识别工控指令。②海量数据分析,横向(人、网络)、纵向(时间)结合,形成完整的立体模型——4W模型。③4W模型转换为工控行为白名单,简化防护策略。④有效识别、阻止误操作、恶意操作。
工控行为白名单需要联合主机防护软件、网络审计设备、工业防火墙、集中管理平台,通过完整的解决方案来实现,可以对核电厂仪控系统进行全方位立体化的防护。
白名单防护策略的实施一般分为以下步骤。
(1)规划。在方案设计实施前,需要先做规划,确定白名单方案涉及的业务、区域和主机,确定白名单方案采用的技术:基于主机、基于网络,或者两者同时采用。
(2)设计选型。根据规划,设计合适的网络白名单或主机白名单方案,结合业务和网络拓扑,设计白名单部署方案,选择合适的白名单产品。
(3)原型验证。根据设计,在广利核实验室,基于试验环境进行白名单的原型验证,以确保白名单产品功能完善、对业务运行没有任何影响。
(4)实施。经过验证后,白名单方案进入实施阶段。实施前,需要确保主机没有被恶意软件感染。白名单产品在正式生效前一般需要经过一个学习过程,也就是建立白名单的过程。如果把恶意软件加入白名单,那白名单方案也无法保证主机的安全。工控行为白名单尤其需要经过长时间的学习。实施包括以下2个阶段。①学习阶段。这一段时间学习现网的流量、程序、计算环境,生成白名单。在这个阶段,白名单不会强制进行拦截,只会生成告警,并等待管理员确认。②白名单正式生效。在这个阶段,不符合白名单要求的程序、报文、工控行为都会被拦截。
(5)维护。白名单实施后,需要进行定期的维护。维护内容主要包括:查看产品的相关日志和告警信息,检查系统是否运行正常;业务软件安装或升级时需要进行白名单更新。
某个核电厂仪控系统,在操作员站、工程师站、服务器、网关服务器上部署了主机白名单防护软件(包括程序白名单和外设白名单),保护主机的安全;通过边界的工业防火墙进行区域隔离,并实施协议白名单;通过集中管理平台进行大数据学习建模,结合审计设备、主机防护设备、工业防火墙部署工控行为白名单,全方位保护网络的安全。
经过在核电站的实践验证,采用白名单技术防护的网络区域,可以有效防止恶意软件的破坏,阻止恶意报文的传输,保护核电厂仪控系统的安全。
经过多年发展,采用白名单技术的工控安全产品已取得长足发展,获得国内外安全从业者的认可[10-14]。大量现场应用结果表明,该技术产品具有高安全、高可靠、低功耗、省时省力的特性。白名单技术产品不仅仅适用于普通工业现场,更有望在不久的将来成为核电厂仪控系统的“标配”。
在核电厂的业务场景,操作系统、应用软件和业务操作都比较稳定,变化较少,对可靠性要求极高。采用白名单技术的工控主机防护软件、工业防火墙、审计设备等产品,在防护功能上与传统黑名单产品相似,但是更适合核电厂的特殊场景,最终防护效果更好、对生产系统的影响更小。采用白名单技术的安全产品应该被纳入核电厂整体安全解决方案的备选列表,并得到越来越广泛的应用。