一种对IEC61850数字变电站GOOSE报文的入侵检测的方法转让专利

申请号 : CN201710156870.1

文献号 : CN106953855B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘建戈吕兵罗坤金鑫

申请人 : 国网江苏省电力公司淮安供电公司国网江苏省电力公司涟水县供电公司南京风城云码软件技术有限公司国家电网公司

摘要 :

本发明公开了一种对IEC61850数字变电站GOOSE报文的入侵检测的方法,方法主要有三个步骤组成,GOOSE报文快速过滤及数据结构化、GOOSE报文的多级关联检测、GOOSE报文的危害评估;本发明提供一种对IEC61850数字变电站GOOSE报文的入侵检测的实现方法,目的在于解决现有技术中IEC61850标准中的GOOSE报文的安全加固在实际应用中通常无法通过IEC62351的加密和数字验证的方法来完成。

权利要求 :

1.一种对IEC61850数字变电站GOOSE报文的入侵检测的方法,其特征在于:所述方法包括如下步骤;

1)GOOSE报文的快速过滤及数据结构化:GOOSE报文的快速过滤及数据结构化机制是为了从IEC61850数字变电站中网络里各类报文中迅速提取出需要进行检测的GOOSE报文和对GOOSE报文内容进行数据结构化处理;

2)GOOSE报文的数据单元的多级关联检测:GOOSE报文通过快速过滤和数据结构化提取完成后,多级关联检测需要依次检测报文中的单元数据项,以完成对GOOSE数据包报文的合规性检测;

3)GOOSE报文的危害性评估:根据多级关联检测的方法将GOOSE的报文分为三个安全级别,安全级别“0”为可信,代表该GOOSE报文数据未包含任何威胁隐患,通过报文多级关联检测的报文归为“0”级;安全级别“-1”代表可疑报文,包含失序报文和非合规报文,其中所述失序报文是所述检测的方法中的报文状态和序列数检测所检出的,所述非合规报文是所述检测的方法中的报文时间检测所检测出来的;安全级别“-2”代表不可信报文,此类报文包含未通过数据项检测的报文,未通过数据项检测和报文状态及序列数检测的报文,未通过数据项检测和报文时间项检测的报文;

GOOSE报文过滤数据提取采用基于报文模板的多模式匹配,一次报文扫描完成GOOSE报文数据项的识别和数据的结构化处理;

所述GOOSE报文模板由多个数据项模板单元组成,每个数据项模板单元定义在两个“@”标识符之间,数据项模板单元由四部分组成,每部分彼此以“:”隔开;第一部分为所述单元数据项对应源报文的原始数据类型;第二部分为所述单元数据项在源报文中的数据长度,数据项长度不定时缺省为空;第三部分为所述单元数据项结构化后的数据类型;第四部分为所述数据项模板单元对应单元数据项的名称;

所述多模式匹配采用多模式树模板匹配技术,所述多模式树为根据GOOSE报文模板建立一棵模式匹配树,树的节点为所述数据项模板单元,每个所述数据项模板单元定义GOOSE报文的单元数据项的匹配模式;

GOOSE报文的数据单元的多级关联检测中的单元数据项检测包括GOOSE报文中的应用协议单元数据项检测。

2.根据权利要求1所述的一种对IEC61850数字变电站GOOSE报文的入侵检测的方法,其特征在于:所述2)中GOOSE数据包报文的合规性检测包括如下部分,1)GOOSE报文的以太网络类型及源目标MAC地址检测;2)GOOSE报文的变化序号及顺序序列号检测;3)GOOSE报文的时间检测。

说明书 :

一种对IEC61850数字变电站GOOSE报文的入侵检测的方法

技术领域

[0001] 本发明属于IEC61850数字变电站安全领域,采用报文模板匹配技术完成GOOSE数据包数据的结构化呈现还原,通过报文数据项的上下文多级关联分析技术,实现一种对IEC61850智能变电站中的GOOSE数据报文的入侵检测方法。

背景技术

[0002] IEC61850是基于通用网络通信平台的变电站自动化系统的国际标准,它可以实现变电站自动化系统产品的互操作性和协议转换。采用IEC61850标准可使变电站自动化设备具备自描述、自诊断和即插即用的特性,很大程度上使数字变电站系统的集成变得简单,减少了变电站自动化系统的开支。
[0003] IEC61850标准也使得智能电网的网络形态正从过去的封闭系统走向半封闭和逐渐开放。这个变化过程加速了变电站智能化的进程的同时,也带来了智能变电站的安全上的隐患。其中IEC61850数字变电站采用的基于开放标准的网络技术之上,导致系统的安全性降低。具体表现为IEC61850协议本身并没有考虑任何安全措施,一旦攻击者绕过物理防护,直接进入调度中心和变电站网络,可直接通过通信协议实现对智能变电站设备的控制。
[0004] IEC62351协议标准实现了对IEC61850协议的安全加固,使得IEC61850协议具有了这些基本的安全功能。这种加固主要包括:1,通过通过数字签名,提供节点的双向身份认证;2,通过加密,提供传输层认证、加密密钥的机密性;3,通过加密,提供传输层及以上层次消息的机密性,防止窃听;4,通过消息鉴别码,提供传输层及以上层次消息的完整性;5,通过定义传输序列号有效性,防止传输层的重放和欺骗。由此可见,IEC62351协议对IEC61850协议的安全性加固是建立在加密和信息的数字验证基础之上,而在实际生产环境中这些安全加固方法无法适用于的IEC61850中的GOOSE实时性要求极高的报文。
[0005] 通用面向对象的变电站事件GOOSE服务是IEC61850提供的一个重要服务模型,为IEC61850数字变电站中各类IED智能设备提供了一种快速且高效的网络通讯方式。任何一IED智能设备通过以太网与其它IED设备相连,可通过GOOSE协议以订阅方式接收数据,也可以发布方式向其它IED设备提供数据。GOOSE传输是一种实时应用,主要传输间隔闭锁信号跳闸信号。根据IEC61850协议规定,GOOSE信息响应时间标准规定在4ms以内,而目前通常的IED设备采用的都是低功耗的CPU,这类CPU的计算功能并不是很强大,而对GOOSE报文的加解密和数字认证过程会极大地占用IED设备的CPU的使用时间,导致IED设备的运行效率极度下降,使得IED设备对GOOSE报文的响应时间无法在4ms内完成,从而影响了整个数字变电站的正常运行。
[0006] 由于GOOSE报文的实时性要求高的特点,因此IEC61850标准中的GOOSE报文的安全加固在实际应用中通常无法通过IEC62351的加密和数字验证的方法来完成,需要重新寻找一套适合目前各类智能变电站实际情况的GOOSE报文安全加固和入侵检测解决方案,来保护智能变电站的安全运行。

发明内容

