CN110751570A - 一种基于业务逻辑的电力业务报文攻击识别方法及*** - Google Patents

一种基于业务逻辑的电力业务报文攻击识别方法及*** Download PDF

Info

Publication number
CN110751570A
CN110751570A CN201910871501.XA CN201910871501A CN110751570A CN 110751570 A CN110751570 A CN 110751570A CN 201910871501 A CN201910871501 A CN 201910871501A CN 110751570 A CN110751570 A CN 110751570A
Authority
CN
China
Prior art keywords
state sequence
current state
sequence
status
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910871501.XA
Other languages
English (en)
Inventor
周亮
朱朝阳
王海翔
王宇
张锐文
李俊娥
应欢
韩丽芳
朱亚运
缪思薇
李霁远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
Wuhan University WHU
State Grid Zhejiang Electric Power Co Ltd
China Electric Power Research Institute Co Ltd CEPRI
Original Assignee
State Grid Corp of China SGCC
Wuhan University WHU
State Grid Zhejiang Electric Power Co Ltd
China Electric Power Research Institute Co Ltd CEPRI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Corp of China SGCC, Wuhan University WHU, State Grid Zhejiang Electric Power Co Ltd, China Electric Power Research Institute Co Ltd CEPRI filed Critical State Grid Corp of China SGCC
Priority to CN201910871501.XA priority Critical patent/CN110751570A/zh
Publication of CN110751570A publication Critical patent/CN110751570A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/06Energy or water supply
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Public Health (AREA)
  • Water Supply & Treatment (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于业务逻辑的电力业务报文攻击识别方法及***,包括:确定电力业务的当前状态序列;根据当前状态序列的多点信号地址序列分别确定与所述当前状态序列对应的危险状态序列集和安全状态序列集;根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度;以及当当前状态序列的威胁度大于等于预设的安全风险阈值时,确定电网遭受到了电力业务报文攻击。本发明通过定义电力业务逻辑的危险状态序列集和安全状态序列集,将误用检测与异常检测方法相结合,对电力业务的威胁度进行评估,并根据威胁度确定电网是否遭受到电力业务报文攻击,实现了对电力业务报文攻击的有效识别,保障了电力工控***的安全可靠运行。

Description

一种基于业务逻辑的电力业务报文攻击识别方法及***
技术领域
本发明涉及智能电网安全技术领域,并且更具体地,涉及一种基于业务逻辑的电力业务报文攻击识别方法及***。
背景技术
随着智能电网信息空间与物理空间耦合的不断加深,近年来,由网络攻击导致的电网物理***故障愈发常见,严重影响了电力***的正常运行。如2015年底,攻击者通过获取变电站监控***服务器操作权限进行了恶意倒闸操作,导致乌克兰电网80000个用户停电;2016年以色列电力供应***受到重大网络攻击迫使电力供应***离线运行。电网中,用于一次***或设备参数测量和控制的各类智能终端和装置(本文统称为测控终端)作为沟通信息***与物理***的桥梁,当其遭受通过篡改、伪造与重放电力业务报文实施的攻击时,将直接影响电力一次设备的正常运行,如断路器异常开断、定值修改等,从而引发电力事故。因此,如何有效识别电网测控终端可能遭受的电力业务报文攻击成为亟待解决的问题。
目前针对电网测控终端的网络攻击识别研究主要分为如下两类:1)将传统信息网络的网络攻击识别***直接应用于电网测控终端网络攻击识别,如一些研究通过对非电力业务报文流量进行异常识别与协议白名单来识别攻击,一些研究提出基于自学习通信模式的未知攻击识别方法;2)利用电力专有协议流量特征、规则或报文不同字段的相关性等方式来实现电网测控终端网络攻击识别,如一些研究提出利用GOOSE报文网络流量特征来进行攻击识别,一些研究提出基于IEC 60870-5-104协议的流量模式检查、各个字段的合法性与相关性检查的攻击识别方法,一些研究通过该方法对使用IEC 61850协议实现的网络攻击进行识别。上述研究能有效识别ARP欺骗、ICMP Flood和SYN Flood等利用通用网络协议脆弱性实施的网络攻击,以及部分使用IEC60870-5-104、IEC 61850等电力专有协议脆弱性实施的网络攻击,如GOOSE畸形报文攻击等,但无法有效识别电力业务报文攻击。电力业务报文攻击指攻击者通过篡改、伪造与重放电网测控终端传输的业务报文导致电力一次设备误动的攻击,这类攻击通常会改变正常的业务逻辑。
发明内容
本发明提出一种基于业务逻辑的电力业务报文攻击识别方法及***,以解决如何有效地对电力业务报文攻击进行识别,以确定电网的安全状态的问题。
为了解决上述问题,根据本发明的一个方面,提供了一种基于业务逻辑的电力业务报文攻击识别方法,所述方法包括:
从电力业务报文中获取一个当前状态节点的多点信号值序列和多点信号地址序列,根据所述多点信号地址序列确定与所述当前状态节点对应的控制块,并将所述多点信号值序列添加到所述控制块的状态序列上,获取当前状态序列;
根据所述当前状态序列的多点信号地址序列分别确定与所述当前状态序列对应的危险状态序列集和安全状态序列集;
根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度;
将所述当前状态序列的威胁度和预设的安全风险阈值进行比较,并当所述当前状态序列的威胁度大于等于预设的安全风险阈值时,确定电网遭受到了电力业务报文攻击。
优选地,其中根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度,包括:
将所述当前状态序列与所述危险状态序列集进行匹配,若所述当前状态序列与所述危险状态序列集匹配成功,则确定所述当前状态序列的威胁度为1;
若所述当前状态序列与所述危险状态序列集匹配不成功,则将所述当前状态序列与所述安全状态序列集进行匹配,若所述当前状态序列与所述安全状态序列集匹配成功,则确定所述当前状态序列的威胁度为0。
优选地,其中根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度,包括:
分别计算所述当前状态序列与所述危险状态序列集的第一最小距离,以及所述当前状态序列与所述安全状态序列集的第二最小距离;
根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度。
优选地,其中根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度,包括:
Figure BDA0002202951790000031
其中,Pthreaten为当前状态序列的威胁度;dblack为第一最小距离;dwhite为第二最小距离。
优选地,其中所述将所述当前状态序列与所述危险状态序列集进行匹配,包括:
步骤11,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态
Figure BDA0002202951790000032
中,其中,n1的初始值为0,添加后
Figure BDA0002202951790000033
步骤12,顺序遍历危险状态序列集
Figure BDA0002202951790000034
中的所有规则,
Figure BDA0002202951790000035
若满足n2>n-n1and i≠t,则继续遍历;若满足n2>n-n1 and i=t,则表示匹配结束,遍历结束,继续执行安全状态序列集匹配模式;若满足n2<n-n1,则进入步骤13;否则,进入步骤14;
步骤13,将
Figure BDA0002202951790000036
的后n2项保留,则
Figure BDA0002202951790000037
Figure BDA0002202951790000038
并将n1置为n-n2,则
Figure BDA0002202951790000039
Figure BDA00022029517900000310
步骤14,判断
Figure BDA00022029517900000311
是否与Bi相同;其中,若相同,则将
Figure BDA00022029517900000312
只保留最后一项,则
Figure BDA00022029517900000313
同时将n1置为n-1,并确定所述当前状态序列与所述危险状态序列集匹配成功,直接确定所述当前状态序列的威胁度为1;否则,返回步骤12继续遍历。
优选地,其中所述将所述当前状态序列与所述安全状态序列集进行匹配,包括:
步骤21,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态中,其中,n3的初始值为0,添加后
Figure BDA00022029517900000315
步骤22,顺序遍历安全状态序列集中的所有规则,
Figure BDA0002202951790000041
若满足n4>n-n3 and i≠e,则进入步骤26;若满足n4>n-n3 and i=e,则表示匹配失败,遍历结束;若满足n4<n-n3,则进入步骤23;否则,进入步骤24;
步骤23,将
Figure BDA0002202951790000042
的后n4项保留,则
Figure BDA0002202951790000043
Figure BDA0002202951790000044
并将n3置为n-n4,则
Figure BDA0002202951790000045
Figure BDA0002202951790000046
步骤24,判断
Figure BDA0002202951790000047
是否与Wi相同,若不相同,则返回步骤22,继续遍历;否则,进入步骤25;
步骤25,将只保留最后一项,则
Figure BDA0002202951790000049
Figure BDA00022029517900000410
同时将n3置为n-1,将init_status置为1,确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;其中init_status的初始值为0,用于标识是否进行一次安全状态序列完全匹配;
步骤26,若init_status为0,则进入步骤27,反之进入步骤28;
步骤27,init_status为0,判断
Figure BDA00022029517900000411
是否为Wi的子集,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22;
步骤28,判断
Figure BDA00022029517900000412
是否与Wi的前n-n1项相同,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22。
优选地,其中所述方法还包括:
若所述当前状态序列的威胁度小于预设的安全风险阈值,则确定电网未遭受到电力业务报文攻击。
根据本发明的另一个方面,提供了一种基于业务逻辑的电力业务报文攻击识别***,所述***包括:
当前状态序列确定单元,用于从电力业务报文中获取一个当前状态节点的多点信号值序列和多点信号地址序列,根据所述多点信号地址序列确定与所述当前状态节点对应的控制块,并将所述多点信号值序列添加到所述控制块的状态序列上,获取当前状态序列;
危险状态序列集和安全状态序列集确定单元,用于根据所述当前状态序列的多点信号地址序列分别确定与所述当前状态序列对应的危险状态序列集和安全状态序列集;
威胁度确定单元,用于根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度;
电力业务报文攻击识别单元,用于将所述当前状态序列的威胁度和预设的安全风险阈值进行比较,并当所述当前状态序列的威胁度大于等于预设的安全风险阈值时,确定电网遭受到了电力业务报文攻击。
优选地,其中所述威胁度确定单元,根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度,包括:
危险状态序列集匹配模块,用于将所述当前状态序列与所述危险状态序列集进行匹配,若所述当前状态序列与所述危险状态序列集匹配成功,则确定所述当前状态序列的威胁度为1;
安全状态序列集匹配模块,用于若所述当前状态序列与所述危险状态序列集匹配不成功,则将所述当前状态序列与所述安全状态序列集进行匹配,若所述当前状态序列与所述安全状态序列集匹配成功,则确定所述当前状态序列的威胁度为0。
优选地,其中所述威胁度确定单元,根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度,包括:
第一最小距离和第二最小距离确定模块,用于分别计算所述当前状态序列与所述危险状态序列集的第一最小距离,以及所述当前状态序列与所述安全状态序列集的第二最小距离;
威胁度确定模块,用于根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度。
优选地,其中所述威胁度确定模块,根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度,包括:
Figure BDA0002202951790000051
其中,Pthreaten为当前状态序列的威胁度;dblack为第一最小距离;dwhite为第二最小距离。
优选地,其中所述危险状态序列集匹配模块,将所述当前状态序列与所述危险状态序列集进行匹配,包括:
步骤11,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态
Figure BDA0002202951790000061
中,其中,n1的初始值为0,添加后
Figure BDA0002202951790000062
步骤12,顺序遍历危险状态序列集
Figure BDA0002202951790000063
中的所有规则,
Figure BDA0002202951790000064
若满足n2>n-n1andi≠t,则继续遍历;若满足n2>n-n1 and i=t,则表示匹配结束,遍历结束,继续执行安全状态序列集匹配模式;若满足n2<n-n1,则进入步骤13;否则,进入步骤14;
步骤13,将
Figure BDA0002202951790000065
的后n2项保留,则
Figure BDA0002202951790000066
Figure BDA0002202951790000067
并将n1置为n-n2,则
Figure BDA0002202951790000068
Figure BDA0002202951790000069
步骤14,判断
Figure BDA00022029517900000610
是否与Bi相同;其中,若相同,则将
Figure BDA00022029517900000611
只保留最后一项,则
Figure BDA00022029517900000612
同时将n1置为n-1,并确定所述当前状态序列与所述危险状态序列集匹配成功,直接确定所述当前状态序列的威胁度为1;否则,返回步骤12继续遍历。
优选地,其中所述安全状态序列集匹配模块,将所述当前状态序列与所述安全状态序列集进行匹配,包括:
步骤21,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态
Figure BDA00022029517900000613
中,其中,n3的初始值为0,添加后
Figure BDA00022029517900000614
步骤22,顺序遍历安全状态序列集
Figure BDA00022029517900000615
中的所有规则,若满足n4>n-n3 and i≠e,则进入步骤26;若满足n4>n-n3 and i=e,则表示匹配失败,遍历结束;若满足n4<n-n3,则进入步骤23;否则,进入步骤24;
步骤23,将
Figure BDA00022029517900000617
的后n4项保留,则
Figure BDA00022029517900000618
Figure BDA00022029517900000619
并将n3置为n-n4,则
Figure BDA00022029517900000620
步骤24,判断
Figure BDA0002202951790000072
是否与Wi相同,若不相同,则返回步骤22,继续遍历;否则,进入步骤25;
步骤25,将只保留最后一项,则
Figure BDA0002202951790000074
Figure BDA0002202951790000075
同时将n3置为n-1,将init_status置为1,确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;其中init_status的初始值为0,用于标识是否进行一次安全状态序列完全匹配;
步骤26,若init_status为0,则进入步骤27,反之进入步骤28;
步骤27,init_status为0,判断
Figure BDA0002202951790000076
是否为Wi的子集,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22;
步骤28,判断
Figure BDA0002202951790000077
是否与Wi的前n-n1项相同,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22。
优选地,其中所述电力业务报文攻击识别单元,还用于:
若所述当前状态序列的威胁度小于预设的安全风险阈值,则确定电网未遭受到电力业务报文攻击。
本发明提供了一种基于业务逻辑的电力业务报文攻击识别方法及***,包括:确定电网的当前状态序列;根据所述当前状态序列的多点信号地址序列分别确定与所述当前状态序列对应的危险状态序列集和安全状态序列集;根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度;以及当所述当前状态序列的威胁度大于等于预设的安全风险阈值时,确定电网遭受到了电力业务报文攻击。本发明通过定义电力业务逻辑的危险状态序列集和安全状态序列集,将误用检测与异常检测方法相结合,对电力业务的威胁度进行评估,并根据威胁度确定电网是否遭受到电力业务报文攻击,实现了对电力业务报文攻击的有效识别,降低了误报率,保障了电力工控***的安全可靠运行。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为根据本发明实施方式的基于业务逻辑的电力业务报文攻击识别方法100的流程图:
图2为根据本发明实施方式的状态链数据结构图;
图3为根据本发明实施方式的危险状态序列和安全状态序列的数据结构图;以及
图4为根据本发明实施方式的基于业务逻辑的电力业务报文攻击识别***400的结构示意图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为根据本发明实施方式的基于业务逻辑的电力业务报文攻击识别方法100的流程图。本发明的实施方式提供的基于业务逻辑的电力业务报文攻击识别方法,通过定义电力业务逻辑的危险状态序列集和安全状态序列集,将误用检测与异常检测方法相结合,对电力业务的威胁度进行评估,并根据威胁度确定电网是否遭受到电力业务报文攻击,实现了对电力业务报文攻击的有效识别,降低了误报率,保障了电力工控***的安全可靠运行。本发明的实施方式提供的基于业务逻辑的电力业务报文攻击识别方法100从步骤101处开始,在步骤101从电力业务报文中获取一个当前状态节点的多点信号值序列和多点信号地址序列,根据所述多点信号地址序列确定与所述当前状态节点对应的控制块,并将所述多点信号值序列添加到所述控制块的状态序列上,获取当前状态序列。
在本发明的实施方式中,为了对当前业务逻辑状态进行安全性评估,需要对业务逻辑进行保存,因此提出使用状态链的数据结构来描述电网业务逻辑,包括业务状态及其变化过程。本发明实施方式的状态链数据结构如图2所示,包含以下7个部分。
(1)单点信号值:则图2中的data字段,用于描述单个FCDA(Functionallyconstrained Data Attribute)项的值。在电网中可以理解为刀闸开关信号或电网一个节点的电压或电流值。
(2)信号地址:则图2中的pos字段,用于描述一个FCDA项的位置;在电网中可理解为刀闸或节点的逻辑实例名;在实际计算中可理解为一个变量的名称,用于索引该变量。
(3)多点信号地址序列:则图2中的pos_sequence=(pos1,pos2,…,posn)T字段,在本发明的实施方式中用于描述一个控制块上各个单点信号的信号地址序列。
(4)多点信号值序列:则图2中的status=(data1,data2,…,datan)T字段,在本发明中用于描述一个控制块上各个单点信号值序列。在电网中可理解为多个刀闸的位置或多点电压电流值。
(5)状态节点:定义为Node=(status,pos_sequence)。由多点信号地址序列和多点信号值序列组成,用于描述一个控制块的状态。
(6)状态改变:用来描述一个控制块状态中的单个或多个单点信号发生变化。在电网中可以理解为一个刀闸或多个刀闸切换、一处或多处电压电流改变、一处或多处定值改变。
(7)定义status_sequence=(status_value,pos_sequence)为状态序列,其中status_value=(status1,status2,…,statusn),由有限个pos_sequence相同的状态节点顺序链接组成,用于描述一个控制块状态改变的逻辑过程。在电网中可以理解为一组开关的操作逻辑关系、一组电压电流改变的逻辑关系。
在本发明的实施方式中,为了识别当前电网是否遭受电力业务报文攻击,首先需要对当前业务逻辑进行录入,在基于上述状态链的数据结构的前提下,具体录入过程如下:
1.1)从电力业务报文的应用层内容中提取出一个状态节点Nodenow=(statusn,pos_sequencenow),其中statusn=(data1,data2,…,datak)T
1.2)根据状态节点Nodenow中pos_sequencenow找到对应的控制块状态序列status_sequence=(S,pos_sequence),则满足pos_sequence=pos_sequencenow条件的状态序列,其中S=(status1,status2,…,statusn-1)。
1.3)比较statusn-1是否等于statusn,若相等,过程结束;否则,进入1.4)。
1.4)将statusn链入状态序列status_sequence=(S,pos_sequence)中,得到当前状态序列status_sequencenow=(S′,pos_sequencenow),其中S′=(status1,status2,…,statusn)。
在步骤102,根据所述当前状态序列的多点信号地址序列分别确定与所述当前状态序列对应的危险状态序列集和安全状态序列集。
在本发明的实施方式中,为了对当前业务逻辑状态进行安全性评估,需要将当前业务逻辑状态与已知的危险状态序列或安全状态序列进行对比,通过将当前状态序列与危险状态序列和安全状态序列进行比较,可以快速有效地识别出电力业务报文攻击。本发明的实施方式的危险状态序列和安全状态序列中的数据结构如图3所示。危险状态序列集和安全状态序列集中录入以状态序列的结构表示的不同规则。危险状态序列集定义为其中,
Figure BDA0002202951790000102
Figure BDA0002202951790000103
为所有满足pos_sequence=pos_sequence1条件的不合法状态序列集合。危险状态序列集定义为
Figure BDA0002202951790000104
其中,
Figure BDA0002202951790000105
为所有满足pos_sequence=pos_sequence1条件的合法状态序列集合。
在步骤103,根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度。
优选地,其中根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度,包括:
将所述当前状态序列与所述危险状态序列集进行匹配,若所述当前状态序列与所述危险状态序列集匹配成功,则确定所述当前状态序列的威胁度为1;
若所述当前状态序列与所述危险状态序列集匹配不成功,则将所述当前状态序列与所述安全状态序列集进行匹配,若所述当前状态序列与所述安全状态序列集匹配成功,则确定所述当前状态序列的威胁度为0。
优选地,其中根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度,包括:
分别计算所述当前状态序列与所述危险状态序列集的第一最小距离,以及所述当前状态序列与所述安全状态序列集的第二最小距离;
根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度。
优选地,其中所述计算所述当前状态序列与所述危险状态序列集的第一最小距离,包括:
Figure BDA0002202951790000111
其中,dblack为第一最小距离;当前状态序列为status_sequencenow=(S′pos_sequencenow),S′=(status1,status2,…,statusn);危险状态序列集为
Figure BDA0002202951790000112
对于
Figure BDA0002202951790000113
如果
Figure BDA0002202951790000114
Figure BDA0002202951790000115
Figure BDA0002202951790000116
Figure BDA0002202951790000117
Figure BDA0002202951790000118
否则
Figure BDA0002202951790000119
columns′表示矩阵S′的列数,Bi(status_value)表示Bi状态序列中status_value值,Bi(status_value)[0,…,columnS′-1]表示Bi(status_value)矩阵的第0列到columnS′-1列;
Figure BDA00022029517900001110
表示
Figure BDA00022029517900001111
矩阵的第i列,函数d(A,B)表示求行向量A=(x1,x2,…,xn)与B=(y1,y2,…,yn)的欧几里得距离,则
优选地,其中所述计算所述当前状态序列与所述安全状态序列集的第二最小距离,包括:
Figure BDA00022029517900001112
其中,dwhite为第二最小距离;当前状态序列为status_sequencenow=(S′pos_sequencenow),S′=(status1,status2,…,statusn);安全状态序列集对于
Figure BDA00022029517900001117
如果
Figure BDA00022029517900001114
Figure BDA00022029517900001115
Figure BDA0002202951790000121
Figure BDA0002202951790000122
Figure BDA0002202951790000123
否则
Figure BDA0002202951790000124
Figure BDA0002202951790000125
columns′表示矩阵S′的列数,Wi(status_value)表示Wi状态序列中status_value值,则Wi(status_value)[0,…,columnS′-1]表示Wi(status_value)矩阵的第0列到columnS′-1列;表示
Figure BDA0002202951790000127
矩阵的第i列,函数d(A,B)表示求行向量A=(x1,x2,…,xn)与B=(y1,y2,…,yn)的欧几里得距离,则
Figure BDA00022029517900001222
优选地,其中根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度,包括:
Figure BDA0002202951790000128
其中,Pthreaten为当前状态序列的威胁度;dblack为第一最小距离;dwhite为第二最小距离。
优选地,其中所述将所述当前状态序列与所述危险状态序列集进行匹配,包括:
步骤11,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态
Figure BDA0002202951790000129
中,其中,n1的初始值为0,添加后
Figure BDA00022029517900001210
步骤12,顺序遍历危险状态序列集
Figure BDA00022029517900001211
中的所有规则,若满足n2>n-n1and i≠t,则继续遍历;若满足n2>n-n1 and i=t,则表示匹配结束,遍历结束,继续执行安全状态序列集匹配模式;若满足n2<n-n1,则进入步骤13;否则,进入步骤14;
步骤13,将
Figure BDA00022029517900001213
的后n2项保留,则
Figure BDA00022029517900001214
Figure BDA00022029517900001215
并将n1置为n-n2,则
Figure BDA00022029517900001216
Figure BDA00022029517900001217
步骤14,判断
Figure BDA00022029517900001218
是否与Bi相同;其中,若相同,则将
Figure BDA00022029517900001219
只保留最后一项,则同时将n1置为n-1,并确定所述当前状态序列与所述危险状态序列集匹配成功,直接确定所述当前状态序列的威胁度为1;否则,返回步骤12继续遍历。
优选地,其中所述将所述当前状态序列与所述安全状态序列集进行匹配,包括:
步骤21,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态
Figure BDA0002202951790000131
中,其中,n3的初始值为0,添加后
Figure BDA0002202951790000132
步骤22,顺序遍历安全状态序列集
Figure BDA0002202951790000133
中的所有规则,
Figure BDA0002202951790000134
若满足n4>n-n3 and i≠e,则进入步骤26;若满足n4>n-n3 and i=e,则表示匹配失败,遍历结束;若满足n4<n-n3,则进入步骤23;否则,进入步骤24;
步骤23,将的后n4项保留,则
Figure BDA0002202951790000137
并将n3置为n-n4,则
Figure BDA0002202951790000138
步骤24,判断是否与Wi相同,若不相同,则返回步骤22,继续遍历;否则,进入步骤25;
步骤25,将
Figure BDA00022029517900001311
只保留最后一项,则
Figure BDA00022029517900001313
同时将n3置为n-1,将init_status置为1,确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;其中init_status的初始值为0,用于标识是否进行一次安全状态序列完全匹配;
步骤26,若init_status为0,则进入步骤27,反之进入步骤28;
步骤27,init_status为0,判断是否为Wi的子集,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22;
步骤28,判断
Figure BDA00022029517900001315
是否与Wi的前n-n1项相同,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22。
在本发明的实施方式中,在确定了危险安全状态序列集和安全状态序列集后,确定威胁度的步骤包括:
S1,进行危险状态序列集的匹配,若匹配成功,则确定当前状态序列的威胁度为1;反之,进入S2:
S2,进行安全状态序列集的匹配,若匹配成功,则确定当前状态序列的威胁度为0;反之,进入S3:
S3,确定第一最小距离和第二最小距离,并根据所述第一最小距离和第二最小距离确定安全状态序列的威胁度。
在步骤104,将所述当前状态序列的威胁度和预设的安全风险阈值进行比较,并当所述当前状态序列的威胁度大于等于预设的安全风险阈值时,确定电网遭受到了电力业务报文攻击。
优选地,其中所述方法还包括:
若所述当前状态序列的威胁度小于预设的安全风险阈值,则确定电网未遭受到电力业务报文攻击。
在本发明的实施方式中,基于当前状态序列的威胁度Pthreaten判断当前电网是否遭受攻击。为了降低本发明的误报率,定义安全风险阈值Xsafe,其中,Xsafe默认置为0.25。安全风险阈值Xsafe的值可以根据实际需要进行设定,并不局限于本申请提到的0.25。当Pthreaten>Xsafe时,认为当前状态序列status_sequencenow=(S′,pos_sequencenow)中的pos_sequencenow值对应的电网遭受到了电力业务报文攻击;否则,认为电网处于未遭受电力业务报文攻击,处于安全状态。
以下具体举例说明本发明的实施方式
假设攻击者攻击的状态块具有三个FCDA,每个FCDA的地址信息如下:
pos1=″(APPID=0x0001)-(dataset=DeviceF001/LLN0$GOOSE1)-(alldata.1)″,
pos2=″(APPID=0x0001)-(dataset=DeviceF001/LLN0$GOOSE1)-(alldata.2)″,
pos3=″(APPID=0x0001)-(dataset=DeviceF001/LLN0$GOOSE1)-(alldata.3)″,
对应的控制块状态为:status1=(0,0,0)T,status2=(0,0,1)T,…,status8=(1,1,1)T。设定入侵检测方法的安全风险阈值Xsafe为0.25。
在确定电网遭受电力业务报文攻击时,具体实施方式如下:
步骤(1),状态链录入:假定已录入的状态序列为status_sequence1=(S1,pos_sequence),其中S1=(status1,status2),pos_sequence=(pos1,pos2,pos3)T,现从应用层报文中提取一个状态节点Nodenow=(status5,pos_sequence),将提取的状态节点加入到已录入的状态序列中,则状态序列由status_sequence1变为status_sequence2=(S2,pos_sequence),其中S2=(status1,status2,status5)。
步骤(2),确定当前状态序列的危险状态序列集Ublacklist/pos_sequence={B1},其中B1={status1,status3,status7}和安全状态序列集Uwhitelist/pos_sequence={W1,W2}。
步骤(3),对当前状态序列进行危险状态序列集的匹配,若匹配,则确定威胁度为1;若发现不匹配,则转入步骤(4)。具体步骤如下:
3.1)将status_sequence2中S2中最新状态status5添加到缓存状态S″blacklist/pos_sequence=(status1,status2)中,添加后S″blacklist/pos_sequence=(status1,status2,status5)。
3.2)顺序遍历危险状态序列集中具有相同pos_sequence的规则,则遍历Ublacklist/pos_sequence={B1},其中B1具有3个状态,S″blacklist/pos_sequence具有3种状态,转3.3)。
3.3)将B1与S2比对,发现不匹配,继续遍历,转3.4)。
3.4)Ublacklist/pos_sequence遍历结束,转步骤(4)。
步骤(4),对当前状态序列进行危安全状态序列匹配模式,若匹配,则确定威胁度为0;若不匹配,转入步骤(5)。具体过程如下:
4.1)将当前状态序列status_sequence2中S2中最新状态status5添加到缓存状态S″whitelist/pos_sequence=(status1,status2)中,添加后缓存状态序列为S″whitelist/pos_sequence=(status1,status2,status5)。
4.2)遍历危险状态序列集中具有相同pos_sequence的规则,则Uwhitelist/pos_sequence={W1,W2},首先遍历W1={status1,status2,status8},其中W1有3种状态,
Figure BDA0002202951790000151
具有3种状态,转4.3)。
4.3)S″whitelist/pos_sequence与W1进行规则比对,S″whitelist/pos_sequence与W1不匹配,继续遍历。
4.4)遍历W2,其中W2={status1,status2,status4,status5}有4种状态,S″whitelist/pos_sequence=(status1,status2,status5)具有3种状态,转4.5)。
4.5)init_status为0(假定为0),则转4.6)。
4.6)S″whitelist/pos_sequence与W2进行规则比对,W2不是S″whitelist/pos_sequence子集,遍历结束,转入步骤(5)。
步骤(5),对该状态序列进行相似度匹配,得到威胁度Pthreaten。具体步骤如下:
5.1)根据pos_sequence找到对应的控制块的危险状态序列集Ublacklist/pos_seauence={B1}和安全状态序列集Uwhitelist/pos_sequence={W1,W2}。
5.2)对于B1∈Ublacklist/pos_sequence,其中
Figure BDA0002202951790000161
Figure BDA0002202951790000162
5.3)计算当前状态序列status_sequence2与危险状态序列集Ublacklist/pos_sequence的最小距离为dblack=1。
5.4)对于W1∈Uwhitelist/pos_sequence,其中
Figure BDA0002202951790000163
对于W2∈Uwhitelist/pos_sequence,其中
Figure BDA0002202951790000166
5.5)计算当前状态序列status_sequence与安全状态序列集Uwhitelist/pos_sequence的最小距离为dwhite=2。
5.6)计算威胁度
Figure BDA0002202951790000168
转步骤(6)。
步骤(6),将计算得到的威胁度和预设的安全风险阈值进行比较,Pthreaten>Xsafe,则确定当前状态序列status_sequence中的pos_sequence值对应的电网正在遭受电力业务报文攻击。
图4为根据本发明实施方式的基于业务逻辑的电力业务报文攻击识别***400的结构示意图。如图4所示,本发明的实施方式提供的基于业务逻辑的电力业务报文攻击识别***400,包括:当前状态序列确定单元401、危险状态序列集和安全状态序列集确定单元402、威胁度确定单元403和电力业务报文攻击识别单元404。
优选地,所述当前状态序列确定单元401,用于从电力业务报文中获取一个当前状态节点的多点信号值序列和多点信号地址序列,根据所述多点信号地址序列确定与所述当前状态节点对应的控制块,并将所述多点信号值序列添加到所述控制块的状态序列上,获取当前状态序列。
优选地,所述危险状态序列集和安全状态序列集确定单元402,用于根据所述当前状态序列的多点信号地址序列分别确定与所述当前状态序列对应的危险状态序列集和安全状态序列集。
优选地,所述威胁度确定单元403,用于根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度。
优选地,其中所述威胁度确定单元403,包括:危险状态序列集匹配模块和安全状态序列集匹配模块。
所述危险状态序列集匹配模块,用于将所述当前状态序列与所述危险状态序列集进行匹配,若所述当前状态序列与所述危险状态序列集匹配成功,则确定所述当前状态序列的威胁度为1。
所述安全状态序列集匹配模块,用于若所述当前状态序列与所述危险状态序列集匹配不成功,则将所述当前状态序列与所述安全状态序列集进行匹配,若所述当前状态序列与所述安全状态序列集匹配成功,则确定所述当前状态序列的威胁度为0。
优选地,其中所述危险状态序列集匹配模块,将所述当前状态序列与所述危险状态序列集进行匹配,包括:
步骤11,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态
Figure BDA0002202951790000171
中,其中,n1的初始值为0,添加后
Figure BDA0002202951790000172
步骤12,顺序遍历危险状态序列集
Figure BDA0002202951790000173
中的所有规则,
Figure BDA0002202951790000174
若满足n2>n-n1and i≠t,则继续遍历;若满足n2>n-n1 and i=t,则表示匹配结束,遍历结束,继续执行安全状态序列集匹配模式;若满足n2<n-n1,则进入步骤13;否则,进入步骤14;
步骤13,将
Figure BDA0002202951790000175
的后n2项保留,则
Figure BDA0002202951790000176
并将n1置为n-n2,则
Figure BDA0002202951790000178
Figure BDA0002202951790000179
步骤14,判断
Figure BDA0002202951790000181
是否与Bi相同;其中,若相同,则将
Figure BDA0002202951790000182
只保留最后一项,则同时将n1置为n-1,并确定所述当前状态序列与所述危险状态序列集匹配成功,直接确定所述当前状态序列的威胁度为1;否则,返回步骤12继续遍历。
优选地,其中所述安全状态序列集匹配模块,将所述当前状态序列与所述安全状态序列集进行匹配,包括:
步骤21,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态
Figure BDA0002202951790000184
中,其中,n3的初始值为0,添加后
步骤22,顺序遍历安全状态序列集
Figure BDA0002202951790000186
中的所有规则,若满足n4>n-n3 and i≠e,则进入步骤26;若满足n4>n-n3 and i=e,则表示匹配失败,遍历结束;若满足n4<n-n3,则进入步骤23;否则,进入步骤24;
步骤23,将
Figure BDA0002202951790000188
的后n4项保留,则
Figure BDA0002202951790000189
Figure BDA00022029517900001810
并将n3置为n-n4,则
Figure BDA00022029517900001811
Figure BDA00022029517900001812
步骤24,判断
Figure BDA00022029517900001813
是否与Wi相同,若不相同,则返回步骤22,继续遍历;否则,进入步骤25;
步骤25,将只保留最后一项,则
Figure BDA00022029517900001815
Figure BDA00022029517900001816
同时将n3置为n-1,将init_status置为1,确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;其中init_status的初始值为0,用于标识是否进行一次安全状态序列完全匹配;
步骤26,若init_status为0,则进入步骤27,反之进入步骤28;
步骤27,init_status为0,判断
Figure BDA00022029517900001817
是否为Wi的子集,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22;
步骤28,判断
Figure BDA00022029517900001818
是否与Wi的前n-n1项相同,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22。
优选地,其中所述威胁度确定单元403,还包括:第一最小距离和第二最小距离确定模块以及威胁度确定模块。
所述第一最小距离和第二最小距离确定模块,用于分别计算所述当前状态序列与所述危险状态序列集的第一最小距离,以及所述当前状态序列与所述安全状态序列集的第二最小距离。
所述威胁度确定模块,用于根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度。
优选地,其中所述第一最小距离和第二最小距离确定模块利用如下方式计算所述当前状态序列与所述危险状态序列集的第一最小距离,包括:
Figure BDA0002202951790000191
其中,dblack为第一最小距离;当前状态序列为status_sequencenow=(S′pos_sequencenow),S′=(status1,status2,…,statusn);危险状态序列集为
Figure BDA0002202951790000192
对于
Figure BDA0002202951790000193
如果
Figure BDA0002202951790000194
Figure BDA0002202951790000195
Figure BDA0002202951790000196
Figure BDA0002202951790000197
Figure BDA0002202951790000198
否则
Figure BDA0002202951790000199
columns′表示矩阵S′的列数,Bi(status_value)表示Bi状态序列中status_value值,Bi(status_value)[0,…,columns′-1]表示Bi(status_value)矩阵的第0列到columns′-1列;
Figure BDA00022029517900001910
表示
Figure BDA00022029517900001911
矩阵的第i列,函数d(A,B)表示求行向量A=(x1,x2,…,xn)与B=(y1,y2,…,yn)的欧几里得距离,则
Figure BDA00022029517900001912
优选地,其中所述第一最小距离和第二最小距离确定模块,利用如下方式计算所述当前状态序列与所述安全状态序列集的第二最小距离,包括:
Figure BDA0002202951790000201
其中,dwhite为第二最小距离当前状态序列为status_sequencenow=(S′,pos_sequencenow),S′=(status1,status2,…,statusn);;安全状态序列集
Figure BDA0002202951790000202
对于
Figure BDA0002202951790000203
如果
Figure BDA0002202951790000204
Figure BDA0002202951790000205
Figure BDA0002202951790000206
Figure BDA0002202951790000208
否则
Figure BDA0002202951790000209
Figure BDA00022029517900002010
columnS′表示矩阵S′的列数,Wi(status_value)表示Wi状态序列中status_value值,则Wi(status_value)[0,…,columns′-1]表示Wi(status_value)矩阵的第0列到columns′-1列;
Figure BDA00022029517900002011
表示
Figure BDA00022029517900002012
矩阵的第i列,函数d(A,B)表示求行向量A=(x1,x2,…,xn)与B=(y1,y2,…,yn)的欧几里得距离,则
Figure BDA00022029517900002014
Figure BDA00022029517900002015
优选地,其中所述威胁度确定模块,根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度,包括:
Figure BDA00022029517900002013
其中,Pthreaten为当前状态序列的威胁度;dblack为第一最小距离;dwhite为第二最小距离。
优选地,所述电力业务报文攻击识别单元404,用于将所述当前状态序列的威胁度和预设的安全风险阈值进行比较,并当所述当前状态序列的威胁度大于等于预设的安全风险阈值时,确定电网遭受到了电力业务报文攻击。
优选地,其中所述电力业务报文攻击识别单元404,还用于:若所述当前状态序列的威胁度小于预设的安全风险阈值,则确定电网未遭受到电力业务报文攻击。
本发明的实施例的基于业务逻辑的电力业务报文攻击识别***400与本发明的另一个实施例的基于业务逻辑的电力业务报文攻击识别方法100相对应,在此不再赘述。
已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

