基于深度神经网络的电力无线终端安全接入测试
2023-10-31吕磅韩嘉佳孙歆戴桦李沁园孙昌华
吕磅,韩嘉佳,孙歆,戴桦,李沁园,孙昌华
(国网浙江省电力有限公司电力科学研究院,杭州 310014)
0 引言
近年来,针对电力能源行业中国家级、集团式网络的安全攻击事件频发,电网网络安全形势异常严峻,已成为网络安全的主战场。据国家互联网应急中心统计,工控系统漏洞呈现连年高发态势,网络安全攻击形式日渐多元,攻击技术手段更加先进,对网络安全和能源行业造成了严重影响。2010年的伊朗布什尔核电站的离心机损毁事件,2019年的乌克兰电网大规模停电事件,2019年的美国可再生能源电力公司通信中断事件,2019年的委内瑞拉电力系统大范围停电事件,2020年的葡萄牙能源公司用户数据加密勒索事件以及2022年俄乌战争期间乌克兰电网大规模瘫痪事件,表明了针对能源网络基础设施的攻击事件日益增加。
从上述攻击事件可以看出,由于接入终端所处环境的开放性,利用各类接入的外部无线终端设备、软件、第三方交互接口作为渗透内网的攻击跳板成为关注重点。以聚合负荷云平台为代表用户侧负荷控制的新型电力系统通过互联网远程控制接入终端,由于终端侧缺乏必要安全防护,存在容易被攻击者入侵控制的安全风险。因此,如何将传统的多级内部防御机制扩展到网络末梢的接入终端处,是目前亟待解决的问题。
新型电力系统网络安全防护面临来自终端设备、通信网络、应用系统等环节的安全风险。在终端设备环节,海量物联终端、分布式电源、电动汽车、智能电表等源荷终端设备接入电力内网双向互动,不完善的终端安全准入,可能导致黑客伪造接入,恶意渗透或监听,甚至对业务发起攻击与控制。攻击者一旦获得信息内网、公网或无线网通道接入权,将导致信息被非法截获与业务控制指令被恶意篡改,特别是无线通信,更容易面临通信内容被窃听、内容篡改和通信双方身份被仿冒等问题。针对无线接入终端的安全性测试可以及时发现存在的安全问题。
一般来说,无线局域网设备安全测试一般包括基于误用和基于异常的安全测试[1]。基于误用的测试系统通过匹配预定义的测试用例来实现安全性测试,通过观察偏离预定义特征的流量,发现测试异常,在检测已知攻击方面很有效,并且具有较高的检测精度和较低的误报率,但在检测未知或新的攻击时,由于预先安装在安全测试系统中的规则的限制,其性能会受到影响;基于异常的安全测试可能识别未知的入侵行为,非常适合检测未知的和新的攻击。尽管容易产生较高的假阳率,但其在识别新的攻击方面的理论潜力已经得到了广泛认可。本质而言,基于异常的安全测试可以看作是一个分类问题,它通过将网络流量分为正常和异常来确定网络攻击。因此,基于机器学习算法的人工智能可以有效促进安全测试系统的发展。另一方面,由于安全测试数据集特征多维,且特征大多冗余,因此,目前提出了许多基于冗余特征提取的安全测试方法。
Shone等[2]提出一种网络安全测试模型,构建深度非对称自编码网络,提取到具有较强学习能力的网络流量数据特征属性,再与支持向量机方法结合,对网络攻击行为进行分类。Thing[3]构建了稀疏自编码器模型,并结合softmax分类器实现对网络攻击行为的分类检测。Aminanto等[4]采用稀疏自编码器模型提取网络流量数据原始特征的新特征表达,并通过对所有的原始特征和新特征进行重要级排序,筛选出与网络安全测试最相关的重要特征,然后结合SVM(支持向量机)方法对网络攻击行为进行识别与分类。Shon等[5]采用遗传算法,对流量数据进行特征选择,并使用SVM进行安全测试。Srinoy[6]提出了一种安全测试模型,该模型使用SVM粒子群优化算法提取特征,再采用SVM进行分类。Fei等[7]提出了一种基于密度的增量聚类方法。Horng等[8]使用分层聚类算法为SVM提供更少、更高质量的训练实例。为了克服安全测试系统中的不确定性问题,Kavitha等[9]采用了一种被称为中性逻辑的新技术。Wu和Banzhaf[10]提出了入侵中的计算智能的审查检测和应用数值评估措施来量化安全测试系统的性能。Kolias和Kambourakis[11]给出了安全测试中群智能的调查。Kuang等[12]提出了一种基于主成分分析和遗传算法的模型,采用主成分分析提取入侵特征,利用遗传算法优化参数。Li等[13]在安全测试系统中提出了数据预处理和数据挖掘流水线,并逐步采用特征去除法进行特征约简分类。以上研究为高维数据的特征提取及入侵分类提供了思路,但它们多数采用数据集KDD CUP99、NSL-KDD进行实验。本文提出改进的堆叠稀疏自编码器和深度神经网络无线局域网的安全测试模型,并采用无线网络攻击行为数据集-爱琴无线数据集[14]AWID进行实验验证,和未改进的模型相比,提高了异常安全测试系统的准确率。
本文提出了一种基于深度神经网络的无线接入安全测试系统,该系统采用堆叠稀疏自编码器实现测试数据集的特征降维,并选取合适的特征维数进行训练,即将选取的特征作为深度神经网络的输入层,构建高效测试用例并监测发现异常状态。该系统可对电力移动设备安全接入环境的安全异常进行有效发现,提高了安全性能。
1 无线接入设备安全测试框架
1.1 安全测试框架概述
本文所述安全测试框架包括数据预处理、训练模型及测试模型3个部分。数据预处理模块首先完成原始数据的数值化及归一化处理;训练模型模块使用预先准备的训练集数据进行模型训练,得到训练完的模型并保存,然后利用模型对测试数据进行检测。训练模型采用堆叠稀疏自编码器进行特征选择,然后将其作为深度神经网络的输入,进行分类。为了得到较好的检测效果,深度神经网络包含3层隐藏层和防止过拟合的dropout层,同时采用网格搜索法对神经网络各项参数、方法进行优化,如图1所示。
图1 电力无线接入设备安全测试框架Fig.1 Security testing framework of wireless power terminal
1.2 测试数据预处理
测试数据一般正常流量数量远远高于攻击流量,训练集和测试集都为不平衡数据集,这样会影响训练效果,所以需要对数据集进行平衡采样。
数据集中不同特征的值域相差过大,为了消除这种差别对于模型的影响,对数值型数据进行归一化。本文采用最值归一化,将属性值映射到[0,1]之间,如式(1)所示。
式中:yi为第i个特征值归一化后的值;xi为第i个特征值;max(x)为某个特征列中最大值;min(x)为某个特征列中最小值。
1.3 基于堆叠稀疏自编码器的特征选择
原有测试数据存在特征维度过高问题,严重影响训练模型的时长以及测试模型的准确率。本文采用了堆叠稀疏自编码器进行特征选择。因此,首先分析单个稀疏自编码器的结构,通过对比实验来确定稀疏自编码器的激活函数和损失函数,从而完成堆叠稀疏自编码器的设计。
稀疏自编码器是一种输入维度等于输出维度的神经网络。如图2所示,其由编码器和解码器两部分构成,将原始特征作为输入层,经过编码器编码,将原始高维特征经过非线性转换映射到低维特征集合上,再经过解码器重构为原始维度。
图2 单个稀疏自编码器结构Fig.2 Structure of a sparse autoencoder (SAE)
从输入层到隐藏层的编码过程按式(2)进行。
从隐藏层到输出层的解码过程按式(3)进行,解码完成了对特征的重建。
式中:wa、ba、wh、bh分别为输入层的权重向量和偏置值以及隐藏层的权重向量和偏置值;X=(x1,x2,x3,…,xn),Y=(y1,y2,y3,…,ym),Z=(z1,z2,z3,…,zn),X,Z∈Rn,Y∈Rm,其中,n为输入层和输出层的维度,m为隐藏层的维度;ga和gh为激活函数。
本文通过比对各种激活函数的效果,发现tanh激活函数实现的效果较好,因此,ga和gh的计算如式(4)所示。
式中:xt为激活函数的输入数据。
为了防止自编码器模型过拟合,对模型添加正则化项,限制模型的复杂度,从而使模型在复杂度和性能之间达到平衡。采用L1正则化,表达如式(5)所示。
式中:α||w||1为L1正则项,L1正则化是指权值向量w中各元素的绝对值之和。L1正则化对解空间添加的约束为:∑||w||1≤C,L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择,也可以防止过拟合。
L2正则化的表达如式(6)所示。
式中:为L2正则项,L2正则化是指权值向量w中各元素的平方和。L2对解空间添加的约束为:≤C,L2可以防止模型过拟合。
通过实验数据,选择合适的激活函数与正则项。通过实验数据对比,采用tanh作为激活函数以及L2正则项效果较好。
为了更好地实现数据降维,本文采用3个稀疏自编码器进行堆叠,3个自编码器提取的维数逐层降低,从而实现特征降维的效果。如图3所示,首先用第一个编码器进行数据压缩,将其隐藏层特征输出作为第二个编码器的输入,再经过第二个编码器将特征进行压缩,将其隐藏层特征输出作为第三个编码器的输入,最后输出第三个编码器提取到的低维特征。本文采用的堆叠编码的结构为第一层提取70维特征,第二维提取50层特征,第三层为最终特征20维,将提取到的20维特征输出。
图3 堆叠稀疏自编码器结构Fig.3 Structure of stacked sparse autoencoders (SSAE)
1.4 基于深度神经网络的异常识别
深度神经网络输入为堆叠稀疏自编码器模型降维后的20维特征。隐藏层包含3层,第1层为128个神经单元,第2层为64个神经单元,第3层为32个神经单元,层与层之间全连接,即第i层的任意一个神经元与第i+1层的任意一个神经元都有连接。同时,为了防止模型过拟合,添加了dropout层,可以有效缓解过拟合,在一定程度上还可以达到正则化的效果。最后在深度神经网络后面连接一个softmax分类器,用于解决多分类问题。其架构如图4所示。
图4 深度神经网络结构Fig.4 Structure of deep neural networks (DNN)
本文采用网格搜索法对深度神经网络的各种参数进行自动寻优,从而达到优化模型的效果。网格搜索法采用穷举的方法列出各种参数组合可能,基于性能最优判断,进一步通过交叉验证获取学习算法的函数参数。例如,对超参数epochs和batch_size进行优化,会将多组参数组合取得的实验效果进行比较,从而选择效果较好的参数赋给模型来提高测试分数。在本模型中进行优化的参数有activation(激活)、epochs(迭代次数)、batch_size(批量大小)、init_mode(初始化模式)和optimizer(优化器),通过调节这些参数来提高模型的性能。
2 系统实现与实验
2.1 神经网络模型构造
本文的训练模型自编码器部分采用多层神经网络结构,其中输入层含有92个神经元,输出层与输入层神经元个数相同,自编码器又由3个编码器和3个解码器构成,因为自编码器为对称结构,编码器和解码器分别为70:50:20和20:50:70。其中20为隐藏层的向量,可以看作是编码器的最终压缩向量,即为最后提取的特征,作为下一步训练神经网络的输入特征。图5(a)和图5(b)显示了提取到不同特征对模型的影响,因此,压缩维度对于模型测试有着重要的影响,其中维度压缩在20维效果较好。
图5 压缩维度对测试模型性能的影响Fig.5 Effect of compressed dimension on test model performance
2.2 实验与结果分析
DNN(深度神经网络)的输入为自编码器隐藏层压缩后的20维特征,且含有3层隐藏层,隐藏层神经元结构为128:64:32,以及防止过拟合的dropout层,输出层为一个softmax分类器,将输出4种类别。在此模型中,添加了GridSearchCV,用来查找每个参数的最优状态,从而提高模型的准确率。从图6和图7可以看出,epochs和batch_size的改变对模型准确率提高有影响,其中当batch_size为40、epochs为50时效果较好;当权重初始化方法为uniform时,模型的效果较好。
图6 不同epochs和batch_size对模型的影响Fig.6 Effect of different epochs and batch_sizes on the model
图7 不同的权值初始化方法对模型的影响Fig.7 Effect of different weight initialization methods on the model
从图8和图9可以看出,不同的激活函数activation和optimizer的改变对模型准确率提高有影响。其中,当activation为softmax、optimizer为RMSprop时效果较好。
图8 输出层激活函数activation对模型的影响Fig.8 Effect of activation functions in output layer on the model
图9 optimizer对模型的影响Fig.9 Effect of optimizers on the model
分类模型最常用TP(真阳性)、FP(假阳性)、TN(真阴性)、FN(假阴性)来衡量模型的有效性。本文对安全性能的分析衡量指标选取ROC(接收者操作特征)曲线,ROC曲线为以假正率为x轴,以真正率为y轴做出的曲线。AUC即ROC特征曲线下面的面积,AUC越大分类器性能越好。图10显示了本文模型的ROC曲线。
3 结语
本文设计并实现了一个面向电力移动设备无线接入环境的安全测试系统,重点研究了基于流量特征的安全异常发现。通过堆叠稀疏自编码器和深度神经网络构造,首先对测试数据集进行数据特征降维,并选取合适的特征维数进行训练,即将选取的特征作为深度神经网络的输入层,构建高效测试用例并监测发现异常状态。该系统可用于挖掘接入设备的安全问题,具有一定的实用价值。