新闻动态

News information

六方云就OPC UA的18个安全漏洞的分析与应对措施

<<返回

2019年08月16日 15:38

1.   OPC UA协议简介

1.1   OPC UA协议概述

OPC(Object Linking and Embedding(OLE)for Process Control)是微软公司的对象链接和嵌入技术在过程控制方面的应用,被称为控制系统“中间件技术”,是专为在现场设备、自控应用、企业管理应用软件之间实现系统无缝集成而设计的接口规范。OPC自发布以来已广泛应用在工业控制系统的信息集成,但由于对微软COM/DCOM技术的依赖性,导致其在OPC的安全性、跨平台性以及连通性方面都存在很多问题。如:很难通过Internet/Intranet,尤其是企业防火墙;难运行在非微软系统,也难以在嵌入式系统中实现;很多上层应用没有OPC-COM接口,难以进行远程调用等。

鉴于此,OPC基金会发布了最新的数据通信统一方法—OPC统一架构(OPC UA)。OPC UA有效地将现有的OPC规范(DA、A&E、HDA、命令、复杂数据和对象类型)集成进来,并进行扩展。OPC UA提供一致、完整的地址空间和服务模型,解决过去同一系统的信息不能以统一方式被访问的问题。OPC UA规范可以通过任何单一端口进行通信。这让穿越防火墙不再是OPC通信的路障,并且为提高传输性能,OPC UA消息的编码格式可以是XML文本格式或二进制格式,也可使用多种传输协议(如TCP)进行传输。OPC UA访问规范明确提出标准安全模型,用于OPC UA应用程序之间传递消息的底层通信技术提供加密功能和标记技术,保证消息的完整性和安全性。OPC UA软件从过去只局限于Windows平台拓展到Linux、Unix、Mac等各种其它平台。OPC UA支持基于Internet的WebService服务架构(SOA)和非常灵活的数据交换系统。OPC UA新的技术特点将使其获得更广泛的应用。

1.2   OPC UA 技术架构

OPC UA并不限定为一种层次结构,可按不同的可剪裁的层次结构表示数据,客户端能按喜欢的方式浏览数据。这种灵活性结合对类型定义的支持,使得OPC UA适用于更广泛的应用领域。如图1所示,OPC UA的设计目标不仅应用于底层数据的SCADA、PLC和DCS接口,还可作为在更高层次功能之间提供重要互操作性的方法,如企业级上层管理与生产过程管理的数据集成与共享等见下图。

OPC UA允许其他技术组织或开发团体在其定义的信息模型基础上构造自己的模型,如IEC开始制定FDI(现场设备集成)标准。FDI合并了EDDL和FDT,并兼容OPC UA规范。

                                             

image.png

图: OPC UA应用结构

 

1.3   OPC UA服务

OPC UA服务是抽象服务,可看作是抽象远程过程调用的集合。OPC UA服务由服务器实现,被客户端调用。OPC UA客户端和服务器之间的所有交互都通过服务实现,如安全机制等。OPC UA共定义了10种服务集。

1.4   OPC UA安全架构

工业控制系统是国家生产设施和基础设施的关键组成部分,随着信息技术在工业领域应用的不断深入,以及近年来针对工业系统的攻击行为大幅增长,工业系统的信息安全面临严峻挑战。鉴于此OPC UA建立了完整的安全机制。OPC UA安全架构在传输层之上的应用层和通信层上构建,如下图所示。

image.png

图: OPC UA安全架构

客户端应用和服务器传输工厂信息、设置和命令这些日常工作由应用层的会话完成。应用层通过用户鉴别和用户授权管理安全目标。应用层的会话在安全通道上通信并依靠安全通道实现安全通信,安全通道由该通信层产生。所有的会话数据传递给通信层做进一步处理。

通信层提供安全机制以实现作为安全目标的机密性、完整性和应用鉴别。满足上述安全目标的关键机制是建立安全通道,安全通道用于保障客户端和服务器之间通信的安全。安全通道提供加密以维护机密性,提供消息签名以维护完整性,提供数字证书为来自应用层的数据提供应用鉴别,并向传输层传递“安全”的数据。由通信层管理的安全机制由OPC UA规定的安全通道服务提供。由安全通道服务提供的安全机制由实现选择的协议栈提供。

