工控网络数据包解析方法、装置、电子设备与存储介质与流程

文档序号:32744767发布日期:2022-12-30 21:31阅读:56来源:国知局
工控网络数据包解析方法、装置、电子设备与存储介质与流程

1.本发明涉及网络安全技术领域,尤其涉及一种工控网络数据包解析方法、装置、电子设备与存储介质。


背景技术:

2.工业控制网络是网络技术在工业控制领域中的具体应用,涉及到局域网、广域网、分布式计算等多方面技术。
3.为了提高工业控制网络的安全性,需要在工业控制网络中设置网络安全设备,如工业控制防火墙、威胁检测设备等。这些网络安全设备在运行时,会对工业控制网络中传输的网络数据包进行解析。
4.工业控制过程具有数据传输量大、对数据时效性要求高的特点,因此工业控制网络中的网络安全设备需要具备在短时间内解析大量网络数据包的能力。
5.高性能的网络安全设备必然会带来高成本的问题。如何能够在不降低网络安全设备解析能力的基础上,最大限度地提升网络安全设备的性能,降低设备成本,是目前亟待解决的问题。
6.在现有技术中,采用了一些技术手段来提高网络安全设备的解析能力,如优化代码、变量内存分配、增加缓存、优化数据管理、减少内存拷贝,并行cpu处理等。
7.上述技术已经在现有的网络安全设备上得到应用,因此通过上述技术继续提升网络安全设备性能的潜力有限;此外,通过上述技术提升性能,也会压缩网络安全设备的其他性能的性能空间。


技术实现要素:

8.针对现有技术存在的问题,本发明提供一种工控网络数据包解析方法、装置、电子设备与存储介质。
9.本发明提供一种工控网络数据包解析方法、装置、电子设备与存储介质,包括:
10.接收目标工控网络数据包;
11.根据所述目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据;
12.根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果。
13.根据本发明提供的一种工控网络数据包解析方法,所述根据所述目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,包括:
14.判断所述目标工控网络数据包是否为待重组的工控网络数据包;
15.在所述目标工控网络数据包并非待重组的工控网络数据包的情况下,确定所述目标工控网络数据包的协议类型,根据所述协议类型确定与所述协议类型对应的特征数据提
取方式;根据所确定的特征数据提取方式,从所述目标工控网络数据包中提取特征数据。
16.根据本发明提供的一种工控网络数据包解析方法,所述确定所述目标工控网络数据包的协议类型,根据所述协议类型确定与所述协议类型对应的特征数据提取方式;根据所确定的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,包括:
17.确定所述目标工控网络数据包为链路层网络协议数据包;
18.将所述目标工控网络数据包中未包含链路层头部分且未包含协议头部分的数据作为特征数据,或将所述目标工控网络数据包中未包含链路层头部分的数据作为特征数据。
19.根据本发明提供的一种工控网络数据包解析方法,所述确定所述目标工控网络数据包的协议类型,根据所述协议类型确定与所述协议类型对应的特征数据提取方式;根据所确定的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,包括:
20.确定所述目标工控网络数据包为应用层网络协议数据包,其中,所述应用层网络协议是由udp协议或tcp协议承载的;
21.将所述目标工控网络数据包中tcp结构数据或udp结构数据内所包含的全部数据作为特征数据;或,将所述目标工控网络数据包中tcp结构数据或udp结构数据内所包含的指定部分的数据作为特征数据。
22.根据本发明提供的一种工控网络数据包解析方法,所述根据目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,还包括:
23.在所述目标工控网络数据包为待重组的工控网络数据包的情况下,对所述目标工控网络数据包与同组其他工控网络数据包进行重组,得到重组后的工控网络数据包;
24.确定所述重组后的工控网络数据包的类型,根据所述类型以及预先设定的与类型对应的特征数据提取方式,从所述重组后的工控网络数据包中提取特征数据。
25.根据本发明提供的一种工控网络数据包解析方法,所述根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果,包括:
26.从所述特征数据与解析结果之间的映射关系集合中查找与所述重组后的工控网络数据包的特征数据相对应的重组后的工控网络数据包的解析结果。
27.根据本发明提供的一种工控网络数据包解析方法,所述根据目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,还包括:
28.在所述目标工控网络数据包为待重组的工控网络数据包的情况下,确定所述目标工控网络数据包与同组其他工控网络数据包的协议类型,根据所述协议类型确定与所述协议类型对应的特征数据提取方式;根据所确定的特征数据提取方式,分别从所述目标工控网络数据包与所述同组其他工控网络数据包中提取特征数据;
29.相应的,所述根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果,包括:
30.确定第一工控网络数据包;其中,所述第一工控网络数据包是目标工控网络数据包以及其同组其他工控网络数据包中排序最前的工控网络数据包;
31.在所述特征数据与解析结果之间的映射关系集合中查找第一工控网络数据包的特征数据;
32.在能找到第一工控网络数据包的特征数据的情况下,从所述特征数据与解析结果之间的映射关系集合中获取第一工控网络数据包以及其同组其他工控网络数据包的解析结果。
33.根据本发明提供的一种工控网络数据包解析方法,所述特征数据与解析结果之间的映射关系集合为特征数据的哈希值与解析结果之间的映射关系集合;
34.相应的,所述根据所述特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果,包括:
35.计算所述目标工控网络数据包的特征数据的哈希值;
36.从所述特征数据的哈希值与解析结果之间的映射关系集合中查找与所述目标工控网络数据包的特征数据的哈希值相对应的目标工控网络数据包的解析结果。
37.根据本发明提供的一种工控网络数据包解析方法,方法还包括:
38.根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,未能确定所述目标工控数据的解析结果;
39.对所述目标工控网络数据包进行解析。
40.根据本发明提供的一种工控网络数据包解析方法,在所述对所述目标工控网络数据包进行解析之后,方法还包括:
41.将目标工控网络数据包的特征数据以及目标工控网络数据包的解析结果之间的映射关系保存在所述映射关系集合中。
42.本发明还提供了一种工控网络数据包解析装置,包括:
43.接收模块,用于接收目标工控网络数据包;
44.特征数据提取模块,用于根据所述目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据;
45.解析结果获取模块,用于根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果。
46.本发明还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如所述工控网络数据包解析方法的步骤。
47.本发明还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如所述工控网络数据包解析方法的步骤。
48.本发明还提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现如所述工控网络数据包解析方法的步骤。
49.本发明提供的工控网络数据包解析方法、装置、电子设备与存储介质通过提取目标工控网络数据包的特征数据,并基于特征数据在预先确定的特征数据与解析结果之间的映射关系集合中查找解析结果,可避免对目标工控网络数据包的实时解析操作,有助于降低资源消耗,节省处理时间。
附图说明
50.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
51.图1为本发明提供的工控网络数据包解析方法的流程图;
52.图2为本发明提供的工控网络数据包解析装置的示意图;
53.图3是本发明提供的电子设备的结构示意图。
具体实施方式
54.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.下面结合图1-图3描述本发明的工控网络数据包解析方法、装置、电子设备与存储介质。
56.图1为本发明提供的工控网络数据包解析方法的流程图,如图1所示,本发明提供的工控网络数据包解析方法,包括:
57.步骤101、接收目标工控网络数据包。
58.在本实施例中,将工业控制网络中所传输的网络数据包称为工控网络数据包。在工业控制网络中,可运行多种类型的协议,如数据链路层协议profinet dcp、应用层协议dnp3等。按照协议的不同,工控网络数据包的类型可能有多种。如基于协议profinet dcp所生成的工控网络数据包,基于协议dnp3所生成的工控网络数据包。
59.在本实施例中,目标工控网络数据包是指待解析的工控网络数据包。
60.步骤102、根据所述目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据。
61.相同内容的工控网络数据包有可能在工业控制网络上多次传输,在本发明中,可将经过解析的工控网络数据包的解析结果予以存储,然后当再次接收到与已解析工控网络数据包具有相同内容的工控网络数据包时,不再对新接收到的工控网络数据包进行解析,而是直接将已有的解析结果赋予该工控网络数据包。
62.本领域技术人员都知道,网络数据包中的一些信息与网络数据包本身所包含的内容无关,它会随着外界因素而发生变化,在本实施例中将其称为可变信息。一些典型的可变信息,可以如网络数据包中的帧号(frameid)、序列号(sequence)、协商报文等。
63.例如,用户a在时刻a通过工业控制网络向鼓风机发送一条控制指令“启动”,在时刻b再次通过工业控制网络向鼓风机发送一条控制指令“启动”。由于这两条控制指令的传输时间不同,因此,必然是通过两个独立的网络数据包分别予以传输。这两个网络数据包虽然都在传输相同的内容——“启动”指令,但两者的帧号是不同的。
64.除了前述的可变信息外,相同内容的不同网络数据包中的剩余信息是相同的。在本实施例中,将用于区分不同内容网络数据包的数据称为特征数据,因此可将除去可变信
息之后的剩余信息作为用于区分不同网络数据包的特征数据,特征数据通常不会随外界信息而发生变化。
65.具体选用网络数据包中的哪些信息作为特征数据,与网络数据包所基于的协议类型相关。在之后的实施例中,将对提取网络数据包中的特征数据的过程做进一步说明。
66.步骤103、根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果。
67.特征数据与解析结果之间的映射关系反映了特征数据与解析结果之间的一一对应关系。基于该映射关系,在已知目标工控网络数据包的特征数据的前提下,可以查找到与该特征数据对应的解析结果。
68.在本实施例中,工控网络数据包特征数据与工控网络数据包解析结果之间的映射关系集合可采用缓存表的方式表示。所述缓存表至少包括两项,一项用于存储特征数据,一项用于存储解析结果,其中,特征数据与解析结果之间存在对应关系。在得到目标工控网络数据包的特征数据后,根据该特征数据在缓存表的特征数据项中查找,如果能够找到某一特征数据项符合,则从缓存表中读取该特征数据项对应的解析结果项的内容,读取出的解析结果也就是目标工控网络数据包的解析结果。
69.在本实施例中,特征数据与解析结果之间的映射关系集合是预先确定的,在之后的实施例中,将会对映射关系集合的生成过程进行说明。
70.需要说明的是,作为一种可选的实现方式,在前述的为目标工控网络数据包提取特征数据,并基于所述特征数据在预先定义的缓存表中查找解析结果的基础上,还可从目标工控网络数据包中提取可变信息,对所述可变信息进行实时解析。所得到的实时解析结果与缓存表中查找到的解析结果相结合,可作为目标工控网络数据包的完整解析结果。
71.本发明提供的工控网络数据包解析方法通过提取目标工控网络数据包的特征数据,并基于特征数据在预先确定的特征数据与解析结果之间的映射关系集合中查找解析结果,可避免对目标工控网络数据包的实时解析操作,有助于降低资源消耗,节省处理时间。
72.基于上述任一实施例,在本实施例中,所述根据所述目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,包括:
73.判断所述目标工控网络数据包是否为待重组的工控网络数据包;
74.在所述目标工控网络数据包并非待重组的工控网络数据包的情况下,确定所述目标工控网络数据包的协议类型,根据所述协议类型确定与所述协议类型对应的特征数据提取方式;根据所确定的特征数据提取方式,从所述目标工控网络数据包中提取特征数据。
75.本领域技术人员都知道,网络模型中的不同层所定义的数据单元的大小是不一样的。例如,除去ip头与udp头,一个udp包最多能容纳1472个字节;除去ip头与tcp头,一个tcp包最多能容纳1460个字节。当应用层的数据包中所包含数据的大小超过传输层中的数据单元的容量时,需要对数据包进行分片传输。
76.若所接收的目标工控网络数据包为分片传输的工控网络数据包,那么在对该数据包进行解析前,先要对其进行重组。在本发明中,将此类数据包称为待重组的工控网络数据包。
77.在本实施例中,对目标工控网络数据包是否为待重组的工控网络数据包进行判
断,然后对目标工控网络数据包并非待重组的工控网络数据包的情况进行讨论。
78.本领域技术人员都知道,对数据包进行分片传输时会为数据包设置相应的标记,因此利用现有技术即可实现对待重组的工控网络数据包的判断。
79.目标工控网络数据包并非待重组的工控网络数据包,则意味着可以直接对该数据包进行处理。在处理时,首先要确定目标工控网络数据包的协议类型,然后根据所述协议类型确定与所述协议类型对应的特征数据提取方式;最后根据所确定的特征数据提取方式,从所述目标工控网络数据包中提取特征数据。
80.具体的说,若目标工控网络数据包为链路层网络协议数据包,则将所述目标工控网络数据包中未包含链路层头部分且未包含协议头部分的数据作为特征数据,或将所述目标工控网络数据包中未包含链路层头部分的数据作为特征数据。若所述目标工控网络数据包为应用层网络协议数据包(所述应用层网络协议是由udp协议或tcp协议承载的),则将所述目标工控网络数据包中tcp结构数据或udp结构数据内所包含的全部数据作为特征数据;或,将所述目标工控网络数据包中tcp结构数据或udp结构数据内所包含的指定部分的数据作为特征数据。
81.为了便于理解,下面按照不同类型的网络协议的特点,对特征数据的提取过程做分类说明。
82.类型一、此类工控网络数据包是基于二层(链路层)协议实现的,其数据结构包括:用于实现网络传输的链路层头部分,用于协议协商与传输的协议头(header)部分,内容部分。
83.其中的链路层头部分以及协议头部分是与传输流程相关的可变信息,因此可将该类型工控网络数据包中除了链路层头部分与协议头部分之外的“内容部分”作为特征数据。
84.此类工控网络数据包的典型代表是基于profinet dcp协议的工控网络数据包,基于西门子s7协议的工控网络数据包。
85.例如,一个基于profinet dcp协议的工控网络数据包的代码为:
86.frame 1∶28bytes on wire(224bits),28bytes captured(224bits)
87.ethernetⅱ,src:vmware_ba:2e∶2b(00:0c∶29∶ba:2e:2b),
88.dst:vmware_9d:09:7a(00:50:56:9d:09:7a)
89.profinet acyclic real-time,id:0xfefd,len:12
90.frameid:0xfefd(real-time:dcp(dynamic configuration protocol)get/set)
91.profinet dcp,get req,xid:0x4000003,status from ip-mac address
92.serviceid:get(3)
93.servicetype:request(0)
94.xid:0x04000003
95.reserved:0
96.dcpdatalength:2
97.option:ip(1)
98.suboption:mac address(1)
99.在这段代码中,从“profinet dcp,get req,xid:0x4000003,status from ip-mac address”开始,之后的内容都属于除了链路层头部分与协议头部分之外的“内容部分”,可
将这部分内容作为特征数据。
100.类型二、类型二是类型一的一种特殊形式。在类型二中,若工控网络数据包的有效载荷(payload)中不存在时间戳或序列号(sequence)等频繁变化的数值,那么整个有效载荷均可作为特征数据,因此,可将工控网络数据包中链路层头部分之后的数据作为特征数据。
101.此类网络数据包的典型代表是基于smv(sampled measured value,采样测量值)的网络数据包。
102.例如,一个基于smv的网络数据包的代码为:
103.frame 2∶56bytes on wire(448bits),56bytes captured(448bits)
104.ethernetⅱ,src:xerox_01∶20∶01(00∶00∶01∶01∶20∶01),
105.dst:iec-tc57_01∶20∶01(01:0c:cd∶01∶20∶01)
106.802.1q virtual lan,pri:0,dei:0,id:1
107.iec61850 sampled values
108.appid:0x2001
109.length:38
110.reserved 1:0x0000(0)
111.reserved 2:0x0000(0)
112.savpdu
113.noasdu:1
114.seqasdu 1item
115.在这段代码中,“iec61850 sampled values”字段所包含的数值及其之后的字段均可作为特征数据,“iec61850 sampled values”字段所包含的数值如“20 01 00 26 00 00......00 87 00”。
116.类型三、此类工控网络数据包是基于由tcp或udp承载的应用层协议实现的。
117.本领域技术人员都知道,基于应用层协议所生成的网络数据包在传输时,若该应用层协议是由tcp或udp承载的,那么在网络数据包的外部会封装有tcp或udp的结构数据。
118.这部分结构数据是与传输流程相关的可变信息,因此可将工控网络数据包中tcp或udp结构数据内所包含的部分作为特征数据。
119.此类工控网络数据包范围广泛,典型代表包括基于dnp3(disturbed network protocol 3.0)的网络数据包,基于modbus的网络数据包,基于mms(microsoft media server protocol,微软媒体服务器协议)的网络数据包,基于iec104的网络数据包。
120.例如,一个基于dnp3协议的工控网络数据包的代码为:
121.frame 6∶153bytes on wire(1224bits),153bytes captured(1224bits)
122.ethernetⅱ,src:pcscompu_e2:e7:ab(00∶00:27:e2:e7:ab),
123.pcscompu_ff:2f:c5(08∶00∶27:ff:2f:c5)
124.internet protocol version 4,src:192.168.1.2,dst:192.168.1.1
125.transmission control protocol,src port:49159,dst port:20000,seq:22,ack:41,len:99
126.disturbed network protocol 3.0
127.在这段代码中,“disturbed network protocol 3.0”字段所包含的内容作为特征数据,如其包含的内容为“05 64 54c4 04 00 03 00......”,将这些数值作为特征数据。
128.类型四、此类工控网络数据包同样是基于由tcp或udp承载的应用层协议实现的。
129.与类型三不同的是,此类工控网络数据包除了tcp或udp的结构数据不能作为特征数据,应用层协议中的部分数据也不能作为特征数据。
130.此类网络数据包的典型代表是基于欧姆龙fins协议的网络数据包。
131.例如,一个基于fins协议的网络数据包的代码为:
132.frame 97∶104bytes on wire(832bits),104bytes captured(832bits)
133.ethernetⅱ,src:omrontat_9b:85:5a(00∶00:0a:9b:85:5a),
134.dst:vmware-f7:75:bb(00:0c:29:01:20:01)
135.internet protocol version 4,src:169.254.91.133,dst:169.254.92.32
136.transmission control protocol,src port:9600,dst port:49187,seq:4294225823,ack:41,len:99
137.omron fins protocol
138.fins/tcp header
139.fins header
140.command data
141.在这段代码中,“omron fins protocol”之前的部分是传输层的结构数据,“fins/tcp header”字段的内容被认为是可变信息,因此,将“fins header”字段及之后的内容作为特征数据。
142.以上是对不同协议类型的工控网络数据包如何提取特征数据的过程进行说明。
143.需要说明的是,一些通信协议所对应的工控网络数据包的可变信息的大小是固定的。针对这一特点,可根据工控网络数据包所对应的通信协议的类型确定一相对于数据包包头的固定偏移量,根据该固定偏移量迅速排除所述可变信息,达到快速定位工控网络数据包的特征数据的目的。
144.本发明提供的工控网络数据包解析方法通过分析目标工控网络的协议类型,根据协议类型确定特征数据提取方式,进而提取特征数据,能够基于特征数据在预先确定的特征数据与解析结果之间的映射关系集合中快速查找出解析结果,可避免对目标工控网络数据包的实时解析操作,有助于降低资源消耗,节省处理时间。
145.基于上述任一实施例,在本实施例中,所述根据目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,还包括:
146.在所述目标工控网络数据包为待重组的工控网络数据包的情况下,对所述目标工控网络数据包与同组其他工控网络数据包进行重组,得到重组后的工控网络数据包;
147.确定所述重组后的工控网络数据包的类型,根据所述类型以及预先设定的与类型对应的特征数据提取方式,从所述重组后的工控网络数据包中提取特征数据。
148.在前一实施例中,描述了目标工控网络数据包在并非待重组的工控网络数据包的情况下,如何提取特征数据的过程。在本实施例中,对于目标工控网络数据包是待重组的工控网络数据包的情况,如何提取特征数据的过程进行说明。
149.首先,根据目标工控网络数据包可以得到同组的其他工控网络数据包。
150.在本实施例中,将对一个网络数据包做分片所得到的多个网络数据包称为同组的网络数据包。若目标工控网络数据包是待重组的工控网络数据包,那么该工控网络数据包必然存在与其同组的工控网络数据包。基于工控网络数据包的标记信息,可得到目标工控网络数据包的同组的其他工控网络数据包。
151.接着,对所述目标工控网络数据包与同组其他工控网络数据包进行重组,得到重组后的工控网络数据包。
152.如何对工控网络数据包进行重组是本领域技术人员的公知常识,因此不在此处重复说明。
153.最后,确定所述重组后的工控网络数据包的类型,根据所述类型以及预先设定的与类型对应的特征数据提取方式,从所述重组后的工控网络数据包中提取特征数据。
154.在之前的实施例中,已经描述了如何从无需重组的目标工控网络数据包中提取特征数据。对于重组后的工控网络数据包,根据工控网络数据包的协议类型确定特征数据提取方式,以及提取特征数据的具体实现过程并无本质区别,因此不在此处做重复说明。特别需要说明的是,本实施例最终所得到的特征数据是重组后的工控网络数据包的特征数据,而不仅仅是单个分片的特征数据。
155.例如,在一个基于fins协议的网络数据包中,应用层所要传输的数据有2973字节,超过了tcp包的容量,因此被分成了两个tcp包。在解析前,将相关的两个tcp包进行重组。对重组后的网络数据包进行协议类型判断,发现其符合前述实施例中所描述的类型四,因此按照类型四中所描述的特征数据提取方法提取特征数据。
156.本发明提供的工控网络数据包解析方法通过对待重组的工控网络数据包进行重组,然后从重组后的工控网络数据包中提取特征数据,为后续基于特征数据得到重组后的工控网络数据包的解析结果提供了基础,有助于降低资源消耗,节省处理时间。
157.基于上述任一实施例,在本实施例中,所述根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果,包括:
158.从所述特征数据与解析结果之间的映射关系集合中查找与所述重组后的工控网络数据包的特征数据相对应的重组后的工控网络数据包的解析结果。
159.对于目标工控网络数据包是待重组的工控网络数据包的情况,在确定解析结果时会有一定的变化,在本实施例中做相应的说明。
160.在之前的实施例中已经提到,当目标工控网络数据包是待重组的工控网络数据包时,在解析前,需要先将其重组,得到重组后的工控网络数据包,然后从重组后的工控网络数据包中提取特征数据。在解析时,可基于重组后的工控网络数据包的特征数据,直接在特征数据与解析结果之间的映射关系集合中查找是否存在对应的特征数据项。如果能找到,则对应的解析结果将是重组后的整个工控网络数据包的解析结果。而不是单个分片的解析结果。
161.本发明提供的工控网络数据包解析方法基于重组后的工控网络数据包的特征数据,在预先确定的特征数据与解析结果之间的映射关系集合中快速查找出解析结果,可避免对重组后的工控网络数据包的实时解析操作,有助于降低资源消耗,节省处理时间。
162.基于上述任一实施例,在本实施例中,所述根据目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,还包括:
163.在所述目标工控网络数据包为待重组的工控网络数据包的情况下,确定所述目标工控网络数据包与同组其他工控网络数据包的协议类型,根据所述协议类型确定与所述协议类型对应的特征数据提取方式;根据所确定的特征数据提取方式,分别从所述目标工控网络数据包与所述同组其他工控网络数据包中提取特征数据;
164.相应的,所述根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果,包括:
165.确定第一工控网络数据包;其中,所述第一工控网络数据包是目标工控网络数据包以及其同组其他工控网络数据包中排序最前的工控网络数据包;
166.在所述特征数据与解析结果之间的映射关系集合中查找第一工控网络数据包的特征数据;
167.在能找到第一工控网络数据包的特征数据的情况下,从所述特征数据与解析结果之间的映射关系集合中获取第一工控网络数据包以及其同组其他工控网络数据包的解析结果。
168.在本实施例中,对目标工控网络数据包是待重组的工控网络数据包的另一种特征数据提取方式进行说明。
169.本技术人经过研究后发现:根据网络数据包的生成规则,应用层数据包被分片后,当两个应用层数据包各自有一个分片数据相同时,这两个应用层数据包整体不同的概率很低。
170.例如,有应用层数据包a和应用层数据包b,应用层数据包a被分成了分片数据a1和a2,应用层数据包b被分成了分片数据b1和b2。若a1和b1相同,那么a和b不同的情况发生的概率很低。
171.针对这一特点,在接收到同一应用层数据包的多个分片(如多个tcp包或udp包)后,不对这些分片进行重组,而是单独从这些分片中提取特征数据。然后基于分片的特征数据查找整个应用层网络数据包的解析结果。
172.为这些单独的分片提取特征数据时,可根据它们的协议类型(如前述类型三或类型四),选用对应类型的特征数据提取方法提取特征数据。如何选用对应类型的特征数据提取方法提取特征数据,在之前的实施例中已经有详细描述,因此不在此处重复。
173.基于分片的特征数据查找整个应用层网络数据包的解析结果,是指一旦某一分片的特征数据在特征数据与解析结果之间的映射关系集合中已经被找到,那么可将该分片的解析结果以及与该分片同组的其他分片的解析结果一并返回,作为分片前的应用层网络数据包的解析结果。
174.例如,应用层数据包a被分割成分片数据a1和a2,在接收到a1后,提取出a1的特征数据;基于a1的特征数据在特征数据与解析结果之间的映射关系集合中进行查找,若能找到a1的特征数据,可基于预先设定的关联关系,将与a1的特征数据所对应的a1的解析结果以及a2的解析结果一并返回。当下次接收到a2后,将不再需要查找a2的解析结果,只需要对a2做诸如转发的相关操作即可。
175.需要说明的是,本实施例中所描述的处理方式并不适用于所有的网络协议,一般适用于网络数据包为纯数据状态的网络协议,如网络数据包中不带时间戳、无序列号变化。如本实施例中所描述的处理方式可用于fins协议。
176.本发明提供的工控网络数据包解析方法通过为分片数据包提取特征数据,并基于分片数据包的特征数据在预先确定的特征数据与解析结果之间的映射关系集合中快速查找出分片前的完整应用层网络数据包的解析结果,有助于降低资源消耗,节省处理时间。
177.基于上述任一实施例,在本实施例中,所述特征数据与解析结果之间的映射关系集合为特征数据的哈希值与解析结果之间的映射关系集合;
178.相应的,所述根据所述特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果,包括:
179.计算所述目标工控网络数据包的特征数据的哈希值;
180.从所述特征数据的哈希值与解析结果之间的映射关系集合中查找与所述目标工控网络数据包的特征数据的哈希值相对应的目标工控网络数据包的解析结果。
181.在之前的实施例中,在得到目标工控网络数据包的特征数据后,均是利用特征数据来查找对应的解析结果。但在实际应用中发现:由于特征数据的数据量一般较大,在存储时会占据较大的存储空间,在查找时存在耗时长、效率低的问题。
182.因此,在本实施例中,在得到目标工控网络数据包的特征数据之后,对特征数据计算哈希值。相应的,特征数据与解析结果之间的映射关系集合为特征数据的哈希值与解析结果之间的映射关系集合。基于目标工控网络数据包的特征数据的哈希值,可在特征数据的哈希值与解析结果之间的映射关系集合中查找对应的哈希值项,查找到的哈希值项所对应的解析结果就是目标工控网络数据包的解析结果。
183.本发明提供的工控网络数据包解析方法通过为特征数据计算哈希值,并根据哈希值查找工控网络数据包的解析结果,与特征数据相比,不仅存储空间小,而且查找效率高。
184.基于上述任一实施例,在本实施例中,方法还包括:
185.根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,未能确定所述目标工控数据的解析结果;
186.对所述目标工控网络数据包进行解析。
187.在之前的实施例中,都以特征数据与解析结果之间的映射关系集合中能够查找到目标工控网络数据包的特征数据为前提,对解析结果的获取过程进行描述。但在实际应用中,存在所述映射关系集合中未能找到目标工控网络数据包的特征数据的可能。如某一内容的工控网络数据包首次在工控网络中传输。
188.在本实施例中,若在所述映射关系集合中未能找到目标工控网络数据包的特征数据,那么将直接对目标工控网络数据包进行解析。
189.由于这一实现过程与现有技术相比并无本质上的区别,因此不在此处做重复说明。
190.本发明提供的工控网络数据包解析方法通过将未能在映射关系集合中查找到的工控网络数据包进行实时解析,避免了通过映射关系集合无法找到所有工控网络数据包的不足。
191.基于上述任一实施例,在本实施例中,在所述对所述目标工控网络数据包进行解
析之后,方法还包括:
192.将目标工控网络数据包的特征数据以及目标工控网络数据包的解析结果之间的映射关系保存在所述映射关系集合中。
193.若目标工控网络数据包的解析结果并未被预先保存在所述映射关系集合中,而是通过实时解析得到的,则可将目标工控网络数据包的特征数据与解析结果保存在所述映射关系集合中。
194.当下次有同样内容的工控网络数据包到达后,可根据该工控网络数据包的特征数据在映射关系集合中找到对应的项,从而避免对其做解析操作。这样做有助于降低资源消耗,节省处理时间。
195.优选的,在本实施例中,可为特征数据计算哈希值,然后将特征数据的哈希值与解析结果保存在映射关系集合中。当下次有同样内容的工控网络数据包到达后,可根据该工控网络数据包的特征数据的哈希值在映射关系集合中找到对应的项,得到对应的解析结果,从而避免对其做解析操作。
196.本发明提供的工控网络数据包解析方法通过将工控网络数据包的实时解析结果保存在映射关系集合中,使得下次有同样内容的工控网络数据包到达后,可通过查找操作直接得到解析结果,而无需再做实时解析操作,有助于降低资源消耗,节省处理时间。
197.下面对本发明提供的工控网络数据包解析装置进行描述,下文描述的工控网络数据包解析装置与上文描述的工控网络数据包解析方法可相互对应参照。
198.图2为本发明提供的工控网络数据包解析装置的示意图,如图2所示,本发明提供的工控网络数据包解析装置,包括:
199.接收模块201,用于接收目标工控网络数据包;
200.特征数据提取模块202,用于根据所述目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据;
201.解析结果获取模块203,用于根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果。
202.本发明提供的工控网络数据包解析装置通过提取目标工控网络数据包的特征数据,并基于特征数据在预先确定的特征数据与解析结果之间的映射关系集合中查找解析结果,可避免对目标工控网络数据包的实时解析操作,有助于降低资源消耗,节省处理时间。
203.基于上述任一实施例,在本实施例中,所述根据所述目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,包括:
204.判断所述目标工控网络数据包是否为待重组的工控网络数据包;
205.在所述目标工控网络数据包并非待重组的工控网络数据包的情况下,确定所述目标工控网络数据包的协议类型,根据所述协议类型确定与所述协议类型对应的特征数据提取方式;根据所确定的特征数据提取方式,从所述目标工控网络数据包中提取特征数据。
206.本发明提供的工控网络数据包解析装置通过分析目标工控网络的协议类型,根据协议类型确定特征数据提取方式,进而提取特征数据,能够基于特征数据在预先确定的特
征数据与解析结果之间的映射关系集合中快速查找出解析结果,可避免对目标工控网络数据包的实时解析操作,有助于降低资源消耗,节省处理时间。
207.基于上述任一实施例,在本实施例中,所述确定所述目标工控网络数据包的协议类型,根据所述协议类型确定与所述协议类型对应的特征数据提取方式;根据所确定的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,包括:
208.确定所述目标工控网络数据包为链路层网络协议数据包;
209.将所述目标工控网络数据包中未包含链路层头部分且未包含协议头部分的数据作为特征数据,或将所述目标工控网络数据包中未包含链路层头部分的数据作为特征数据。
210.基于上述任一实施例,在本实施例中,所述确定所述目标工控网络数据包的协议类型,根据所述协议类型确定与所述协议类型对应的特征数据提取方式;根据所确定的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,包括:
211.确定所述目标工控网络数据包为应用层网络协议数据包,其中,所述应用层网络协议是由udp协议或tcp协议承载的;
212.将所述目标工控网络数据包中tcp结构数据或udp结构数据内所包含的全部数据作为特征数据;或,将所述目标工控网络数据包中tcp结构数据或udp结构数据内所包含的指定部分的数据作为特征数据。
213.基于上述任一实施例,在本实施例中,所述根据目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,还包括:
214.在所述目标工控网络数据包为待重组的工控网络数据包的情况下,对所述目标工控网络数据包与同组其他工控网络数据包进行重组,得到重组后的工控网络数据包;
215.确定所述重组后的工控网络数据包的类型,根据所述类型以及预先设定的与类型对应的特征数据提取方式,从所述重组后的工控网络数据包中提取特征数据。
216.本发明提供的工控网络数据包解析装置通过对待重组的工控网络数据包进行重组,然后从重组后的工控网络数据包中提取特征数据,为后续基于特征数据得到重组后的工控网络数据包的解析结果提供了基础,有助于降低资源消耗,节省处理时间。
217.基于上述任一实施例,在本实施例中,所述根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果,包括:
218.从所述特征数据与解析结果之间的映射关系集合中查找与所述重组后的工控网络数据包的特征数据相对应的重组后的工控网络数据包的解析结果。
219.本发明提供的工控网络数据包解析装置基于重组后的工控网络数据包的特征数据,在预先确定的特征数据与解析结果之间的映射关系集合中快速查找出解析结果,可避免对重组后的工控网络数据包的实时解析操作,有助于降低资源消耗,节省处理时间。
220.基于上述任一实施例,在本实施例中,所述根据目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据,还包括:
221.在所述目标工控网络数据包为待重组的工控网络数据包的情况下,确定所述目标
工控网络数据包与同组其他工控网络数据包的协议类型,根据所述协议类型确定与所述协议类型对应的特征数据提取方式;根据所确定的特征数据提取方式,分别从所述目标工控网络数据包与所述同组其他工控网络数据包中提取特征数据;
222.相应的,所述根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果,包括:
223.确定第一工控网络数据包;其中,所述第一工控网络数据包是目标工控网络数据包以及其同组其他工控网络数据包中排序最前的工控网络数据包;
224.在所述特征数据与解析结果之间的映射关系集合中查找第一工控网络数据包的特征数据;
225.在能找到第一工控网络数据包的特征数据的情况下,从所述特征数据与解析结果之间的映射关系集合中获取第一工控网络数据包以及其同组其他工控网络数据包的解析结果。
226.本发明提供的工控网络数据包解析装置通过为分片数据包提取特征数据,并基于分片数据包的特征数据在预先确定的特征数据与解析结果之间的映射关系集合中快速查找出分片前的完整应用层网络数据包的解析结果,有助于降低资源消耗,节省处理时间。
227.基于上述任一实施例,在本实施例中,所述特征数据与解析结果之间的映射关系集合为特征数据的哈希值与解析结果之间的映射关系集合;
228.相应的,所述根据所述特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果,包括:
229.计算所述目标工控网络数据包的特征数据的哈希值;
230.从所述特征数据的哈希值与解析结果之间的映射关系集合中查找与所述目标工控网络数据包的特征数据的哈希值相对应的目标工控网络数据包的解析结果。
231.本发明提供的工控网络数据包解析装置通过为特征数据计算哈希值,并根据哈希值查找工控网络数据包的解析结果,与特征数据相比,不仅存储空间小,而且查找效率高。
232.基于上述任一实施例,在本实施例中,方法还包括:
233.根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,未能确定所述目标工控数据的解析结果;
234.对所述目标工控网络数据包进行解析。
235.本发明提供的工控网络数据包解析装置通过将未能在映射关系集合中查找到的工控网络数据包进行实时解析,避免了通过映射关系集合无法找到所有工控网络数据包的不足。
236.基于上述任一实施例,在本实施例中,在所述对所述目标工控网络数据包进行解析之后,方法还包括:
237.将目标工控网络数据包的特征数据以及目标工控网络数据包的解析结果之间的映射关系保存在所述映射关系集合中。
238.本发明提供的工控网络数据包解析装置通过将工控网络数据包的实时解析结果保存在映射关系集合中,使得下次有同样内容的工控网络数据包到达后,可通过查找操作直接得到解析结果,而无需再做实时解析操作,有助于降低资源消耗,节省处理时间。
239.图3是本发明提供的电子设备的结构示意图,如图3所示,该电子设备可以包括:处
理器(processor)310、通信接口(communications interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行工控网络数据包解析方法,该方法包括:
240.接收目标工控网络数据包;
241.根据所述目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据;
242.根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果。
243.此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
244.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的工控网络数据包解析方法,该方法包括:
245.接收目标工控网络数据包;
246.根据所述目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据;
247.根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果。
248.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的工控网络数据包解析方法,该方法包括:
249.接收目标工控网络数据包;
250.根据所述目标工控网络数据包的协议类型以及预先设定的与协议类型对应的特征数据提取方式,从所述目标工控网络数据包中提取特征数据;
251.根据所述目标工控网络数据包的特征数据以及预先确定的特征数据与解析结果之间的映射关系集合,确定所述目标工控网络数据包的解析结果。
252.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
253.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
254.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1