APP下载

基于深度学习的电力信息网络流量异常检测

2022-01-23杜浩良孔飘红金学奇黄银强

浙江电力 2021年12期
关键词:网络流量卷积电网

杜浩良,孔飘红,金学奇,黄银强

(1.国网浙江省电力有限公司金华供电公司,浙江 金华 321000;2.国网浙江省电力有限公司,杭州 310007)

0 引言

在智能电网数字化进程中,通信技术得到广泛应用,与此同时,电网环境中的网络攻击也越来越多[1]。例如乌克兰“暗黑力量”事件曾导致整个电网控制系统瘫痪,造成重大影响,可见电力网络安全防护措施的有效性需要得到切实保障。

在工业控制系统中,应用最广泛的是电力行业,其接近一半的工业控制系统是变电站自动化系统。变电站自动化程度的提高,离不开网络通信的配合,对智能变电站而言,需要远程监视、远程调控和实现与相邻变电站以及电网调度中心的互动,通信网络与外界频繁进行数据交换,智能变电站网络安全问题也因此受到高度重视。

智能电网的安全措施主要分为检测和防御。检测是指通过分析智能电网中的恶意行为并采取一系列的预警措施;防御[2]重视边界的防护,包括控制网闸开关、防火墙、可信技术等手段保障数据安全。通过对网络流量行为进行分析,检测网络的安全状态[3],及时发现网络攻击,利用流量异常检测技术提高电网安全等级[4],确保在电力系统稳定运行的基础上提高电力系统的智能化水平。

网络攻击分为面向通信网络性能的攻击和面向数据的攻击。关键信息的报文数据传输网络是智能变电站乃至电网控制的基础,通信设备异常、通信延迟等均会影响通信网络性能,尤其是以拒绝服务攻击为代表的网络攻击,通过恶化甚至失效信息流的实时性功能,对电网安全稳定构成严重威胁。

传统的异常检测方法包括签名分析方法[5]、统计分析方法[6]和阈值分析方法[7]。通过对已有的恶意网络流量数据的分析来设定参数,这些方法主要以专家经验为主,难以针对大规模数据进行分析。

随着机器学习的快速发展,神经网络广泛应用于异常检测以识别和分类网络层面的攻击。基于机器学习的异常检测方法分为特征的选择和提取、分类方法2 个主要步骤。提取和选择特征的方法主要有PCA(主成分分析)[8]、基于相关性的CFS(特征选择)方法[9]等,传统分类模型有SVM(支持向量机)[10]、KNN(K 最近邻)[11]、朴素贝叶斯和决策树[12]等。上述模型在KDD99 数据集中取得良好的效果,但KDD99 数据集包含的攻击数据与现实复杂网络环境相比较为简单,难以模拟真实的网络环境。Eesa 等人从原始流量数据中学习特征,改进流量特征以获得较高的检测率和较低的虚警率[13]。

深度学习在异常检测方面展现出良好的性能,RNN(递归神经网络)常用于分析序列信息,LSTM(长短期记忆)网络是RNN 的一个分支,在自然语言处理等序列信息分析应用中表现良好。文献[14]比较了RNN-LSTM 网络与GRNN(广义回归神经网络)、KNN、SVM、贝叶斯等算法在KDD99 数据集上的表现,在测试中表现出良好性能。

智能电网中缺少具有攻击行为的数据集,但传统网络流量数据集又不具备电网特性,故选取相关性特征作为预处理数据,在CIC-IDS-2017数据集上实验。由于不同攻击行为存在着种类以及目标的差异,导致已有的攻击行为数据量存在不均匀的现象。例如,DDo 攻击由于其目标层次比较低,攻击成本较小,在样本中的比例较高,导致模型精度普遍表现良好。深度学习的训练依赖大量数据样本,在不平衡数据集上训练模型是一项具有挑战性的任务。为应对上述挑战,本文针对电网系统网络流量进行分析,提取具有电网流量特性、对应有多种网络攻击的数据集作为样本集。

1 模型

1.1 LSTM 网络

LSTM 网络是一种循环神经网络,适用于处理时序型数据。通过门控制将短期记忆和长期记忆结合,在一定程度上解决了梯度消失的问题[15]。LSTM[16]是通过3 个门来控制,分别为遗忘门ft、输入门It和输出门Ot,原理如图1 所示。其中,遗忘门判断上一时刻需要保留的记忆信息,输入门判断此刻需要的记忆信息,输出门判断输出的记忆信息,St表示记忆细胞。

图1 LSTM 原理

式中:xt表示t 时刻的输入序列;ht表示上一时刻的输出向量;tanh 表示双曲正切激活函数;σ表示sigmoid 激活函数;Wf,Wi,Wo,Ws表示对应部分的权重系数矩阵;bf,bi,bo,bs表示对应的偏移量。

1.2 CNN(卷积神经网络)

CNN 是MLP(多层感知机)的变种,通过采用局部连接和权值共享的方式减少权值的数量来优化网络,降低了模型的复杂度。CNN 主要包括卷积层、池化层和全连接层,卷积层负责提取对应的数据特征,卷积核越多,提取的特征越抽象;池化方式分为平均池化、最大池化等方式;全连接层的作用是将经过池化后的神经元展开为一维向量形式,便于数据进行处理。

