可编程逻辑控制器(PLC)是一种自动化控制装置,通过数字、模拟输入和输出,采集各类机械装置的数据,并可控制各类执行机构,广泛应用于船载系统中。早期船载PLC控制系统的应用环境相对封闭,面临的网络安全威胁较小。随着船载系统智能化、数字化,系统间互联的需求逐渐增加,原有船载PLC控制系统网络安全风险激增,其安全性受到严峻挑战。同时,在国际船级社协会(IACS)发布的IACS UR E27 Rev.1统一要求中明确指出适用范围内的PLC需要满足相关安全能力要求。但业内对于如何提高船载PLC控制系统网络安全能力,满足E27统一要求,尚缺乏系统分析和解决方案。
本文分析了船舶PLC控制系统的典型使用场景,梳理了国内外标准对PLC控制系统应用的网络安全要求,并针对船载PLC控制系统的安全应用及合规需求,提出了船载PLC的应用建议。
船载PLC控制系统应用
根据GB/T 33008.1-2016工业自动化和控制系统网络安全-可编程序控制器(PLC)第1部分系统要求,PLC控制系统的组成一般包括生产管理层、过程监控层、现场控制层和现场设备层,系统架构如图1所示。
图1 PLC控制系统架构
PLC在船舶工业控制系统中应用广泛,包括机舱监测报警系统、功率管理系统(PMS)、阀门遥控系统、燃料供给系统、动力定位系统等。在各场景中,PLC的使用方式有所差异,面临的威胁也不同。当应用场景中PLC采集数据和输出控制信号的逻辑固定,在船载PLC控制系统设计时,通常不配备数据服务站、工程师站和操作员站,仅通过PLC控制器实现对现场设备的逻辑控制,当需要控制的现场设备较多时,通过设计主从PLC控制器、构建PLC环网等方式实现。当应用场景中需要船员介入控制、与第三方系统进行数据交互时,通常在系统设计时按需增加数据服务站、操作员站、工程师站。
表1 PLC安全技术要求
综上,在船载PLC控制系统中,存在仅包括现场控制层和现场设备层的场景,及过程监控层、现场控制层、现场设备层的场景,生产管理层一般不在船载系统中部署。
对现有船舶PLC控制系统进行分析,其面临的威胁极可能来自于系统内部也可能来自于系统外部。主要威胁归结为以下几类(实际威胁不限于所列几类):
1、网络通信的连接点
例如开放的PLC系统网络连接与PLC系统专网互联的其他网络连接、远程技术支持和访问点接入。
2、便携式和移动设备
例如USB设备、光盘、移动硬盘等。
3、不当操作
例如人员恶意攻击、无意识误操作、不按照程序要求更新和升级等。
4、第三方设备
例如受感染的工业控制系统以及其他现场设备,供应链植入恶意代码等。
国内外标准要求
国际上,工业PLC控制系统的网络安全要求一般参照国际电工委员会(IEC)系列标准实施。在IEC 61131-6可编程控制器功能安全要求中将PLC网络安全要求指向工业自动化及控制系统的组件要求IEC 62443-4-1和IEC 62443-4-2,即需要从系统设计初始阶段开始直至系统退出使用为止,要满足安全开发生命周期的要求,同时安全能力上要满足7个基本要素的技术要求。该系列标准从技术和管理两个方面,提出了全面的安全要求,具有普适性。船舶PLC控制系统相对工业自动化和控制系统,网络架构相对简单,不与生产管理层连接,且一般处于物理访问受限区域,在满足该系列要求时,应根据系统安全需求,选择恰当的安全等级,充分考虑各要求的目的。
船舶PLC控制系统在满足IEC 62443-4-2中技术要求时,对于其中部分要求可参考如下原则实施:
1、EDR 2.4移动代码
船舶PLC控制系统中PLC控制器与过程监控层工作站、现场设备层传感器和执行机构的连接,通常采用直连的方式或通过位于受控控制柜中的专用交换机/串口服务器/IO模块连接,移动代码的威胁主要存在于过程监控层工作站,因此可重点关注在监控层工作站中控制移动代码的执行,如控制监控层工作站的访问权限,采用白名单机制控制仅允许系统相关的程序执行,执行代码前采用哈希等方式进行校验等。
2、EDR 2.13使用物理诊断和接口
船舶PLC控制系统的逻辑控制程序相对稳定,更新频率较低,诊断和测试接口应实施访问控制,包括物理和逻辑访问控制措施,明确授权使用人员或角色。
3、CR 3.1通信完整性
船舶PLC控制系统中监控层工作站至PLC控制器采用通用协议的场景较为普遍,可采用加密通信协议,或在协议中增加数字签名等方式保证通信完整性;当监控层与PLC控制器直连或通信链路受控时,可重点考虑工作站和PLC控制器的访问控制。对于PLC控制器至现场设备层,为保证数据采集的实时性,可不采用加密或签名。
4、EDR 3.2恶意代码防护
船舶PLC控制系统中,系统运行稳定性需求高,运行环境固定,通过安装第三方恶意代码防护软件存在影响系统正常运行的可能性,可考虑采用白名单机制,防止非预期代码运行。对于具有本地通用串行总线(USB)主机访问的情况,需要做好接口访问控制;对于无监控层工作站的PLC控制系统,除做好USB、IO模块、RS485等接口访问控制外,可考虑选用内置访问控制等安全能力的PLC控制器。
5、EDR 3.14启动过程完整性
应在引导过程之前验证组件的固件和/或软件的完整性和真实性,确保组件正常启动。
国内标准中,GB/T 33008.1-2016工业自动化和控制系统网络安全-可编程序控制器(PLC)第1部分:要求针对系统中提及PLC系统网络安全应包括在系统生命周期内的设计开发、安装、运行维护、退出使用等各阶段与系统相关的所有活动中。应认识到系统面临的风险在整个生命周期内会发生变化,应通过技术和管理两个方面把PLC系统网络安全风险降低到最低或可接受的范围内。该国标的技术要求与IEC 62443-4-2标准保持一致,并对所有适用要求进行了细分,分别对应在PLC系统1-2层级(现场控制层、监督控制层),增强了标准的可实施性以及对PLC控制系统在设计中的指导意义。
国内网络关键设备安全技术要求-PLC及其配套的检测要求正在征求意见阶段,这两份推荐性标准从10个方面对PLC提出了具体要求(如表1所示)。
该国标在技术要求上与IEC 62443-4-2的技术要求基本能相互覆盖,但该项征求意见稿在通信安全和数据安全等方面的要求更加具体,其中如下要求在船舶PLC控制系统安全能力建设中可参考:
1、支持日志信息输出功能;
2、具备唯一标识用户的能力,对PLC执行配置文件读取及写入、预装软件更新等管理操作前,应对用户进行身份鉴别;
3、应具备防止数据泄露、数据非授权读取和修改的安全功能,对存储在PLC整机、关键部件中的配置信息、项目工程文件、用户口令等敏感数据信息进行保护;
4、具备对用户产生且存储在PLC整机、关键部件中的日志、项目工程文件等数据进行授权删除的功能,支持在删除前对该操作进行确认。
此外,在GM/T 0119-2022 PLC控制系统及PLC控制器密码应用技术规范中,给出了PLC控制系统中各组件和服务中密码应用要求,包括了PLC控制系统增加密码应用后的性能要求。其中现场设备间交互(PLC控制器中的用户逻辑组态和现场设备间的交互)的密码机制不做要求。
总结及建议
国外对于PLC的安全要求参照IEC 62443系列要求执行,已有较多PLC制造商取得了该系列4-1和4-2的认证,国内该领域起步相对较晚,也基于IEC 62443系列标准提出了适应性的细化和梳理。国内外对于PLC安全要求的理念基本一致,均从技术和管理两方面同时提出要求,技术上主要关注访问控制、接口安全、通信安全、数据安全,管理上覆盖全生命开发周期。其中国内基于国密算法提出了PLC的密码应用技术规范,拓展了PLC在高安全需求下的使用场景。
基于对当前船舶PLC控制系统架构和威胁的分析,以及对国内外PLC安全要求的梳理,船舶PLC控制系统可采取如下措施提高网络安全防护能力:
1、控制通信写的权限;
2、物理和逻辑的访问控制,包括防篡改密封条、锁闭空间等;
3、限制网络访问;
4、监控层及PLC控制层全局密码保护,包括加密通信协议;
5、日志记录及分析;
6、安全开发过程,包括风险分析、开发程序代码审查等;
7、变更管理。
作者:中国船级社 张旋武