APP下载

基于Wireshark浅析Modbus协议及安全性

2021-07-20窦亚楠孟庆垚丁琪

网络安全技术与应用 2021年6期
关键词:数据格式工控主站

◆窦亚楠 孟庆垚 丁琪

(曲阜师范大学 网络空间安全学院 山东 273100)

1 引言

随着近年德国的“工业4.0”、美国的“再工业化”风潮、“中国制造2025”[1]等一批全球化重大国家工业发展战略不断推出,同时,我国云计算、大数据、人工智能、物联网等一系列全球化的新一代应用信息电子技术蓬勃发展,与工业制造过程科学和应用电子技术的发展深度紧密结合,工业生产过程控制管理体系从原始的工业封闭独立走向高度开放、由传统的单机控制走向移动互联、由工业自动化走向工业智能化。在大量工业企业正在快速发展的时期,也产生了许多安全风险问题,但是工业控制系统的安全问题与国家的系统安全以及社会稳定密不可分。在工控的研究范围内,为了研究探索工控安全问题,必须了解工控协议的具体内容。

为了探究网络安全问题,本文通过数据包的抓取以及数据包具体内容的分析对Modbus 协议的安全性进行研究。

2 Modbus 协议的基本内容

Modbus 协议是逻辑通讯控制协议,它是一种应用于工厂生产的可编程逻辑控制器,也就是PLC,为设备之间的相互通信提供了一种通用语言,即信息的传输与交换,例如Modbus 协议可以将同一网络传感器所测量的温度和湿度等数据传送给工控机或者PLC。

Modbus 协议是一个开放的协议,可以通过多种介质进行通信,例如串行RS-232、RS-485、RS-422 以及Ethernet。莫迪康公司发布了基于主从架构多点网络的Modbus 通信接口,通过发送请求和读取应答的方式来实现主从设备之间的通信[2]。Modbus 设备使用主从结构进行通信,即只能有一个主设备可以发起请求,其他设备通过将请求的数据提供给主站或执行请求的操作方式来做出响应。从站可以是任何外围设备,例如阀门、网络驱动器或其他测量设备,它们处理信息并且用Modbus 协议将其响应消息发送给主站对应的控制器,主站可以处理单个从站的数据,也可以向所有的从站发起请求,从站可以分别对请求进行寻址,并进行响应,从站不会自行发出请求,从站之间也不能进行通信,而是仅仅响应从主站发出的请求,主站的请求包括一个从站地址、一个功能码以及一个错误校验字段。

2.1 Modbus 协议的通信格式

Modbus 协议的通信格式包括数据长度、校验位、停止位以及波特率,数据长度是固定的,其中Modbus 协议通信格式中的校验位、停止位以及波特率都是可以选择变化的。

2.2 Modbus 协议的数据格式

Modbus 协议的数据格式如图1所示:

图1 Modbus 协议数据格式

2.2.1 常用功能码及其含义

Modbus 协议数据格式的常见功能码有H01、H02、H03、H04、H05、H06、H08、H0F、H10 等,其功能含义如图2所示:

图2 常用功能码

2.3 Modbus 协议的通信模式分类

在串行通信中,Modbus 协议支持两种通信模式:ASCII 模式和RTU 模式。ASCII 模式的优点之一是它可以允许字符之间的时间间隔长达1s,也就是它不会导致字符产生任何错误,而RTU 模式的优点则是在相同的波特率下其所需要传输的字符的密度比ASCII 模式高,需要连续不断地传输每个数据信息。

2.3.1 ASCII 通信模式的基本内容

(1)ASCII 模式的通信格式

若是使用Modbus 协议,必须按照如下要求进行,通信格式要求是不可更改的。

图3 ASCII 模式通信格式要求

(2)ASCII 模式的数据格式

ASCII 模式数据格式要求如图4所示,而且信息编码都是十六进制字符的。

图4 ASCII 模式数据格式要求

2.3.2 RTU 模式的基本内容

(1)RTU 模式通信格式

RTU 模式通信格式要求如图5所示:

图5 RTU 模式通信格式要求

(2)RTU 模式数据格式

RTU 模式数据要求如图6所示,信息编码都是十六进制字符的。

图6 RTU 模式数据格式要求

2.4 应答和错误检测

当一个主站向从站发送信息时,全部通信由两部分共同组成:一部分就是查询,又叫做请求,即主站向从站的数据信息的发送,另一部分是回传,又叫作响应,即从站对主站的数据信息的应答。应答的目的是告诉主站是否有错误,以及若主站向从站要求一些资料或者某种操作,则从站需要回答主站的相关通信请求。错误检测是通过查询主站的变化来指示是否有错误发生。当没有错误发生且从站正常应答时,从站对相同的功能码进行回应,而对于有错误或者异常的应答,从站应答时,功能码的最高位b7 将需要置为1[3]。与此同时,在数据格式的数据区中存入错误编码,主站还需要知道通信过程中发生了哪些错误。

3 获取并分析Modbus 协议

Modbus 协议作为一个非常典型的工业控制网络协议,研究它的安全性对提高我国工业控制网络的安全性具有十分重要的意义。一般而言,协议的安全性问题大致可以划分为两种,一种是由于协议自身的设计与描述而引起的安全问题;另一种是由于协议的错误实现而造成的安全事故。Modbus 协议也存在着这两个基本的问题[4]。因此,本文通过数据包的抓取以及数据包具体内容的分析对Modbus 协议的安全性进行研究。

3.1 环境搭建

在PC-1 中安装主站设备仿真软件Modbus Poll,把IP Address 修改为PC-2 的IP 的地址192.168.1.108,选择502 端口,Connect Timeout为3000ms,Response Timeout 为1000ms 以及Delay Between Polls 为20ms。

在PC-2 中安装从站设备仿真软件Modbus Slave,把IP Address修改为PC-1 的IP 的地址192.168.1.109,选择502 端口。

3.2 抓取数据

当Modbus Poll 和Modbus Slave 互连进行数据通讯之后,即Tx现在传输的就是数据。通过模仿集控室向PLC 发送一个指令,选择指令里面其中一个比如寄存器,在寄存器中写一些功能代码,功能代码中可以代入值,即在ModbusPoll 主界面点击菜单中的Funtions 选择Write Registers,双击选择其中一个功能代码,修改其数值Value为11,然后点击发送。Modbus Poll 和Modbus Slave 的寄存器子窗口结果变化分别如图7所示。

图7 寄存器子窗口数值变化

3.3 WIRESHARK 抓包结果以及数据包分析

在Wireshark 的面板中可以直接点击查看并得到每次捕获的文件中的所有数据包以及数据包的具体内容,在Packet Details 面板中可以直接点击查看捕获到的Modbus 数据包的具体内容,如图8所示。Register 9(UINT16)的数值被改为11。

图8 Wireshark 捕获数据包的具体内容

3.3.1 协议存在的问题及改进

在基于Modbus 协议通信过程中,攻击者利用一个恰当的IP 地址就可以直接使用功能码,就能建立一个基于Modbus 通信的会话,在上述实验中若进行MITM 攻击,即作为中间人进行拦截,对寄存器中的值进行篡改,由于Modbus 协议没有合法用户的身份验证,基于IP 层通过IP 地址做一个芯片把功能码拦截下来,拦截下来之后便可以篡改数据,寄存器里面的数值被改变,导致PLC 接受错误的指令,设备便会被攻击者控制,发生灾难性的安全事故。

如今,Modbus 协议已经被广泛应用于各种通用平板电脑与用户设计的移动操作系统中,在 TCP/IP 之上运行来实现发展需求。这样,TCP/IP 协议自身存在的安全问题不可避免地会影响到工控网络安全[5]。因此,需要对Modbus 协议的安全问题进行深入研究。

工业设备与传统IP 设备不同,工业设备是持续进行工作的,若大量的工业设备停止进行安全改造,将是一个巨大的经济损失。因此,在基于经济效益和设备的特点等多种因素的考虑下,Modbus 协议中安全问题的研究重点应注重其外部的完善。在主站设备与从站设备进行通信时增加合法用户身份认证以及对传输数据进行加密处理,为通信过程以及发送数据提供保护,同时提供系统安全检测设备,当异常行为发生时能够对其进行分析,若异常行为能够对系统产生威胁,安全检测设备可进一步进行拦截或者对系统管理员发出危险警告。

4 总结

通过对Modbus 协议基本内容的了解,Modbus 协议具有在通信过程中效率高、实现功能稳定以及可靠性强等优点,Modbus 协议是过程自动化和Scada 领域,也就是监控与数据采集领域迄今为止最早的、最受欢迎的自动化协议。如今,Modbus 协议已被运用到一系列领域,但是其安全问题并没有被社会广泛关注,Modbus 协议的缺点和脆弱性与工控网络安全问题息息相关,比如MITM 即中间人攻击,通过篡改数据引起工控网络安全事故。Modbus 协议存在缺少合法用户的身份认证、授权对象不明确、无加密机制等一系列安全隐患问题,因此,需要通过数字认证实现合法用户的身份认证、明确授权对象、通信会话进行加密等方法解决这些网络安全隐患问题。

猜你喜欢

数据格式工控主站
基于S7-1200 PLC的DP总线通信技术在马里古伊那水电站泄洪冲沙孔门机上的应用
变电站综合自动化系统调试新方法研究
工控速派 一个工控技术服务的江湖
基于RFID的户外广告监管系统的设计与实现
工控速浱 一个工控技术服务的江湖
EtherCAT主站与主站通信协议的研究与实现*
多表远程集抄主站系统
一种融合多业务的信息化系统框架研究
热点追踪 工控安全低调而不失重要
基于攻击图的工控系统脆弱性量化方法