首页
搜索
历史搜索
首页 > 新闻中心 > 技术应用

Modbus协议的应用场景有哪些

2022-12-26 11:17:10| 来源:聚英电子| | 0

  既然购物能通过一套规则做到这么便捷,那么通信是不是也能做到?答案是肯定的,因为通信就是数据交互,也可以通过制定一套规则来方便数据交互,这种规则就是通信协议。万事开头难,整明白了协议以及通信协议,那么MODBUS就说清楚了一半,因为MODBUS就是一种通信协议,那么MODBUS是怎样的一种通信协议呢?

  众所周知,网购的规则是为了协调买家、卖家、第三方平台之间的关系,规定了各方享有的权利和承担的义务,提出一些完成交易需要的步骤和方法。大家直接就能想到的场景,比如说电商会展示商品和服务内容(买、可退换)、网络平台(淘宝、天猫)制定了交易的规则,以及快递公司定义了传输商品的方式(包裹、快递单)。

  同样道理,MODBUS通信协议是为了方便控制器、设备之间的数据交互,表面上由类似于“用户须知”一样的诸多条文组成,其实也就是说了几件事情:协议功能、通信内容、通信规则、通信数据格式。

  1)通信功能:MODBUS通信协议定义的功能包括读、写、诊断,这里可以想象一下,当你打电话办理某个业务,语音提示你:请输入您想办理业务,按键1查询,2充值,0人工服务,这不就是功能码嘛!

  2)通信内容:正如电商会展示出商品供大家选择一样,MODBUS通信协议定义了通信的内容包括保持型寄存器、输入寄存器、线圈等。商品有小件也有大件的,能退也有不能退的,这些通信的内容也是有的可以读写,有的只能读。

  

MODBUS


  

  3)通信规则:MODBUS通信协议采用客户端/服务器模式进行通信,可以看看图表2对这种通信模式与网购的类比。显然两个客户端是没办法直接通信的,因为两个买家能干嘛?

  4)通信数据格式:网购后,卖家会采用物流投递,快递公司不会像餐厅侍者一样,托着商品呈递到家中,而采用包裹的形式,按照快递单据准确送达,这就是网购货品的形式。

  MODBUS通信协议为了实现准确传输数据,也需要“打包”和“快递单”。假如说货品是一个保持寄存器,那么打包过程就是将保持寄存器的值用功能码包装,形成协议数据PDU(类似于包裹);货品贴上快递单就是说数据PDU被加上了地址和差错校验(即)后形成一帧完整的通信数据(应用数据ADU)。

  Modbus协议包括ASCII、RTU、TCP等。并且没有指定物理层。该协议定义了控制器可以识别和使用的消息结构,而不管它们通过什么网络进行通信。标准Modicon控制器采用RS232C实现串行Modbus。Modbus的ASCII和RTU协议规定了消息和数据的结构,命令和应答方式。数据通信采用主从模式,主机发出数据请求消息。从属设备收到正确的消息后,可以向主设备发送数据以响应请求。主终端也可以直接发送消息修改从终端的数据,实现双向读写。

  Modbus协议需要检查数据。除了奇偶校验,ASCII模式使用LRC校验,RTU模式使用16位CRC校验,但TCP模式没有额外的校验,因为TCP协议是可靠的面向连接的协议。另外,Modbus采用主从模式,定时收发数据。在实际使用中,如果从站断开(如故障或关机),主终端可以进行诊断,故障修复后,网络可以自动连接。所以Modbus协议的可靠性更好。

  Modbus 协议是典型的工控网协议,研究其安全性对于加强工业控制网络的安全性有重要意义。一般来说,协议安全性问题可以分为两种,一种是协议自身的设计和描述引起的安全问题; 另一种是协议的不正确实现引起的安全问题。Modbus 协议也存在着这两方面的问题。

  Modbus 协议的固有问题

  绝大多数工控协议在设计之初,仅仅考虑了功能实现、提高效率、提高可靠性等方面,而没考虑过安全性问题。Modbus 协议也不例外,尽管其已经成为事实上的工业标准。从前面原理分析可以看出其本身的安全性问题是: 缺乏认证、授权、加密等安全防护机制和功能码滥用问题。

  ( 1) 缺乏认证

  认证的目的是保证收到的信息来自合法的用户,未认证的用户向设备发送控制命令不会被执行。在Modbus 协议通信过程中,没有任何认证方面的相关定义,攻击者只需要找到一个合法的地址就可以使用功能码就能建立一个Modbus 通信会话,从而扰乱整个或者部分控制过程。

  ( 2) 缺乏授权

  授权是保证不同的特权操作需要由拥有不同权限的认证用户来完成,这样可大大降低误操作与内部攻击的概率。目前,Modbus 协议没有基于角色的访问控制机制,也没有对用户分类,没有对用户的权限进行划分,这会导致任意用户可以执行任意功能。

  ( 3) 缺乏加密

  加密可以保证通信过程中双方的信息不被第三方非法获取。Modbus 协议通信过程中,地址和命令全部采用明文传输,因此数据可以很容易的被攻击者捕获和解析,为攻击者提供便利。

  ( 4) 功能码滥用

  功能码是Modbus 协议中的一项重要内容,几乎所有的通信都包含功能码。目前,功能码滥用是导致Modbus 网络异常的一个主要因素。例如不合法报文长度,短周期的无用命令,不正确的报文长度,确认异常代码延迟等都有可能导致拒绝服务攻击。

  协议实现产生的问题

  虽然Modbus 协议获得了广泛的应用,但是在实现具体的工业控制系统时,开发者并不具备安全知识或者没有意识到安全问题。这样就导致了使用Modbus 协议的系统中可能存在各种各样的安全漏洞。

  ( 1) 设计安全问题

  Modbus 系统开发者重点关注的是其功能实现问题,安全问题在设计时很少被注意到。设计安全是指设计时充分考虑安全性,解决Modbus 系统可能出现的各种异常和非法操作等问题。比如在通信过程中,某个节点被恶意控制后发出非法数据,就需要考虑这些数据的判别和处理问题。

  ( 2) 缓冲区溢出漏洞

  缓冲区溢出是指在向缓冲区内填充数据时超过了缓冲区本身的容量导致溢出的数据覆盖在合法数据上,这是在软件开发中最常见也是非常危险的漏洞,可以导致系统崩溃,或者被攻击者利用来控制系统。Modbus 系统开发者大多不具备安全开发知识,这样就会产生很多的缓冲区溢出漏洞,一旦被恶意者利用会导致严重的后果。

  ( 3) Modbus TCP 安全问题

  目前,Modbus 协议已经可以在通用计算机和通用操作系统上实现,运行于TCP /IP 之上以满足发展需要。这样,TCP /IP 协议自身存在的安全问题不可避免地会影响到工控网络安全。非法网络数据获取,中间人,拒绝服务, IP 欺骗,病毒木马等在IP 互联网中的常用攻击手段都会影响Modbus 系统安全。

  

