最新版本的OPC (OPC UA)在其设计中已经包括了安全性需求,但OPC“Classic”协议(OPC DA, OPC HAD和OPC A&E) 基于微软的DCOM协议,DCOM协议是在网络安全问题被广泛认识之前设计的。因此,这些协议给那些希望能确保控制系统安全性和可靠性的工程师带来了极大的挑战。
本解决方案简要介绍了与OPC相关的安全问题,并解释了如何使用OPC enforcer保护OPC服务器和OPC客户端。
OPC Classic的安全问题
大多数TPC和UDP通讯协议都使用单一的标准化端口号-例如,Modbus TCP通常使用502端口。客户端设备建立对服务器设备502端口的连接,然后发送数据到服务器设备,或者接受来自服务器设备的数据。使用防火墙来保护这些客户端和服务器设备相对而言比较简单-只需设置防火墙,仅允许指定端口号的上的通讯,阻止其他所有的网络通讯即可。
- OPC Classic协议就不是如此简单了。建立OPC连接需要以下两步:
- 1、客户端通过135端口查询服务器以获取通讯所需的TCP端口号。
- 2、客户端使用第一步获取到的端口号连接到服务器,访问目标数据。
步骤1中数据对象请求使用的端口号是标准化的,且是众所周知的。然而,实际数据连接(步骤2)使用的端口号是由OPC服务器以一个虚拟随机序列动态分配的,因此没有办法提前知道服务器返回给客户端的端口号。另外,服务器可以分配的端口号范围很广-Windows Server 2008下超过16000个端口号,早期的端Windows版本则超过了48000个端口号。
正因如此,传统的防火墙在保护OPC服务器时,不得不允许OPC客户端和OPC服务器之间如此大范围内的任何端口号的TCP连接。在这种情况下,防火墙提供的安全保障被降至最低。因此,目前绝大多数的OPC服务器都在没有任何防火墙保护的情况下运行,从而很容易受到恶意软件和其他安全威胁的攻击。
多芬诺 OPC Classic enforcer 软插件
多芬诺 OPC enforcer软插件可以动态跟踪OPC服务器分配的OPC数据连接的端口号。最低限度的打开通讯所需的防火墙的端口,允许数据连接通过,同时关闭所有未使用的端口。OPC enforcer软插件也可以对OPC数据请求和响应信息执行“sanity check”,从而阻止任何不符合有关DCE/RPC标准的信息。
因此,OPC enforcer软插件能够对使用OPC Classic协议的系统提供有效的防火墙保护。OPC数据连接将畅通无阻地通过Tofino安全模块(SA),而任何异常通讯和恶意通讯都将被阻挡,同时通过多芬诺Firewall软插件产生报告。Tofino安全模块提供的这些保护与Windows PC无关;不需要对OPC客户端或服务器做任何更改。
使用范例
下面的内容介绍如何使用OPC enforcer软插件来保护OPC客户端和OPC服务器设备之间的通信。在这个例子中,我们将用Matrikon OPC Explorer作为一个客户端与Matrikon OPC仿真服务器进行通信。在OPC服务器和控制网络的其余部分之间安装多芬诺安全模块。多芬诺组态管理平台(CMP)用于配置和管理多芬诺安全模块。系统网络结构图如图1所示。
图1 OPC通讯安全防护网络结构图
CMP的配置
CMP使用户可以通过拖放节点视图图标到网络编辑器中(或者通过使用Tofino discovery 和 asset discovery功能),创建控制网络模型。如果需要的话,可以模拟整个网络,但是只有防火墙规则中涉及到的设备才是网络模型中必须包含的。因此,案例中的OPC网络的最终模型(图2)是非常简单的。
图2 CMP中的网络模型
一旦模型创建完成后,必须激活Tofino安全模块中的Firewall和OPC enforcer软插件。这一工作在网络编辑器中的Tofino图标的“Modules”标签页中完成。
创建和配置防火墙规则
- 接下来,创建防火墙规则,允许客户端和服务器之间的OPC通讯。参照以下步骤创建“talker”防火墙规则:
- 1、双击OPC服务器的图标显示服务器的设置,然后单击其中的firewall标签页。
- 2、在“network”视图中(Tofino CMP的左上角)找到OPC客户端图标,然后将该图标拖放到OPC服务器的firewall标签页中的“talker rules”一行。
- 3、从“protocols”视图(Tofino CMP的右下角)中将“OPC Classic TCP”协议拖放到服务器的firewall标签页中的OPC客户端图标上。
- 4、双击“OPC Classic-TCP”防火墙规则,将其权限改为“enforcer”,点击“OK”。该权限设置使OPC enforcer能检查计算机间的通讯,并且跟踪被创建的OPC数据连接。
完成后的防火墙规则如图3所示。点击视图底部的 “OK”按钮,新的规则即可保存到Tofino CMP中,同时也被下载到Tofino安全模块中。
共0条 [查看全部] 网友评论