APP下载

基于Modbus协议新能源风电网络通信安全研究

2022-09-05田学成张五一陈燕峰

网络安全与数据管理 2022年8期
关键词:控制指令攻击者报文

田学成,张五一,江 楠,陈燕峰

(1.国电南京自动化股份有限公司,江苏 南京211100;2.南京华盾电力信息安全测评有限公司,江苏 南京 211100)

0 引言

能源行业网络安全关系国家的基础设施安全。2019年阿根廷发生大规模停电,沿海输电系统疑遭受黑客攻击发生故障并导致全国停电[1];2021年美国主要输油管道系统受到勒索软件攻击,持续多日中断,造成严重经济损失[2]。

网络安全是国家安全的重要组成部分,当下大国关系不明,针对关键基础设施的网络攻击时有发生,关键基础设施一旦被境外黑客攻击利用,将会造成不可估量的损失。

相比于传统互联网安全,工业控制系统在设计之初重点考虑系统的稳定性、实时性、鲁棒性,而安全性并没有得到充分有效的考虑,造成工业控制系统存在着大量的漏洞和后门。据CVE、CNVD等漏洞数据库统计,西门子、施耐德、罗克韦尔、AB、ABB、艾默生、欧姆龙等工控设备暴露的漏洞占据前列[3],一旦这些漏洞和后门被病毒、木马、勒索软件感染,或者被黑客、敌对势力所利用,极易导致安全事件发生。我国工业控制系统基础薄弱,大部分控制设备、工控协议和系统使用国外设备,面临很多潜在的未知安全威胁。随着新能源产业的发展以及工业控制系统的网络互联趋势,必须要加强新能源工业控制系统的网络安全建设和防御能力。

1 国内新能源风电工控系统现状

1.1 新能源风电网络情况

我国新能源风力发电厂大多地处偏远,风机分布位置相对分散,目前在控制方式上采用四级控制,分别是现场侧、场站侧、集控侧、总控侧。其中现场侧主要是风机主控系统以及各种PLC传感器等;场站侧采集区域内各风电场的实时运行状态信息,可以直接对现场侧下发各种控制调节指令;集控侧位于区域内控制中心,实现机组的数据监视、发电控制和设备保护控制等操作;集控侧向上与总控层通信,将区域内重要风电场的信息实时发送到总控层。集控侧有时和总控侧合为一层。

新能源风电塔基控制站即风机主控制器机柜,是风电机组设备控制的核心,主要包括控制器、光纤转化器、I/O模件等,控制器硬件运行机组的各类复杂主控逻辑,通过现场总线与机舱控制器机柜、变桨距系统、变流器系统进行实时通信。风机主控制器一般具有CANopen、Profibus、Modbus、以太网等多种类型的现场总线接口,根据项目的实际需求进行配置。多台风机通过光纤网络组成一个单元网格,多个风机网格组成风机光纤环网。图1所示是新能源风电网络拓扑图。

图1 风电场风机控制系统网络拓扑图

1.2 新能源风电存在的安全问题

大规模的风电、光伏新能源发电厂并网后,替代常规同步机组发电空间,降低了电网系统惯量,在出现故障导致系统频率波动时,极易发生新能源机组大面积脱网,引发电力事故,所以需要加强对新能源出力占比及系统惯量监视,确保新能源系统惯量足够,保障电网安全[4]。

目前实现新能源新型电力系统大面积覆盖主要存在三方面问题。

一是新能源发电功率和电能量平衡问题,即如何控制或者减小新能源波动性和间隙性等不可控特性可能导致的大规模接入电网后因为功率和能量的波动造成脱网或者其他严重问题[5]。

二是新能源风电系统的动态特性不同于传统电力系统,其中新能源太阳能发电和风能发电都属于非同步机电源,非同步机电源的同步机制和动态特性不同于传统的同步发电机,导致以往广泛采用的理论和方法可能不再适用[6]。新能源电力系统的动态特性主要表现有五个方面,即广义同步稳定性、电压稳定性、频率稳定性、宽频谐振稳定性以及短路电流新特性[7]。

三是新能源风电网络系统的安全性可直接影响新能源风力发电的稳定性。新能源风电风机主控设备使用Modbus等协议实现风机控制,具体包括转舵、变桨、启停等动作操作。由于协议本身存在的漏洞,可以利用无线方式对其实施中间人攻击,重放控制指令导致风机意外停机或进行反复启停操作。如果攻击者利用新能源风电存在的协议漏洞攻击风电场,可直接造成风机意外停机或重启,将严重影响整个风电场的安全。

2 Modbus协议形式化安全分析

2.1 Modbus协议概述

