针对IEC61850协议SV报文的异常检测方法与流程

文档序号:11878559阅读:1841来源:国知局
针对IEC61850协议SV报文的异常检测方法与流程
本发明属于电力通信系统和工业控制安全
技术领域
,涉及一种工业控制网络协议的异常检测方法,具体涉及IEC61850协议报文异常的检测方法。
背景技术
:随着光电技术在传感器应用领域的突破,电子式互感器已经逐步由实验阶段走向工程应用阶段。电子式互感器的应用实现了电气量数据采集环节的数字化,一次系统的电压、电流被转化成数字信号,经过光纤或网络传递给二次设备,实现了一次设备和二次设备之间的电气隔离。但是这种技术革新同样面临着不同一、二次设备长商之间的互操作问题。为了解决电子式互感器与二次设备的通信接口问题,IEC61850标准中对电子式互感器的数据输出接口进行了规范。在IEC61850-7-2的ACSI模型中定义了抽象的采样值(SV)传输模型,并在IEC61850-9-1/-2中定义了两种特殊通信服务映射,将ACSI采样值传输模型映射到具体的通信网络及协议。SV服务是数字化变电站应用中的关键环节:它对数据的采集、传输有着很强的时间的限制;对采样值传输的数据组织需要有明确的理解;采样数据的接收方能够正确处理采样数值。IEC61850对采样数据的传输提供了采样值传输模型,对采样值的传输提供了明确的标准规范。SV传输模型提供了以有组织的和时间受控的方式传输采样值,这样采样和传输综合抖动小,并保持采样、次数和顺序恒定。在SV报文通信过程中,无论是配置文件信息错误、报文格式错误,或是其他物理人为因素的干扰,都可能对SV报文的正常发送产生影响。目前,在变电站运行检测过程中,并没有一套全面的针对IEC61850协议SV报文异常的检测方法,主要依赖工作人员的人工分析,效率低,而且容易产生疏漏。技术实现要素:本发明的目的在于提供一种针对IEC61850协议SV(SampleValue)报文异常的检测方法,该方法流程全面、简洁,易于通过软件实现自动化异常检测。实现本发明目的的技术解决方案为:一种针对IEC61850协议SV报文的异常检测方法,该方法定义了SV报文四类典型的异常行为:①报文格式和配置信息错误、②smpCnt(采样计数器)逻辑异常、③报文状态异常、④报文品质因数异常。首先对一帧SV报文格式(如报文PDU长度、组播地址值、编码格式等)和配置信息进行检测,这两项检测中任一项有错误则结束该报文后续的检测;如果SV报文的格式和配置信息均无误,则继续通过对smpCnt值进行逻辑分析,判断报文是否出现乱序、丢失、重复异常现象;如果smpCnt出现逻辑错误,则结束该报文后续的检测;如果smpCnt无逻辑错误,则继续对SV报文的状态信息进行检测,检测其是否处于中断或同步状态;如果报文出现状态异常,则结束该报文后续的检测;如果报文无状态异常,则继续检测报文的品质值(test、validity),判断报文的品质因数是否异常。针对SV报文格式及配置信息错误异常(①SV报文格式错误,②SV报文配置信息错误),采用的检测方法为:首先解析出SV报文的头部信息,提取length域的值,先判断该值是否等于SV报文PDU长度加8或SV报文长度减18;再判断报文组播地址的范围是否从01-0C-CD-04-00到01-0C-CD-04-FF;最后判断报文编码是否满足ANS.1的Tag-Length-Value格式,并能够找到对应域tag值,如以上三个判断条件有一个不满足,则判断SV报文格式错误,结束本帧报文的后续分析;如SV报文格式正确,判断SV报文的MAC、APPID、savPdu、svID与SCD文件中对应的配置内容是否相符,如果报文配置信息与CID文件中预先配置的所有值都一致才进行解析,否则丢弃报文,结束本帧报文的后续分析。针对SV报文采样计数器逻辑异常(包括①SV报文乱序,②SV报文丢失,③SV报文重复),采用的检测方法为:如果之前检测中未发现SV报文异常,则继续进行如下判断:如果当前帧的smpCnt不比前一帧smpCnt大1也不和前一帧相同,即判断为SV报文乱序;如果已存在的smpCnt的序号跳变或变化的不连续,即判断为SV报文丢帧;如果发送方连续发送两针smpCnt序号完全相同的报文,即判断为SV报文状态重复。针对SV报文状态信息异常(①SV报文中断,②SV报文不同步),采用的检测方法为:如果之前检测中未发现SV报文异常,则继续进行如下判断:在收到上一帧报文后两秒钟时间内没有收到下一帧报文,则判断为SV中断异常;如果SV报文无中断异常,则继续判断报文是否处于同步状态,当smpSync(SV报文中smpSync代表同步域)的值为false时,守时精度不能够满足同步要求,则报文处于不同步异常状态。针对SV报文品质值异常(①SV报文处于测试模式,②SV报文状态无效),采用的检测方法为:如果之前检测中未发现SV报文异常,则继续进行如下判断:若SV报文的测试标志位test为true,则判断发出该采样值报文的合并单元处于测试模式异常;如果SV报文不处于测试异常模式,则继续判断报文状态是否无效,若SV报文的状态有效标志位置(validity)为false,则判断相应通道位有效位的设置为无效。如果系统任意一步检测出异常,则根据异常的不同类型给出异常码;异常码由长度为4的字符串组成,第0位表示所检测异常报文的危险级,危险级是异常行为对系统威胁的评级,设定为1~3级,数值越小,则危险级越高,第1位为所属以上四种异常类型的类型编号,如是报文格式及配置信息异常,第1位数值为1;如是报文采样计数器逻辑类异常,第1位数值为2;如是报文状态信息异常,第1位数值为3;如是报文品质值异常,第一位数值为4;第2、3位表示四大类异常细分后具体异常类型的编号。本发明与现有技术相比,其显著优点:通过对SV报文每类异常行为的检测参数进行分析,并对其相应的异常行为进行了归纳总结,实现了对一帧SV报文简洁而全面的分析判断,并依据这些判别结果,对SV报文的各种异常进行精确定位,并根据所检测异常报文的危险级分级告警。本发明逻辑简洁,分析全面,并且通过采用本方案,能有效提高变电站的调试效率,增强变电站运行的安全稳定性,可实现一种逻辑缜密的异常检测。附图说明图1为本发明针对SV报文异常检测方法的流程图。图2为本发明SV报文格式及配置信息异常检测流程图。图3为本发明SV报文采样计数器逻辑异常检测流程图。图4为本发明SV报文状态信息异常检测流程图。图5为本发明SV报文品质值异常检测流程图。具体实施方式下面结合附图对本发明作进一步描述。一种针对IEC61850协议SV(SampleValue)报文异常的检测方法,检测流程如图1所示。检测针对以下四类异常:(1)SV报文格式及配置信息异常1)SV报文格式错误2)SV报文配置信息错(2)SV报文采样计数器逻辑异常1)SV报文乱序2)SV报文丢失3)SV报文重复(3)SV报文状态信息异常1)SV报文中断2)SV报文不同步(4)SV报文品质值异常1)SV报文处于测试模式2)SV报文状态无效针对第(1)类异常的检测:检测流程如图2所示,首先解析出SV报文的头部信息,提取length域的值,先判断该值是否等于SV报文PDU长度加8或SV报文长度减18;再判断报文组播地址的范围是否从01-0C-CD-04-00到01-0C-CD-04-FF;最后判断报文编码是否满足ANS.1的Tag-Length-Value格式,并能够找到对应域tag值,如以上三个判断条件有一个不满足,则判断报文格式错误,结束本帧报文的后续分析。如SV报文格式正确,继续判断SV报文的MAC、APPID、savPdu、svID等与SCD文件中对应的配置内容是否相符,如果其配置信息与CID文件中预先配置的所有值都一致才进行解析,否则丢弃报文,结束本帧报文的后续分析。如果针对第(1)类检测未发现异常,继续针对第(2)类异常进行检测:检测流程如图3所示,当smpCnt值不为0,如果当前帧的smpCnt不比前一帧smpCnt大1也不跟前一帧相同,即判断为SV报文乱序;如果已存在的smpCnt的序号跳变或变化的不连续,即判断为SV报文丢帧;如果发送方连续发送两针smpCnt序号完全相同的报文,即判断为SV报文状态重复。如果针对第(2)类检测未发现异常,针对第(3)类异常进行检测:检测流程如图4所示,在收到上一帧报文后两秒钟时间内没有收到下一帧报文,则判断为SV中断。如报文无中断异常,则继续判断报文是否处于同步状态,当smpSync的值为false时,守时精度不能够满足同步要求,则报文处于不同步异常状态。如果针对第(3)类检测未发现异常,针对第(4)类异常进行检测:检测流程如图5所示,若SV报文的测试标志位test为true,则判断发出该采样值报文的合并单元处于测试模式;如报文未处于测试异常状态,则继续判断报文状态是否有效,若SV报文的状态有效标志位置(validity)为false,则判断相应通道位有效位的设置为无效。下面结合实施例对本发明进行进一步说明。IEC61850报文异常检测系统是基于Linux操作系统的计算机实现。其中,报文数据采集功能是通过libpcap库的功能实现。系统通过调用libpcap库的char*pcap_lookupdev(char*errbuf)函数获取监听的网络接口;通过调用pcap_t*pcap_open_live(constchar*device,intsnaplen,intpromisc,intto_ms,char*errbuf)函数打开网络接口;通过调用pcap_compile(descr,&filter,FILTER,1,mask)和pcap_setfilter(descr,&filter)函数,过滤掉不需要的数据包类型EtherTypeII型帧格式中以太网类型字段存放着代表该报文类型的值,通过设置以太网类型值0X88BA,来过滤SV报文;通过调用intpcap_loop(pcap_t*p,intcnt,pcap_handlercallback,u_char*user)函数循环抓取数据包。对SV报文进行捕获、过滤后,再用c语言对其数据包的16进制字节文件进行解析,根据ASN.1编码结构,对SV报文的SavPDU进行解析。SV报文格式如表1所示。表1SV报文格式对报文进行解析后,把一种针对IEC61850协议SV(SampleValue)报文异常的检测方法应用在检测系统中,并用c语言实现。如图1所示,一种针对IEC61850协议SV(SampleValue)报文异常的检测方法,检测步骤如下:步骤1,SV报文格式及配置信息异常检测:对一帧SV报文的格式(如报文PDU长度、组播地址值、编码格式等)和配置信息进行检测,这两项检测中任一项有错误则结束后续的检测,检测内容如表2所示。表2报文格式及配置信息异常检测内容上述length为SV报文的头部信息,其length域的值。上述SV报文的MAC、APPID、svID、confRef分别表示目的地址、应用标识、采样控制块标识和配置版本号。由于SV报文的PDU是采用ANS.1的BER编码形式,具体为Tag-Length-Value格式。Tag代表后面的Value类型,Length表示后面的Value的长度,Value代表实际的数据。上述SCD(SubsationConfigurationDescription)文件是变电站配置描述文件。步骤2,SV报文采样计数器逻辑异常检测:如果SV报文的格式和配置信息均无误,要继续通过对smpCnt值进行逻辑分析,判断报文是否出现乱序、丢失、重复等异常现象,检测内容如表3所示。表3报文采样计数器逻辑异常检测内容上述smpCnt表示采样计数器,用于检查数据内容是否被连续刷新。合并单元每发出一个新的数据,smpCnt应加1,smpCnt应在(0,采样率-1)的范围内顺序增加。smpCnt不应跳变或越限,合并单元采用秒脉冲进行同步时,每个同步秒冲到达后应将smpCnt翻转置0。上述判断SV报文乱序情况时,当smpCnt值为0时证明报文为第一帧,不用和前帧报文比较;当smpCnt值不为0时,当smpCnt值在(0,采样率-1)的范围内时,再判断smpCnt是否比前一帧smpCnt值大1。步骤3,报文采样计数器逻辑异常检测:如果smpCnt逻辑没有异常,要对SV报文的状态信息进行检测,检测其是否处于中断、非同步等异常状态,检测内容如表4所示。表4SV报文状态信息异常检测内容上述smpSync表示同步标识位的值。smpSync用于反应合并单元的同步状态。当同步脉冲丢失后,合并单元先利用内部晶振进行守时,当守时精度能够满足同步要求时,smpSync的值为true;当守时精度不能够满足同步要求时,smpSync的值为false。步骤4,报文品质值异常检测:如SV报文无状态异常,要检测报文的品质值(test、validity),判断发出该采样值报文的装置否处于异常状态,检测内容如表5所示。表5SV报文品质值异常检测内容上述test表示检测标志位的值,检修标志位用于表示发出该采样值报文的合并单元是否处于检修状态。当装置检修压板投入时,合并单元发出的采样值报文中的检测位应为true。接收端装置应将接收的采样值报文的test位与自身的检修压板状态进行对比,只有当两者一致时才将信号作为有效处理或动作。上述validity为状态有效标志位,若标志位置为true,则判断相应通道位的设置为有效;如果一个电子式互感器内部发生故障(如传感元件损坏),那么相应通道有效位设置为无效,此时保护装置需要有针对性的增加处理内容。如系统检测出异常,则根据异常的不同类型给出异常码,异常码由长度为4的字符串组成。异常码第0位表示所检测异常报文的危险级(危险级是异常行为对系统威胁的评级,设定为1~3级,数值越低,则危险级越高),异常的危险级为1时,则表示该异常对系统的正常运行造成严胁;异常的危险级为2时,则表示该异常对系统的正常运行并不造成威胁,但报文信息出现逻辑异常;异常的危险级为3时,则表示系统正处于特殊状态。第1位为所属以上四种异常类型的类型编号(如是报文格式及配置信息异常,第1位数值为1;如是报文采样计数器逻辑类异常,第1位数值为2;如是报文状态信息异常,第1位数值为3;如是报文品质值异常,第一位数值为4)。第2、3位表示四大类异常细分后具体异常的编号。安上述规则异常码设置如表6所示。表6SV报文异常类型及其对应异常码SV报文异常类型异常码报文格式错误1101报文配置信息错误1102报文乱序2201报文丢失2202报文重复2203报文中断1301报文不同步1302报文处于测试模式3401报文状态无效1402检测系统根据SV报文异常码在界面上显示出异常类型、异常内容、异常危险级等信息,根据异常危险级分级告警,并把异常码及其异常报文的源端、目的端IP地址和端口号,异常发生时间等信息存储在数据库里。首先,电站工作人员利用检测系统的告警功能及时发现异常,获取报文异常类型、异常设备位置(根据SV报文ip地址和端口号)、以及报文异常发生时间等相关信息。从而分析判断出异常发生的原因:协议本身配置信息与格式的异常;协议实现时客观存在的问题(如通信设备故障、网络延迟、报文处于测试状态等);人为造成的异常(黑客恶意攻击、人为操作失误等)。最后,工作人员根据分析出的原因及时采取应对措施对异常情况进行处理。工作人员可以利用系统的信息存储功能回放之前的异常报文信息,其对解决目前存在的问题起到了参考作用,对以后可能存在的问题也起到了故障预防与预判断的作用。上述一种针对IEC61850协议SV报文异常的检测方法,以最全面最快速在线检测SV报文异常为目标,综合考虑了SV报文异常行为的数据参数,通过对其相应的异常行为进行归纳总结,实现了对一帧SV报文简洁而全面的分析判断,依据这些判别结果,对SV报文的各种异常进行精确定位,并根据不同异常行为的危险级分级告警。本发明逻辑简洁,分析全面,通过采用本方案,能有效提高变电站的调试效率,增强变电站运行的安全稳定性,可实现一种逻辑缜密的异常检测。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1