网络安全标准UL 2900-2-2:2017解读
2018-02-07陈炎华深圳市计量质量检测研究院
陈炎华(深圳市计量质量检测研究院)
在新一轮信息技术革命的带动下,物联网、共享经济、移动支付等全新产业形态竞相涌现,全球都在积极迎接数字化时代的到来,全面拥抱“互联网+”。然而,随之而来的网络攻击也愈加复杂且更难以防范,网络安全问题已然成为人类进入信息时代最为严峻的共同挑战。
为了应对新的网络安全形势,UL 2900系列网络安全标准应运而生。该系列标准能够为联网产品与系统提供网络安全的测试准则,评估软件漏洞与弱点,应对已知的恶意软件,评估安全机制并提升安全意识。其中UL 2900-1[1]是针对常规联网产品软件网络安全的通用要求,UL 2900-2则是基于不同行业的特性和用户的实际安全需要发布的加强版本。本文选取UL 2900-2-2——《工业控制系统的特殊要求》[2],从范围、产品文档、风险控制、风险管理、缺陷和漏洞、软件弱点分析等方面进行解读,为关注网络安全标准化建设的企业、检测机构等相关方提供参考。
UL 2900-2-2是UL 2900-1——《可联网产品的软件网络安全标准 第1部分:通用要求》针对工业控制系统(Industrial Control Systems, ICS)的补充,产品符合UL 2900-2-2的同时也应满足UL 2900-1的要求,重复部分不再赘述,可参考文献[3]。
1 范围
UL 2900-2-2安全评估标准适用于工业控制系统组件的评估,该标准适用于但不限于以下产品:可编程逻辑控制器(PLC),监控与数据采集(SCADA)服务器,ICS系统的网络设备,分布式控制系统(DCS),远程终端单元(RTU),数据电台,过程控制系统,智能电子设备(IED),智能传感器,数据采集系统,人机界(HMI),控制器,工业数据库、数据记录器和数据存储系统,IO服务器,嵌入式系统/控制器,控制服务器,现场总线……
工业控制系统,是由各种自动化控制组件和实时数据采集、监测的过程控制组件共同构成,用于监测和控制工业生产过程,确保工业设备正常运行,广泛应用于石化、水利、电力、冶金、生产制造等行业领域。基于其应用的特殊性,与通用要求UL 2900-1相比,UL 2900-2-2主要在风险控制以及缺陷和漏洞部分加以补充。
2 产品文档
产品应遵循UL 2900-1中关于产品文档的要求,在文档中提供必要的产品信息,以便于进行安全风险评估。
3 风险控制
风险控制包括访问控制、远程通讯、敏感数据和产品管理4个部分。
3.1 通用要求
产品首先应符合UL 2900-1中关于风险控制的要求。
3.2 访问控制
访问控制,又称用户验证或用户授权,产品除了应符合UL 2900-1中关于访问控制的要求外,还应满足以下要求:
(1)无论何时,远程访问的使用都不应危及产品的安全配置或改变产品的预期用途,使用相关功能以修改产品的预期用途的管理访问权限应被明确规定。
(2)验证机制的强度应使得,某种方式在没有有效凭证的情况下能够成功进行远程认证的可能性被定义为风险评估的一部分。供应商应评估此风险,作为风险评估的一部分。
(3)产品应根据所有可用的上下文信息记录每个验证尝试。
(4)产品应允许操作人员访问和许可的权限被禁用、被删除、失效或被更改。
(5)随机提供凭证的尝试至少应有百万分之一的成功率。
(6)信息本身不能被用于身份验证,而是在分割知识程序中输入。产品文档应证明,只有分割知识中ALL组件的访问才有能力确定信息。
(7)传输路径是可信路径,例如,不被任何其他系统或产品共享的直接连接的物理电缆。
(8)验证凭证在产品上的存储不应是明文的,并应通过使用UL 2900-1“敏感数据”章节中定义的加密机制之一来防止未经授权的泄露或修改。
3.3 远程通信
具有远程通信功能的产品,除了应符合UL 2900-1中关于远程通信的要求外(9.1条中记录的例外情况应在风险评估中列明),还应满足以下要求:
(1)为了防止数据损坏、信息篡改、电子欺诈或重放攻击:
a)产品应该能够检测和阻止发送者和接收者之间的通信消息被改变的情况;
b)产品应能够检测到被重放的通信信息并且不对其执行操作;
c)供应商应描述用于处理上述a)、b)两种情况的机制,并记录在风险评估中。
(2)发生通信故障时,产品应能够进入故障安全模式或故障告警操作模式。
3.4 敏感数据
产品应符合UL 2900-1中关于密码的要求。
3.5 产品管理
产品除了应符合UL 2900-1中关于产品管理的要求外,还应满足以下要求:
(1)产品应能够以可靠的和可验证的方式,将当前安装的软件和固件二进制文件、可执行文件和库的版本展示或传达给产品的用户,以标识产品的软件版本。
(2)软件部署过程应遵循:
a)新的软件/固件二进制文件、可执行文件和库应使用软件完整性机制创建,以生成二进制的工厂代码或签名。这些机制应符合UL 2900-1附录C的要求。
b)将软件/固件二进制文件、可执行文件和库部署到产品应该从软件/固件二进制文件、可执行文件和库的下载开始。除非风险评估中有说明,否则在下载过程中不应修改产品。
c)产品允许通过操作人员介入来清理审计日志,以允许软件/固件二进制文件、可执行文件和库的下载仅在最低允许限度下进行,这时产品应该使用日志清理记录(包括时间戳、验证方式和账户)启动新日志。
(3)下载软件/固件二进制文件、可执行文件和库之后,在安装之前,产品应验证软件/固件二进制文件、可执行文件和库的完整性和真实性。
a)如果完整性测试失败,产品应停止软件升级过程,并清除新下载的软件组件。故障应记录在审计日志中,产品应继续按预期运行。
b)只有当产品接收到完整的软件/固件二进制文件、可执行文件和库时,产品才能进行完整性检查。
c)完整性机制应包含在软件/固件二进制文件、可执行文件和库中,不应需要单独下载。
(4)在清理/卸载旧软件和安装新软件的过程中,产品应具有固件安装的指示器或显示其当前安装状态。该指示器在产品上应是可视的或可听的,或应在风险评估中定义其可用性。
(5)使用时,在加载任何应用程序或执行产品的任何功能之前,产品首先应验证软件/固件二进制文件、可执行文件和库的完整性和真实性。
(6)如果产品在第(5)条的操作中出现故障,产品应进入故障模式并向用户清楚地表明产品未能成功启动。
(7)如果产品在第(5)条的操作中出现故障,产品的功能应最小化到供应商在风险评估中所允许的操作范围。
4 风险管理
产品应符合UL 2900-1中关于供应商产品风险管理流程的要求。
5 缺陷和漏洞
5.1 已知漏洞测试
产品应符合UL 2900-1中关于已知漏洞测试的要求。
5.2 恶意软件测试
产品应符合UL 2900-1中关于恶意软件测试的要求。
5.3 畸形输入测试
(1)通用要求
a)产品应符合UL 2900-1中关于畸形输入测试的要求。
b)在满足条件a)的情况下,产品还应符合本节第(2)条和第(3)条的要求。
(2) 畸形输入测试一
a)本节适用于能够控制或监控离散或模拟输入或输出的产品,如PLC。
b)离散输出行为:在离散输出模块(制造商说明书中有规定)其中一个输出点满足通用要求条件a)的情况下,产品应能够生成被监控的连续输出信号。
c)离散输出要求:产品应能按照制造商说明书规定的精确度维持被监控的连续输出信号。
d)模拟输出行为:产品应能够根据制造商说明书在其模拟输出模块上生成被监控的连续输出信号。监测到的连续输出信号中的每个电压电平应保持1秒或按照制造商说明书保持,并且在满足通用要求条件a)的情况下重复该循环。
e)模拟输出要求:在满足通用要求条件a)的情况下,产品应能按照制造商说明书规定的精确度维持被监控的连续输出信号。
f)离散输入行为:在满足通用要求条件a)的情况下,设备内未定义或未配置的任何离散输入引脚上的任何状态变化不应影响产品的操作。
(3) 畸形输入测试二
a)本节适用于驻留在通用计算机上或记录历史事务的产品,例如HMI、IO服务器或数据记录器。
b)在满足通用要求条件a)的情况下,产品应能够以预先定义好的频率接收数据。
c)在满足通用要求条件a)的情况下,产品应持续按预期运行。
5.4 结构化渗透测试
产品应符合UL 2900-1中关于结构化渗透测试的要求。
6 软件弱点分析
产品应符合UL 2900-1中关于软件弱点分析的要求。
7 结语
UL 2900-2-2是UL 2900-1的加强版,主要涉及工业控制系统的特殊要求,面向联网工业控制类产品行业。该标准描述了其涉及的产品范围、产品文档的要求、风险控制和管理的要求以及缺陷和漏洞的测试和分析方法,其中产品文档、风险管理和软件弱点分析部分主要参照UL 2900-1的通用要求,而在风险控制以及缺陷和漏洞测试部分加以补充。