一种用于Modbus网络的安全防护系统以及方法技术方案

技术编号:13878195 阅读:45 留言:0更新日期:2016-10-22 17:44
本申请提供一种用于Modbus网络的安全防护方法,包括S1.接收外部请求端口传输的基于Modbus协议的字节流,按Modbus协议类型的帧结构对所述字节流进行组包以形成相应的完整的Modbus帧结构,根据组包结果进行相应处理。另外,本申请还提供了一种用于Modbus网络的安全防护系统。本申请提供的用于Modbus网络的安全防护方法和系统通过组包引入Modbus帧的完整性检验,可以有效地抵御针对采用Modbus协议的工控设备或系统的攻击,确保采用Modbus协议的工控设备和系统的保密性、完整性和可用性。

【技术实现步骤摘要】

本专利技术涉及网络安全防护领域,尤其涉及用于Modbus网络的安全防护系统以及方法
技术介绍
Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信,不同厂商生产的控制设备可以连成工业网络,进行集中监控。Modbus协议具有标准性、开放性、帧格式简单、紧凑等优点,因此在工业控制系统、远程监控系统(SCADA系统)以及离散控制系统(DCS系统)中广泛使用,不但用于本地智能设备与控制器(PLC)间的通讯、智能设备与人机界面(HMI)的通讯,而且在某些场景还应用于工业设备远程集中监控系统的远程通讯中。但是,由于Modbus帧结构缺乏基本的加密手段,因此存在明显的安全漏洞,主要体现在:1.数据保密性差。由于没有机制区分不同主机(客户端)访问的数据范围,因此网络中的主机(客户端)可以访问从机(服务端)提供的任何数据。2.数据完整性容易破坏。由于没有机制限制主机(客户端)可执行的命令及其参数的范围,网络中的任意主机(客户端)可以通过发送从机(服务端)支持的功能码,修改从机(服务端)的数据。3.可用性很难保证。除了面临常规的TCP/IP层网络攻击之外,在Modbus应用层,攻击者很容易通过发送不完整的Modbus帧,使从机(服务器)进行大量的无效处理,导致其性能下降。此外,还有很多智能设备其配置协议与数据通讯协议均采用Modbus协议,但缺乏保护配置数据的机制,很容易被攻击者利用,修改智能设备配置参数,甚至删除智能设备的关键内容,例如固件程序,从而导致严重的后果。
技术实现思路
鉴于现有技术中存在的问题,1、一种用于Modbus网络的安全防护方法,包括:S1.接收外部请求端口传输的基于Modbus协议的字节流,按Modbus协议类型的帧结构对所述字节流进行组包以形成相应的完整的Modbus帧结构,根据组包结果进行相应处理。在本专利技术的一些实施方式中,所述步骤S1包括:对于接收到的Modbus ASCII协议类型字节流,根据所述包是否具有起始符和结束符以及是否能够通过CRC校验,来判定所述包是否具有完整的Modbus帧结构;或对于接收到的Modbus RTU协议类型的字节流:a.对预定长度的字节流进行CRC校验,和b.判断通过CRC校验的所述字节流中的功能码是否为Modbus RTU帧结构所允许的功能码,如不是允许的功能码,则改变所述字节流长度后返回步骤a进行CRC校验。在本专利技术的一些实施方式中,所述步骤a进一步包括:对于Modbus RTU协议类型的字节流,从字节流最小长度开始进行所述CRC校验,如校验不通过,则将所述字节流长度增加预定字节后再进行CRC校验,如果直到当前字节流长度达到最大长度仍未通过CRC校验,则移除所述字节流。在本专利技术的一些实施方式中,所述步骤S1还包括:c.按照所述功能码对应的数据结构,检验所述当前字节流中的数据结构是否与所述功能码匹配;若不匹配,则将所述字节流长度增加预定字节,返回步骤a。在本专利技术的一些实施方式中,所述步骤S1还可包括:当所述Modbus帧结构的首、尾部分包含有除完整的Modbus帧结构之外的非法字节流,则去除所述非法字节流,保留完整的Modbus帧结构。在本专利技术的一些实施方式中,所述的用于Modbus网络的安全防护方法,还可包括:S2.检验所述完整的Modbus帧中包含从机地址是否为允许访问的从机地址,检验所述完整的Modbus帧中包含功能码是否在预设的功能码白名单内。本专利技术的一种实施方式中,其通过设置能够访问的从机地址范围以及判断完整的Modbus帧结构中的功能码是否为有效的功能码,对经过组包的完整的Modbus帧进行进一步过滤,即若Modbus帧包含不在允许访问范围内的从机地址和不属于Modbus协议的非法功能码,则将其丢弃。这种方式可以有效的避免针对设备或系统的攻击,同时减少设备或系统的工作量,提高运行效率。在本专利技术的一些实施方式中,所述的用于Modbus网络的安全防护方法还可包括:S3.对于读取数据功能码,检验所述完整的Modbus帧中包含的寄存器范围是否在允许范围内;S4.对于写数据功能码,检验所述完整的Modbus帧中包含的寄存器范围是否在允许范围内,提取所述完整的Modbus帧中包含的工艺参数,根据所述工艺参数和所述寄存器范围内的寄存器的对应关系以及编码类型,生成相应的控制值,并且判断所述控制值是否为允许值。由于功能码的类型不同,其生成的操作指令也不同,因此本专利技术的实施方式中,通过判断功能码的类型,将完整的Modbus帧分为写命令和读命令。针对读命令而言,可以限制从机能够访问的寄存器范围,进而控制其能够由寄存器中读取到的数据,可以有效的保护存储于寄存器中的工艺参数,避免工艺参数和工艺流程被非法获取。针对写命令而言,通过寄存器与工艺参数相关联,采用组态(用户自定义)的方法,建立了寄存器与工艺参数的映射关系,可以有效地保证工艺过程的正确性。另外,对工艺参数生成的控制值进行过滤,可以有效地防止工控装置或系统被写命令非法更改装置的地址、非法上传配置文件等。在本专利技术的一些实施方式中,所述步骤S4可包括:提取所述完整Modbus帧中包含的多个工艺参数,根据所述多个工艺参数和所述寄存器范围内的每一个寄存器或者每一个寄存器的Bit位的对应关系以及编码类型,生成相应的控制值,并且判断每个所述控制值是否为允许值。本专利技术还提供一种用于Modbus网络的安全防护系统,包括:完整性检验模块,接收外部请求端口传输的基于Modbus协议的字节流,按Modbus协议类型的帧结构对所述字节流进行组包以形成相应的完整的Modbus帧结构,根据组包结果进行相应处理;含读/写数据的功能码的Modbus帧检验模块,对于读数据的功能码,检验所述完整的Modbus帧中包含的寄存器范围是否在允许范围内;对于写数据的功能码,检验所述完整的Modbus帧中包含的寄存器范围是否在允许范围内,提取所述完整的Modbus帧中包含的工艺参数,根据所述工艺参数和所述寄存器范围内的寄存器的对应关系以及编码类型,生成相应的控制值,并且判断所述控制值是否为允许值。在本专利技术的一些实施方式中,所述的用于Modbus网络的安全防护系统还可包括:从机地址检验模块,用于检验所述完整的Modbus帧中包含从机地址是否为允许访问的从机地址;功能码合法性检验模块,用于检验所述完整的Modbus帧中包含功能码是否在预设的功能码白名单内本专利技术提供了用于Modbus网络的安全防护方法和系统通过组包方式进行Modbus帧的完整性检验,可以有效地避免采用非Modbus协议持续向工控设备或系统装置发起数据请求(字节流)以导致工控设备和系统性能下降。根据上述用于Modbus网络的安全防护方法和系统可以有效地抵御针对采用Modbus协议的工控设备或系统的攻击,确保采用Modbus协议的工控设备和系统的保密性、完整性和可用性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面简要说明实施例或现有技术描述中使用的附图。图1a示意性地显示了常规的Modbus ASCII/RTU帧结构;图1b示意性地显示了常规的Modbus TCP帧结构;图2a为带独立数据块的M本文档来自技高网...

