一种基于频率特征分析的电力系统网络流量异常检测方法与流程

文档序号:33187553发布日期:2023-02-04 07:07阅读:66来源:国知局
一种基于频率特征分析的电力系统网络流量异常检测方法与流程

1.本发明涉及电力系统网络流量检测技术领域,特别涉及一种基于频率特征分析的电力系统网络流量异常检测方法。


背景技术:

2.电网是关键信息基础设施的一种,一旦这些设施受到攻击,国民经济和人民生活的损失是不可估量的。因此,检测电网的异常流量是非常必要的。
3.随着深度学习的快速发展,以神经网络为代表的复杂模型被广泛用于流量异常检测。由于电网中的设备种类很少,它们之间的通信采用特殊的协议。电网流量的特点是确定的,正常流量和异常流量的区别在电网流量中是比较明显的。
4.针对这一特点,研究人员提出了许多不同的模型用于电网流量的异常检测,或者将常用的物联网流量异常检测方法可用于电网流量的异常检测。常用的物联网流量异常检测方法例如为基于签名的检测方法、基于机器学习的检测方法以及基于深度学习的检测方法,但是现有的这些物联网流量异常检测方法应用于电网流量会存在或多或少的不足之处,例如,基于签名的检测方法在匹配签名和流量数据包的有效载荷时,计算成本很高;基于机器学习的检测方法无法实时检测到入侵流量;而基于深度学习的检测方法也存在诸如计算成本高、超参数调优复杂等问题。
5.故急需一种成本低、能在线检测的电力系统网络流量异常检测方法。


技术实现要素:

6.本发明所要解决的技术问题在于,提供一种基于频率特征分析的电力系统网络流量异常检测方法,且有成本低、稳定性好、精度高,且检测实时性强的特点。
7.为解决所述技术问题,本发明提供了一种基于频率特征分析的电力系统网络异常流量检测方法,其包括如下的步骤:
8.步骤s10,获取电力系统中至少一待检测数据包,并提取每一所述待检测数据对应的传输层的有效载荷作为待测载荷,所述待测载荷包括多个字节;
9.步骤s11,对每一所述待测载荷的中预定位置的标志字节进行格式检查,如果所述待测载荷存在格式异常,则将当前待检测数据包确定为异常数据包;
10.步骤s12,如果所述待测载荷格式正常,则获取每一字节的字节值,计算获得各字节值的频率分布,形成一待测特征向量样本,将每一所述待测特征向量样本与预先设定的多个正常样本、异常样本形成样本空间,并进行k最邻近分类算法(k-nearest neighbor,knn)分类,确定所述待测特征向量样本的分类结果;
11.步骤s13,根据所述分类结果确定每一所述待测数据包是否异常。
12.优选地,所述步骤s11进一步包括:
13.检测所述待测载荷的中预定位置的标志字节的内容是否与对应的固定值相同,如不同,则确定为所述待测载荷存在格式异常,所述预定位置的标志字节为第一字节、第四字
节和最后一个字节,每一字节预先对应一固定值。
14.优选地,所述步骤s12进一步包括:
15.步骤s120,计算获得每一所述待测载荷中每一字节的字节值,字节值的取值范围为[0,255];
[0016]
步骤s121,根据下述公式计算获得每一所述待测载荷中各字节值的频率分布,形成对应的待测特征向量样本:
[0017]
frequencyi=count(i)/len(payload),i∈[0,255]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0018]
bf={frequency0,

,frequency255}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0019]
其中,frequencyi表示待测载荷中取值等于i的字节的频率,count(i)表示待测载荷中取值等于i的字节的数量,len(payload)为待测载荷中字节总数量,bf为待测特征向量样本;
[0020]
步骤s122,将每一所述待测特征向量样本与预先设定的多个同维度的正常样本、异常样本形成样本空间如下:
[0021]
s=[bf1,bf2,...bfi...]m×n,i∈[0,n]
ꢀꢀ
(3)
[0022]
其中,s为代表样本空间,m代表特征维度,n代表样本s中样本的总数量;
[0023]
步骤s123,采用下述公式分别计算每一待测特征向量样本与其他样本之间的距离ρ,根据计算出的所有距离进行升序排序,以每一所述待测特征向量样本k个最近的样本为参考,确定每一所述待测特征向量样本的分类结果:
[0024][0025]
其中,k为预设值。
[0026]
优选地,所述步骤s12进一步包括:
[0027]
步骤s120,计算获得每一所述待测载荷中每一字节的字节值,字节值的取值范围为[0,255];
[0028]
步骤s121,根据下述公式计算获得每一所述待测载荷中各字节值的频率分布,形成对应的待测特征向量样本:
[0029]
frequencyi=count(i)/len(payload),i∈[0,255]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0030]
bf={frequency0,

,frequency255}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0031]
其中,frequencyi表示待测载荷中取值等于i的字节的频率,count(i)表示待测载荷中取值等于i的字节的数量,len(payload)为待测载荷中字节总数量,bf为待测特征向量样本;
[0032]
步骤s125,将获得的每一待测特征向量样本进行降维处理,减少至128维;
[0033]
步骤s126,将降维后的每一待测特征向量样本与预先设定的多个同维度的正常样本、异常样本形成样本空间如下:
[0034]
s=[bf1,bf2,...bfi...]m×n,i∈[0,n]
ꢀꢀ
(3)
[0035]
其中,s为代表样本空间,m代表特征维度,n代表样本s中样本的总数量;
[0036]
步骤s127,采用下述公式分别计算每一待测特征向量样本与其他样本之间的距离
ρ,并根据计算出的所有距离进行升序排序,以每一所述待测特征向量样本k个最近的样本为参考,确定每一所述待测特征向量样本的分类结果:
[0037][0038]
i∈[0,n],j∈[0,n],i≠j
[0039]
其中,k为预设值。
[0040]
优选地,所述步骤s13进一步包括:
[0041]
当待测特征向量样本的分类中异常向量样本多于正常向量样本,则将其对应的待检测数据包确定为异常数据包;否则,将其对应的待检测数据包确定为正常数据包。
[0042]
实施本发明实施例,具有如下有益效果:
[0043]
本发明提供一种基于频率特征分析的电力系统网络流量异常检测方法,通过对待检测数据包的原始传输层有效载荷进行格式分析和内容分析,提取频率分布,采用knn算法进行分类,快速判断是否为异常有效载荷。由于knn算法中使用的knn模型使用实例之间的相似性来进行决策,几乎不存在训练开销,故训练开销比较小;
[0044]
同时,本发明提供的实施例中。由于特征对正常样本和异常样本有很高的区分度,故对超参数不敏感,无需进行太多调整,精度高;该方法可以在少量训练数据的基础上达到较高的精度,不需要额外的超参数调整。实验结果表明,本发明所采用的方法进行电力系统网络异常流量检测的精度超过99%。同时,本发明的方法对大规模网络流量中的dos/ddos攻击有着较好的检测效果,以及对识别蠕虫病毒流量有着较好的检测效果。
附图说明
[0045]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0046]
图1为本发明提供的一种基于频率特征分析的电力系统网络流量异常检测方法的一个实施例的主流程示意图;
[0047]
图2为图1中步骤s12对应的一个实施例的更详细的流程示意图;
[0048]
图3为图1中步骤s12对应的另一个实施例的更详细的流程示意图。
具体实施方式
[0049]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0050]
如图1所示,示出了本发明提供了一种基于频率特征分析的电力系统网络异常流量检测方法的一个实施例的主流程示意图。一并结合图2和图3所示,在本实施例中,所述方法包括如下的步骤:
[0051]
步骤s10,获取电力系统中至少一待检测数据包,并提取每一所述待检测数据对应
的传输层的有效载荷作为待测载荷,所述待测载荷包括多个字节;
[0052]
步骤s11,对每一所述待测载荷的中预定位置的标志字节进行格式检查,如果所述待测载荷存在格式异常,则将当前待检测数据包确定为异常数据包;
[0053]
具体地,在一个例子中,所述步骤s11进一步包括:
[0054]
检测所述待测载荷的中预定位置的标志字节的内容是否与对应的固定值相同,如不同,则确定为所述待测载荷存在格式异常。在一个例子中,所述预定位置的标志字节为第一字节、第四字节和最后一个字节,每一字节预先对应一固定值。
[0055]
可以理解的是,在具体的应用中,电网的流量遵循特定的通信协议。符合同一协议的通信数据包在有效载荷格式等方面是相似的。以某供电局正在应用的通信协议为例。该协议对传输层的有效载荷格式有严格要求。第一个字节、第四个字节和最后一个字节是标志字节。其余的字节被划分为不同的字段,如“数据点识别”和“数据编码识别”等。普通数据包的传输层有效载荷的格式应符合该协议。数据包有效载荷的格式的合法性可以作为识别异常数据包的关键规则。
[0056]
步骤s12,如果所述待测载荷格式正常,则获取每一字节的字节值,计算获得各字节值的频率分布,形成一待测特征向量样本,将每一所述待测特征向量样本与预先设定的多个正常样本、异常样本形成样本空间,并进行knn分类,确定所述待测特征向量样本的分类结果;
[0057]
可以理解的是,在本发明中,正常流量的传输层的数据包的有效载荷可以被视为每个字节的值的序列。这个字节序列包含标志字节和不同的字段,标志字节有一个固定值,字段有一个特定的值范围。即使入侵者通过协议反转来确定标志字节的位置,包含恶意指令的数据包的有效载荷仍然与正常数据包的有效载荷不同。这个序列中不同字节值的出现频率可以反映这种差异,这可以作为识别异常流量的一个重要特征。为方便起见,使用"字节频率"来表示传输层数据包有效载荷中不同字节值的频率。
[0058]
在一个例子中,如图2所示,所述步骤s12进一步包括:
[0059]
步骤s120,计算获得每一所述待测载荷中每一字节的字节值,字节值的取值范围为[0,255];
[0060]
步骤s121,根据下述公式计算获得每一所述待测载荷中各字节值的频率分布,形成对应的待测特征向量样本:
[0061]
frequencyi=count(i)/len(payload),i∈[0,255]
ꢀꢀ
(1)
[0062]
bf={frequency0,

,frequency255}
ꢀꢀꢀꢀꢀꢀ
(2)
[0063]
其中,frequencyi表示待测载荷中取值等于i的字节的频率,count(i)表示待测载荷中取值等于i的字节的数量,len(payload)为待测载荷中字节总数量,bf为待测特征向量样本;
[0064]
步骤s122,将每一所述待测特征向量样本与预先设定的多个同维度的正常样本、异常样本形成样本空间如下:
[0065]
s=[bf1,bf2,...bfi...]m×n,i∈[0,n]
ꢀꢀ
(3)
[0066]
其中,s为代表样本空间,m代表特征维度(此例中为256),n代表样本s中样本的总数量;
[0067]
步骤s123,采用下述公式分别计算每一待测特征向量样本与其他样本之间的距离
ρ,根据计算出的所有距离进行升序排序,以每一所述待测特征向量样本k个最近的样本为参考,确定每一所述待测特征向量样本的分类结果:
[0068][0069]
其中,k为预设值。
[0070]
可以理解的是,上述所采用的分类方法为knn分类算法,可以用来根据字节频率分布来判断有效载荷是否正常,其原理根据与被测样本最接近的k个样本的类别来确定被测样本的类别。其中,k个最近样本中比例最高的类别为待测样本的类别。该k值为预设值,根据实际情况进行标定,如果k值太小,分类结果的准确性可能会下降。如果k值过大,分类结果可能会受到高比例数据的影响。
[0071]
在本实施例中,由于所采用的样本维度为256,由于维度较高,knn分类器的训练时间明显增加。为了减少计算开销,提高模型效率,在其他的例子中也可以采用较少维度的样本,或者将样本维度进行降维处理。
[0072]
下面示出一种采用pca算法(主成分分析算法),将原始特征从256维减少到128维的例子。
[0073]
如图3所示,所述步骤s12进一步包括:
[0074]
步骤s120,计算获得每一所述待测载荷中每一字节的字节值,字节值的取值范围为[0,255];
[0075]
步骤s121,根据下述公式计算获得每一所述待测载荷中各字节值的频率分布,形成对应的待测特征向量样本:
[0076]
frequencyi=count(i)/len(payload),i∈[0,255]
ꢀꢀ
(1)
[0077]
bf={frequency0,

,frequency255}
ꢀꢀꢀꢀꢀꢀ
(2)
[0078]
其中,frequencyi表示待测载荷中取值等于i的字节的频率,count(i)表示待测载荷中取值等于i的字节的数量,len(payload)为待测载荷中字节总数量,bf为待测特征向量样本;
[0079]
步骤s125,将获得的每一待测特征向量样本进行降维处理,减少至128维;
[0080]
具体地,在一个例子中,采用pca算法进行降维处理,其大致处理原理如下:
[0081]
以m维(256)特征空间为例,pca算法从原m维空间中找到一组相互正交的新坐标轴。选择原始空间中的最大方差方向作为第一坐标轴,选择与第一坐标轴正交的平面中的最大方差方向作为第二坐标轴,选择与第一和第二坐标轴正交的平面中的最大方差方向作为第三坐标轴。根据这个类比,选择h个(128)新的坐标轴,通常是m》h;从而实现降维过程。
[0082]
步骤s126,将降维后的每一待测特征向量样本与预先设定的多个同维度的正常样本、异常样本形成样本空间如下:
[0083]
s=[bf1,bf2,...bfi...]m×n,i∈[0,n]
ꢀꢀ
(3)
[0084]
其中,s为代表样本空间,m代表特征维度,n代表样本s中样本的总数量;
[0085]
步骤s127,采用下述公式分别计算每一待测特征向量样本与其他样本之间的距离ρ,并根据计算出的所有距离进行升序排序,以每一所述待测特征向量样本k个最近的样本
为参考,确定每一所述待测特征向量样本的分类结果:
[0086][0087]
i∈[0,n],j∈[0,n],i≠j
[0088]
其中,k为预设值。
[0089]
步骤s13,根据所述分类结果确定每一所述待测数据包是否异常。
[0090]
具体地,所述步骤s13进一步包括:
[0091]
当待测特征向量样本的分类中异常向量样本多于正常向量样本,则将其对应的待检测数据包确定为异常数据包;否则,将其对应的待检测数据包确定为正常数据包。如果异常,则可以触发后续的报警处理操作。
[0092]
实施本发明实施例,具有如下有益效果:
[0093]
本发明提供一种基于频率特征分析的电力系统网络流量异常检测方法,通过对待检测数据包的原始传输层有效载荷进行格式分析和内容分析,提取频率分布,采用knn算法进行分类,快速判断是否为异常有效载荷。由于knn算法中使用的knn模型使用实例之间的相似性来进行决策,几乎不存在训练开销,故训练开销比较小;
[0094]
同时,本发明提供的实施例中。由于特征对正常样本和异常样本有很高的区分度,故对超参数不敏感,无需进行太多调整,精度高;该方法可以在少量训练数据的基础上达到较高的精度,不需要额外的超参数调整。实验结果表明,本发明所采用的方法进行电力系统网络异常流量检测的精度超过99%。同时,本发明的方法对大规模网络流量中的dos/ddos攻击有着较好的检测效果,以及对识别蠕虫病毒流量有着较好的检测效果。
[0095]
以上所述仅为本发明的较佳实施例,并非用以限定本发明的权利要求范围,因此凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含于本发明的权利要求范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1