掌桥专利:专业的专利平台
掌桥专利
首页

一种工控系统报文流向分析方法与系统

文献发布时间:2023-06-19 18:37:28


一种工控系统报文流向分析方法与系统

技术领域

本发明涉及工控系统报文流向分析技术领域,尤其涉及一种工控系统报文流向分析方法与系统。

背景技术

本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。

在石化、化工、油气管网、水利工程、发电及变电等过程控制行业中、工厂会大量使用各种类型的控制器。工业控制系统中的传感数据、控制数据、执行时间以及组态配置数据、显示监控数据、生产管理数据等,构成了工业生产装置按工艺操作设计要求而安全、稳定运行的重要保障,一旦被黑客攻击而偏离设计、轻则质量变差、生产中断,重则设备损毁、甚至引发安全事故和灾难。

但是现有的工控系统在数据进行传输时,仅是关注了数据传输过程的安全性,而没有从整体上对数据的安全态势进行分析,不能对传输的数据的安全进行判断。

发明内容

本发明为了解决上述问题,提出了一种工控系统报文流向分析方法与系统,通过对报文协议、协议类型、报文长度和报文指令等进行判断,实现了对工控系统中报文的安全态势分析。

为实现上述目的,本发明采用如下技术方案:

第一方面,提出了一种工控系统报文流向分析方法,包括:

获取工控系统链路中的协议报文;

提取协议报文的报文长度、报文发送时间、报文协议类型、报文通信序列、报文指令、源设备地址和目的设备地址信息;

根据报文协议类型,确定协议报文的协议类型;

根据报文通信序列,确定协议报文的协议版本;

根据源设备地址和目的设备地址,确定报文流向;

根据报文流向对协议报文进行分类;

对于每一报文流向中的协议报文,根据报文长度、报文发送时间、协议类型、协议版本和报文指令,对协议报文的安全性进行判断。

第二方面,提出了一种工控系统报文流向分析系统,包括:

数据采集器,用于获取工控系统链路中的协议报文;

信息提取模块,用于提取协议报文的报文长度、报文发送时间、报文协议类型、报文通信序列、报文指令、源设备地址和目的设备地址信息;

协议类型确定模块,用于根据报文协议类型,确定协议报文的协议类型;

协议版本确定模块,用于根据报文通信序列,确定协议报文的协议版本;

报文流向确定模块,用于根据源设备地址和目的设备地址,确定报文流向;

报文分类模块,用于根据报文流向对协议报文进行分类;

报文安全性分析模块,用于对于每一报文流向中的协议报文,根据报文长度、报文发送时间、协议类型、协议版本和报文指令,对协议报文的安全性进行判断。

第三方面,提出了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成一种工控系统报文流向分析方法所述的步骤。

第四方面,提出了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成一种工控系统报文流向分析方法所述的步骤。

与现有技术相比,本发明的有益效果为:

1、本发明对协议报文的报文流向进行确认,并根据报文流向对报文进行分类,在此基础上根据报文长度、报文发送时间、协议类型、协议版本和报文指令,对协议报文的安全性进行判断,实现了对工控系统中报文的安全态势分析。

2、本发明还根据协议类型对协议报文进行分类,并根据同一协议类型中相同指令的协议报文的报文长度判断协议报文的安全性。

3、本发明还对协议报文的原文、源设备地址、目的设备地址、报文流向、报文长度、协议类型、协议版本和报文指令进行存储,并根据根据源设备、目的设备、协议版本、协议类型和报文指令对存储信息进行分类统计,方便后续对工控系统中报文的详情分析和通信状况分析。

本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为实施例1公开方法流程图;

图2为实施例1公开的工控系统网络链路示意图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

实施例1

如图2所示,工控系统网络链路中包括多个上位机、交换机和PLC设备,各个设备之间通过箭头代表链路中的流量信息。为了实现对工控系统网络链路中报文安全态势的分析,在该实施例中,公开了一种工控系统报文流向分析方法,如图1所示,包括:

S1:获取工控系统链路中的协议报文。

通过在PLC设备与交换机之间布设数据采集设备来获取PLC设备与交换机之间的协议报文信息。

系统可以自动识别和定位工业网络链路中的设备信息。系统启动时,会从数据库中请求历史设备,将所有历史设备信息载入缓存中,包括设备名称、类别、IP地址、MAC地址、支持的协议类型、协议版本、指令等。

S2:提取协议报文的报文长度、报文发送时间、报文协议类型、报文通信序列、报文指令、源设备地址和目的设备地址信息;根据报文协议类型,确定协议报文的协议类型;根据报文通信序列,确定协议报文的协议版本;根据源设备地址和目的设备地址,确定报文流向。

如图2所示,对数据采集设备获取的协议报文进行数据清洗、报文解析、结果推送和数据存储处理。

对协议报文进行报文解析时,提取了协议报文的报文长度、报文发送时间、报文协议类型、报文通信序列、报文指令、源设备地址和目的设备地址信息。

其中,报文长度是指报文的字节数。

源设备地址包括源设备IP地址和源设备MAC地址,目的设备地址包括目的设备IP地址和目的设备MAC地址。

通过提取协议报文的字段、行为等特征,获得报文长度、报文协议类型、报文通信序列、报文指令、源设备地址和目的设备地址信息。

通过报文的时间戳获得报文发送时间。

利用系统内置的多种协议类型的解析规则对协议报文进行解析,确定报文协议类型,对于自定义协议可以通过编写LUA插件对通信协议进行扩展。

S3:根据报文流向对协议报文进行分类;对于每一报文流向中的协议报文,根据报文长度、报文发送时间、协议类型、协议版本和报文指令,对协议报文的安全性进行判断。

在对协议报文进行安全性判断时,首先根据报文流向对协议报文进行了分类。

对于每一报文流向中的协议报文,根据报文长度、报文发送时间、协议类型、协议版本和报文指令,对协议报文的安全性进行判断,具体的:

将报文信息中的目的设备地址与该报文流向中预先部署的设备地址进行比较,当目的设备地址未在预先部署的设备地址中出现时,判定该协议报文是不安全的。

获取预先部署的设备地址的过程为:工控系统运行时,对于采集到的每条通信报文,首先判断目的地址的有效性,排除虚拟机地址、组播地址和广播地址,对于有效地址,将该地址与系统中已经存在的地址进行匹配,判断该地址对应的设备是否已经加入系统中,若未加入,则将设备信息添加到设备列表中。若发现新设备,则生成设备默认名称(设备+采集器报文采集时间戳+随机数),默认名称可进行编辑。将新发现的设备信息填充到设备列表中,包括新设备MAC地址、IP地址等信息,通过设备列表即可获得预先部署的设备地址。

将协议报文的协议类型和协议版本分别与该报文流向预先部署的协议类型、协议版本进行比较,当协议类型未在预先部署的协议类型中出现,或协议版本未在预先部署的协议版本中出现时,判定该协议报文是不安全的。

例如在工控系统网络一条链路中只部署了一台发送modbus协议类型的PLC,没有部署S7协议的PLC,按照实际的部署,应该出现modbus协议类型的报文,但是在进行报文流向分析的时候还出现了S7协议类型的报文,这种情况就可能是一种异常的访问,判定该协议报文是不安全的。

同理,当在该报文流向中,出现未预先部署的协议类型时,判定该协议报文是不安全的。

当协议报文的报文指令不符合该报文流向中的报文指令时,判定该报文指令有问题,进而判定该协议报文是不安全的。

针对工控系统中的PLC设备发出的报文会携带有指令特征,包括读指令、写指令、上传、下载。可以通过报文指令对应报文的流向判断该报文是否存在问题,例如上位机可以向PLC发送写指令的报文,但是PLC不会向上位机发送写指令的报文,若出现写指令的报文则该报文可能存在问题,是不安全的。