【技术保护点】
一种用于Modbus网络的安全防护方法,包括:S1.接收外部请求端口传输的基于Modbus协议的字节流,按Modbus协议类型的帧结构对所述字节流进行组包以形成相应的完整的Modbus帧结构,根据组包结果进行相应处理。

【技术特征摘要】
1.一种用于Modbus网络的安全防护方法,包括:S1.接收外部请求端口传输的基于Modbus协议的字节流,按Modbus协议类型的帧结构对所述字节流进行组包以形成相应的完整的Modbus帧结构,根据组包结果进行相应处理。2.根据权利要求1所述的用于Modbus网络的安全防护方法,其中,所述步骤S1包括:对于接收到的Modbus ASCII协议类型字节流,根据所述包是否具有起始符和结束符以及是否能够通过CRC校验,来判定所述包是否具有完整的Modbus帧结构;或对于接收到的Modbus RTU协议类型的字节流:a.对预定长度的字节流进行CRC校验,和b.判断通过CRC校验的所述字节流中的功能码是否为Modbus RTU帧结构所允许的功能码,如不是允许的功能码,则改变所述字节流长度后返回步骤a进行CRC校验。3.根据权利要求1所述的用于Modbus网络的安全防护方法,其中,所述步骤a进一步包括:对于Modbus RTU协议类型的字节流,从字节流最小长度开始进行所述CRC校验,如校验不通过,则将所述字节流长度增加预定字节后再进行CRC校验,如果直到当前字节流长度达到最大长度仍未通过CRC校验,则移除所述字节流。4.根据权利要求3所述的用于Modbus网络的安全防护方法,其中,所述步骤S1还包括:c.按照所述功能码对应的数据结构,检验所述当前字节流中的数据结构是否与所述功能码匹配;若不匹配,则将所述字节流长度增加预定字节,返回步骤a。5.根据权利要求1-4任一项所述的用于Modbus网络的安全防护方法,所述步骤S1还包括:当所述Modbus帧结构的首、尾部分包含有除完整的Modbus帧结构之外的非法字节流,则去除所述非法字节流,保留完整的Modbus帧结构。6.根据权利要求1-5任一项所述的用于Modbus网络的安全防护方法,还包括:S2.检验所述完整的Modbus帧中包含从机地址是否为允许访问的从机地址,...

【专利技术属性】
技术研发人员:陈惠欣
申请(专利权)人:英赛克科技北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1