Claims (14)

1.一种基于业务逻辑的电力业务报文攻击识别方法,其特征在于,所述方法包括:
从电力业务报文中获取一个当前状态节点的多点信号值序列和多点信号地址序列,根据所述多点信号地址序列确定与所述当前状态节点对应的控制块,并将所述多点信号值序列添加到所述控制块的状态序列上,获取当前状态序列;
根据所述当前状态序列的多点信号地址序列分别确定与所述当前状态序列对应的危险状态序列集和安全状态序列集;
根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度;
将所述当前状态序列的威胁度和预设的安全风险阈值进行比较,并当所述当前状态序列的威胁度大于等于预设的安全风险阈值时,确定电网遭受到了电力业务报文攻击。
2.根据权利要求1所述的方法,其特征在于,根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度,包括:
将所述当前状态序列与所述危险状态序列集进行匹配,若所述当前状态序列与所述危险状态序列集匹配成功,则确定所述当前状态序列的威胁度为1;
若所述当前状态序列与所述危险状态序列集匹配不成功,则将所述当前状态序列与所述安全状态序列集进行匹配,若所述当前状态序列与所述安全状态序列集匹配成功,则确定所述当前状态序列的威胁度为0。
3.根据权利要求1或2所述的方法,其特征在于,根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度,包括:
分别计算所述当前状态序列与所述危险状态序列集的第一最小距离,以及所述当前状态序列与所述安全状态序列集的第二最小距离;
根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度。
4.根据权利要求3所述的方法,其特征在于,根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度,包括:
其中,Pthreaten为当前状态序列的威胁度;dblack为第一最小距离;dwhite为第二最小距离。
5.根据权利要求2所述的方法,其特征在于,将所述当前状态序列与所述危险状态序列集进行匹配,包括:
步骤11,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态
Figure FDA0002202951780000021
中,其中,n1的初始值为0,添加后
Figure FDA0002202951780000022
步骤12,顺序遍历危险状态序列集
Figure FDA0002202951780000023
中的所有规则,若满足n2>n-n1 andi≠t,则继续遍历;若满足n2>n-n1 and i=t,则表示匹配结束,遍历结束,继续执行安全状态序列集匹配模式;若满足n2<n-n1,则进入步骤13;否则,进入步骤14;
步骤13,将
Figure FDA0002202951780000025
的后n2项保留,则
Figure FDA0002202951780000026
Figure FDA0002202951780000027
并将n1置为n-n2,则
Figure FDA0002202951780000028
Figure FDA0002202951780000029
步骤14,判断
Figure FDA00022029517800000210
是否与Bi相同;其中,若相同,则将
Figure FDA00022029517800000211
只保留最后一项,则
Figure FDA00022029517800000212
同时将n1置为n-1,并确定所述当前状态序列与所述危险状态序列集匹配成功,直接确定所述当前状态序列的威胁度为1;否则,返回步骤12继续遍历。
6.根据权利要求2所述的方法,其特征在于,所述将所述当前状态序列与所述安全状态序列集进行匹配,包括:
步骤21,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态
Figure FDA00022029517800000213
中,其中,n3的初始值为0,添加后
Figure FDA00022029517800000214
步骤22,顺序遍历安全状态序列集
Figure FDA00022029517800000215
中的所有规则,
Figure FDA0002202951780000031
若满足n4>n-n3 and i≠e,则进入步骤26;若满足n4>n-n3 and i=e,则表示匹配失败,遍历结束;若满足n4<n-n3,则进入步骤23;否则,进入步骤24;
步骤23,将的后n4项保留,则
Figure FDA0002202951780000034
并将n3置为n-n4,则
Figure FDA0002202951780000035
Figure FDA0002202951780000036
步骤24,判断
Figure FDA0002202951780000037
是否与Wi相同,若不相同,则返回步骤22,继续遍历;否则,进入步骤25;
步骤25,将
Figure FDA0002202951780000038
只保留最后一项,则
Figure FDA0002202951780000039
同时将n3置为n-1,将init_status置为1,确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;其中init_status的初始值为0,用于标识是否进行一次安全状态序列完全匹配;
步骤26,若init_status为0,则进入步骤27,反之进入步骤28;
步骤27,init_status为0,判断
Figure FDA00022029517800000310
是否为Wi的子集,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22;
步骤28,判断
Figure FDA00022029517800000311
是否与Wi的前n-n1项相同,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述当前状态序列的威胁度小于预设的安全风险阈值,则确定电网未遭受到电力业务报文攻击。
8.一种基于业务逻辑的电力业务报文攻击识别***,其特征在于,所述***包括:
当前状态序列确定单元,用于从电力业务报文中获取一个当前状态节点的多点信号值序列和多点信号地址序列,根据所述多点信号地址序列确定与所述当前状态节点对应的控制块,并将所述多点信号值序列添加到所述控制块的状态序列上,获取当前状态序列;
危险状态序列集和安全状态序列集确定单元,用于根据所述当前状态序列的多点信号地址序列分别确定与所述当前状态序列对应的危险状态序列集和安全状态序列集;
威胁度确定单元,用于根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度;
电力业务报文攻击识别单元,用于将所述当前状态序列的威胁度和预设的安全风险阈值进行比较,并当所述当前状态序列的威胁度大于等于预设的安全风险阈值时,确定电网遭受到了电力业务报文攻击。
9.根据权利要求8所述的***,其特征在于,所述威胁度确定单元,根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度,包括:
危险状态序列集匹配模块,用于将所述当前状态序列与所述危险状态序列集进行匹配,若所述当前状态序列与所述危险状态序列集匹配成功,则确定所述当前状态序列的威胁度为1;
安全状态序列集匹配模块,用于若所述当前状态序列与所述危险状态序列集匹配不成功,则将所述当前状态序列与所述安全状态序列集进行匹配,若所述当前状态序列与所述安全状态序列集匹配成功,则确定所述当前状态序列的威胁度为0。
10.根据权利要求8或9所述的***,其特征在于,所述威胁度确定单元,根据所述当前状态序列、危险状态序列集和安全状态序列集确定所述当前状态序列的威胁度,包括:
第一最小距离和第二最小距离确定模块,用于分别计算所述当前状态序列与所述危险状态序列集的第一最小距离,以及所述当前状态序列与所述安全状态序列集的第二最小距离;
威胁度确定模块,用于根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度。
11.根据权利要求10所述的***,其特征在于,所述威胁度确定模块,根据所述第一最小距离和第二最小距离计算所述当前状态序列的威胁度,包括:
Figure FDA0002202951780000041
其中,Pthreaten为当前状态序列的威胁度;dblack为第一最小距离;dwhite为第二最小距离。
12.根据权利要求10所述的***,其特征在于,所述危险状态序列集匹配模块,将所述当前状态序列与所述危险状态序列集进行匹配,包括:
步骤11,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态
Figure FDA0002202951780000051
中,其中,n1的初始值为0,添加后
Figure FDA0002202951780000052
步骤12,顺序遍历危险状态序列集
Figure FDA0002202951780000053
中的所有规则,
Figure FDA0002202951780000054
若满足n2>n-n1 andi≠t,则继续遍历;若满足n2>n-n1 and i=t,则表示匹配结束,遍历结束,继续执行安全状态序列集匹配模式;若满足n2<n-n1,则进入步骤13;否则,进入步骤14;
步骤13,将的后n2项保留,则
Figure FDA0002202951780000056
Figure FDA0002202951780000057
并将n1置为n-n2,则
Figure FDA0002202951780000058
Figure FDA0002202951780000059
步骤14,判断
Figure FDA00022029517800000510
是否与Bi相同;其中,若相同,则将
Figure FDA00022029517800000511
只保留最后一项,则
Figure FDA00022029517800000512
同时将n1置为n-1,并确定所述当前状态序列与所述危险状态序列集匹配成功,直接确定所述当前状态序列的威胁度为1;否则,返回步骤12继续遍历。
13.根据权利要求10所述的***,其特征在于,所述安全状态序列集匹配模块,将所述当前状态序列与所述安全状态序列集进行匹配,包括:
步骤21,将当前状态序列status_sequencenow=(S′,pos_sequencenow)中S′=(status1,status2,…,statusn)的最新多点信号值序列statusn添加到缓存状态
Figure FDA00022029517800000513
中,其中,n3的初始值为0,添加后
步骤22,顺序遍历安全状态序列集中的所有规则,
Figure FDA00022029517800000516
若满足n4>n-n3 and i≠e,则进入步骤26;若满足n4>n-n3 and i=e,则表示匹配失败,遍历结束;若满足n4<n-n3,则进入步骤23;否则,进入步骤24;
步骤23,将
Figure FDA00022029517800000517
的后n4项保留,则
Figure FDA00022029517800000518
并将n3置为n-n4,则
Figure FDA0002202951780000062
Figure FDA0002202951780000063
步骤24,判断
Figure FDA0002202951780000064
是否与Wi相同,若不相同,则返回步骤22,继续遍历;否则,进入步骤25;
步骤25,将
Figure FDA0002202951780000065
只保留最后一项,则
Figure FDA0002202951780000066
Figure FDA0002202951780000067
同时将n3置为n-1,将init_status置为1,确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;其中init_status的初始值为0,用于标识是否进行一次安全状态序列完全匹配;
步骤26,若init_status为0,则进入步骤27,反之进入步骤28;
步骤27,init_status为0,判断
Figure FDA0002202951780000068
是否为Wi的子集,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22;
步骤28,判断
Figure FDA0002202951780000069
是否与Wi的前n-n1项相同,若是,则确定所述当前状态序列与所述安全状态序列集匹配成功,直接确定所述当前状态序列的威胁度为0;否则,继续遍历安全状态序列集中的其他规则,返回步骤22。
14.根据权利要求8所述的***,其特征在于,所述电力业务报文攻击识别单元,还用于:
若所述当前状态序列的威胁度小于预设的安全风险阈值,则确定电网未遭受到电力业务报文攻击。
CN201910871501.XA 2019-09-16 2019-09-16 一种基于业务逻辑的电力业务报文攻击识别方法及*** Pending CN110751570A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910871501.XA CN110751570A (zh) 2019-09-16 2019-09-16 一种基于业务逻辑的电力业务报文攻击识别方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910871501.XA CN110751570A (zh) 2019-09-16 2019-09-16 一种基于业务逻辑的电力业务报文攻击识别方法及***

