一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于功能码和业务数据相关性的工控异常检测方法与流程

2022-11-16 15:34:53 来源:中国专利 TAG:


1.本发明涉及工控安全技术领域,尤其涉及一种基于功能码和业务数据相关性的工控异常检测方法。


背景技术:

2.近年来随着工控网络安全事件不断涌现,网络攻击威胁日益加重,造成网络安全事件的异常网络行为,如网络攻击与窃密等,往往涉及到网络流量的异常,因此可通过异常检测,发现网络异常行为,结合相关技术进行异常响应处理,保障网络正常,维护网络安全。
3.由于工控资产直接关系到企业生产,一旦工控资产遭到攻击可能直接影响生产,因此加强对工控资产网络流量进行深度分析与异常检测显得更加必要。


技术实现要素:

4.本发明提供了一种基于功能码和业务数据相关性的工控异常检测方法,包括:
5.采集工控通信报文;
6.解析工控通信报文,提取功能码和工控业务数据;
7.学习建立功能码和工控业务数据对应基线:比较多个周期中每个功能码出现前后的业务数据序列,剔除离散点,并对每个功能码对应的除离散点外的其他数据取均值作为当前功能码的基线值,由此计算得出所有控制功能码对应的前序业务数据基线和后续业务数据基线;
8.应用基线,检查实际工控业务是否异常。
9.如上所述的一种基于功能码和业务数据相关性的工控异常检测方法,其中,功能码包括两大类,一类是读取监视的功能码,一类是下发控制指令的功能码。
10.如上所述的一种基于功能码和业务数据相关性的工控异常检测方法,其中,读取监视的功能码对应的报文携带工控业务数据,下发控制的功能码不携带业务数据。
11.如上所述的一种基于功能码和业务数据相关性的工控异常检测方法,其中,在学习阶段,从工控业务数据序列中选择设定长度的序列数据,并学习多个周期的数据。
12.如上所述的一种基于功能码和业务数据相关性的工控异常检测方法,其中,选择每个序列的第一个数据组成设定长度的序列数据。
13.如上所述的一种基于功能码和业务数据相关性的工控异常检测方法,其中,同样的控制指令功能码重复出现计算一个周期。
14.如上所述的一种基于功能码和业务数据相关性的工控异常检测方法,其中,剔除离散点,具体为使用基于统计的均值和方差,或者k紧邻算法进行离散点剔除。
15.如上所述的一种基于功能码和业务数据相关性的工控异常检测方法,其中,检查实际工控业务是否异常,具体包括如下步骤:
16.缓存最新的设定长度的业务数据序列,与不同的功能码的业务模型序列进行比对,判断相似程度;
17.根据业务数据和功能码前序序列、后续序列的相似度判别业务异常。
18.本发明还提供一种计算机存储介质,包括:至少一个存储器和至少一个处理器;
19.存储器用于存储一个或多个程序指令;
20.处理器,用于运行一个或多个程序指令,用以执行上述任一项所述的一种基于功能码和业务数据相关性的工控异常检测方法。
21.本发明实现的有益效果如下:
22.1、通过学习控制功能码和业务数据的对应关系,建立控制系统和业务系统的关联关系和数据基线。
23.2、利用序列相似性算法,检查基线和实际数据的相似性,既可以判断控制系统异常(未按要求下发控制指令),又可以判断公开业务系统异常(收到控制指令后未按要求生效)。
附图说明
24.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
25.图1是本发明实施例提供的一种基于功能码和业务数据相关性的工控异常检测方法流程图;
26.图2是modbus事务处理流程图;
27.图3是功能码和业务数据相关性的说明示意图。
具体实施方式
28.下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.实施例一
30.如图1所示,本发明实施例一提供一种基于功能码和业务数据相关性的工控异常检测方法,包括:
31.步骤110、采集工控通信报文;
32.本技术实施例提供的工控异常检测方法,示例性地应用在如下业务场景中:工控上位机周期性下发监视类功能码采集工控设备的业务数据(比如温度、压力等),当发现数据处于某种临界状态时,下发控制功能码,对工控设备进行控制(比如增加燃气、减少燃气等)。
33.例如图2所示的modbus事务处理流程图,客户端启动请求,向服务器上传指令,该指令中包括功能码和数据请求,服务器执行操作启动响应,将响应返回给客户端,客户端接收响应,响应中包括操作码和数据响应。其中,客户端的功能码和服务器的操作码含义一致,在本技术中统称功能码,对于上述业务场景中的监视类功能码,其数据响应即是业务数
据。
34.步骤120、解析工控通信报文,提取功能码和业务数据;
35.具体地,对工控原始流量进行深度解析,获得功能码code和对应的工控业务数据value,功能码包括两大类,一类是读取监视的功能码,一类是下发控制指令的功能码,在解析的时候需要有明确区分。读取监视的功能码对应的报文携带工控业务数据,比如电机转速、蒸汽气压、环境温度等;下发控制的功能码不携带业务数据。
36.步骤130、学习建立功能码和业务数据对应基线:比较多个周期中每个功能码出现前后的设定长度的业务数据序列,剔除离散点,并对每个功能码对应的除离散点外的其他数据取均值作为当前功能码的基线值,由此计算得出所有控制功能码对应的前序业务数据基线和后续业务数据基线;
37.在学习阶段,处理不同的控制功能码code之间业务数据values序列,准备学习总结每次下发不同的控制指令前后的业务数据。因为下发不同的控制指令功能码code之间的value序列可能很长,过长的序列计算相关性需要消耗大量的计算资源,所以可以选择一定长度的序列数据,比如选择20个数据。另外,需要确保学习多个周期的数据,比如每一个功能码都出现10次,采集10个周期的数据。注意,这里的周期时长不确定,同样的控制指令功能码重复出现计算一个周期。
38.计算得到每个控制功能码的前序业务数据基线和后续业务数据基线:比较10个周期中,每一个功能码出现前后的2个长度为20的业务数据序列,在不同的周期中,对应位置的数据应该是接近的、相似的,如果某个数据点偏差较大,应将其排除,具体算法可使用基于统计的均值和方差,或者k紧邻算法。剔除离群点后,对其他数据取均值,作为该位置的基线值。
39.例如:
40.周期1中,序列数据为d0101、d0102、d0103...d0118、d0119、d0120
41.周期2中,序列数据为d0201、d0202、d0203...d0218、d0219、d0220
42.....
43.周期20中,序列数据为d2001、d2002、d2003...d2018、d2019、d2020
44.把每个序列的第一个数据组成集合{d0101、d0201、d0301...d2001},检测剔除其中的离群点,然后对其他数据取均值,作为基线序列第1个位置的基线值。以此类推,算出所有的长度为20的基线值。这样,就可以计算得出所有控制功能码对应的前后2个业务数据的基线序列。
45.步骤140、应用基线,检查实际工控业务是否异常;
46.在应用阶段,对应上述示例,应用基线,检查实际工控业务是否异常,具体包括如下步骤:
47.步骤141、缓存最新的长度为20的业务数据序列,与不同的功能码的业务模型序列进行比对,判断相似程度;
48.具体地,假设最新的业务数据序列为:ni(1<=i<=20)
49.功能码code1对应的前序数据基线为:pdi(1<=i<=20)
50.相似度计算:
51.s=0时,两个序列完全等同。
52.s越小,两个序列越相似;s越大,两个序列差异越大。
53.因为不同的工业业务数据差别很大,如果pd数值比较大,为了建立比较统一模型,可以使用偏差率来衡量相似度,即p=s/pd,(0《=p《=1)。这种方法要求pd≠0,特殊情况如果业务数据刚好是要求为0(比如温度要求恒温0度),则直接使用s即可。
54.步骤142、根据业务数据和功能码前序序列、后续序列的相似度判别业务异常。
55.为相似度p设置一个阈值t,当p《=t时,说明当前的业务数据序列和功能码code1的前序序列足够相似,按照工控业务逻辑,就应该下发控制指令功能码code1。如果没有下发控制功能码code1,并且p值逐渐增大(选择几个周期点判断,比如连续5个采样点),说明业务控制系统出现异常,需要产生告警。
56.如果下发了控制功能码code1,则需要切换基线为后续序列基线,同样采用上述的相似度计算方法(区别是刚开始时,序列长度不足20,算法一致),如果相似度p》t,说明下发功能码后,业务数据序列没有按照预定的趋势发展,偏差较大,说明业务控制系统出现异常,需要产生告警。
57.其他的控制功能码及其前序、后序基线判断算法一致,不再详细举例说明。
58.与上述实施例对应的,本发明实施例提供一种计算机存储介质,包括:至少一个存储器和至少一个处理器;
59.存储器用于存储一个或多个程序指令;
60.处理器,用于运行一个或多个程序指令,用以执行一种基于功能码和业务数据相关性的工控异常检测方法。
61.与上述实施例对应的,本发明实施例提供一种计算机可读存储介质,计算机存储介质中包含一个或多个程序指令,一个或多个程序指令用于被处理器执行一种基于功能码和业务数据相关性的工控异常检测方法。
62.本发明所公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行上述的一种基于功能码和业务数据相关性的工控异常检测方法。
63.在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(fieldprogrammable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
64.可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质
中的信息,结合其硬件完成上述方法的步骤。
65.存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
66.其中,非易失性存储器可以是只读存储器(read-only memory,简称rom)、可编程只读存储器(programmable rom,简称prom)、可擦除可编程只读存储器(erasable prom,简称eprom)、电可擦除可编程只读存储器(electrically eprom,简称eeprom)或闪存。
67.易失性存储器可以是随机存取存储器(random access memory,简称ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,简称sram)、动态随机存取存储器(dynamic ram,简称dram)、同步动态随机存取存储器(synchronous dram,简称sdram)、双倍数据速率同步动态随机存取存储器(double data ratesdram,简称ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,简称esdram)、同步连接动态随机存取存储器(synchlink dram,简称sldram)和直接内存总线随机存取存储器(directrambus ram,简称drram)。
68.本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
69.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
70.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献