工控协议的解析方法、装置、系统及计算机存储介质与流程

文档序号:17985943发布日期:2019-06-22 00:24阅读:402来源:国知局
工控协议的解析方法、装置、系统及计算机存储介质与流程

本发明涉及工控协议技术领域,尤其涉及工控协议的解析方法、装置、系统及计算机存储介质。



背景技术:

工控协议是指工业控制网络中现场设备、控制器、操作员站、通信和应用等服务器、工程师站之间数据通信的规定,与系统功能和网络架构密切相关,对成套设施级可编程逻辑控制器(programmablelogiccontroller,plc)、厂站级分布式控制系统(distributedcontrolsystem,dcs)、广域的数据采集和监控系统(supervisorycontrolanddataacquisition,scada),分别发挥提供核心基础能力的作用。

各工控厂商或个人出于提供个性化功能、优化通信性能、简化协议实现的复杂度等因素的考虑,导致工控行业中有大量的非标准协议存在,而这些非标准协议的未知性给工业控制网络带来了大量的安全威胁。而现有技术只能对已知的工控协议流量进行解析,而无法处理未知的工控协议流量。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种工控协议的解析方法、装置、系统及计算机存储介质,旨在通过对未知工控协议流量进行协议逆向工程,实现对未知工控协议流量的解析,保证了工业控制网络的安全。

为实现上述目的,本发明提供一种工控协议的解析方法,所述工控协议的解析方法包括步骤:

在获取到工控协议流量时,在所述工控协议流量中获取第一工控协议流量;

根据协议逆向工程获取所述第一工控协议流量对应的工控协议规范;

根据所述工控协议规范解析所述第一工控协议流量。

可选地,所述根据协议逆向工程获取所述第一工控协议流量对应的工控协议规范的步骤之前,还包括:

对所述第一工控协议流量进行分类,其中,分类方式包括聚类分析。

可选地,所述在所述工控协议流量中获取第一工控协议流量的步骤包括:

判断所述工控协议流量是否包括预设协议特征;

在所述工控协议流量包括所述预设协议特征时,则判定所述工控协议流量为第二工控协议流量;

在所述工控协议流量不包括所述预设协议特征,则判定所述工控协议流量为所述第一工控协议流量。

可选地,所述判断所述工控协议流量是否包括预设协议特征的步骤之前,还包括:

获取工控协议规范库,所述工控协议规范库包括预设工控协议规范;

根据所述工控协议规范库生成协议特征库,其中,所述协议特征库包括所述预设协议特征。

可选地,所述判断所述工控协议流量是否包括预设协议特征的步骤之前,还包括:

将所述工控协议流量按数据流进行重组处理。

可选地,所述根据协议逆向工程获取所述第一工控协议流量对应的工控协议规范的步骤之后,还包括:

根据所述工控协议规范更新工控协议规范库;

根据更新后的所述工控协议规范库解析第二工控协议流量。

可选地,所述根据协议逆向工程获取所述第一工控协议流量对应的工控协议规范的步骤之后,还包括:

获取所述工控协议规范的协议特征;

根据所述协议特征更新协议特征库。

此外,为实现上述目的,本发明还提供一种工控协议的解析装置,所述工控协议的解析装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的工控协议的解析程序,所述工控协议的解析程序被所述处理器执行时实现如上所述中任一项所述的工控协议的解析方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有工控协议的解析程序,所述工控协议的解析程序被处理器执行时实现如上所述中任一项所述的工控协议的解析方法的步骤。

此外,为实现上述目的,本发明还提供一种工控协议的解析系统,所述工控协议的解析系统包括所述工控协议的解析程序,用于执行如上所述中任一项所述的工控协议的解析方法的步骤。

本发明实施例提出的工控协议的解析方法、装置、系统及计算机存储介质,在获取到工控协议流量时,在所述工控协议流量中获取第一工控协议流量,根据协议逆向工程获取所述第一工控协议流量对应的工控协议规范,根据所述工控协议规范解析所述第一工控协议流量,通过协议逆向工程获取未知工控协议规范,实现了对未知工控协议流量的解析,保证了工业控制网络的安全。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;

图2为本发明工控协议的解析方法的一实施例的流程示意图;

图3为本发明工控协议的解析方法另一实施例的流程示意图;

图4为本发明工控协议的解析方法再一实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:

在获取到工控协议流量时,在所述工控协议流量中获取第一工控协议流量;

根据协议逆向工程获取所述第一工控协议流量对应的工控协议规范;

根据所述工控协议规范解析所述第一工控协议流量。

由于现有技术中,各工控厂商或个人出于提供个性化功能、优化通信性能、简化协议实现的复杂度等因素的考虑,导致工控行业中有大量的非标准协议存在,而这些非标准协议的未知性给工业控制网络带来了大量的安全威胁。而现有技术只能对已知的工控协议流量进行解析,而无法处理未知的工控协议流量。

本发明提供一种解决方案,通过协议逆向工程获取未知工控协议规范,实现了对未知工控协议流量的解析,保证了工业控制网络的安全。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例终端为工控设备,例如工业控制计算机等。如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及工控协议的解析程序。在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的工控协议的解析程序,并执行以下操作:

在获取到工控协议流量时,在所述工控协议流量中获取第一工控协议流量;

根据协议逆向工程获取所述第一工控协议流量对应的工控协议规范;

根据所述工控协议规范解析所述第一工控协议流量。

进一步地,处理器1001可以调用存储器1005中存储的工控协议的解析程序,还执行以下操作:

对所述第一工控协议流量进行分类,其中,分类方式包括聚类分析。

进一步地,处理器1001可以调用存储器1005中存储的工控协议的解析程序,还执行以下操作:

判断所述工控协议流量是否包括预设协议特征;

在所述工控协议流量包括所述预设协议特征时,则判定所述工控协议流量为第二工控协议流量;

在所述工控协议流量不包括所述预设协议特征,则判定所述工控协议流量为所述第一工控协议流量。

进一步地,处理器1001可以调用存储器1005中存储的工控协议的解析程序,还执行以下操作:

获取工控协议规范库,所述工控协议规范库包括预设工控协议规范;

根据所述工控协议规范库生成协议特征库,其中,所述协议特征库包括所述预设协议特征。

进一步地,处理器1001可以调用存储器1005中存储的工控协议的解析程序,还执行以下操作:

将所述工控协议流量按数据流进行重组处理。

进一步地,处理器1001可以调用存储器1005中存储的工控协议的解析程序,还执行以下操作:

根据所述工控协议规范更新工控协议规范库;

根据更新后的所述工控协议规范库解析第二工控协议流量。

进一步地,处理器1001可以调用存储器1005中存储的工控协议的解析程序,还执行以下操作:

获取所述工控协议规范的协议特征;

根据所述协议特征更新协议特征库。

参照图2,在一实施例中,所述工控协议的解析方法包括以下步骤:

步骤s10,在获取到工控协议流量时,在所述工控协议流量中获取第一工控协议流量;

在本实施例中,以工业控制计算机为控制终端,目前,完整的工业控制系统一般包括多个相互关联的工业设备,且工业控制计算机与这些工业设备进行工控数据通信,以获取到工业设备之间传输的工控协议流量。工业设备之间设置有多个工控节点,因此一般将工业控制计算机与各个工控节点相连,从而获取到其中传输的工控协议流量,并且工控协议流量可以是应用层、传输层、网络层、数据链路层中至少一层的数据。由于工控协议流量与常规网络流量的差异,例如,在工控协议流量中,以二进制形式表示的模拟量、数字量类型信息比较多,信息有实时性要求,有相对明确的数据生成者与使用者,并且在多数情况下,数据包具有相对一致的协议控制结构和数据内容结构,因此解析常规网络流量的方法在此并不适用。

工控行业中存在许多未知的非标准协议存在,因此工控协议流量中也会同时存在未知工控协议流量和已知工控协议流量。在获取到工控协议流量时,识别工控协议流量中的第一工控协议流量,一般是对未知工控协议流量和已知工控协议流量进行区分,从而解析未知工控协议流量。首先,获取目前已公开的工控协议规范,并整合为工控协议规范库,其中,工控协议规范包括工控协议的完整信息描述。然后再提取出已公开的工控协议规范中的协议特征,每一类工控协议规范可包括多个协议特征,例如,约束应用协议(coap,theconstrainedapplicationprotocol)的目标端口通常为5683,并且报头中出现“0xff”。将这多个协议特征关联存储,以形成协议特征库,因此协议特征库可看作是工控协议规范库的子集。在生成协议特征库之后,可以直接通过协议特征库识别出工控协议流量中的第一工控协议流量。判断工控协议流量的内容中是否包括某一类工控协议规范对应的多个协议特征,若包括,则可判定该工控协议流量为第二工控协议流量,若工控协议流量的内容中不包括任一类工控协议规范对应的多个协议特征,则判定该工控协议流量为第一工控协议流量。

步骤s20,根据协议逆向工程获取所述第一工控协议流量对应的工控协议规范;

步骤s30,根据所述工控协议规范解析所述第一工控协议流量。

在本实施例中,在获取到第一工控协议流量后,通过工控协议逆向工程获取该第一工控协议流量所采用的工控协议规范。首先,基于协议逆向工程的方法,对工控协议流量进行工控协议逆向解析时做出适当调整,以确保工控协议规范的准确率。协议逆向工程包括语法格式分析和交互行为建模分析,其中,语法格式分析是以不同字段在协议语法层次中表现出的不同特征作为语义推断的依据,对不同字段按照相应的识别方法进行识别,交互行为建模分析是根据工控协议流量的交互行为建立模型,具体过程在此不做赘述。在获取到第一工控协议流量的工控协议规范后,根据工控协议规范解析第一工控协议流量,以识别出第一工控协议的语义信息,从而监测工业控制网络的运行状况,同时也能确保工业控制网络的安全。