Publications (1)

Publication Number Publication Date
CN110751570A true CN110751570A (zh) 2020-02-04

Family

ID=69276463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910871501.XA Pending CN110751570A (zh) 2019-09-16 2019-09-16 一种基于业务逻辑的电力业务报文攻击识别方法及***

Country Status (1)

Country Link
CN (1) CN110751570A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112615808A (zh) * 2020-10-27 2021-04-06 国网浙江省电力有限公司绍兴供电公司 智能变电站过程层报文白名单的表示方法及装置及设备
CN115460003A (zh) * 2022-09-13 2022-12-09 国网智能电网研究院有限公司 一种攻击识别方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030236995A1 (en) * 2002-06-21 2003-12-25 Fretwell Lyman Jefferson Method and apparatus for facilitating detection of network intrusion
CN106790313A (zh) * 2017-03-31 2017-05-31 杭州迪普科技股份有限公司 入侵防御方法及装置
CN108092948A (zh) * 2016-11-23 2018-05-29 ***通信集团湖北有限公司 一种网络攻击模式的识别方法和装置
CN109246027A (zh) * 2018-09-19 2019-01-18 腾讯科技(深圳)有限公司 一种网络维护的方法、装置和终端设备
CN109586282A (zh) * 2018-11-29 2019-04-05 安徽继远软件有限公司 一种电网未知威胁检测***及方法
CN109787960A (zh) * 2018-12-19 2019-05-21 中国平安人寿保险股份有限公司 异常流量数据识别方法、装置、介质及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030236995A1 (en) * 2002-06-21 2003-12-25 Fretwell Lyman Jefferson Method and apparatus for facilitating detection of network intrusion
CN108092948A (zh) * 2016-11-23 2018-05-29 ***通信集团湖北有限公司 一种网络攻击模式的识别方法和装置
CN106790313A (zh) * 2017-03-31 2017-05-31 杭州迪普科技股份有限公司 入侵防御方法及装置
CN109246027A (zh) * 2018-09-19 2019-01-18 腾讯科技(深圳)有限公司 一种网络维护的方法、装置和终端设备
CN109586282A (zh) * 2018-11-29 2019-04-05 安徽继远软件有限公司 一种电网未知威胁检测***及方法
CN109787960A (zh) * 2018-12-19 2019-05-21 中国平安人寿保险股份有限公司 异常流量数据识别方法、装置、介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
伊恩泽 等: "Android智能终端二维码安全检测***的设计与实现", 《电脑知识与技术》, vol. 13, no. 08 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112615808A (zh) * 2020-10-27 2021-04-06 国网浙江省电力有限公司绍兴供电公司 智能变电站过程层报文白名单的表示方法及装置及设备
CN115460003A (zh) * 2022-09-13 2022-12-09 国网智能电网研究院有限公司 一种攻击识别方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109962891B (zh) 监测云安全的方法、装置、设备和计算机存储介质
US9130983B2 (en) Apparatus and method for detecting abnormality sign in control system
US9870470B2 (en) Method and apparatus for detecting a multi-stage event
CN108737410B (zh) 一种基于特征关联的有限知工业通信协议异常行为检测方法
CN104901971B (zh) 对网络行为进行安全分析的方法和装置
CN111600880A (zh) 异常访问行为的检测方法、***、存储介质和终端
Sayegh et al. SCADA intrusion detection system based on temporal behavior of frequent patterns
EP1776823A1 (en) Anomaly-based intrusion detection
CN112769833B (zh) 命令注入攻击的检测方法、装置、计算机设备和存储介质
CN112839017B (zh) 一种网络攻击检测方法及其装置、设备和存储介质
CN113722748B (zh) 一种基于区块链和通用工业标识的设备信息获取方法
CN110751570A (zh) 一种基于业务逻辑的电力业务报文攻击识别方法及***
CN115766189B (zh) 一种多通道隔离安全防护方法及***
CN114205816B (zh) 一种电力移动物联网信息安全架构及其使用方法
CN103139219B (zh) 基于可信交换机的生成树协议的攻击检测方法
CN113839925A (zh) 基于数据挖掘技术的IPv6网络入侵检测方法及***
Schuster et al. Attack and fault detection in process control communication using unsupervised machine learning
CN111935085A (zh) 工业控制网络异常网络行为的检测防护方法和***
CN109729084B (zh) 一种基于区块链技术的网络安全事件检测方法
CN112448949A (zh) 一种计算机网络监控***
CN107800706A (zh) 一种基于高斯分布模型的网络攻击动态监测方法
CN110881016B (zh) 一种网络安全威胁评估方法及装置
CN115883169A (zh) 基于蜜罐***的工控网络攻击报文响应方法及响应***
CN113328976B (zh) 一种安全威胁事件识别方法、装置及设备
CN112565246A (zh) 一种基于人工智能的网络防攻击***及其方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination