OPC通讯的安全防护-OK.doc
文本预览下载声明
OPC通讯的安全防护
OPC(用于过程控制的OLE)被广泛应用在控制系统中,用于提供不同供应商的设备和软件之间的互操作性。
最新版本的OPC (OPC UA)在其设计中已经包括了安全性需求,但OPC“Classic”协议(OPC DA, OPC HAD和OPC AE) 基于微软的DCOM协议,DCOM协议是在网络安全问题被广泛认识之前设计的。因此,这些协议给那些希望能确保控制系统安全性和可靠性的工程师带来了极大的挑战。
本应用指南简要介绍了与OPC相关的安全问题,并解释了如何使用OPC enforcer保护OPC服务器和OPC客户端。
OPC Classic的安全问题
大多数TPC和UDP通讯协议都使用单一的标准化端口号-例如,Modbus TCP通常使用502端口。客户端设备建立对设备502端口的连接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所示。
CMP的配置
CMP使用户可以通过拖放节点视图图标到网络编辑器中(或者通过使用Tofino discovery 和 asset discovery功能),创建控制网络模型。如果需要的话,可以模拟整个网络,但是只有防火墙规则中涉及到的设备才是网络模型中必须包含的。因此,案例中的OPC网络的最终模型(图2)是非常简单的。
一旦模型创建完成后,必须激活Tofino安全模块中的Firewall和OPC enforcer软插件。这一工作在网络编辑器中的Tofino图标的“Modules”标签页中完成。
创建和配置防火墙规则
接下来,创建防火墙规则,允许客户端和服务器之间的OPC通讯。参照以下步骤创建“talker”防火墙规则:
双击OPC服务器的图标显示服务器的设置,然后单击其中的firewall标签页。
在“network”视图中(Tofino CMP的左上角)找到OPC客户端图标,然后将该图标拖放到OPC服务器的firewall标签页中的“talker rules”一行。
从“protocols”视图(Tofino CMP的右下角)中将“OPC Classic TCP”协议拖放到服务器的firewall标签页中的OPC客户端图标上。
双击“OPC Classic-TCP”防火墙规则,将其权限改为“enforcer”,点击“OK”。该权限设置使OPC enforcer能检查计算机间的通讯,并且跟踪被创建的OPC数据连接。
完成后的防火墙规则如图3所示。点击视图底部的 “OK”按钮,新的规则即可保存到Tofino CMP中,同时也被下载到Tofino安全模块中。
测试规则
独特的“测试”模式允许所有的网络通讯通过Tofino安全模块,但对实际运行中会受阻的通讯产生报警信息。从而可以在不存在意外阻止正确工厂操作所需通讯的风险下,对防火墙和OPC enforcer规则进行测试。
使用“general/communication”标签页中底部的下拉控制,可以设置运行模式,在Tofino的工作模式改变后,必须停止并重启OPC客户端,这样的话OPC enforce
显示全部