[0007] 本发明提供一种对IEC61850数字变电站GOOSE报文的入侵检测的实现方法,目的在于解决现有技术中IEC61850标准中的GOOSE报文的安全加固在实际应用中通常无法通过IEC62351的加密和数字验证的方法来完成。
[0008] 本发明通过以下技术方案实现:
[0009] 一种对IEC61850数字变电站GOOSE报文的入侵检测的方法,其特征在于:所述实现方法包括如下步骤;
[0010] 1)GOOSE报文的快速过滤及数据结构化:GOOSE报文的快速过滤及数据结构化机制是为了对IEC61850数字变电站中网络里各类报文中迅速提取出需要进行检测的GOOSE的报文和对报文内容进行数据结构化处理;
[0011] 2)GOOSE报文的数据单元的多级关联检测:GOOSE通过快速过滤和数据结构化提取完成后,多级检测需要依次检测报文中的若干数据单元项,以完成对GOOSE数据包报文的合规性检测;
[0012] 3)GOOSE报文的危害性评估:根据检测的方法将GOOSE的报文分为三个安全级别,安全级别“0”为可信,代表该GOOSE报文数据未包含任何威胁隐患,通过报文多级关联检测的报文可归为“0”级;安全级别“-1”代表可疑报文,包含检测方法中的报文状态和序列数检测中的失序报文和报文时间检测中的非合规报文;安全级别“-2”代表不可信报文,此类报文包含未通过数据项检测的报文,未通过数据项检测和状态及序列数检测的报文,未通过数据项检测和时间项检测的报文,这些报文都划分为不可信报文。
[0013] 本发明进一步技术改进方案是:
[0014] 所述步骤2中GOOSE数据包报文的合规性检测包括如下部分,1)GOOSE报文的以太网络类型及源目标MAC地址;2)GOOSE报文的变化序号及顺序序列号检测;3)GOOSE报文的时间检测。
[0015] 本发明的效益是通过对IEC61850-GOOSE报文的结构和广播通讯机制的研究,总结出 GOOSE报文在通讯过程中的可信状态下报文中相关数据项所应遵循的规则,从而建立起可疑和不可信GOOSE报文的入侵检测的机制及方法,从而确保数字变电站中各智能设备间的GOOSE报文的安全可信。具体来说,本发明具有如下效果:
[0016] 1、本发明提供IEC61850-GOOSE报文的模板提取方法,采用模式树的匹配技术,能够快速从各类协议报文中提取GOOSE报文,并在模式匹配过程中完成报文内容数据提取的结构化处理,缩短了从报文类型识别到数据提取的过程;
[0017] 2、本发明对完成结构化处理的报文数据,设立了多级与关联的检测项,防止各种形式的入侵报文的注入和非法篡改。其中一级检测是对报文中的源和目标的物理地址采用报文协议可信匹配机制,通过预先定义接收GOOSE报文智能设备的可信源,完成对非可信设备报文的过滤;
[0018] 3、本发明建立了GOOSE报文的关联检测机制,例如,对GOOSE报文中应用协议单元中的报文变化序号(STNUM)和顺序序列数(SQNUM)的关联检测机制,涵盖了GOOSE报文的全生命周期的变化检测,能够及时发现常见的GOOSE报文的暴力入侵和注入;而对协议单元中的二进制控制数据项与报文状态和序列数的再次关联检测,可检测出大部分隐蔽性极高的GOOSE入侵报文;
[0019] 4、本发明在时间级别的检测上又设置了二级检测,报文产生时间和存活时间的可信度检测和固定时间段接收报文的流量的可信度检测;其中固定时间段接收报文数量的检测又分为接收数量超基准值和未见报文,报文接收数量超标可能存在拒绝服务的DDOS攻击,而一个时间段未见报文则存在着通讯报文被恶意截断攻击。

附图说明

[0020] 图1为本发明IEC61850-GOOSE通信协议栈示意图;
[0021] 图2为本发明IEC61850-GOOSE报文帧结构示意图;
[0022] 图3为本发明GOOSE报文入侵检测方法流程。

具体实施方式

