本发明属于智能电网终端设备安全技术领域,涉及流量识别领域与特征建模领域,方法核心是采集大量电力终端流量数据样本,利用数据提取特征,建立机器学习模型,并使用构建的模型识别利用电力终端漏洞实现的攻击行为。
背景技术:
电网中的电力终端设备的安全可靠是电力系统稳定运行的根本。智能电网业务系统存在大量的电力终端设备,如ftu(馈线终端单元)、rtu(远程终端单元)、智能电表集中器、继电保护装置等。电力终端通过监测、控制、保护的作用影响着电力的生产过程,在电力生产的“发电”-“变电”-“输电”-“配电”的过程中,起着至关重要的作用。如,我国电网对配电自动化要求越来越高,而配电自动化的核心在于馈线自动化,馈线自动化的基本单元则是馈线终端单元ftu,它对整个配电自动化起十分重要的作用,若ftu受到攻击,电网系统将受到很大程度的干扰。
然而,电力终端设备一般工作在开放环境下,并且都具有一定的运算能力和无线通信功能,导致其更容易被攻击者攻击,从而威胁智能电网的安全。这些设备与传统的信息网络中的设备不同,设计之初往往只为了实现某些特定的业务功能,业务逻辑简单,并且没有统一的安全标准来对其进行安全测试,所以安全风险较高。这些电力终端由于本身存在一些安全漏洞,攻击者可以利用已知的漏洞对其进行攻击,或者在电力终端中植入木马,将其作为跳板入侵主站,对于部署于用户侧的电力终端设备,如智能电表等,恶意攻击者往往可以利用电力终端设备存在的已知漏洞对其渗透,获取电力终端设备的root权限,从而对其进行控制和破坏。
在电力终端的安全防护中,对攻击准确有效的识别是对电力终端进行安全防护的必要条件,只有对电力终端遭受的攻击进行准确的定位及识别,才能尽可能的减小攻击造成的损害,对其进行针对性的防护。
技术实现要素:
本发明针对现有技术存在的问题,提出了一种基于流量特征的电力终端漏洞攻击防护方法,通过构建电力终端漏洞攻击的识别模型,能够检测到电力终端是否遭受攻击,进而为开展针对性的防护工作提供指导,实时对电力终端进行安全监测。
本发明是通过以下技术方案得以实现的:
本发明提供一种基于流量特征的电力终端漏洞攻击防护方法,包括:
s01对电力终端设备与主站之间的通讯过程进行监测,对通讯流量数据进行抓包采集,并将正常工作状态下的电力终端设备通讯流量数据标记为正样本,将受攻击状态下的电力终端设备通讯流量数据标记为负样本。
s02对正样本与负样本进行特征提取,输出。
s03对s02输出的特征进行选择,作为样本特征向量,选择监督学习方法进行训练(具体可采用决策树算法),生成漏洞攻击检测模型。
s04采集实际工作场景中的电力终端设备与主站间的实时通讯流量数据,作为待测样本;s05对待测流量数据进行特征提取,输出为待测样本的特征向量。
s06将待测样本的特征向量输入漏洞攻击检测模型,以检测电力终端是否受到攻击。
s07若发现该电力终端已受到攻击,暂时关闭该终端与主站的通讯进程,并尝试判断该攻击所属的攻击类型,防止攻击造成更大危害;若检测结果为不存在攻击,则维持通信进程,等待下一次检测。
本发明采用正常工作状态和受攻击状态下差异性大的数据作为特征,进而训练形成漏洞攻击检测模型,使得检测识别更精准、高效,能确认攻击和攻击类型,以便于对电力终端设备进行及时、针对性强的安全防护。
作为优选,所述样本特征向量、所述检测特征向量包括如下19个特征:包长均值,包长标准差,一阶中心距,二阶中心距,三阶中心距,四阶中心距,包长偏度,包长峰度,数据包到达平均时间间隔,数据包到达时间间隔标准差,最大数据包到达时间间隔,最小数据包到达时间间隔,ip地址种类丰富度,ip地址集中度,端口号种类丰富度,端口号集中度,数据包序列中数据包到达频率,数据包序列中数据包最高到达频率,数据包序列中数据包最低到达频率,具体计算方法如下所示:
对于一段包含n个数据包的序列x={x1,x2,x3,…,xn},xi代表第i个数据包的包长,我们提取以下8个关于包长的特征:
包长均值
包长标准差
一阶中心距
二阶中心距
三阶中心距
四阶中心距
包长偏度
包长峰度
对于该数据包序列,对应x={x1,x2,x3,…,xn},每个数据包的到达时间为t={t1,t2,t3,…,tn},我们还可提取以下4个时间特征:
数据包到达平均时间间隔
数据包到达时间间隔标准差
最大数据包到达时间间隔f11=max{t2-t1,t3-t2,t4-t3,…,tn-tn-1}
最小数据包到达时间间隔f12=min{t2-t1,t3-t2,t4-t3,…,tn-tn-1}
每个数据包序列中还包括以下特征:
假设数据包序列中ip地址种类数为j,ip地址种类丰富度
假设数据包序列中占比最大的ip地址数量为n’,则获得ip地址集中度特征
假设数据包序列中端口号种类数为k,端口号种类丰富度
假设数据包序列中占比最大的端口号数量为n”,则获得端口号集中度特征
数据包序列中数据包到达频率
数据包序列中数据包最高到达频率
数据包序列中数据包最低到达频率
在提取特征的过程中:若出现一段时间内数据包数量过少(如n=1)造成计算失败,该时间段内数据包将保留信息至下一时间段进行合并,与下一时间段监测的数据包共同计算特征向量;若出现重要信息读取失败,即ip地址信息、端口号信息丢失,造成的公式计算失败等情形,该时间段内数据包将被报告异常,通知监测系统;若出现单次包长数据丢失,造成的公式计算失败等情形,将对该处进行基本信息补全操作,具体步骤包括:
1)检索时间序列中前后数据包的包长,若获得前后数据包包长l1,l2两数值,则补全该处包长数值为l0=(l1 l2)/2;
2)若不可获得时间序列中前一时间点数据包的包长信息,但能获得后一时间点数据包的包长信息l2,则直接补齐l0=l2;
3)若不可获得时间序列中后一时间点数据包的包长信息,但能获得前一时间点数据包的包长信息l1,则直接补齐l0=l1;
4)若前、后时间点的包长信息均不可被获取,则该时间段(指前、后时间点及二者之间这段时间)内数据包将被报告异常,通知监测系统。
作为优选,所述步骤s02具体包括:
步骤s21,对正样本、负样本进行基本信息提取,如包长、数据包到达时间等;
步骤s22,检查是否存在基本信息缺失,根据具体情况针对缺失进行异常报告或基本信息补充,计算得到完整特征向量。
作为优选,所述步骤s03中提及的特征选择,具体为:计算s02提取的各个特征与样本标记的皮尔逊相关系数,若皮尔逊相关系数低于受攻击状态下预设阈值,则舍弃相应特征,从而降低特征数量,所述的样本标记为正常工作状态、受攻击状态。此外,还可获取特征相似性,依据特征相似性判断特征差异性,对差异性低于预设最小阈值的标记特征尝试进行合并,该预设最小阈值可以由使用者根据经验自行确定。
本发明的有益效果在于:
1.目前大部分传统的流量识别技术主要依靠于特征匹配实现,广泛用于明文流量识别。但是,真实世界中的恶意攻击,常常通过加密或特殊编码的方式,规避了常规手段对流量特征的提取。而本方法提取的特征大多为统计性特征,不受加密或特殊编码影响,大幅提升了实用性。
2.对利用电力终端漏洞的攻击监测具有实时性,可在不影响通信过程的前提下实现持续性的防护。
3.本方法采集了较多的通信数据包信息,如ip地址、端口号信息等,容易对存在异常的终端进行溯源定位,快速识别异常来源。
4.本方法具有较强的成长性,随着时间推移,终端正常工作状态样本与异常工作状态样本均有数量上的增长,分类模型可不断加入新的标记数据进行学习训练,分类准确率、对识别攻击的种类均会有增长。
附图说明
图1为本发明的方法工作流程框图。
图2为本发明的机器学习流程框图。
图3为本发明的特征选择流程框图。
具体实施方式
下面结合附图对发明的技术框架进行说明。
本发明结合电力终端与主站通信特点,考虑到实际攻击可能对数据包进行加密或重新编码的场景,使用流量特征实现对攻击行为的判断与安全防护,尤其是提取的19个特征:包长均值,包长标准差,一阶中心距,二阶中心距,三阶中心距,四阶中心距,包长偏度,包长峰度,数据包到达平均时间间隔,数据包到达时间间隔标准差,最大数据包到达时间间隔,最小数据包到达时间间隔,ip地址种类丰富度,ip地址集中度,端口号种类丰富度,端口号集中度,数据包序列中数据包到达频率,数据包序列中数据包最高到达频率,数据包序列中数据包最低到达频率,上述特征多为统计性特征,不受加密或特殊编码影响,利用所提取的特征来构建电力终端漏洞攻击的识别模型,检测到电力终端是否遭受攻击,进而为开展针对性的防护工作提供指导,实时对电力终端进行安全监测。
图1为本发明的方法工作流程框图。首先,开始采集网络流量数据作为原始的输入,并人工打上标记。正常工作状态下的流量样本作为正样本,受到攻击的流量样本作为负样本。之后,将对以上标记样本进行特征提取,获得特征后完成特征选择,最终获得学习模型。当有新的待测样本被输入时,将首先对其进行特征提取,然后输入模型判断是否属于受攻击状态。在提取特征的过程中:若出现一段时间内数据包数量过少(如n=1)造成计算失败,该时间段内数据包将保留信息至下一时间段进行合并,与下一时间段监测的数据包共同计算特征向量;若出现重要信息读取失败,即ip地址信息、端口号信息丢失,造成的公式计算失败等情形,该时间段内数据包将被报告异常,通知监测系统;若出现单次包长数据丢失,造成的公式计算失败等情形,则对该处进行基本信息补全操作;
图2为本发明的机器学习流程框图。
整个流程分为三个部分,统计特征获取,即从网络数据流中采集包长、包到达时间等基本信息,再利用前文所提到的特征提取公式,进行19个特征的提取;训练过程,即先选取有效特征,接着输入训练流分类器继续训练,图3为本发明的特征选择流程框图,我们使用皮尔逊相关系数进行特征选择,皮尔逊相关系数是一种统计指标,用于计算特征之间的相关系数,提取主要特征用于模型构建。计算完成后,使用者可自行根据需要确定阈值的设定,选取在此次训练样本上的主要特征,简化模型复杂度。在本例中,我们计算所提取的各个特征与样本标记的皮尔逊相关系数,若皮尔逊相关系数低于受攻击状态下预设阈值,则舍弃相应特征,从而降低特征数量,所述的样本标记为正常工作状态、受攻击状态;最终获得分类器模型,得到分类结果。
采用决策树的原因是因为它有以下几个特点:
(1)速度快:计算量相对较小,且容易转化成分类规则。
(2)准确性高:挖掘出来的分类规则准确性高,便于理解,决策树可以清晰的显示哪些字段比较重要,即可以生成可以理解的规则。
(3)可以处理连续和种类字段,适应性强。
通过最终的检测结果可以确定,我们的方法可以有效地利用报文特征对电路终端受到攻击的类型进行判别,以便于采取相应措施。因此,智能电网中广泛存在的电力终端设备就可以得到准确、实时、高效的监测。
本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明。本发明的目的已经完整有效地实现。本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。
1.一种基于流量特征的电力终端漏洞攻击防护方法,其特征在于,结合电力终端与主站通信特点,考虑到实际攻击可能对数据包进行加密或重新编码的场景,使用流量特征实现对攻击行为的判断与安全防护,具体为:将电力终端设备正常工作状态下和受攻击状态下的通讯流量数据分类为正样本、负样本;再对正样本、负样本进行特征提取及选择形成样本特征向量;选取分类器进行机器学习,生成漏洞攻击识别模型,利用所述漏洞攻击识别模型对待测通讯流量数据进行判断。
2.根据权利要求1所述的一种基于流量特征的电力终端漏洞攻击防护方法,其特征在于,所述的方法具体包括以下步骤:
s01对电力终端设备与主站之间的通讯过程进行监测,对通讯流量数据进行抓包采集,并将正常工作状态下的电力终端设备通讯流量数据标记为正样本,将受攻击状态下的电力终端设备通讯流量数据标记为负样本;
s02对正样本与负样本进行特征提取;
s03对s02提取的特征进行选择,作为样本特征向量,选择监督学习方法进行训练,生成漏洞攻击检测模型;
s04采集实际工作场景中的电力终端设备与主站间的实时通讯流量数据,作为待测样本;
s05对待测流量数据进行特征提取,输出为待测样本的特征向量;
s06将待测样本的特征向量输入漏洞攻击检测模型,以检测电力终端是否受到攻击;
s07若发现该电力终端已受到攻击,暂时关闭该终端与主站的通讯进程;若检测结果为不存在攻击,则维持通信进程,等待下一次检测。
3.根据权利要求1或2所述的一种基于流量特征的电力终端漏洞攻击防护方法,其特征在于,对通讯流量数据进行特征提取,包括如下19个特征:
1)对于一段包含n个数据包的序列x={x1,x2,x3,...,xn},xi代表第i个数据包的包长,提取以下8个关于包长的特征:
包长均值
包长标准差
一阶中心距
二阶中心距
三阶中心距
四阶中心距
包长偏度
包长峰度
2)对于所述数据包序列x={x1,x2,x3,...,xn},每个数据包的到达时间为t={t1,t2,t3,...,tn},还提取以下4个时间特征:
数据包到达平均时间间隔
数据包到达时间间隔标准差
最大数据包到达时间间隔f11=max{t2-t1,t3-t2,t4-t3,...,tn-tn-1}
最小数据包到达时间间隔f12=min{t2-t1,t3-t2,t4-t3,...,tn-tn-1}
3)还提取以下特征:
假设数据包序列中ip地址种类数为j,ip地址种类丰富度
假设数据包序列中占比最大的ip地址数量为n’,则获得ip地址集中度特征
假设数据包序列中端口号种类数为k,端口号种类丰富度
假设数据包序列中占比最大的端口号数量为n”,则获得端口号集中度特征
数据包序列中数据包到达频率
数据包序列中数据包最高到达频率
数据包序列中数据包最低到达频率
4.根据权利要求3所述的一种基于流量特征的电力终端漏洞攻击防护方法,其特征在于,在特征提取的过程中,若出现一段时间内数据包数量过少造成计算失败,该时间段内数据包将保留信息至下一时间段进行合并,与下一时间段监测的数据包共同计算特征向量。
5.根据权利要求3所述的一种基于流量特征的电力终端漏洞攻击防护方法,其特征在于,在特征提取的过程中,若出现重要信息读取失败,包括:ip地址信息、端口号信息丢失,造成计算失败,则所在时间段内数据包将被报告异常,通知监测系统。
6.根据权利要求3所述的一种基于流量特征的电力终端漏洞攻击防护方法,其特征在于,在特征提取的过程中,若出现单次包长数据丢失造成计算失败,则对丢失处进行基本信息补全操作,具体步骤包括:
1)检索时间序列中所述丢失处前后数据包的包长,若获得前后数据包的包长l1,l2两数值,则补全该处包长数值为l0=(l1 l2)/2;
2)若不可获得时间序列中所述丢失处前一时间点数据包的包长信息,但能获得后一时间点数据包的包长信息l2,则直接补齐l0=l2;
3)若不可获得时间序列中所述丢失处后一时间点数据包的包长信息,但能获得前一时间点数据包的包长信息l1,则直接补齐l0=l1;
4)若前后时间点的包长信息均不可被获取,则该时间段内数据包将被报告异常,通知监测系统。
7.根据权利要求2所述的一种基于流量特征的电力终端漏洞攻击防护方法,其特征在于,s03中所述的对特征进行选择,具体为:计算s02提取的各个特征与样本标记的皮尔逊相关系数,若皮尔逊相关系数低于受攻击状态下预设阈值,则舍弃相应特征,从而降低特征数量,所述的样本标记为正常工作状态、受攻击状态。
8.根据权利要求2所述的一种基于流量特征的电力终端漏洞攻击防护方法,其特征在于,s03中所述的监督学习方法采用决策树算法。
技术总结