-
安全产品
-
-
-
工业控制协议介绍之——Modbus协议
发布时间:
2018-01-26
来源:
作者:
访问量:
60
早在1971年,Modicon公司首次推出了Modbus协议,ModbusRTU和Modbus ASCII诞生于此。后来施耐德电气(SchneiderElectric)收购了Modicon公司,并在1997年推出了ModbusTCP协议。2004年,中国国家标准委员会正式把Modbus作为了国家标准,开启了Modbus为中国工业通信做贡献的时代。
通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。Modbus协议具有标准、开放,可以支持多种电气接口,数据帧格式简单紧凑,数据传输量大、实时性好等特点,在工业控制系统中得到了广泛的应用,已经成为通用工业标准。深入分析Modbus协议实现原理和其安全性对提高工控系统安全性有着重要的现实意义。
ModbusRTU和ModbusASCII主要用于串行通信领域,而ModbusTCP则常用于以太网通信。现在,Modbus已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
协议原理:
Modbus使用一种简单的主从协议(客户机/服务器协议)进行通信。客户机作为主站,向服务器发送请求;服务器(从站)接到请求后,对请求进行分析并做出应答。一般使用上,监控系统(HMI)都为Master、PLC、电表、仪表等都为Slave。
Modbus通信帧被称为应用数据单元(Application Data Unit,ADU),它包括通信地址段、功能代码段、数据段和校验段,如下图:
传输方式:
Modbus 协议是一种应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型,协议本身并没有定义物理层,只是定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。
Modbus 协议使用串口传输时可以选择RTU或ASCII模式,并规定了消息、数据结构、命令和应答方式并需要对数据进行校验。
TCP 模式是为了让Modbus 数据顺利在以太网上传输产生的,使用502 端口。与串行链路传输的数据格式不同,TCP 模式去除了附加地址和校验,增加了报文头,其具体格式如图:
功能介绍:
Modbus客户机向服务器发送报文时,通过功能码域指示服务器执行某种操作。Modbus 标准包含了大多数设备将支持的功能代码。这些功能码在 Modbus 标准中定义,常见的功能码如下图所示:
安全性分析:
问题分析:
◆1:缺乏认证
在Modbus 协议通信过程中,没有任何认证方面的相关定义,攻击者只需要找到一个合法的地址就可以使用功能码就能建立一个Modbus 通信会话,从而扰乱整个或者部分控制过程。
◆2: 缺乏授权
目前,Modbus 协议没有基于角色的访问控制机制,也没有对用户分类,没有对用户的权限进行划分,这会导致任意用户可以执行任意功能。
◆3: 缺乏加密
Modbus 协议通信过程中,地址和命令全部采用明文传输,因此数据可以很容易的被攻击者捕获和解析,为攻击者提供便利。
◆4: 功能码乱用
功能码滥用是导致Modbus 网络异常的一个主要因素。例如不合法报文长度,短周期的无用命令,不正确的报文长度,确认异常代码延迟等都有可能导致拒绝服务攻击。
安全建议:
◆1:异常行为检测
异常行为代表着可能发生威胁,不管是有没有攻击者,因此开发针对Modbus 系统的专用异常行为检测设备可以极大提高工控网络的安全性。针对Modbus 系统,首先要分析其存在的各种操作行为,依据“主体,地点,时间,访问方式,操作,客体”等行为描述成一个六元组模型; 进而分析其行为是否属于异常; 最终决定采取记录或者报警等措施。
◆2:安全审计
Modbus 的安全审计就是对协议数据进行深度解码分析,记录操作的时间、地点、操作者和操作行为等关键信息,实现对Modbus 系统的安全审计日志记录和审计功能,从而提供安全事件爆发后的时候追查能力。
◆3:使用网络安全设备
使用入侵防御和防火墙等网络安全设备。通过设置,只允许特定的地址访问服务端,禁止外部地址访问Modbus 服务器,可以有效的防止外部入侵; 入侵防御设备可以分析Modbus协议的具体操作内容,有效地检测并阻止来自内部/外部的异常操作和各种渗透攻击行为,对内网提供保护功能。
上一条:
下一条:
相关资讯

关注我们