Modbus协议是一种工业控制系统常见的现场总线协议,被广泛使用在SCADA系统和分布式控制系统中,通信报文有Modbus RTU、Modbus ASCII以及Modbus PLUS和Modbus TCP[8]。在新能源风电系统中风机主控设备使用Modbus TCP协议作为风机控制通信协议。常见的施耐德、倍福、Siemens的PLC设备都支持Modbus协议,风机控制远端可以通过Modbus TCP协议对风机主控进行实时监控并下发控制指令改变风机的运行状态,Modbus TCP是将Modbus协议嵌入到TCP结构中,Modbus协议采用主从结构,在电力监控系统中Modbus协议通信满足实时性要求,Modbus主设备可以支持多个从设备实现即时通信[8]。图2是Modbus TCP协议主从设备之间的通信方式。

图2 Modbus TCP主从设备之间通信模式

Modbus TCP协议报文构成中ADU数据帧结构由MBAP和PDU组成,PDU部分包含Modbus功能码Function_Code和数据域Data[9]。因为TCP是面向连接的协议,所以新能源工控协议Modbus TCP中地址域和CRC校验位没有发挥作用。图3是Modbus TCP协议报文结构。

图3 Modbus TCP协议数据包结构

MBAP报文适用于识别Modbus应用数据单元,MBAP头部占7个字节长度[10],专门用来标识Modbus协议数据单元。表1是MBAP报文结构。

表1 MBAP报文结构

通过分析Modbus TCP协议的报文结构,方便对风机主控设备通信报文具体的控制指令进行识别,并利用识别的控制指令做指令重放攻击的测试。

2.2 Modbus协议形式化安全分析

协议形式化分析是协议安全分析的一种主要方法。本文使用Scyther形式化分析工具[11]对Modbus协议的安全性进行分析,使用操作语义将Modbus协议草案规范的角色做形式化描述,声明协议运行事件遵从的运行轨迹。Scyther可以使用多种灵活的安全模型,其输出的攻击图对状态执行轨迹有着明确的描述。Scyther工具敌手模型冒充协议合法参与者,获得协议知识,实现对协议的攻击,从输出的攻击图可以发现协议存在的攻击路径,以便对协议进行安全改进和设计[12]。

因为IETF截至目前并没有收录Modbus协议规范,本文基于对Modbus协议草案的标准描述[13],对Modbus协议进行形式化安全分析。通过形式化描述协议主体特征以及主体执行协议的轨迹,发现协议可能存在的攻击轨迹图。基于协议存在的攻击轨迹进行安全分析。

新能源风电风机控制系统使用Modbus TCP协议通信前,需要通过TCP三次握手建立会话连接,之后使用Modbus协议通信[14],结合之前对Modbus协议草案规范的分析,对Modbus协议通信过程进行形式化描述。图4是Modbus协议通信顺序图。

图4 Modbus协议通信顺序图

上位机发送Modbus请求,客户机根据请求的功能码以及起始地址和寄存器数量从PLC寄存器中读取数值,并将数据发送给上位机,做协议形式化分析。形式化分析选择Modbus报文通信模式,因为TCP是面向连接的可靠协议,这种模式不使用校验码,从设备地址为常量不作形式化处理。Modbus协议的功能码用Funcode表示。根据协议草案规范其会话过程未使用身份认证和加密的安全属性:

声明Modbus协议会话过程中传递的参数是可到达的,Scyther定义一对属性(Running,Commit)用来标识协议双方对传输数据的认可,据此可以声明Modbus协议会话过程中收发双方对数据的认可。图5显示形式化描述的Modbus协议角色执行状态正常。

图5 角色状态描述

Modbus协议草案规范未添加身份认证属性、加密属性。在形式化验证中添加安全属性的认证,分析协议的安全性。Scyther采用黑盒验证的思想,每个定义角色从各自的路径出发,判断能否满足安全属性,如果不满足则输出存在攻击路径,声明Modbus协议会话过程传递的参数具有保密性:

从图6验证结果看,按照Modbus协议草案规范形式化验证Modbus协议并不具备保密性的安全属性,攻击者从上位机获得初始知识,能够伪造上位机向客户机发起控制指令,改变客户机PLC设备的运行状态。图7是其中一个攻击输出路径。

图6 Modbus协议安全性验证结果

图7 攻击路径

Modbus协议未使用加密算法对Modbus协议通信加密,攻击者可以直接获得明文信息。攻击者不仅能够获得上位机下发控制指令的功能码Function_Code和数据域Data,而且还能伪造上位机将报文进行篡改和重放。对Modbus协议通信报文进行加密,形式化添加加密属性如下:

加密之后,再次验证Modbus协议的安全性,如图8所示,输出的攻击路径明显减少。但由于Modbus协议还存在身份验证问题,因此攻击者还可以伪造身份下发控制指令。

图8 Modbus协议添加加密属性

3 基于Modbus TCP协议的风机主控攻击测试