[0023] 本发明提供了一种对IEC61850数字变电站中用于在智能设备间(IED)传输控制和信号的GOOSE报文的安全检测方法,通过本发明能够快速检测出存在安全隐患的各类GOOSE通讯报文。
[0024] 由图1、2可见GOOSE服务的通信协议栈由应用层、表示层、数据层、链路层和物理层组成,会话层、传输层和网络层均为空。这样可以缩短报文的长度,减少传输的延时,满足数据实时传输的要求。应用层定义了IEC61850-GOOSE报文的应用协议单元(APDU),表示层遵循ASN.1 BER对APDU进行编码,数据链路层基于ISO/IEC8802-3标准设置报文的传输优先级、以太网类型、组播地址等。因为IEC61850协议只定义了在变电站网络中智能设备(IED)和应用客户端的通信协议,没有考虑协议的安全性,即使后面推出的IEC62351协议实现了对IEC61850协议的安全加固,但对于实时性要求很高的控制和信号用的GOOSE报文无法实现安全加固。这类GOOSE报文极容易通过对报文内容的篡改,实现到对数字变电站入侵攻击。
[0025] 本发明通过对IEC61850-GOOSE原报文内容的结构化还原分析及时发现非法注入或遭到篡改的GOOSE报文。本方法有三个步骤组成,1)GOOSE报文快速过滤及报文数据结构化,2)GOOSE报文的多级关联检测,3)GOOSE报文的危害评估。
[0026] 1、GOOSE报文的快速过滤及数据结构化
[0027] GOOSE报文的快速过滤及数据结构化机制是为了对IEC61850数字变电站中网络里各类报文中迅速提取出需要进行检测的GOOSE的报文和对报文内容进行数据结构化处理。
[0028] GOOSE报文过滤数据提取采用基于报文模板的多模式匹配,一次报文扫描完成GOOSE报文数据项的识别和数据的结构化处理。本发明的GOOSE报文模板可由一系列的数据项模板单元组成,每个数据项模板单元定义在两个“@”标识符之间,模板单元由四部分组成,每部分彼此以“:”隔开。第一部分为该数据项单元对应源报文的原始数据类型;第二部分为该数据项在源报文中的数据长度,数据项长度不定时缺省为空;第三部分为该数据项结构化后的数据类型;第四部分为对应报文数据项的名称。前两部分描述了该数据项在源报文中的数据形态,后两部分表达了数据项数据结构化处理后的数据呈现方式。
[0029] 根据图2可将GOOSE报文可分解为下表中的模板单元数据项,表中键名是报文数据键值对结构化输出中的键的名字:
[0030] 序号 模板数据单元   数据项名称  键名1 @字节:6:字节:目标地址@ 目标地址单元  MACDst
2 @字节:6:字节:源地址@ 源地址单元 MACSrc
3 @字节:2:字节:TPID@ 802.1Q以太网编码帧的以太网类型 TPID
4 @字节:2:字节:优先级@ 用户优先级 TCI
5 @字节:2:字节:网络类型@ 以太网络类型 Ethertype
6 @字节:2:字节:应用标识@ 应用标识符; APPID
7 @字节:2:整数:长度字节数@ 从APPID开始包含在以太网PDU中字节数 Length
8 @字节:2:字节:保留字@ 保留字 Reserve1
9 @字节:2:字节:保留字@ 保留字 Reserve2
10 @字节:1480:集合:应用协议单元@ GOOSE报文应用协议单元 APDU
11 @字节::填充数据@ 填充数据 MACData
12 @字节:4:数据:校验数据@ 校验数据 CRC
[0031] 以上各数据项模板单元可组成一个完整的GOOSE帧报文模板:@字节:6:字节:目标地址@ @字节:6:字节:源地址@ @字节:2:字节:TPID@ @字节:2:字节:优先级@ @字节:2:字节:网络类型@ @字节:2:字节:应用标识@ @字节:2:整数:长度字节数@ @字节:2:字节:保留字@ @字节:2:字节:保留字@ @字节:1480:集合:应用协议单元@ @字节::填充数据@ @字节:4:数据:校验数据@
[0032] 数据项模板单元也可以由若干模板单元集合组成,如组成GOOSE报文应用协议单元(@字节:1480:集合:应用协议单元@)又可以由以下表中模板单元组成:
[0033] 序号 模板数据单元 数据项名称 键名1 @字节:65:字符串:控制模块引用@ 控制块引用 GocbRef
2 @字节:4:整型:生存时间@ 报文生存时间 TimeAllowedLive
3 @字节:65:字符串:数据集@ 数据集 DataSet
4 @字节:65:字符串:报文标识@ GOOSE报文标识 goID
5 @字节:8:时间:事件时间@ 事件产生时间 Time
6 @字节:4:整数:变化序号@ 报文变化序号 StNum
7 @字节:4:整数:顺序号@ 报文顺序序号 SqNum
8 @字节:1:布尔:测试@ 测试位 Test
9 @字节:4:整数:配置版本@ 配置版本号 confRev
10 @字节:1:布尔:未配置好标志@ 未配置好标志 ndscom
11 @字节:4:整数:数据集数目@ 数据个数 NumDatasetEntries
12 @字节::集合:数据集值@ 数据值集合 AllDataSet
[0034] GOOSE报文应用协议单元(APDU)完整模板格式如下:
[0035] @字节:65:字符串:控制模块引用@ @字节:时间:生存时间@ @字节:65:字符串:数据集@ @字节:65:字符串:报文标识@ @字节:8:时间:事件时间@ @字节:4:整数:变化序号@ @字节:4:整数:顺序号@ @字节:1:布尔:测试@ @字节:4:版本号:配置版本@ @字节:1:布尔:未配置好标志@ @字节:4:整数:数据集数目@ @字节::集合:数据集值@
[0036] 根据上面GOOSE报文的协议模板,对GOOSE协议数据包的模板匹配过程采用了“多模式树模板匹配技术”,多模式模树就是根据报文的模板建立一棵模式匹配树,树的节点就是数据项模板单元,每个数据项模板单元定义了原始数据到结构化数据的匹配模式。通过一次GOOSE模板模式树与协议数据包的扫描交互完成GOOSE报文数据单元的匹配结构化处理,极大提高了GOOSE报文分析和数据单元提取的效率;提取出的报文数据以键、值对的形式输出存储,供相关数据项的多级关联分析检测。
[0037] 2、GOOSE报文的数据单元的多级关联检测
[0038] GOOSE通过快速过滤和数据结构化提取完成后,多级检测需要依次检测报文中的若干数据单元项(见图二GOOSE报文帧结构图中标记灰色数据项),以完成对GOOSE数据包报文的合规性检测:
[0039] 1)GOOSE报文的以太网络类型及源目标MAC地址
[0040] 这部分检测涉及模板单元有“以太网络类型(@字节:2:字节:网络类型@)”、“报文目标地址(@字节:6:字节:目标地址@)”、“报文源地址(@字节:6:字节:源地址@)”。对报文源地址的检测可以判断GOOSE报文是否来自可信的IED智能设备,太网络类型的检测可以提高过滤GOOSE报文的准确性。
[0041] 2)GOOSE报文的变化序号及顺序序列号检测
[0042] 报文变化序号(STNUM)与报文顺序序号(SQNUM)的合规检测涉及到GOOSE报文的应用协议单元模板的数据项“报文变化序号”和“报文顺序序号”,通过对前后报文中该两个数据项值的自身比较、相互逻辑判断和与其它数据项比较处理来检测GOOSE报文的安全性、可信性和合规性。
[0043] 如果当前报文变化序号(STNUM)小于前次报文的变化序号,且当前报文变化序号没有被复位过,且当前报文在生存周期内,则该GOOSE报文未通过报文的变化序号及顺序序列号检测。
[0044] 如果当前报文变化序号(STNUM)大于前次报文变化序号,且当前报文顺序序号(SQNUM)不为0及报文顺序序号未复位,且当前报文在生存周期内,则该GOOSE报文未通过报文的变化序号及顺序序列号检测。
[0045] 如果当前报文变化序号(STNUM)等于前次报文变化序号,且当前报文顺序序列号(SQNUM)等于或小于前次报文顺序序列号,则该GOOSE报文未通过报文的变化序号及顺序序列号检测
[0046] 3)GOOSE报文的时间检测
[0047] 有关报文的时间项目检测涉及报文模板中的数据项中的“事件产生时间”和“报文生存时间”的两个数据项,检测步骤由以下项目组成:
[0048] 报文事件产生时间检测:当报文事件产生时间晚于该报文的接收时间,该报文未通报文的时间检测。
[0049] 报文的存活时间检测:当该报文的接收时间减去报文的产生时间大于4ms,则该报文未通过GOOSE报文的时间检测。
[0050] 报文单位时间段流量检测:可根据某数字变电站网络正常运行时GOOSE报文在单位时长出现的数量为基准值,设定正常GOOSE报文的基准值范围。当在同一环境中发现GOOSE报文在定义的相同时长中出现的数量远远大于基准值或未接收到GOOSE报文,则报文未通过报文的时间检测。
[0051] 4)GOOSE报文中的应用协议(APDU)单元数据项检测
[0052] 应用协议单元数据项的检测是为了保证相关应用数据的完整性,防止协议单元中的二进制控制数据被非法修改。该检测涉及到报文应用协议模板中的“数据值集合”数据项。
[0053] IEC61850协议中规定当GOOSE应用协议单元中的二进制控制数据的值改变,该报文变化序号(STNUM)按顺序增加,同时将报文顺序序列号(SQNUM)复位为0。通过这样的关联检测机制可以发现二进制数据单元项是否被篡改和非法报文的注入。
[0054] 3、GOOSE报文的危害性评估
[0055] 根据检测的方法将GOOSE的报文分为三个安全级别,安全级别“0”为可信,代表该GOOSE报文数据未包含任何威胁隐患,通过报文多级关联检测的报文可归为“0”级;安全级别“-1”代表可疑报文,包含检测方法中的报文状态和序列数检测中的失序报文和报文时间检测中的非合规报文;安全级别“-2”代表不可信报文,此类报文包含未通过数据项检测的报文,未通过数据项检测和状态及序列数检测的报文,未通过数据项检测和时间项检测的报文,这些报文都划分为不可信报文。
[0056] 结合图3就IEC61850-GOOSE报文的入侵检测过程进行详细描述:
[0057] 1、接收IEC61850报文后首先识别GOOSE报文,报文通过GOOSE报文的匹配模板,完成对GOOSE类型报文的提取和报文数据的结构化处理和数据的提取;
[0058] 2、完成结构数据化处理的GOOSE报文进入多级关联的报文检测过程,第一级检测为报文的可信度检测,检测报文的源和目的物理地址是否匹配定义可信源,实现对非可信设备报文的过滤;
[0059] 3、可信的GOOSE报文进入报文变化序号(STNUM)和顺序序号(SQNUM)数的关联检测,报文状态数的变化会影响报文序列数,通过对前后报文中这报文数据参数的关联检测,能够检测出可疑的报文,尤其是非法注入的报文;
[0060] 4、通过变化序号与顺序序号检测的报文进入报文的时间级检测,时间级分两个层级检测,报文产生时间和存活时间的可信度检测,以及单位时间报文接收量异常的检测;报文接收量异常检测是检测短时间内接收报文数量超标(可能存在拒绝服务DDOS攻击)和未见报文(恶意截断报文)。
[0061] 5、GOOSE报文时间检测后,开始GOOSE应用协议单元中二进制控制数据的关联检测,数据检测涉及前后的GOOSE报文及报文变化序号和顺序序号。数据检测是一种关联检测,前后报文中的某个数据项发生变化时必然会影响到该报文的当前报文中的变化序号和顺序序号。数据项的关联检测可以发现非合规的报文。
[0062] 6、报文经过可信源检测、报文变化序号和顺序序号检测、报文时间检测和数据项检测后,报文进入危害度评估系统,评估系统根据报文通过的多级关联流程检测的结果给出相关报文的危害程度,本发明将报文分为三级,0级为无害报文,-1级为可疑报文,-2为不可信报文。报文的危害性评估过程能够提供一个辨别GOOSE可信度的一个手段和方法。
[0063] 本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。