一种智能变电站网络异常流量检测方法转让专利

申请号 : CN201610202100.1

文献号 : CN105871847B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姜海涛郭静周超王小波朱道华陈锦铭杨毅黄伟李斌郭雅娟

申请人 : 国网江苏省电力公司电力科学研究院国家电网公司

摘要 :

本发明公开了一种智能变电站网络异常流量检测方法,包括以下几个步骤:(1)配置变电站交换机的镜像端口,通过镜像端口接入变电站网络;(2)解析捕获的报文;(3)对累计的报文信息按照不同的源地址进行统计分析,判断每个源地址是否存在异常流量;(4)对累计的报文信息按照不同的源/目的地址进行统计分析,判断每对源/目的地址之间是否存在异常流量;(5)将异常信息发送给远方调度系统,存储累计的报文信息,返回步骤(2),进行新一轮异常流量检测。本发明给出了实时可靠的变电站网络异常流量识别方法,并最终实现变电站网络异常流量信息的实时上报与告警输出。

权利要求 :

1.一种智能变电站网络异常流量检测方法,其特征在于,包括以下几个步骤:(1)配置变电站交换机的镜像端口,用于保证所有经过交换机的网络报文的副本都能够从镜像端口输出,通过镜像端口接入变电站网络;

(2)解析捕获的报文,过滤空报文,提取报文的源和目的地址以及长度信息,累计一段时间的报文信息;

(3)对累计的报文信息按照不同的源地址进行统计分析,获取每个源地址一段时间内的网络流量信息,判断每个源地址是否存在异常流量;

(4)对累计的报文信息按照不同的源/目的地址进行统计分析,获取每对源/目的地址之间一段时间内的网络流量信息,判断每对源/目的地址之间是否存在异常流量;

(5)显示异常流量信息,并将异常信息发送给远方调度系统,存储累计的报文信息,返回步骤(2),进行新一轮异常流量检测;

步骤(3)中,按照不同的源地址进行统计分析的方法如下:(3a)将步骤(2d)中缓存的所有报文按照源地址进行分组;

(3b)累加每个源地址d一段时间Δt1内的报文长度,计算该源地址d平均流量,计算方式为: 其中p为Δt1内源地址为d的报文,length为报文长度;

(3c)利用每个源地址d在历史时间Δt内的报文信息,计算该源地址d流量理论值,计算方式为:Tflowd=(∑p.length)/(1000×Δt),p为Δt内源地址为d的报文;

(3d)通过每个源地址流量理论值,判断该源地址的当前流量是否异常,如果不满足其中λ是异常判定系数,则说明该流量为异常流量,将源地址的异常流量信息存储在异常流量存储器中。

2.根据权利要求1所述的智能变电站网络异常流量检测方法,其特征在于,步骤(2)中,所述解析捕获的报文具体包括以下几个步骤:(2a)从镜像端口捕获完整的报文,用于保证单个报文的完整性;

(2b)判断是否是TCP协议控制报文,即是否是ACK确认报文、FIN结束报文、RES复位报文或SYN同步报文,如果是,则不处理该报文转向步骤(2a),如果否,则转向步骤(2c);

(2c)从数据报文中提取以下信息:源地址、目的地址和报文长度;

(2d)将提取得到的报文信息保存在缓存中,保存一段时间Δt1内的报文信息。

3.根据权利要求1所述的智能变电站网络异常流量检测方法,其特征在于,步骤(4)中,按照不同的源/目的地址进行统计分析的方法如下:(4a)将步骤(2d)中缓存的所有报文按照源/目的地址进行分组;

(4b)累加每对源/目的地址d1,d2一段时间Δt1内的报文长度,计算该源/目的地址d1,d2之间的平均流量,计算方式为: 其中p为Δt1内源地址为d1且目的地址为d2的报文;

(4c)利用每对源/目的地址d1,d2在历史时间Δt内的报文信息,计算该源/目的地址流量理论值,计算方式为:Tflowd1,d2=(∑p.length)/(1000×Δt),p为Δt内源地址为d1且目的地址为d2的报文;

(4d)通过每对源/目的地址流量理论值,判断该源/目的地址的当前流量是否异常,如果不满足 则说明该流量为异常流量,将异常流量信息存储在异常流量存储器中。

4.根据权利要求3所述的智能变电站网络异常流量检测方法,其特征在于,步骤(5)中,所述远方调度系统处理异常信息的方法如下:(5a)将异常流量存储器中的异常流量信息上传至对应远方调度系统,对于220KV及以上的变电站上传至省调,对于110KV及以下的变电站上传至地调;

(5b)存储步骤(2d)中缓存的累计报文信息到历史报文信息存储器中,清空缓存;

(5c)返回步骤(2),执行新一轮异常流量检测工作。

说明书 :

一种智能变电站网络异常流量检测方法

技术领域

[0001] 本发明涉及一种智能变电站网络异常流量检测方法,属于智能电网信息安全检测与防御技术领域。

背景技术

[0002] 近年来随着智能电网的发展,国内正在推广智能变电站的建设。智能变电站内部采用了三层两网的网络结构,设备间的各种数据交互都通过网络实现。2015年12月23日乌克兰电网大范围事件,被认为是世界上首次黑客入侵导致电网瘫痪事件,该事件使得工控安全得到了广泛关注。在智能变电站内部,由于运维调试时的违规外连或者移动存储介质的使用,产生了各种恶意程序被带入变电站内部的可能性。三层两网的结构在节省建设成本,方便设备数据传输的同时,也为各种病毒木马的在变电站网络中传播与发动攻击提供了便利条件。但是目前变电站内部还缺乏针对网络异常行为的检测与主动防御技术。
[0003] 由于各种异常行为(恶意攻击、病毒程序、非法访问等)的传播与破坏都需要利用网络来完成,所以对网络流量监控与分析是目前对网络异常行为进行有效发现与防御的主要手段之一。变电站正式建成投运之后,内部的设备都是固定的且设备间的数据交换也是相对稳定的。任何设备产生过大的流量或流量过小都可以视为流量异常,存在导致变电站内部出现安全问题的可能,需要给出告警输出,以便引起相关专业人员的关注并及时进行问题的排查。

发明内容

[0004] 针对现有技术存在的不足,本发明目的是提供一种智能变电站网络异常流量检测方法,本发明给出了实时可靠的变电站网络异常流量识别方法,并最终实现变电站网络异常流量信息的实时上报与告警输出。
[0005] 为了实现上述目的,本发明是通过如下的技术方案来实现:
[0006] 本发明的一种智能变电站网络异常流量检测方法,包括以下几个步骤:
[0007] (1)配置变电站交换机的镜像端口,用于保证所有经过交换机的网络报文的副本都能够从镜像端口输出,通过镜像端口接入变电站网络;
[0008] (2)解析捕获的报文,过滤空报文,提取报文的源和目的地址以及长度信息,累计一段时间的报文信息;
[0009] (3)对累计的报文信息按照不同的源地址进行统计分析,获取每个源地址一段时间内的网络流量信息,判断每个源地址是否存在异常流量;
[0010] (4)对累计的报文信息按照不同的源/目的地址进行统计分析,获取每对源/目的地址之间一段时间内的网络流量信息,判断每对源/目的地址之间是否存在异常流量;
[0011] (5)显示异常流量信息,并将异常信息发送给远方调度系统,存储累计的报文信息,返回步骤(2),进行新一轮异常流量检测。
[0012] 步骤(2)中,所述解析捕获的报文具体包括以下几个步骤:
[0013] (2a)从镜像端口捕获完整的报文,用于保证单个报文的完整性;
[0014] (2b)判断是否是TCP协议控制报文,即是否是ACK确认报文、FIN结束报文、RES复位报文或SYN同步报文,如果是,则不处理该报文转向步骤(2a),如果否,则转向步骤(2c);
[0015] (2c)从数据报文中提取以下信息:源地址、目的地址和报文长度;
[0016] (2d)将提取得到的报文信息保存在缓存中,保存一段时间Δt1内的报文信息。
[0017] 步骤(3)中,按照不同的源地址进行统计分析的方法如下:
[0018] (3a)将步骤(2d)中缓存的所有报文按照源地址进行分组;
[0019] (3b)累加每个源地址d一段时间Δt1内的报文长度,计算该源地址d平均流量,计算方式为: 其中p为Δt1内源地址为d的报文,length为报文长度;
[0020] (3c)利用每个源地址d在历史时间Δt内的报文信息,计算该源地址d流量理论值,计算方式为:Tflowd=(∑p.length)/(1000×Δt),p为Δt内源地址为d的报文;
[0021] (3d)通过每个源地址流量理论值,判断该源地址的当前流量是否异常,如果不满足 其中λ是异常判定系数,则说明该流量为异常流量,将源地址的异常流量信息存储在异常流量存储器中。
[0022] 步骤(4)中,按照不同的源/目的地址进行统计分析的方法如下:
[0023] (4a)将步骤(2d)中缓存的所有报文按照源/目的地址进行分组;
[0024] (4b)累加每对源/目的地址d1,d2一段时间Δt1内的报文长度,计算该源/目的地址d1,d2之间的平均流量,计算方式为: 其中p为Δt1内源地址为d1且目的地址为d2的报文;
[0025] (4c)利用每对源/目的地址d1,d2在历史时间Δt内的报文信息,计算该源/目的地址流量理论值,计算方式为:Tflowd1,d2=(∑p.length)/(1000×Δt),p为Δt内源地址为d1且目的地址为d2的报文;
[0026] (4d)通过每对源/目的地址流量理论值,判断该源/目的地址的当前流量是否异常,如果不满足 则说明该流量为异常流量,将异常流量信息存储在异常流量存储器中。
[0027] 步骤(5)中,所述远方调度系统处理异常信息的方法如下:
[0028] (5a)将异常流量存储器中的异常流量信息上传至对应远方调度系统,对于220KV及以上的变电站上传至省调,对于110KV及以下的变电站上传至地调;
[0029] (5b)存储步骤(2d)中缓存的累计报文信息到历史报文信息存储器中,清空缓存;
[0030] (5c)返回步骤(2),执行新一轮异常流量检测工作。
[0031] 本发明利用了变电站网络封闭性与设备固定性的特点,通过报文捕获、报文解析、流量统计与分析、异常流量判断、异常信息显示与上报这一系列流程,给出了实时可靠的变电站网络异常流量识别方法,并最终实现变电站网络异常流量信息的实时上报与告警输出,辅助相关专业人员开展变电站信息安全监测与分析工作。

附图说明

[0032] 图1为本发明的总体工作流程图;
[0033] 图2为网络报文解析与线程调度流程图;
[0034] 图3为源地址异常流量检测流程图;
[0035] 图4为源/目的地址间异常流量检测流程图。

具体实施方式

[0036] 为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
[0037] 如图1所示,智能变电站网络异常流量检测方法,具体包括如下步骤:
[0038] 步骤(1):配置变电站交换机的镜像端口,保证所有经过交换机的网络报文的副本都能够从镜像端口输出,通过镜像端口接入变电站网络;
[0039] 步骤(2):开发Java程序,程序中启动两个线程,这两个线程一直执行,线程1负责报文的捕获、解析、过滤、信息提取工作,将报文信息缓存在内存中,线程2负责每5分钟调度一次,负责执行步骤(3)至步骤(5)。如图2所示,是报文处理流程图,具体的报文处理步骤如下:
[0040] 步骤2a:线程1从镜像端口捕获报文,保证捕获报文的全面性以及单个报文的完整性;
[0041] 步骤2b:线程1过滤掉无内容的TCP协议的控制报文,包括:ACK确认报文、FIN结束报文、RES复位报文、SYN同步报文;
[0042] 步骤2c:线程1从报文p中提取以下信息:源地址p.src、目的地址p.dst、报文长度p.length。对于IP层协议的报文,源地址和目的地址为IP地址,对于Mac层协议,源和目的地址为Mac地址;
[0043] 步骤2d:线程1使用集合S缓存提取得到的报文信息,线程2每5分钟调度一次,将集合S中的所有报文移动到集合S1中,清空集合S,执行步骤(3)至步骤(5);
[0044] 步骤(3):在Java程序中定义一个方法,负责对累计的报文按照不同的源地址进行统计分析,判断每个源地址是否存在异常流量。如图3所示,是源地址分析流程图,具体分析步骤如下:
[0045] 步骤3a:将集合S1中缓存的所有报文按照源地址进行分组,得到分组G1={d1,d2……dn};
[0046] 步骤3b:从G1中取得某个每个源地址d,通过该源地址d的报文累计长度,计算该源地址d平均流量 计算公式为: 其中p∈S1且p.src=d,计算结果的单位为kbytes/s;
[0047] 步骤3c:根据源地址d历史报文信息,计算该源地址d流量理论值Tflowd,计算公式为:Tflowd=(∑p.length)/(1000×Δt),其中p为历史报文信息数据库中时间Δt内的报文,且p.src=d,计算结果的单位为kbytes/s。Δt设置为最近的3600秒。
[0048] 步骤3d:通过每个源地址d流量理论值,判断该源地址d的当前流量是否异常,判断异常的依据为: 将源地址d的异常流量信息存储在本地异常信息数据库中;
[0049] 步骤3e:判断分组G1是否还有未处理的地址,如果有返回步骤3b继续执行,否则执行步骤(4);
[0050] 步骤(4):在Java程序中定义一个方法,负责对累计的报文按照不同的源和目的地址进行统计分析,判断每对源/目的地址之间是否存在异常流量。如图4所示,是源/目的地址分析流程图,具体分析步骤如下:
[0051] 步骤4a:将步骤集合S1中缓存的所有报文按照源/目的地址进行分组;得到分组G2={d1d2,d2d1……didj,djdi};
[0052] 步骤4b:根据每个源/目的地址的报文累计长度,计算该源/目的地址d1,d2平均流量 计算公式为: 其中p∈S1且p.src=d1,p,dst=d2,计算结果的单位为kbytes/s;
[0053] 步骤4c:根据源/目的地址d1,d2历史报文信息,计算该源/目的地址d1,d2流量理论值Tflowd1,d2,计算公式为:Tflowd1,d2=(∑p.length)/(1000×Δt),其中p为历史报文信息数据库中时间Δt内的报文,且p.src=d1,p.dst=d2,计算结果的单位为kbytes/s。Δt设置为最近的3600秒。
[0054] 步骤4d:通过每个源/目的地址d1,d2流量理论值,判断该源/目的地址d1,d2的当前流量是否异常,判断依据为: 将源/目的地址d1,d2的异常流量信息存储在本地异常信息数据库中;
[0055] 步骤4e:判断分组G2是否还有未处理的源/目地址,如果有返回步骤4b继续执行,否则执行步骤(5);
[0056] 步骤(5):在Java程序中定义一个方法,在步骤(3)和步骤(4)的执行完毕之后执行该方法。该方法获取本地异常信息数据库中步骤(3)和步骤(4)生成的最新异常流量信息,并上传至对应调度系统,对于220KV及以上的变电站上传至省调,对于110KV及以下的变电站上传至地调,保存在步骤2d中缓存S1中的报文信息到历史报文信息数据库中,并清空缓存S1。
[0057] 以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。