根据该报文流向中所有协议报文的报文发送时间和报文长度,确定该报文流向中的平均报文流量,当平均报文流量超出该报文流向的报文流量阈值时,判定该报文流向中的报文存在异常,其中,平均报文流量等于一段时间内所有协议报文的报文长度与所有协议报文的报文发送时间之比。

此外,除通过报文流向对协议报文进行分类外,还通过协议类型对协议报文进行分类,对于同一协议类型的相同指令,若某协议报文的报文长度与其余协议报文的报文长度不一致时,判定该协议报文是不安全的。

报文长度是指报文的字节数,在同一协议类型中,相同指令的报文对应的报文的长度是固定或者是在某一范围内的,如果发现的报文长度与该固定值或范围不一致,则该条报文可能存在被篡改的风险,为不安全的。

报文类型可以为tcp、modbus、西门子等70多种协议类型。

当对协议报文解析完成后,获取了报文解析结果,包括源设备、目的设备、报文流向、报文长度、协议类型、协议版本、报文指令和报文安全性判定结果,之后,对协议报文的原文、源设备、目的设备、报文流向、报文长度、协议类型、协议版本、报文指令和报文安全性判定结果进行存储,并分别根据源设备地址、目的设备地址、协议版本、协议类型和报文指令对存储信息进行分类统计。

此外,将报文原文、源设备、目的设备、报文流向、报文长度、协议类型、协议版本、报文指令和报文安全性判定结果发送至前端用户界面进行显示。

本实施例在对协议报文的报文解析结果进行存储时,对一定时间内出现的两个完全相同的协议报文进行去重处理,具体的:

数据采集设备采集协议报文时,会在报文尾部添加4个字节的crc校验码,把报文的crc校验码和报文的数据作为判断报文重复的条件,当在设定时间内,两条报文的数据和crc校验码均重合时,判定两条报文为完全相同的报文,对报文进行去重处理,仅保留一条报文进行存储。

当将报文解析结果进行存储后,可以根据用户的查询请求,调取存储的信息,查询请求可以为:源设备、目的设备、报文流向、报文长度、协议类型、协议版本和报文指令中的任意一个。

本实施例公开的方法对协议报文的报文流向进行确认,并根据报文流向对报文进行分类,在此基础上根据报文长度、报文发送时间、协议类型、协议版本和报文指令,对协议报文的安全性进行判断,实现了对工控系统中报文的安全态势分析;还根据协议类型对协议报文进行分类,并根据同一协议类型中,相同指令的协议报文的报文长度判断协议报文的安全性,使得报文安全性分析更全面。

本实施例还对协议报文的原文、源设备地址、目的设备地址、报文流向、报文长度、协议类型、协议版本和报文指令进行存储,并根据根据源设备、目的设备、协议版本、协议类型和报文指令对存储信息进行分类统计,方便后续对工控系统中报文的详情分析和通信状况分析。

实施例2

在该实施例中,公开了一种工控系统报文流向分析系统,包括:

数据采集器,用于获取工控系统链路中的协议报文;

信息提取模块,用于提取协议报文的报文长度、报文发送时间、报文协议类型、报文通信序列、报文指令、源设备地址和目的设备地址信息;

协议类型确定模块,用于根据报文协议类型,确定协议报文的协议类型;

协议版本确定模块,用于根据报文通信序列,确定协议报文的协议版本;

报文流向确定模块,用于根据源设备地址和目的设备地址,确定报文流向;

报文分类模块,用于根据报文流向对协议报文进行分类;

报文安全性分析模块,用于对于每一报文流向中的协议报文,根据报文长度、报文发送时间、协议类型、协议版本和报文指令,对协议报文的安全性进行判断。

实施例3

在该实施例中,公开了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例1公开的一种工控系统报文流向分析方法所述的步骤。

实施例4

在该实施例中,公开了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例1公开的一种工控系统报文流向分析方法所述的步骤。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

技术分类

06120115630197