Modbus协议存在的安全隐患问题有缺乏认证、授权、加密和功能码滥用等[15],因为Modbus协议中没有认证相关方面的定义,导致攻击者伪造一个合法的地址就可以使用特定功能码建立一个Modbus通信会话,对Modbus从设备下发控制指令。Modbus协议通信过程中,地址和命令全部采用明文传输,因此数据容易被攻击者捕获和解析。另外功能码滥用是导致Modbus网络异常的一个主要原因,不正确的报文长度、确认异常代码延迟等可能导致拒绝服务攻击。

基于对Modbus协议存在的安全隐患问题,在新能源风电风机控制系统中设计了中间人攻击方式,攻击者在风机主控的交换机前添加树莓派采用无线远程攻击方式。图9是新能源边界安全攻击场景。

图9 新能源边界安全渗透测试场景

为了模拟风机控制系统和上位机之间的通信方式,使用Modbus Slave(客户端)和Modbus Poll(服务端)对运行Modbus协议的风机主控PLC进行模拟,客户端向服务端发送指令之后,服务端作出响应,使用Wireshark对通信过程进行流量抓包,分析PDU部分的数据报文,之后使用Wireshark导出数据包的一个询问应答分组包,对数据包进行修改后使用TCP发包工具将该修改的数据包重新发送出去。观察服务器是否能够正常接收并发生响应。图10是Modbus模拟主从设备之间通信模式。

图10 Modbus主从设备之间通信模式

服务端下发风机启停指令后,风机能够正常启动和停止,首先攻击者与风机主控设备建立TCP连接,之后发送Modbus协议数据,Wireshark对Modbus协议报文抓包,分析Modbus协议指令功能码。表2是Modbus请求数据包mb_req_pdu,表3是Modbus响应数据包mb_rsp_pdu。

表2 Modbus请求数据

表3 Modbus响应数据

Modbus协议是应用层报文传输协议,基于请求/应答模型,提供功能码验证服务。使用Modbus协议脚本程序探测Modbus通信设备,并使用中间人攻击方式对风机主控设备下发控制指令。图11是识别到Modbus协议模拟设备,图12是对模拟的风机主控设备下发控制指令,修改风机主控模拟设备状态。

图11 嗅探Modbus协议设备

图12 写入Modbus模拟设备寄存器值

使用中间人攻击方法,对风机主控系统下发的Modbus风机控制指令进行修改后重发,可造成风机的恶意启停、偏航、收舵等行为,模拟攻击显示风机主控设备接到指令并发生响应。更严重的是攻击者可以对风机环网进行攻击,可造成大面积的风场功率失调。

4 新能源风电网络通信边界安全防护方案

工业控制系统自身缺陷主要体现在工控协议、控制设备、上位机软件等方面。Modbus协议缺乏认证,使用合法的Modbus地址和功能码即可以建立一个Modbus会话,其次Modbus协议缺乏加密,地址和命令明文传输,很容易被攻击者截获和解析。本文通过对新能源系统广泛使用的Modbus协议进行形式化安全分析,验证了Modbus协议自身的安全问题,并模拟了风机主控设备使用Modbus协议存在的安全隐患。基于此提出对新能源风电网络通信边界安全防护的方案。

4.1 身份认证技术

添加身份认证机制,对不符合身份的客户端不建立连接,杜绝未授权的客户端发起Modbus请求连接。图13是Modbus协议身份认证模式。

图13 Modbus/TCP身份验证模型

4.2 加密技术

使用国产密码算法SM4[16]产品对Modbus协议通信进行加密。通信协议加密过程采用国密算法SM4可以加强国产密码技术在新能源领域的深度应用,推动国产密码技术应用发展。对新能源风力发电现场侧边界通信处添加国密算法设备,可确保协议通信的保密性。图14是新能源风电网络边界使用国产密码产品设备进行通信加密。

图14 风电网络边界通信加密

5 结论

本文针对新能源风电风机控制系统使用的Modbus协议,形式化分析了Modbus协议的安全性,结合渗透测试方法验证了Modbus协议的新能源风机主控系统的脆弱性,提出了新能源风电网络通信边界安全防护方案。新能源工业控制系统中还存在其他广泛的工控协议,通过对协议的形式化安全分析和实验验证确定工控协议存在的安全隐患,从而加强工控设备的安全防护。这对未来工控安全的研究提供了参考方法。

猜你喜欢

控制指令攻击者报文
基于J1939 协议多包报文的时序研究及应用
城轨车辆控制指令试验装置研制
低轨星座短报文通信中的扩频信号二维快捕优化与实现
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
宏指令控制的多轴系统研究及实现
正面迎接批判
正面迎接批判
高速公路隧道通风、照明联动控制方案探讨
有限次重复博弈下的网络攻击行为研究