Modbus TCP 安全问题


  

  安全建议

  目前,Modbus 系统采取的安全防护措施普遍不足,这里参考信息安全业内研究并结合工控系统自身的安全问题,提出了一些安全建议,能够有效地降低工业控制系统面临的威胁。

  ( 1) 从源头开始

  工控网络漏洞,很大一部分是其实现过程出现的漏洞。如果从源头开始控制,从Modbus 系统的需求设计、开发实现、内部测试和部署等阶段,全生命周期的介入安全手段,融入安全设计、安全编码以及安全测试等技术,可以极大地消除安全漏洞,降低整个Modbus 系统的安全风险。

  ( 2) 异常行为检测

  异常行为代表着可能发生威胁,不管是有没有攻击者,因此开发针对Modbus 系统的专用异常行为检测设备可以极大提高工控网络的安全性。针对Modbus 系统,首先要分析其存在的各种操作行为,依据“主体,地点,时间,访问方式,操作,客体”等行为描述成一个六元组模型; 进而分析其行为是否属于异常; 最终决定采取记录或者报警等措施。

  ( 3) 安全审计

  Modbus 的安全审计就是对协议数据进行深度解码分析,记录操作的时间、地点、操作者和操作行为等关键信息,实现对Modbus 系统的安全审计日志记录和审计功能,从而提供安全事件爆发后的时候追查能力。

  

网络安全设备


  

  ( 4) 使用网络安全设备

  使用入侵防御和防火墙等网络安全设备。防火墙是一个串行设备,通过设置,只允许特定的地址访问服务端,禁止外部地址访问Modbus 服务器,可以有效的防止外部入侵; 入侵防御设备可以分析Modbus协议的具体操作内容,有效地检测并阻止来自内部/外部的异常操作和各种渗透攻击行为,对内网提供保护功能。

  至于ModbusASCII、RTU和TCP协议,其中TCP和RTU协议非常相似,我们只需要去掉RTU协议的两字节校验码,然后在RTU协议开头加上五个零和一个六,通过TCP/IP网络协议发送出去。

  综上所述,MODBUS就是包含以上4个内容的通信协议。其实,工业互联网中的一些技术并不是特别深奥,能从生活中找到原型,你看MODBUS通信协议不也是可以很俗很直观的吗?


联系销售
销售王经理微信 销售王经理
微信公众号 微信公众号
服务热线
400-6688-400