工控通信协议分析.docx

上传人:h**** 文档编号:663627 上传时间:2018-10-26 格式:DOCX 页数:27 大小:921.62KB
下载 相关 举报
工控通信协议分析.docx_第1页
第1页 / 共27页
工控通信协议分析.docx_第2页
第2页 / 共27页
工控通信协议分析.docx_第3页
第3页 / 共27页
工控通信协议分析.docx_第4页
第4页 / 共27页
工控通信协议分析.docx_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、 典型工业控制系统通信协议 安全性分析报告 启明星辰集团 工控安全事业部 2015/10/26 典型的工业控制系统通信协议的安全性分析 1 目 录 前言 .2 1 Modbus TCP 协议 .3 1.1 协议简介 .3 1.2 协议规范 .4 1.3 协议安全性分析 .6 2 OPC 协议 .8 2.1 协议简介 .8 2.2 协议安全性分析 .14 3 DNP3 协议 .16 3.1 协议简介 .16 3.2 协议规范 .16 3.3 协议安全性分析 .18 4 Ethernet/IP 协议 .20 4.1 协议简介 .20 4.2 协议规范 .20 4.3 协议安全性分析 .21 5 E

2、therCAT 协议 .23 5.1 协议简介 .23 5.2 协议规范 .23 5.3 协议安全性分析 .25 典型的工业控制系统通信协议的安全性分析 2 前言 网络协议是计算机网络中进行数据交换而建立的规则、标准或约定。要理解工业网络如何工作,首先要了解他们所使用的底层通信协议,及其应用场景和选择这些协议的原因。目前,已有的许多工业控制专用协议,大多是为了提高效率和可靠性而设计的,以满足大规模分布式控制系统的运行需要。同时,令人堪忧的是为了提升效率,而放弃了协议的安全特性,例如:要求额外开销的认证和加密等措施。更有许多工控协议为了能够适应以太网运行做了修改,使得协议存在可以被利用的漏洞。

3、因此,启明星辰对常见的 Modbus TCP、OPC、DNP3、Ethernet/IP、EtherCAT 这五种常见协议进行安全性分析,以期发现基于协议漏洞的攻击方式。 欢迎各位专家提宝贵意见。 技术联系人: 郑凌鹏: 18911351988 zheng_ 孟雅辉: 13910158620 meng_ 1 Modbus TCP 协议 1.1 协议简介 Modbus 是由 Modicon(现为施耐德电气公司的一个品牌 )在 1979 年发明的,是一个划时代、里程碑式的网络协议,作为上个世纪第一个在工业现场总线发挥作用的工业总线协议, Modbus 协议由于其免费、开放、简单等优点,至今仍典型的工

4、业控制系统通信协议的安全性分析 3 然活跃在工业、建筑、基础设施等领域中。随着时代的发展和需求的变化,Modbus 己经衍生出 Modbus Plus. Modbus TCP/IP 等协议,其已经发展成一个协议簇。 在我国,已制定国家标准 GB/T19582-2008基于 Modbus 协议的工业自动化网络规范 。Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。 使用 Modbus 协议,不同厂商生产的控制设备在各种网络体系结构内进行简单通信,每种设备(PLC、HMI、控制面板、驱动程序、动作控制、输入输出设

5、备)都能使用 Modbus 协议来启动远程操作,在基于串行链路和以太 TCP/IP 网络的 MODBUS 上可以进行相同通信。 Modbus TCP 以一种比较简单的方式将 Modbus 帧嵌入 TCP 帧中。IANA(互联网编号分配管理机构)给 Modbus 协议赋予 TCP 端口 502。 如下图所示,每种设备都能使用 Modbus 协议来启动远程操作,在基于串行链路和以太网 TCP/IP 的 Modbus 上可以进行相同的通信,一些网关允许在几种使用 Modbus 协议的总线或网络之间进行通信。 图 1-1 ModbusTCP 通信网络 1.2 协议规范 Modbus TCP 是 OSI

6、 通信参考模型第七层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。 如下图所示: 典型的工业控制系统通信协议的安全性分析 4 协议格式如下: MBAP 报文头 功能代码 数据 图 1-2 Modbus TCP 协议应用数据单元的结构Modbus 协议的功能码分为三类: (1)公共功能码 是较好地被定义的功能码; 保证是唯一的; MODBUS 组织可改变的; 公开证明的; 具有可用的一致性测试; MB IETF RFC 中证明的; 包含已被定义的公共指配功能码和未来使用的未指配保留供功能码。 (2)用户定义功能码 有两个用户定义功能码的定义范围,即 65

7、至 72 和十进制 100 至 110; 用户没有 MODBUS 组织的任何批准就可以选择和实现一个功能码; 不能保证被选功能码的使用是唯一的; 典型的工业控制系统通信协议的安全性分析 5 如果用户要重新设置功能作为一个公共功能码,那么用户必须启动RFC,以便将改变引入公共分类中,并且指配一个新的公共功能码。 (3)保留功能码 一些公司对传统产品通常使用的功能码,并且对公共使用是无效的功能码。 图 1-3 Modbus 功能码分类 典型的工业控制系统通信协议的安全性分析 6 图 1-4 公共功能码定义 1.3 协议安全性分析 (1) 没有认证机制 在网络连接方面,利用的是 TCP 协议。在知道

8、目标 IP 地址的情况下,只要通过 502 端口就可以发起并建立通信连接。如果应用数据单元携带的功能码是 Modbus 设备所支持的,那么就可以建立起一个合法的 Modbus 会话。 没有消息校验(只有 Modbus TCP 存在该问题)。在某些 Modbus TCP 实现中, 校验和是在传输层而非应用层生成,从而使得假冒命令更加容易。 (2) 没有权限区分 对于任何人,只要他能够连接到目标 Modbus 设备上,那么他就可以执行所有 Modbus 设备所具有的功能。 (3) 数据明文传输 Modbus 协议封装的是 ADU,传输的也是这个 ADU,在网络上都是以明文的形式传输,通过抓包技术就

9、可以获取并解析出里面的数据。 典型的工业控制系统通信协议的安全性分析 7 由于工厂生产环境特殊性,不到万不得已的地步,工厂很难做到随时停工停产进行生产设备的更新换代,因此在现有条件基础上对 Modbus 协议以上三点缺点进行安全加固工作很有必要。 (4) 没有广播抑制(只有串行 Modbus 变体存在该问题) 串行连接的所有设备都会收到所有消息, 意味着在串行连接设备链中,可以通过对不明地址进行广播,有效地实现拒绝服务(Dos)攻击。 (5) 可编程性 Modbus 最危险的特点是它为编程控制器设计的, 因此可以用来向 RTU 或 PLC 中注入恶意代码,该问题也存在于许多其他工业协议中。 一

10、些需要特别关注的 Modbus 消息的例子包括: 强制从设备转到“只听”(Listen Only)模式的功能码 重启通信的功能码 清除、擦除或重置诊断信息(如计数器与诊断寄存器)的功能码 请求关于 Modbus 服务器、 PLC 配置或其他敏感信息的功能码 对定义点列表及其值的 Modbus 请求(配置扫描) 请求从站标志信息 请求从站附加信息 大小或长度有问题的 Modbus TCP 数据包。可能的拒绝服务攻击 从服务器到多个节点的 Modbus 流量,可能的拒绝服务攻击 TCP 端口 502 上的非 Modbus 或缺陷 Modbus 报文 从设备忙异常代码延迟(异常码 06) ,可能的拒

11、绝服务攻击 确认异常代码延迟(异常码 05) ,可能的拒绝服务攻击 不正确的报文长度(最大 253) ,可能的拒绝服务攻击 配置扫描(例如定义的点列及其值) (30 秒内 5 个异常码 02) 可用功能码扫描(60 秒内 3 个异常码 01) 修改分隔符(08-03) 周期较短(实际阈值待定)的无意义命令,暴力拒绝服务 广播性质的报文或一个主站向多个从站的请求 典型的工业控制系统通信协议的安全性分析 8 包含在异常协议数据单元中的信息 列出所有可用功能码的命令(功能扫描) 2 OPC 协议 OPC(OLE for Process Control, 用于过程控制的 OLE)是一个工业标准,管理这

