工业协议报文记录装置及方法与流程

文档序号:17355445发布日期:2019-04-09 21:36阅读:183来源:国知局
工业协议报文记录装置及方法与流程
本发明涉及工业控制
技术领域
,尤其涉及一种工业协议报文记录装置及方法。
背景技术
:工业控制系统中有大量的智能设备(例如,plc、hmi、操作员工作站等),这些智能设备之间采用工业通信协议(例如,modbus、s7)进行通信,以实现自动化运行。当工控系统出现功能异常或遭受网络攻击等问题时,需要对工控系统中传输的通信报文进行记录并分析,以便定位和解决问题。问题发生后记录报文,由于存在时间上的滞后,无法完整记录问题发生过程中的全部报文,不利于完整追溯和还原问题发生全过程。如果一直持续记录报文,由于报文数量巨大,保存这些报文不仅要占用大量的存储空间,而且在分析问题时,无法快速找到与之相关的报文。比如,按照100mb/s的网络流量计算,记录1小时报文需要750mb存储空间,记录一天报文,约需要18gb存储空间。在海量报文中进行问题分析和定位十分困难,不利于快速解决问题。由于缺乏有效的报文记录手段,当工控系统出现功能异常或遭受网络攻击等问题时,无法快速定位和解决,影响工控系统的安全稳定运行。技术实现要素:本发明实施例提供一种工业协议报文记录装置及方法,用于至少解决上述技术问题之一。第一方面,本发明实施例提供一种工业协议报文记录装置,应用于工控网络系统,所述装置包括:报文预录模块,用于从所述工控网络系统的通信接口采集工业协议报文并记录;报文解析模块,用于解析所述工业协议报文以确定所述工业协议报文是否符合报文记录触发条件,所述报文记录触发条件至少包括异常工业协议功能码和/或异常点地址和/或异常点值;报文记录模块,用于当确定所述工业协议报文符合报文记录触发条件时,至少存储当前已经记录的工业协议报文;第一跳转模块,用于当确定所述工业协议报文不符合报文记录触发条件时,跳转至所述报文预录模块。第二方面,本发明实施例提供一种工业协议报文记录方法,应用于工控网络系统,所述方法包括:s10、从所述工控网络系统的通信接口采集工业协议报文并记录;s20、解析所述工业协议报文以确定所述工业协议报文是否符合报文记录触发条件,所述报文记录触发条件至少包括异常工业协议功能码和/或异常点地址和/或异常点值;s30、如果是,则至少存储当前已经记录的工业协议报文;s40、如果否,返回步骤s10。第三方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项工业协议报文记录方法。第四方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项工业协议报文记录方法。第五方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项工业协议报文记录方法。本发明实施例的有益效果在于:通过对工业协议报文进行分析并比对预先设置的包括异常工业协议功能码和/或异常点地址和/或异常点值的所述报文记录触发条件就能够确定当前所存在的安全或者故障隐患,从而就能够及时的记录相关的工业协议报文,确保了所记录的工业协议报文的完整性。为工控系统所出现的功能异常或遭受的网络攻击等问题提供了完整可靠的记录数据。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明的工业协议报文记录装置的一实施例的原理框图;图2为本发明的工业协议报文记录装置的另一实施例的原理框图图3为本发明的工业协议报文记录方法的一实施例的流程图;图4为本发明的工业协议报文记录方法的另一实施例的流程图;图5为工业协议报文记录装置报文采集规则原理框图;图6为本发明中的报文采集器的一实施例的流程图图7为本发明中的报文预录模块的一实施例的工作流程示意图;图8为本发明中的报文分析模块的一实施例的工作流程图;图9为本发明中的报文记录模块的一实施例的工作流程图;图10为本发明中的报文记录管理模块的一实施例的流程图;图11为本发明中的报文记录数据库信息查询、文件获取和删除流程图;图12为本发明的电子设备的一实施例的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本发明提出了一种基于条件触发的工业协议报文记录装置及方法。可以针对整个工控系统或特定的重要智能设备进行报文记录,而且可以设置一系列触发条件,只有满足触发条件时才对相关设备的报文进行记录。为了获取完整的报文,装置一直在内存中缓存预设时长的报文,在触发报文记录时,与其后的报文合并后一起记录。记录的报文压缩后以文件的形式存储,称为报文记录文件。同时建立报文记录事件数据库,将每次触发报文记录的事件信息以及相应的报文记录文件路径存储到数据库中,并按报文记录时间、触发条件、相关设备等信息建立索引,以便进行问题分析时可以快速定位到相应的报文记录文件。如图1所示,本发明的实施例提供一种工业协议报文记录装置100,应用于工控网络系统,所述工业协议报文记录装置100包括:报文预录模块110,用于从所述工控网络系统的通信接口采集工业协议报文并记录;报文解析模块120,用于解析所述工业协议报文以确定所述工业协议报文是否符合报文记录触发条件,所述报文记录触发条件包括异常工业协议功能码和/或异常点地址和/或异常点值;报文记录模块130,用于当确定所述工业协议报文符合报文记录触发条件时,至少存储当前已经记录的工业协议报文;第一跳转模块140,用于当确定所述工业协议报文不符合报文记录触发条件时,跳转至所述报文预录模块。本发明实施例通过对工业协议报文进行分析并比对预先设置的包括异常工业协议功能码和/或异常点地址和/或异常点值的所述报文记录触发条件就能够确定当前所存在的安全或者故障隐患,从而就能够及时的记录相关的工业协议报文,确保了所记录的工业协议报文的完整性。为工控系统所出现的功能异常或遭受的网络攻击等问题提供了完整可靠的记录数据。如图2所示,在一些实施例中,本发明的工业协议报文记录装置100还包括:时长判定模块120′,用于判断当前已经记录工业协议报文的时长是否超过设定阈值;报文删除模块130′,用于当判定当前已经记录工业协议报文的时长超过设定阈值时,删除当前已经记录的工业协议报文中的在先记录的部分工业协议报文;示例性地,设定阈值为10s,在报文预录模块110从第1秒开始记录工业协议报文到记录满10秒的工业协议报文时,删除在先记录的部分工业协议报文(例如,第1秒内记录的工业协议报文,还可以是第2秒内或者第3秒内等记录的工业报文协议,本发明对此不作限定)。第二跳转模块140′,用于当判定当前已经记录工业协议报文的时长没有超过设定阈值时,跳转至所述报文预录模块。本发明实施例中通过在实时判断当前已经记录工业协议报文的时长是否超过设定阈值的方式,能够保证最终所记录缓存的工业协议报文形成的存储文件不至于太大。具体地,发明人在实现本发明的过程中发现,在工业控制系统中,任何的功能异常或者遭受的网络攻击都是具有一定的持续时间的,所以在记录相关工业协议报文时,并不需要长时间的进行记录,只需要记录预定时长的报文即可(预定时长不超过设定阈值,设定阈值可以根据历史统计的功能异常和网络攻击的平均持续时间来确定),从而即能够保证所记录报文的完整性,也能够最小化存储报文数据所带来的开销;另一方面,也减小了后期查询检索的数据量,提高了问题定位的效率。在一些实施例中,所述至少存储当前已经记录的工业协议报文包括:存储当前已经记录的工业协议报文和从当前时间点开始至预设时间内自所述通信接口采集的工业协议报文。示例性地,预设时间可以为10s,结合前述实施例中的设定阈值为10s,本实施例中所存储的工业协议报文为当前时间点之前已经记录的10s的工业协议报文和当前时间点之后继续记录的10s的工业协议报文,总共记录了20s的工业协议报文。本发明实施例中,即保存了当前已经记录的工业协议报文,还继续通过相应的通信接口采集后续的工业协议报文,从而确保最终所记录的工业协议报文的完整性。如图3所示,本发明的实施例提供一种工业协议报文记录方法,应用于工控网络系统,所述方法包括:s10、从所述工控网络系统的通信接口采集工业协议报文并记录;s20、解析所述工业协议报文以确定所述工业协议报文是否符合报文记录触发条件,所述报文记录触发条件包括异常工业协议功能码和/或异常点地址和/或异常点值;s30、如果是,则至少存储当前已经记录的工业协议报文;s40、如果否,返回步骤s10。本发明实施例通过对工业协议报文进行分析并比对预先设置的包括异常工业协议功能码和/或异常点地址和/或异常点值的所述报文记录触发条件就能够确定当前所存在的安全或者故障隐患,从而就能够及时的记录相关的工业协议报文,确保了所记录的工业协议报文的完整性。为工控系统所出现的功能异常或遭受的网络攻击等问题提供了完整可靠的记录数据。如图4所示,在一些实施例中,本发明的工业协议报文记录,还包括:s20′、判断当前已经记录工业协议报文的时长是否超过设定阈值;s30′、如果是,则删除当前已经记录的工业协议报文中的在先记录的部分工业协议报文;s40′、如果否,则返回步骤s10。在一些实施例中,所述至少存储当前已经记录的工业协议报文包括:存储当前已经记录的工业协议报文和从当前时间点开始至预设时间内自所述通信接口采集的工业协议报文。在一些实施例中,在至少存储当前已经记录的工业协议报文之后还包括:根据所述当前已经记录的工业协议报文的内容信息生成报文记录事件信息,所述报文记录事件信息包括:报文记录文件名称和/或路径信息和/或记录时间和/或触发条件和/或设备信息。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述本发明实施例的工业协议报文记录方法可用于本发明实施例的工业协议报文记录装置所执行,并相应的达到上述本发明实施例的实现工业协议报文记录装置所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardwareprocessor)来实现相关功能模块。在一些实施例中,本发明的工业协议报文记录装置100还包括报文采集模块,该报文采集模块由报文采集规则编辑器和报文采集器组成。报文采集规则编辑器将需要采集的报文标识信息作为报文采集规则配置到报文采集器中。如图5所示,为工业协议报文记录装置报文采集规则原理框图,包含若干个网口、串口和其他通信接口,对不同的通信接口配置不同的报文采集规则列表。多条报文采集规则0-n之间是逻辑“或”的关系,即只要匹配报文采集规则列表中的任意规则,就算匹配成功。不同的网络协议需要提取的报文标识信息不同,对于以太网协议,报文标识信息包括:源设备mac地址、源设备ip地址、源设备端口、目的设备mac地址、目的设备ip地址、目的设备端口、传输协议等;对于串口协议,报文标识信息包括:源设备地址标识、目的设备地址标识等。报文采集规则可以包含以上报文标识中的一种或多种。当一条报文采集规则配置多种报文标识时,多条报文标识之间是逻辑“与”的关系,即报文采集规则配置的所有报文标识都匹配时,此报文采集规则匹配成功。表1,为以太网通信采集规则配置示例表1以太网通信采集规则配置示例中的第1条采集规则表示的是采集源设备mac地址为68:f7:29:ce:3e:df且ip地址为192.168.0.98的报文。第2条采集规则表示的为采集源设备端口为1102,目的设备端口为502的报文。如果一个通讯接口同时包括第1条和第2条规则,表示要采集的报文只要符合其中一条采集规则,就要采集报文。如图6所示,为本发明中的报文采集器的一实施例的流程图。其中具体包括:报文采集器从工控系统网络中的通信接口上采集到报文;检测通信接口的报文采集规则列表是否为空;如果为空,表示采集的工控系统中的所有报文都会转发给报文预录模块和报文分析模块;如果通信接口的报文采集规则列表不为空,提取报文标识信息;与报文采集规则列表中的各规则进行匹配,匹配任意规则成功的,报文转发给报文预录模块和报文分析模块,所有规则均匹配不成功,则丢弃。如图7所示,为本发明中的报文预录模块的一实施例的工作流程示意图。具体包括:将实施通信报文缓存在内存中;检测缓存的报文是否超出缓存时长,报文预录模块在工业协议报文记录装置的内存中缓存预设时长的报文,当收到新的通信报文时,将新的通信报文缓存到内存中;如果检测缓存的报文超出了缓存时长,则删除当前缓存的报文中的在先缓存的部分报文并结束;否则继续检测缓存的报文是否超过缓存时长。在一些实施例中,报文分析模块由触发条件规则编辑器和报文分析器组成。触发条件规则编辑器主要是根据工业协议功能码、点地址和点值等特征数据,定义触发条件规则,存储在触发条件规则列表中,供报文分析器使用。触发条件规则列表中的规则之间是逻辑“或”的关系,只要符合任意规则,就会触发报文记录,并生成相应的报文记录事件。触发条件规则内的特征数据之间是逻辑“与”的关系,报文内容必须符合触发条件规则内的所有条件。表2,为触发条件规则示例序号id特征1特征2特征n1功能码=读保持寄存器2功能码=写保持寄存器点地址=0值<1000表2中描述了modbus协议触发条件规则的配置。第1条规则,表示的为当报文功能码为读保持寄存器报文时,就触发报文记录,并生成报文记录事件。第2条规则,表示当报文功能码为写保持寄存器,写点地址为0,且值小于1000时,触发报文记录,并生成报文记录事件。表3,事件信息示例如图8所示,为本发明中的报文分析模块的一实施例的工作流程图,包括:获取报文;判断触发条件列表是否为空;如果是,则不进行报文分析并结束;如果否,则分析报文内容,遍历触发条件规则列表,具体地:获取每一条触发条件规则;判断是否匹配规则内所有特征数据;如果否,则判断是否已遍历触发条件规则列表中所有规则如果是,则结束;如果否,则再次获取一条触发条件规则并重复以上步骤;如果是,则生成事件信息,并将事件转发给报文记录模块。在一些实施例中,报文分析器检测触发条件规则列表是否为空,如果为空,不进行报文分析。当触发条件规则列表不为空时,分析报文的内容,遍历触发条件规则列表中的每一条规则,如果符合触发条件规则,根据报文内容创建报文记录事件信息,将事件信息发送给报文记录模块。如图9所示,为本发明中的报文记录模块的一实施例的工作流程图。具体包括:获取报文提取事件发生的时间:报文记录模块根据报文分析模块生成的报文记录事件信息,提取事件发生的时间;从报文预录模块中提取一定时长的历史报文;同时记录事件发生后的实时报文;当完成预设时长的报文记录后,合并历史报文和实时报文,压缩后生成报文记录文件;根据预定命名规则,命名报文记录文件并存储到文件系统中。报文记录文件生成后,报文记录模块将文件名称、路径信息及事件信息发送到报文记录管理模块中。表4,报文记录内容示例报文记录id文件名称路径事件id7eth1-1-modbus-543216331.tar.gz/record/dev118eth1-2-modbus-543216333.tar.gz/record/dev15如图10所示,为本发明中的报文记录管理模块的一实施例的流程图。具体包括:报文记录管理模块,存储报文记录模块产生的报文记录文件名称、路径和报文记录事件信息到数据库中;以报文记录时间、触发条件、相关设备等信息建立索引;自动检测文件系统可用空间,报文记录管理模块对报文记录文件进行可持续化管理,检测文件系统可用空间是否达到预定阀值;如果达到,自动删除历史报文记录文件及报文记录数据库中的信息,保证系统运行的存储空间需求。如图11所示,为本发明中的报文记录数据库信息查询、文件获取和删除流程图。具体包括:接收查询条件;搜索查询记录文件信息以及时间信息;判断是否下载获取报文;如果是,则返回报文记录文件并结束;如果否,则进一步判断是否删除报文;如果否,则结束;如果是,则删除数据库中的报文记录信息和时间信息;删除文件系统中报文记录文件并结束。用户可以通过报文记录时间、触发条件、相关设备信息快速检索报文记录及事件信息,支持报文记录文件的获取、删除操作。在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项工业协议报文记录方法。在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项工业协议报文记录方法。在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行工业协议报文记录方法。在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时工业协议报文记录方法。图12是本申请另一实施例提供的执行工业协议报文记录方法的电子设备的硬件结构示意图,如图12所示,该设备包括:一个或多个处理器1210以及存储器1220,图12中以一个处理器1210为例。执行工业协议报文记录方法的设备还可以包括:输入装置1230和输出装置1240。处理器1210、存储器1220、输入装置1230和输出装置1240可以通过总线或者其他方式连接,图12中以通过总线连接为例。存储器1220作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的工业协议报文记录方法对应的程序指令/模块。处理器1210通过运行存储在存储器1220中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例工业协议报文记录方法。存储器1220可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据工业协议报文记录装置的使用所创建的数据等。此外,存储器1220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器1220可选包括相对于处理器1210远程设置的存储器,这些远程存储器可以通过网络连接至工业协议报文记录装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。输入装置1230可接收输入的数字或字符信息,以及产生与工业协议报文记录装置的用户设置以及功能控制有关的信号。输出装置1240可包括显示屏等显示设备。所述一个或者多个模块存储在所述存储器1220中,当被所述一个或者多个处理器1210执行时,执行上述任意方法实施例中的工业协议报文记录方法。上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。本申请实施例的电子设备以多种形式存在,包括但不限于:(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。(3)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。(4)其他具有数据交互功能的电子装置。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1