技术摘要:
本发明涉及数据安全技术领域,特别是涉及一种基于ModBusRTU的安全防护方法及装置。该方法包括:当监听到工业通讯协议ModBusRTU发送端向防火墙发送数据包时,获取所述数据包对应的数据信息;基于所述数据信息,启用所述防火墙对所述数据包进行合法性认证;当确定所述数 全部
背景技术:
目标,随着工业控制技术的普及,智能化、互联化的工业控制系统是未来的发展方 向。在工业控制系统当中,需要采用各种标准、开放的通信协议进行数据传输。其中,工业通 讯协议ModBusRTU是一种在工业控制技术领域中被广泛应用的协议,其可以为现场设备、自 动控制应用、企业管理应用软件之间提供了开放、统一的标准接口,通过串行通信链路使工 业控制系统进行通信。 但通过ModBusRTU协议进行通信的过程中,数据的传输基本均以明文的明文发送 的形式进行传输,容易遭受非法用户的攻击,而在传统的工业控制系统的安全防护方法中, 均通过以太网作为防火墙进行安全防护,而在针对ModBusRTU协议进行通信时,并未针对该 协议设定安全防护,使得在使用ModBusRTU协议进行通信时,容易遭受非法用户的攻击,使 工业控制系统的安全性能受到威胁。
技术实现要素:
有鉴于此,本发明提供一种基于ModBusRTU的安全防护方法,通过设置防火墙对数 据包进行安全认证,避免存在非法用户通过非法数据包进行攻击,保证工业控制系统的安 全性。 本发明还提供了一种基于ModBusRTU的安全防护装置,用以保证上述方法在实际 中的实现及应用。 一种基于ModBusRTU的安全防护方法,包括: 当监听到工业通讯协议ModBusRTU发送端向防火墙发送数据包时,获取所述数据 包对应的数据信息; 基于所述数据信息,启用所述防火墙对所述数据包进行合法性认证; 当确定所述数据包为合法数据包时,将所述数据包经由所述防火墙,转发至所述 ModBusRTU发送端对应的ModBusRTU接收端。 上述的方法,可选的,所述基于所述数据信息,启用所述防火墙对所述数据包进行 合法性认证,包括: 获取所述防火墙中预先设置的访问控制表和检查表; 获取所述数据信息中包含的所述数据包对应的实际数据长度、设备站地址、设备 功能码,并确定所述ModBusRTU发送端向所述防火墙发送数据包时的当前访问速率; 依据所述访问控制表,检验所述实际数据长度、所述设备站地址及所述设备功能 码是否合法; 确定所述防火墙中预先设置的最大访问速率,并判断所述最大访问速率是否大于 5 CN 111740997 A 说 明 书 2/12 页 所述当前访问速率; 依据所述检查表及所述设备功能码,确定所述数据包的数据类型,并通过所述检 查表检验所述数据类型是否合法; 当所述实际数据长度合法、所述设备站地址合法、所述设备功能码合法、所述最大 访问速率不大于所述当前访问速率且所述数据类型合法时,确定所述数据包为合法数据 包。 上述的方法,可选的,所述依据所述访问控制表,检验所述实际数据长度、所述设 备站地址及所述设备功能码是否合法,包括: 查找所述访问控制表中是否存在与所述设备功能码一致的功能码; 若所述访问控制表中存在与所述设备功能码一致的功能码,则确定所述设备功能 码合法,将与所述设备功能码一致的功能码确定为目标功能码,并获取所述访问控制表中, 与所述目标功能码对应的目标站地址及最大数据长度; 判断所述设备站地址与所述目标站地址是否一致; 若所述设备站地址与所述目标站地址一致,则确定所述设备站地址合法,并判断 所述实际数据长度是否小于所述最大数据长度; 若所述实际数据长度小于所述最大数据长度,则确定所述实际数据长度合法。 上述的方法,可选的,检验所述实际数据长度进行合法性前,还包括: 当所述防火墙完成接收所述数据包时,确定所述数据包当前的接收数据长度; 判断所述实际数据长度与所述接收数据长度是否一致; 当所述实际数据长度与所述接收数据长度一致时,检验所述实际数据长度进行合 法性。 上述的方法,可选的,所述依据所述检查表及所述设备功能码,确定所述数据包的 数据类型,并通过所述检查表检验所述数据类型是否合法,包括: 在所述检查表中查找与所述设备功能码一致的码号,并确定所述码号对应的数据 类型,所述数据类型包括寄存器类型和线圈类型; 获取所述数据信息中包含的所述数据类型对应的第一数据地址,及所述第一数据 地址对应的第一数据值,并确定所述检查表中所述码号对应的第二数据地址,及所述第二 数据地址对应的第二数据值; 判断所述第一数据地址与所述第二数据地址是否一致,且所述第一数据值是否小 于所述第二数据值; 若所述第一数据地址与所述第二数据地址一致,且所述第一数据值小于所述第二 数据值,则确定所述数据类型合法。 上述的方法,可选的,还包括: 当确定所述数据包非合法数据包时,阻断所述数据包,并向所述ModBusRTU发送端 发送所述数据包对应的发送失败消息。 一种基于ModBusRTU的安全防护装置,包括: 获取单元,用于当监听到工业通讯协议ModBusRTU发送端向防火墙发送数据包时, 获取所述数据包对应的数据信息; 认证单元,用于基于所述数据信息,启用所述防火墙对所述数据包进行合法性认 6 CN 111740997 A 说 明 书 3/12 页 证; 发送单元,用于当确定所述数据包为合法数据包时,将所述数据包经由所述防火 墙,转发至所述ModBusRTU发送端对应的ModBusRTU接收端。 上述的装置,可选的,所述认证单元,包括: 第一获取子单元,用于获取所述防火墙中预先设置的访问控制表和检查表; 第二获取子单元,用于获取所述数据信息中包含的所述数据包对应的实际数据长 度、设备站地址、设备功能码,并确定所述ModBusRTU发送端向所述防火墙发送数据包时的 当前访问速率; 第一检验子单元,用于依据所述访问控制表,检验所述实际数据长度、所述设备站 地址及所述设备功能码是否合法; 第二检验子单元,用于确定所述防火墙中预先设置的最大访问速率,并判断所述 最大访问速率是否大于所述当前访问速率; 第三检验子单元,用于依据所述检查表及所述设备功能码,确定所述数据包的数 据类型,并通过所述检查表检验所述数据类型是否合法; 确定子单元,用于当所述实际数据长度合法、所述设备站地址合法、所述设备功能 码合法、所述最大访问速率不大于所述当前访问速率且所述数据类型合法时,确定所述数 据包为合法数据包。 上述的装置,可选的,所述第一检验子单元在依据所述访问控制表,检验所述实际 数据长度、所述设备站地址及所述设备功能码是否合法时,具体用于: 查找所述访问控制表中是否存在与所述设备功能码一致的功能码; 若所述访问控制表中存在与所述设备功能码一致的功能码,则确定所述设备功能 码合法,将与所述设备功能码一致的功能码确定为目标功能码,并获取所述访问控制表中, 与所述目标功能码对应的目标站地址及最大数据长度; 判断所述设备站地址与所述目标站地址是否一致; 若所述设备站地址与所述目标站地址一致,则确定所述设备站地址合法,并判断 所述实际数据长度是否小于所述最大数据长度; 若所述实际数据长度小于所述最大数据长度,则确定所述实际数据长度合法。 上述的装置,可选的,所述第三检验子单元在依据所述检查表及所述设备功能码, 确定所述数据包的数据类型,并通过所述检查表检验所述数据类型是否合法时,具体用于: 在所述检查表中查找与所述设备功能码一致的码号,并确定所述码号对应的数据 类型,所述数据类型包括寄存器类型和线圈类型; 获取所述数据信息中包含的所述数据类型对应的第一数据地址,及所述第一数据 地址对应的第一数据值,并确定所述检查表中所述码号对应的第二数据地址,及所述第二 数据地址对应的第二数据值; 判断所述第一数据地址与所述第二数据地址是否一致,且所述第一数据值是否小 于所述第二数据值; 若所述第一数据地址与所述第二数据地址一致,且所述第一数据值小于所述第二 数据值,则确定所述数据类型合法。 一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述 7 CN 111740997 A 说 明 书 4/12 页 存储介质所在的设备执行上述的基于ModBusRTU的安全防护方法。 一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以 上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的基于 ModBusRTU的安全防护方法。 与现有技术相比,本发明包括以下优点: 本发明提供了一种基于ModBusRTU的安全防护方法,包括:当监听到工业通讯协议 ModBusRTU发送端向防火墙发送数据包时,获取所述数据包对应的数据信息;基于所述数据 信息,启用所述防火墙对所述数据包进行合法性认证;当确定所述数据包为合法数据包时, 将所述数据包经由所述防火墙,转发至所述ModBusRTU发送端对应的ModBusRTU接收端。应 用本发明提供的方法,通过设置防火墙对数据包进行安全认证,避免存在非法用户通过非 法数据包进行攻击,保证工业控制系统的安全性。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。 图1为本发明实施例提供的一种基于ModBusRTU的安全防护方法的方法流程图; 图2为本发明实施例提供的一种基于ModBusRTU的安全防护方法的方法示意图; 图3为本发明实施例提供的一种基于ModBusRTU的安全防护方法的又一方法流程 图; 图4为本发明实施例提供的一种基于ModBusRTU的安全防护装置的装置结构图; 图5为本发明实施例提供的一种电子设备的结构示意图。