1.3 CNN-LSTM 模型

智能电网中的安全检测是指检测电网环境中具有恶意行为的网络流量。通过分析流量数据,输出攻击行为的概率,将安全检测问题转化为攻击行为的分类问题。

流量分类器采用CNN 和LSTM 相结合的方式对智能电网信息流量包进行学习和分类。分类器的整体架构如图2 所示,分类器由CNN 系统和LSTM 系统组成,CNN 系统由输入层、卷积层、池化层和全连接层组成,LSTM 系统由LSTM层、全连接层、Softmax 层和输出层组成。预处理KPL 文件经CNN 系统处理,返回一个高维向量包传送到LSTM 系统,LSTM 系统对一系列高维向量进行包处理,并输出属于每一类的概率,同时Softmax 层根据概率输出分类的最终结果。

图2 CNN-LSTM 模型结构

CNN 的前一个卷积层和池化层中使用小卷积核的卷积层来提取流量图像中的局部特征,如IP 和端口,在池化层中可以获得清晰的特征。后一个卷积层和池化层中使用大卷积核分析相距较远的特征之间的关系,经预处理和编码,网络流量作为输入层的输入向量。卷积层表达式如下:

式中:f 是卷积核大小;b 为偏置;w 是权重矩阵;c 是卷积核数量;l 是层数;S 是步幅;Z(i,j)为对应特征图的像素;x 和y 分别表示数据包中的x字节和有效负载中的y 字节。

卷积层中包含式(7)所示的激活函数,适用于复杂特征的表达。

式中:k 为特征图中通道数;A 表示Z 向量通过激活函数的输出向量。2 个卷积层分别使用sigmoid 函数和ReLu 函数。

卷积层经特征提取后,将输出传送到池化层进行特征选择和信息过滤。池化层中包含一个预设的池函数,该函数将特征映射中单个点的值替换为其相邻区域的特征图统计量,池化层由式(8)计算,p 是预先指定的参数。

通过反向传播算法来调整模型参数,在权重调整式(9)中,w 为权重矩阵,δ 是损失函数的增量误差,α 是学习率。

经过2 次卷积和池化操作,将整个流量图像提取成一个较小的特征块来表示整个流量包的特征信息,并作为LSTM 层的输入。

LSTM 系统主要功能由2 个LSTM 层来实现。LSTM 层中的第一步是将单元状态中的部分信息选择性丢弃,由遗忘门依据式(10)来计算丢弃程度。通过读取ht-1和xt,在细胞状态下向每个数字输出0 到1 之间的值(1 表示“完全保留”,0 表示“完全丢弃”)。W 和b 分别是神经网络中的权重和偏差,xt表示t 时刻的输入序列,ht-1表示上一时刻的输出向量。

激活函数依据式(11)决定部分信息需要更新,tanh 函数依据式(12)生成一个向量作为更新的替代,tanh 表示双曲正切激活函数。将两部分合并,以更新单元状态,见式(13)。

输出门确定输出,sigmoid 函数决定细胞状态的部分被导出,见式(14),通过tanh 函数处理单元状态,得到-1 到1 之间的值,依据式(15)计算确定输出。

本文模型中,流量数据的n 个数据包的特征映射作为LSTM 部分的输入,通过2 个LSTM 层分析n 个数据包之间的特征关系。

预处理后的数据如表1 所示,数据样本类型是不均匀的,其中类型0 的数量最多,类型2 和类型4 的数量最少。不均匀样本将会影响最终的学习效果,当机器将所有流量判断为0 型,模型的精度似乎相对较高,但并未准确检测。引入类的权重来解决不均匀样本问题,分类中不同样本数的类被赋予不同的权重。

表1 CIC-IDS-2017 每个类别的数据量

根据样本数设置权重,类权重计算如式(16)所示:

式中:wi表示i 类的类权重;ni表示i 类的流量。

在训练模型时,加权损失函数使模型更加关注来自数量不足的类的样本。损失函数J 的定义如下:

式中:K 是类别的数量;y 是标签(如果样本类别是i,则i=1;否则i=0);q 是神经网络的输出。

2 实验分析

2.1 电力工控系统网络流量特征工程

电力工控系统作为一个特殊的网络,与传统的网络流量相比存在较大差异,具有以下独特性:

1)电力网络流量数据具有周期性,设备在固定时间内请求或上传数据。

2)电力网络流量数据的IP 地址相对固定,向指定地址的设备请求或上传数据。

3)电力网络中报文数据的长度范围较窄,但传输数据的频率较高。

4)对实时性要求比较高。

实验采用变电站网络流量数据,数据集内包括从系统上抓取的网络流量(即pcap 文件),用于构建网络流量模型。从电力工控网络实际特性出发来提取合适的流量特征,有助于提升所构建模型的精确度。

从流量中解析字段,可从网络数据包的头部提取得到IP 地址、目的IP 地址、源端口号、目的端口号、源MAC 地址等属性,详情如表2 所示。同时利用电力网络流量的特征构造带有时间序列的特征。