传输层处理发送、接送和传输通信层提供的数据。为恢复已断开的传输层连接(例如:TCP连接),通信层实现负责重新建立传输层连接,而不中断逻辑安全通道。

2.   卡巴实验室发现了OPC UA 17个安全漏洞

2.1   事件回顾

虽然OPC UA安全架构考虑非常周全,但并不代表OPC UA就绝对安全!OPC UA在设计和实现阶段,可能会引入各种安全问题。

2018年5月10日,卡巴斯基实验室在官网发布了新闻稿《卡巴斯基实验室发现常用工业协议中存在严重漏洞 影响来自多个供应商的产品》和分析报告《OPC UA安全性分析》。新闻稿和分析报告披露了OPC UA协议存在17个安全漏洞。

OPC基金会官网也同步进行了回复:《回顾卡巴斯基实验室报告确认OPC Foundation的透明,开源OPC UA实施策略可提高安全性》,并发布了《安全公告》(1)和《安全公告》(2)。

OPC UA协议17个安全漏洞公开以后,引起了工控安全领域的关注,多家安全媒体进行了转载,或者发表的自己的分析文章。

2.2   OPC基金会对17个漏洞的回复

Screenshot_2019-08-16-19-37-46-902_cn.wps.moffice_eng.png

问题1-8与OPC Foundation ANSI-C示例服务器应用程序相关联,该应用程序随GitHub中的ANSI-C堆栈代码一起提供。这些问题不会影响ANSI C堆栈本身或基于商业SDK的产品。尽管如此,所有问题都得到了解决。

问题9-14与OPC Foundation服务器枚举器(LDS)相关联。这些是在2017年修复的,并发布了CVE。这些问题无法远程利用。

问题15影响了一个遗留的.NET堆栈,该堆栈在2017年由OPC基金会迅速修复。在2017年,OPC用户通过CVE通知了此问题。

问题16个问题特定于2016年发布CVE的供应商的产品;

问题17是针对正在进行修复的供应商提供的产品,并将尽快向美国ICS CERT报告;

2.3   OPC基金会发布的安全公告涉及8个漏洞

image.png

2.3.1    CVE-2017-12070

image.png


2.3.2 CVE-2017-12069

image.png

2.3.3 CVE-2017-11672

image.png

2.3.4    CVE-2017-17443

image.png

2.3.5 CVE-2018-7559

image.png

2.3.6 CVE-2018-12086

image.png

2.3.7 CVE-2018-12585

image.png

2.3.8 CVE-2018-12087

image.png

3.   六方云针对这些漏洞的解决措施

3.1   及时更新漏洞库

六方云工业漏扫和工控等保工具箱使用的漏洞库及时与NVD官方发布的CVE漏洞信息同步更新,保证了六方云工业漏扫和等保工具箱能够及时扫描出OPC UA的这些漏铜,并提供相应的修改建议。

3.2   及时开发入侵检测规则

针对卡巴斯基实验室爆出的这些OPC UA安全漏洞,六方云进行了深入研究分析,为防火墙和审计产品开发出了相应的入侵检测规则,确保六方云工业防火墙和工业审计产品能够及时发现和拦截针对这些漏洞的攻击行为。六方云工业防火墙还可以配置为NAT模式,隐藏工业内网达到更高安全防护要求,同时又保证合法的OPC UA通信数据能够顺利的通过防火墙。

3.3   工业态势感知系统实时监测全网安全态势

六方云工业蜜罐能够仿真模拟有这些漏洞的OPC UA服务,对针对这些漏洞的攻击行为进行诱捕、跟踪和分析。并将相关信息上传给工业态势感知系统,工业态势感知系统通过大数据、AI等技术输出全网实时安全态势。

4.   参考文献

(1)    《OPC UA技术简介》----方晓时、王麟琨;

(2)    《OPC UA安全性分析》----卡巴斯基实验室;

(3)    《OPC UA安全公告》----OPC基金会。