12、个标准国际组织是 OPC 基金会,OPC 基金会现有会员已超过 220 家。遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。基于微软的 OLE(现在的 Active X)、COM (部件对象模型)和 DCOM (分布式部件对象模型)技术。OPC 包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。 OPC 的出现解决了控制系统突破“信息孤岛”的瓶颈问题。OPC 技术建立了一组符合工业控制要求的接口规范,将现场信号按照统一的标准与 SCADA, HMI 等软件无缝连接起来,同时将硬件和应用软件有效地分离开。只要硬件开发商提供带有 OPC 接口的服务器,

13、任何支持 OPC 接口的客户程序均可采用统一的方式对不同硬件厂商的设备进行存取,无须重复开发驱动程序。这样大大提高了控制系统的互操作性和适应性。 1995 年,由 Fisher-Rosemount、RockwellSoftware、Opto22、Intellution 和 IntuitiveTechnology 发起成立 OPC 基金会。第一份 OPC 标准草案于 1995 年 12 月发布,第二份草案于 1996 年 3 月发布,第二份草案成功的吸引了大量开发人员的注意,并将其理念推向世界。OPC 规范 1.0 版本于 1996 年 8 月 29 日正式出版,开始了全球范围的活动。截止 20

14、11 年,OPC 国际基金会总共拥有 440 余位公司成员/80 多位最终用户成员,3500 多家致力于开发 OPC 产品的公司,超过 22000 种产品,拥有 3000 多种产品资料,在包括中国在内的全球 52 个国家和地区拥有众多分支机构。随着技术的发展和市场的需求,OPC 技术的发展经历了三个主要阶段,即经典 OPC、OPCXML-DA 和 OPCUA。 典型的工业控制系统通信协议的安全性分析 9 2.1 协议简介 (1) 经典 OPC OPC 第一阶段的技术称为经典的 OPC。根据工业应用的不同需求,经典 OPC 包括 的规范: Data Access(DA) , Alarm&Even

15、ts(A&E) , Historical Data Access(HDA),OPC Batch,OPC Security,OPCDX 和 OPC Complex Data。其中应用较多的有 DA,AE 和 HAD。DA 指出如何访问当前的过程数据, A&E 提供了基于事件信息的接口,HDA 描述了如何访问已存档的数据。所有的接口都提供通过地址空间导航获取可用数据的方法。 (2) OPC DA OPC DA 即 OPC 数据访问规范,它是由 OPC 基金会定义的其中一种通信规范,定义了实时数据如何在数据源和数据接收体(比如 PLC,HMI)之间,在不知道彼此特定通信协议的情况下仍然进行交换、传输

16、。 年份 版本 备注 1996 1.0 初始规范 1997 1.0a 数据访问,该名称用于区分与其并行开发的其它1998 2.02.05a 多处规范澄清和修改 2003 3.0 进一步补充和修改 表 2-1 OPC DA 规范主要版本 OPC 数据存取规范定义了 OPC 服务器中一组 COM 对象及其接口,并规定了客户程序对服务器程序进行数据存取时需要遵循的标准。OPC 数据存取规范以 OPC 对象模型逻辑为基础,该模型包含三类对象: OPC 服务器对象,OPC 组对象和 OPC 项对象。OPC 服务器对象并作为 OPC 组对象的包容器维护有关服务器的信息,OPC 服务器对象主要实现 IUnknown 和 IOPCServer 接口,OPC 客户程序通过 OPC 服务器的接口与 OPC 对象进行通信,存取数据源,数据源可以是现场设备,也可以是应用程序,服务器内部封装了与 I/O 控制设备通讯及操作的具体实现过程;OPC 组对象维护有关其自身的信息,提供包容 OPC 项的机制,并管理 OPC 项,它提供了一种客户程序组织数据的手段,例如一个组中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 经济合同

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。