唐安明,袁晓舒,赵 伟
(1.东方电气集团科学技术研究院有限公司,四川 成都 611731;2.陆军装备部驻重庆地区军事代表局,重庆 400000)
工业自动化和控制系统(IACS)是国家关键基础设施的重要组成部分,随着工业信息化、工业互联网进程的快速推进,信息、网络技术在工控领域得到了广泛应用,同时工控系统所面临的网络安全威胁和风险也日益加剧。
为实现工业自动化和控制系统的网络安全,工业过程测量、控制与自动化、网络与系统信息安全工作组(IEC/TC65/WG10)与国际自动化协会(ISA 99)的联合工作组经过多年工作,制定出IEC 62443《工业过程测量、控制和自动化网络与系统信息安全》系列标准[1]。该系列标准针对工业生产过程中涉及的网络安全问题,充分考虑了各参与方(资产所有者、系统集成商、系统供应商)的不同需求。
参照工控系统网络安全标准,结合工控系统安全需求的实际情况,分析系统面临的安全威胁和风险。评估系统安全能力水平对系统集成商和系统供应商都十分重要。通过工控系统网络安全测评,查找突出问题和薄弱环节,有针对性地采取安全防范对策和改进措施,能有效提高工控系统网络安全的保障能力。
IEC 62443系列标准是针对工业自动化和控制系统(IACS)信息安全的标准,根据系统集成商、系统供应商、资产所有者等不同的对象,分13个子标准,分别描述了工控系统网络与信息安全相关的管理和技术手段[2]。IEC 62443标准体系如图1所示。
IEC 62443系列标准提供了一个灵活的框架,具备对工控系统的产品开发、集成、实施和运维等全生命周期环节中实现和评价相关角色的网络安全能力,有助于解决工控系统已知和未知的系统脆弱性[3]。
IEC 63443-1系列包含4个标准,主要是概念和模型的定义,包括安全目标、风险评估、全生命周期、安全成熟度模型。
IEC 62443-2系列包含4个标准,主要介绍在集成、实施和运维中如何实现网络安全,目标对象主要是业主和系统服务商。
IEC 62443-3系列包含3个标准,主要介绍产品级的系统集成如何实现网络安全,包括产品系统集成的安全工具、技术措施等如何去满足安全等级,目标对象主要是系统集成商。
图1 IEC 62443标准体系
IEC 62443-4系列包含2个标准,主要介绍单个产品或者独立组件如何实现网络安全,包括产品开发和技术设计上的网络安全要求,比如主机、嵌入式装置等,目标对象是单个产品或者独立组件的制造商和供应商。
IACS单个产品或者独立组件的安全能力是系统集成商采购、选型的重要指标,同时也能指导产品制造商在开发时进行合理规划和设计。
IEC 62443-4-2作为IEC 62443系列标准的一部分,主要规定了系统组件在技术设计上的网络安全要求,目标对象是单个产品或者独立组件的制造商和供应商[4]。
IEC 62443-4-2标准为IACS定义了4个组件类型和7个基本要求。4个组件类型为主机设备、嵌入式设备、网络设备、软件应用程序。7个基本要求(FR)为标识和鉴别控制(IAC)、使用控制(UC)、系统完整性(SI)、数据保密性(DC)、受限数据流(RDF)、事件的及时响应(TRE)、资源可用性(RA),这7个基本要求是定义控制系统安全能力级别的基础[5]。
7个基本要求(FR)映射到组件能力安全等级SL1~SL4,控制系统能力安全等级0被隐含地定义为没有要求,SL4表示最高安全等级。4个安全等级定义如下[6]。
1)SL1:防止窃听或不经意的暴露导致的未经授权的信息披露。
2)SL2:防止未经授权地将信息泄露给通过少量资源、通用技能和低动机的简单手段主动进行信息搜索的实体。
3)SL3:防止未经授权地将信息泄露给通过中度资源、IACS特殊技能和中度动机的复杂手段主动进行信息搜索的实体。
4)SL4:防止未经授权地将信息泄露给通过扩展资源、IACS特殊技能和高动机的复杂手段主动进行信息搜索的实体。
IEC 62443-4-2标准主要是对产品安全防护功能的要求,对应FR1-FR7 7项基本要求、SL1-SL4四项安全等级要求,对于个别组件还有增强要求,整个标准所覆盖的测评项目众多,测评过程数据、结果数据庞大。依靠测评人员对照标准进行测评,工作量大、效率低,常出现以下问题。
1)单个测评项目,测评条款较多,容易出现漏评、漏测。
2)测评项目对应的过程数据容易出现丢失或与实测项目不一致。
3)测评结果显示不直观、测评报告不规范、结果可追溯性差。
4)不便于多个测评项目并行开展测评结果对比统计;对测评人员专业化要求高,测评效率低。
为了解决以上问题,本文基于IEC 62443-4-2标准,研究测评业务工作流程,进行工控系统网络安全测评系统的开发与设计。
基于测评工作的客观性和可重复性原则,严格参照IEC 62443-4-2标准,根据测评软件的需求分析,测评软件设计了测评计划管理、测评报告、结果分析、知识库管理、工具管理、人员管理6大功能模块,系统总体架构如图2所示。
系统采用B/S架构设计(见图3)。用户通过浏览器登录、进入测评系统,按照测评业务流程,进行测评计划执行、测评报告导出、测评结果分析等工作。测评标准、测评报告、测评过程数据等均在数据库进行存储。同时,考虑系统的兼容性和扩展性,用户除可以直接打开第三方工具软件,还可通过测评系统进行工具软件的调用和管理。
图2 系统总体架构
图3 系统网络架构
2.2.1 测评计划管理
测评计划管理包含了新建、编辑、删除、复制、执行功能。测评计划表单包含测评计划名称、系统名称、测评标准等信息,如表1所示。
表1 测评计划表单
新建测评计划时,依次填写表格信息。对已建计划进行再次编辑时,除测评标准、测评等级外其他项目可进行编辑。完成测评计划创建后,可执行测评计划,开始测评工作。
2.2.2 测评报告
测评报告模块包含了测评报告导出和过程记录导出两项功能。用户可在完成项目测评后导出预设模板的测评报告,提交给送测方或内部存档。项目完整的测评过程数据也可根据需求进行导出操作。
2.2.3 知识库管理
知识库管理作为测评标准和报告模板的管理平台,用户可进行编辑、上传、下载等操作。考虑测评软件的扩展性和通用性,系统初始内置IEC 62443-4-2标准,同时提供测评要素表单供用户进行自定义编辑,可在一个测评计划里完成多个标准的测评工作。
2.2.4 人员管理
人员管理模块采用用户分组、权限分级设计,从高到低依次为管理、测评、查看。管理权限可进行人员管理操作,包含用户新建、编辑、删除。
2.2.5 结果分析
结果分析模块具备结果汇总和风险分析功能,以柱状图的形式显示测评统计结果以及风险比例情况。
2.2.6 工具管理
进行安全测评时,通常会借助网络抓包、渗透测试、漏洞挖掘等网络安全常用工具、软件。工具管理模块作为系统扩展接口,提供给用户管理外部测评软件、测评工具。用户在测评需要时,可选择、调用相应工具软件。
本文基于IntelliJ IDEA环境采用Java编程语言进行测评软件开发(见图4)。IntelliJ IDEA作为一款高效的Java开发工具,整合了开发过程中很多的实用功能,具备智能选取、编码辅助、代码检查、代码分析、重构等功能,并支持PHP、MySQL、Python等多种编程语言。
根据IEC 62443标准的安全能力评价矢量模型:FR { IAC、UC、SI、DC、RDF、TRE、RA },设计62443-4-2测评要素表单[7]。以测评用户的标识和鉴别控制为例(见表2)。CR1.1定义了组件的基本安全要求,RE(1)、RE(2)定义了组件的增强要求,分别对应的安全等级也不同。根据被测组件的安全等级要求,进行相应的安全测评。
根据总体架构及系统功能设计,逐一进行各个功能模块界面显示、功能按钮开发编程,如图5所示。
IACS测评系统经过总体设计、功能设计、开发编程,运行界面如图6~8所示。
该测评系统已完成内部测试和提交第三方单位测评试用,测评业务流程清晰、测评项目准确、过程数据完整、测评报告规范,整体使用反馈良好。
图4 软件编程环境
表2 测评要素表单
图5 软件开发编程
图6 测评系统主界面
图7 新建测评计划
图8 执行测评项目
在充分研究IEC 62443-4-2标准以及测评业务工作流程的基础上,设计并实现了工控网络安全测评系统。该系统具备测评计划管理、测评报告、结果分析、知识库管理、工具管理、人员管理功能。经运行测试,测评系统操作简便、流程规范、可扩展性好,极大提高了测评效率,能较好地满足测评人员的使用需求,在工控网络安全测评领域具备一定的市场推广价值。