表2 流量解析字段

网络流量呈现出周期性特点,选取时间字段ts 作为流量周期性的特征信息;IP 地址是流量传输的关键信息,选取IP 地址字段的src_ip,des_ip,src_port,des_port 作为流量地址信息特征;根据报文数据的长度和类型,选取data_unit和info 作为对应特征。

在时间窗口对窗口内所含网络流量特征向量原始数据实施统计分析,建立包括时间窗内流持续时间、两个流之间的平均时间和数据包平均大小等在内的统计特征。从数据集的80 个特征中提取出14 个电网属性特征,具体如表3 所示。

表3 电网属性特征

2.2 CIC-IDS-2017 数据集

本文采用加拿大网络安全研究所[12]公开的IDS 数据集CIC-IDS-2017 评估系统性能。相比于KDDCUP99 数据集,该数据集收集了真实的原始网络流量数据,由280 万个标记流组成,包含如Port Scan,Web Attacks,Brute Force,Botnets,DoS,DDoS 等14 种不同类型的攻击。

本文采用ACC(准确性)、TPR(真阳性率)、FPR(假阳性率)和F1-score 4 个常用参数来评估模型。ηACC代表模型的整体性能,ηTPR代表当前正样本中真实正样本与所有正样本的比值,ηFPR代表错误分配给正样本类型的真实负样本与所有负样本总数的比值,ηF1-score是分类器精度的得分,ηPrecision表示精确度,ηRecall表示召回率。

式中:ηTP是正确分类为此类型的样本数量;ηTN是正确分类为非此类型的样本数量;ηFP是错误分类为此类型的样本数量;ηFN是错误分类为非此类型的样本数量。

2.3 数据集预处理

原始数据预处理流程如图3 所示:先将PCAP文件转换为模型输入数据,再通过时间划分、流量分割、KPL 文件生产和one-hot 编码生成矩阵。

图3 数据预处理流程

2.4 实验分析

在数据集中,正常数据占比较大,大大影响了整个数据集准确率的有效性。加权损失函数使模型更加关注来自数量不足的样本类重量对模型性能的影响。表4 显示了有、无类型权重的结果比较。引入类型权重可以减小数据集中各种类型数据不平衡对模型性能的影响。

表4 应用类型权重对模型性能的影响

LSTM 模型可有效提取数据包之间的时序关系,表5 给出了本文模型添加CNN 后与单独使用CNN 或LSTM 模型的结果对比,可以看出,添加CNN 进一步提高了大多数攻击流量的识别准确率。为进一步分析分类结果,从图4 所示混淆矩阵可以看出,BENIGN,Port Scan,DDoS 和DoS Hulk 4 种主要类型有较好的表现。同时类型攻击的错误分类主要局限在其攻击类型内部,例如Web Attack-XSS 的网络攻击,如果分类错误,很可能被归类为Web Attack B.F 中。

表5 CNN,LSTM 和CNN-LSTM 结果对比

图4 混淆矩阵

表6 显示了使用本文方法与传统机器学习算法的模型比较。可以看出,本文方法实现了它们之间的最佳性能,具有最大的ηACC和最低的ηFPR。同时在SVM,KNN,DT,RF 4 种算法中,以DT的运行时间最短,本文方法略高于DT,但相较于其他模型有较大提升。

表6 结果分析

3 结论

电力系统的安全稳定运行与社会生活息息相关,面对越来越复杂的电力信息网络环境,本文提出了一种基于深度学习的电力信息网络流量异常检测模型,利用CNN 和LSTM 的混合模型,从网络数据流中提取特征来分析网络流量。

结果表明,混合模型与仅CNN 模型和仅LSTM 模型相比,在所有攻击类型的检测准确率上都有3%以上的提高。本文取得以下成果:

1)提出了一种基于CNN 和LSTM 混合网络的异常检测方法,通过CNN 和LSTM 网络分别提取单个数据包的空间特征和数据流的时间特征,提高了异常检测系统的性能。

2)模型在训练阶段使用类别权值进行优化,减少了样本中攻击类型不平衡的不利影响,提高了模型的鲁棒性。

本文基于数据驱动的方法提升了对不同类型电力信息网络的异常检测,在确保准确率的同时保证了时效性。模型能适应复杂状况下的应用场景,如在变电站通信网络中增加流量数据库种类,识别不同网络异常状态下变电站中各层级网络的流量数据,确保大规模工业控制网络的安全。但该模型还存在一定的缺陷,包括Heartbleed和SSH Patator attack 的检测精度较低,主要原因是训练集中缺乏对应类型的负样本量。针对样本不平衡与缺少攻击样本数量的状况,可以采用GAN 等方法生成负样本数据集做进一步研究。

猜你喜欢

网络流量卷积电网
基于多元高斯分布的网络流量异常识别方法
穿越电网
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于神经网络的P2P流量识别方法
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
AVB网络流量整形帧模型端到端延迟计算
电网也有春天
一个电网人的环保路
电网环保知多少