此外,在处理大量第一工控协议流量时,为了提高工控协议逆向工程的效率,可先对所述大量第一工控协议流量进行聚类分析,将第一工控协议流量划分为多个类别。聚类分析方法包括系统聚类法、分解法、k-均值、k-中心点等算法,主要通过样本的相似程度来进行划分,在此不作赘述。经过聚类分析后,同一类别的第一工控协议流量具有相似特征,因此可认为同一类别的第一工控协议流量采用同一类工控协议规范,然后对同一类别的第一工控协议流量进行工控协议逆向工程。

在本实施例公开的技术方案中,通过协议逆向工程获取未知工控协议规范,实现了对未知工控协议流量的解析,保证了工业控制网络的安全。

在另一实施例中,如图3所示,在上述图2所示的实施例基础上,步骤s10包括:

步骤s11,判断所述工控协议流量是否包括预设协议特征;

在本实施例中,事先通过现有已公开的标准工控协议规范,整合得到工控协议规范库,用于解析第二工控协议流量,其中,工控协议规范库中包括预设工控协议规范。与此同时,根据工控协议规范库生成协议特征库,协议特征包括预设协议特征。预设协议特征与预设工控协议规范相对应,即预设工控协议规范中包括预设协议特征,且属于一类已知的工控协议规范。根据所述工控协议流量中是否包括预设特征来判断该工控协议流量是第一工控协议流量或第二工控协议流量。

在判断过程之前,可对获取到的工控协议流量进行预处理。由于从工控节点中获取的工控协议流量是比较杂乱的,比如单次经过该网络节点的数据太大时,会将较大的数据分割为多个数据片段并标记序列号进行传输,因此在获取到这些数据时,可将对应的数据按照数据流根据序列号进行重新组织,生成分割前的完整数据,然后再判断该分割前的完整数据是第一工控协议流量或第二工控协议流量,从而提高判断效率。在处理应用层数据时,预处理还包括,将数据按照传输控制协议(tcp,transmissioncontrolprotocol)/互联网协议地址(ip,internetprotocoladdress)协议格式解除封装等步骤。此外,预处理还包括处理丢包、重传、乱序等情况,滤除不含负载的数据,丢弃校验和出错的数据等步骤。

步骤s12,在所述工控协议流量包括所述预设协议特征时,则判定所述工控协议流量为第二工控协议流量;

步骤s13,在所述工控协议流量不包括所述预设协议特征,则判定所述工控协议流量为所述第一工控协议流量。

在本实施例中,在工控协议流量包括所述预设协议特征时,则该工控协议流量为第二工控协议流量,一般为已知工控协议流量,然后根据预设协议特征对应到工控协议规范库中的预设工控协议规范,根据预设工控协议规范解析第二工控协议流量。在工控协议流量不包括所述预设协议特征时,则该工控协议流量为第一工控协议流量,一般为未知的工控协议流量,然后根据协议逆向工程获取该未知工控协议流量采用的工控协议规范。

在本实施例公开的技术方案中,通过判断所述工控协议流量是否包括预设协议特征,来识别所述工控协议流量为第一工控协议流量或第二工控协议流量,实现了获取工控协议流量中的已知工控协议流量和未知工控协议流量的目的。

在再一实施例中,如图4所示,在上述图2所示的实施例基础上,步骤s20之后,还包括:

步骤s40,根据所述工控协议规范更新工控协议规范库;

步骤s50,根据更新后的所述工控协议规范库解析第二工控协议流量。

在本实施例中,在获取到第一工控协议流量的工控协议规范后,根据该工控协议规范更新工控协议规范库,即将新获取的工控协议规范加入工控协议规范库,并根据更新后的工控协议规范库解析第二工控协议流量。与此同时,还可提取该工控协议规范中的协议特征,根据该协议特征更新协议特征库,这样,在后续识别第一工控协议流量时,若存在某一工控协议流量采用新获取的工控协议规范,则可将工控协议流量识别为第二工控协议流量,并根据更新后的工控协议规范库进行解析。在此过程中,由于会不断获取到新的工控协议规范,并不断更新工控协议规范库和协议特征库,因此可以进一步提高工控协议流量的解析效率。

在本实施例公开的技术方案中,根据所述工控协议规范更新工控协议规范库,并根据更新后的所述工控协议规范库解析第二工控协议流量,提高了工控协议流量的解析效率。

此外,本发明实施例还提出一种工控协议的解析装置,所述工控协议的解析装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的工控协议的解析程序,所述工控协议的解析程序被所述处理器执行时实现如上实施例所述的工控协议的解析方法的步骤。

此外,本发明实施例还提出一种计算机存储介质,所述计算机存储介质上存储有工控协议的解析程序,所述工控协议的解析程序被所述处理器执行时实现如上实施例所述的工控协议的解析方法的步骤。

此外,本发明实施例还提出一种工控协议的解析系统,所述工控协议的解析系统包括所述工控协议的解析程序,用于执行如上实施例所述的工控协议的解析方法的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1