面向电力客户侧终端网络的高效入侵检测模型研究

2022-05-06 12:29任志航
电测与仪表 2022年5期
关键词:特征选择编码终端

任志航

(许继集团有限公司,河南 许昌 461000)

0 引 言

当前电力通信系统中的安全威胁逐渐增多[1-2],特别是客户侧终端等信息化设备具有运营成本高、数据价值大、社会影响广等特点,未来可能成为网络攻击的重要目标。

客户侧终端负责将计量设备、充电桩、光伏设备等产生的业务数据上传到主站,以及将主站控制信息下发。未来,客户侧终端将承担“感知数据总入口,控制指令总出口”的任务,并逐步具备“全接入、全采集、全控制”的能力。客户侧终端一旦遭到攻击,可能会造成严重的经济损失和社会不良影响。

然而,当前针对客户侧终端网络场景的入侵检测研究相对较少,特别是缺少针对该场景下检测效率的研究。例如:文献[3]采用多网络特征统计分析的技术设计了智能电网入侵检测模型,但仅面向特定的应用环境。文献[4-5]提出了针对智能电网等环境下的入侵检测,但存在计算开销大、运行时间长等缺点。

相关研究表明,提升入侵检测效率,可以通过数据降维和选取高效率的入侵检测方法等来实现。例如可以通过特征选择来过滤噪声,避免过拟合,降低数据采集和攻击检测时的计算开销。特征选择问题可以转换为离散空间中的优化问题,并通过BPSO(Discrete Binary Particle Swarm Optimization Algorithm)等算法有效解决[6]。但BPSO容易出现过早拟合、陷入局部最优等情况[7],针对这些问题,可以引入变异来对BPSO算法进行改进[8]。

LightGBM(Light Gradient Boosting Machine)是一种新兴的机器学习方法,具有准确度高、速度快、内存占用少等优势,在近年来得到了广泛应用[9],但也存在参数较多、不易优化等问题[10]。

1 客户侧终端网络入侵检测模型

1.1 威胁分析与检测要求

客户侧终端与主站间的网络拓扑形式及入侵检测设备的部署位置如图1所示。客户侧终端设备或主站设备可能面临来自开放网络、其他终端设备或自身硬件接口的攻击。随着通信技术的发展,客户侧终端将采用更加多样化的联网方式和主站连接,因此来自开放网络上的安全威胁会日益增加。

图1 客户侧终端网络拓扑Fig.1 Client side terminal equipment andnetwork topology

入侵检测设施应部署在客户侧终端附近的网络位置上,以旁路方式接入网络,完成对网络协议、流量等特征的获取、处理和入侵检测等功能。

客户侧终端设备及应用系统中的入侵检测方法,针对特定攻击类型,应同时具备较好的识别能力,较高的检测效率和良好的自适应性。

首先,客户侧终端及应用系统面临的网络安全威胁和一般互联网应用有相似性,但面临的应用层威胁较少,来自操作系统或网络的威胁相对较多。从攻击手段上看,电力系统中可能出现的攻击类型包括:拒绝服务、漏洞利用、信息收集等[11]。此外,攻击者还可能利用模糊攻击(Fuzzers)等方式对客户侧终端和主站之间的应用层加密协议进行攻击。针对上述特点,在进行入侵检测时,应更多地对网络协议和流量特征等进行分析,根据端口、协议、包长等信息,对攻击进行识别和分类。

其次,客户侧终端具有数量大、部署分散等特点。高效率的检测方法,在保障及时性的同时,还有助于降低硬件要求,在大规模部署入侵检测系统时,能有效地降低总成本。此外,结合国家电网当前的“用采系统2.0”规划,高效率的入侵检测方法更容易以容器化方式部署在公共设备之上。这也意味着某些过于复杂的深度学习方法可能不适合应用于上述场景[5]。

最后,考虑到联网方式的多样性和部署时的特殊情况,不同入侵检测设备对网络特征的采集能力和采集内容可能有所不同。因此入侵检测方法应具有良好的自适应能力,即针对不同的网络特征信息,均能完成高效率的入侵检测。

1.2 入侵检测模型设计

提出的面向客户侧终端的网络攻击检测(NIDS)模型如图2所示。

图2 面向客户侧终端的网络攻击检测流程Fig.2 Client-side terminal-oriented networkattack detection process

在保证检测效果的前提下,为了提升检测效率,降低处理开销,模型中设计了如下机制:

(1)通过引入改进的目标编码机制,在不增加数据维度的情况下实现更有效的离散数据编码;

(2)基于改进的BPSO算法进行特征选择。降低监控数据的采集开销和入侵检测算法的处理开销,同时降低数据噪声;

(3)通过PSO算法对LightGBM参数进行自动寻优,实现对网络攻击的高效检测,以及对常见攻击进行分类。

2 类别特征编码

2.1 编码算法分析

特征数据包含多种数据特征,一是诸如连接时间、包长度等连续特征;二是诸如协议类型、连接状态等类别特征。在进行异常检测之前,需要将特征编码成数值。常见的变量编码方式有标签编码[12]、独热编码[13]和目标编码[14]等。

标签编码的问题在于将分类之间的无序关系变成了顺序关系,使得一些算法中的距离计算产生误差。虽然基于树的机器学习算法不会进行距离计算,但算法的扩展和改进会受到限制。

独热编码的优点在于距离计算更加合理,缺点在于显著增加了数据维度,降低处理效率。此外,独热编码会将特征信息变得稀疏,导致基于树结构的算法性能下降。

目标编码是一种有监督的编码方式,该方法将离散类型列映射为该类别目标的后验概率,这样可以直接将该列与目标列建立联系,且不会增加数据维度。在实际编码时,目标编码会引入平滑项为缺失值编码,但并未对实现方法做具体规定。LightGBM算法中自带了类别特征编码方法,其主要思想和目标编码相似,但引入了自定义的约束条件和正则化条件。

2.2 类别特征编码算法设计

针对特征数据中的类别变量,在目标编码的基础上,提出一种新的平滑项计算方法,以解决特征取值数量过少时引起的编码困难问题。同时,在编码流程上,引入了20折交叉编码机制,以降低过拟合风险。

2.2.1 编码公式

编码采用有监督的处理方式,映射方法如式(1)所示[14]:

(1)

式中的前一项为平滑项,后一项为特征取值的期望值;x(j)为特征当前取值;y为目标列;E(j)为当前特征取值对应编码值;S为样本总数量;Ⅱ为指示函数;S(j)为取值j的样本总数量,如式(2)所示:

(2)

当某个特征取值数量较少时,其期望值可能存在较大噪声,而当某个特征取值在训练集中未出现,但在测试集中出现时,其期望值无法计算。为解决该问题,提出一种平滑系数β(j)的计算方法,如式(3)所示:

(3)

式中S_min为平滑门限值,大小设置为S的0.5%。当前特征取值S(j)的数量多于S_min时,编码值为当前取值的目标平均值。当取值少于S_min时,编码值由目标平均值和平滑项共同组成,平滑项的占比与S取值数量有关。当某个特征取值在训练集中未出现,只在测试集出现时,编码值完全由平滑项构成。

2.2.2 编码流程

编码流程如图3所示。

图3 引入平滑因子的目标编码流程Fig.3 Introducing the target encoding process of the smoothing factor

采用20折交叉编码策略:首先将训练数据划分为20折,选取1折数据为编码数据集其余19折为统计数据集。根据式(1)、式(3)计算19折统计数据集的编码值,并将其映射到编码数据集;其次,选取另一折为编码数据集,其他折为统计数据集;再次计算编码值并进行映射,并循环20次。20次映射结果的并集,即为训练集编码。对于测试集,则根据20次编码平均值进行编码。该策略可以解决由于数据分布不均匀导致的过拟合问题。

3 基于改进BPSO的特征选择算法

3.1 算法流程设计

提出了一种基于速度变异机制的BPSO算法实现特征选择。BPSO作为PSO的一种改进算法,约定位置向量、速度向量均由0、1构成,可以更好地解决离散空间中的优化问题[15]。

算法的主要流程如下:将标注过的数据作为输入,假设输入数据维度为N维特征,给每维特征分配一个重要性权重系数ai,ai∈[0,1],ai大小与重要程度程正相关。特征选择就是求解N维特征的重要性权重系数,由系数大小筛选出重要特征。为简化计算量,将数据集中的特征值全部归一化到(0,1) 范围内。

二进制粒子群算法流程如下:

步骤1:初始化粒子群,粒子用一个二进制位串表示,其中粒子数取30,每次迭代的最大次数设为100;

步骤2:评估每个粒子并得到全局最优。当前个体极值记为pb,全局最优解记为gb;

步骤3:每个粒子都有一个由目标函数f(a)决定的适应值(Fitness Value)。根据目标函数计算每个粒子的适应度值;

步骤4:对每个粒子,将其适应度值和个体极值pb进行比较,若适应度值大于pb,则用当前适应度值替换pb;

步骤5:对每个粒子,将它的适应度值和全局极值gb进行比较,若适应度值大于gb,则用当前适应度替换gb;

步骤6:根据式(4)~式(6)更新粒子速度和位置[6]:

vi=w*vi+rand()*c1*(pbi-xi)+

rand()*c2*(gb-xi)

(4)

(5)

(6)

(7)

(8)

上述两式中表示当粒子达到规定速度区间时,粒子出错的概率为1-S(vmax)。该机制在原研究提出的设计基础上引入粒子速度区间的变异机制,提升了粒子的可变性和变异的灵活性,避免算法过早收敛、陷入局部最优解;

步骤8:达到最大循环次数时算法执行结束。

算法执行结束后得到N维特征的权重系数向量,该矩阵由0和1组成,权重系数为1则表示该系数对应的特征为筛选出的特征。

需要注意的是,由于BPSO为启发式搜索算法,运行结果存在一定随机性,因此算法选取的特征可能并非最佳特征。但BPSO的优势在于其简单易实现特性,且具备较好的自动化程度和自适应能力。当实际客户侧终端网络中的网络监测内容和实验数据集维度存在差异时,方法仍然有效,无需对特征进行人工分析。

在实际应用中,为保证特征选择效果,可多次运行算法,并选取目标函数值最小的结果作为最终特征。

3.2 目标函数设计

特征选择的目标为分类模型性能最大化和筛选出特征数量的最小化,设计目标函数f(a)为:

(9)

式中,系数λ影响目标函数中准确率与特征数量的权重关系,应根据实验结果进行调节;i∈[1,N];accuracy∈[0,1]为分类器准确度;ai∈[0,1]为重要性权重系数;a为由ai组成的重要性权重系数向量。等式左边最后一项为惩罚因子项,ε为惩罚因子系数;Nmin为最小特征维度;ReLU函数为非线性函数:

(10)

目标函数中第一项准确度accuracy的定义如下:

(11)

目标函数中第二项、第三项是对特征子集数目进行限制,其中第二项越小表明选出的特征数量越少,目标函数值越小。考虑到去除过多特征可能导致模型泛化能力下降,公式(9)中加入第四项惩罚项对特征的最少数量进行限制。当重要性权重系数总和小于Nmin时,惩罚项取值将快速增大,并在BPSO迭代过程中被淘汰。反之选取的特征数量大于Nmin时,由于ReLU函数的作用,此项取值为0,以此保证筛选出的特征维数大于Nmin。

4 基于LightGBM的入侵检测算法

4.1 GBDT与LightGBM算法

GBDT (Gradient Boosting Decision Tree) 是一个机器学习中经典模型,主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。然而GBDT需要多次遍历整个数据集,导致训练速度慢、内存消耗大[17]。

LightGBM(Light Gradient Boosting Machine)是GBDT算法的一种高效实现框架。LightGBM算法具有更高的训练效率和准确率,其主要改进包括:

(1)抛弃了传统GBDT的决策树按层生长策略,使用了带有深度限制的按叶子生长策略。该策略具有提升精度、防止过拟合等优点;

(2)引入了直方图算法,大幅提高计算效率,降低通信代价;

(3)引入了GOSS采样算法和EFB特征合并算法,这使得LightGBM的训练速度比GBDT提高了20倍。

4.2 LightGBM参数调优

LightGBM的参数较多,参数选取对算法效果具有较大影响。因此对LightGBM算法的三个重要超参数进行调节,包括决策树数量、最大树深度和叶子数量。此外,LightGBM的主要参数还包括学习率,合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。

为了提升效率,采用了PSO算法进行自动寻优。采用1-accuracy作为目标函数,其中accuracy的计算方法和3.2节中的式(11)相同。训练策略为:先将学习率调大,在较大跨度上得到较佳参数,再将学习率减小到适合数值,在较小区间的内获得最佳参数。

5 实验分析

5.1 实验设置与数据集介绍

考虑到模型的部署成本问题,期望所提出的方法在通用硬件环境中也能具有较高的效率,因而所采用的实验硬件条件为:主频为3.0 GHz的CPU、16 GB RAM和主板集成显卡,软件环境为: Windows 10和 Python 3.6。

由于当前缺乏实际客户侧终端环境中的网络攻击数据,实验基于以下三个开源数据集进行:

(1)KDD-CUP 99数据集是一个经典的入侵检测数据集。但该数据集也存在冗余程度高、数据噪声大等问题。数据集包含41个特征,包括7个类别特征或无序离散特征;包含22种攻击,有14种攻击仅出现在测试集中。所有攻击分为4大类;

(2)NSL-KDD数据集是KDD CUP 99的改进版本,二者的数据结构相同。NSL-KDD的测试集中删减了重复和冗余记录,特别是大幅度删减了正常流量数据;

(3)UNSW-NB15数据集由澳大利亚网络安全中心制作,该数据集能够较好地反映现代网络流量特征和网络攻击特征。该数据集包含47个特征,去除一些相关性较小的维度后,使用其中43个特征维度,包括5个类别特征或无序离散特征;攻击类型分为9大类。

上述数据集主要描述互联网环境下的流量特征和网络攻击,和客户侧终端网络环境有所区别。为了尽可能贴近客户侧终端网络环境,对数据集采取如下处理策略:删除数据集中标记为STMP、POP3、FTP等应用层协议的数据,以模拟客户侧终端网络中的应用现状。保留DNS、SSH、DHCP等通用性较强的协议数据,模拟客户侧终端网络中的网络层和传输层交互。保留SSL等应用层加密协议数据,模拟客户侧终端网络中的应用层加密协议。

结合1.1节的安全威胁分析,在数据集中选取正常流量数据和拒绝服务、信息收集、信息利用、加密协议攻击等具有代表性的攻击类型。具体做法为:在KDD CUP 99、NSL-KDD数据集中选取DoS、Probe、R2L攻击类型,在UNSW-NB15数据集选取漏洞利用(Exploits、Shellcode)、协议攻击(Generic、Fuzzers)、信息收集(Reconnaissance)和蠕虫攻击(Worms)等攻击类型进行多分类测试。对于KDD-CUP 99、NSL-KDD数据集,采用其原始的训练集和测试集划分,UNSW-NB15数据集则按8:2划分训练和测试数据。实验数据集的训练集数目和测试集数目如表1所示。

表1 实验数据集数量分布Tab.1 Experimental data set

5.2 实验评估指标

实验的评价指标采用准确率、真正率和假正率进行评价[18]。

准确率(Accuracy):表示正确识别的样本数与整个测试集的比率。准确率越高,训练的模型就越好。其定义为:

(12)

该定义和公式(11)的实际含义相同。

真正率(TPR):也被称为召回率。表示正确分类的正常样本与实际正常样本总数的比率,TPR数值越高,则误报的情况越少。其定义为:

(13)

假正率(FPR):表示被预测为正常样本的攻击样本数与实际攻击总数的比率,FPR数值越低,则漏报的情况越少。其定义为:

(14)

式中TP为真阳性(True Positive):表示被模型预测为攻击样本而实际也是攻击样本的数量;FP为假阳性(False Positive):表示被模型预测为正常样本而实际是攻击样本的数量;TN为真阴性(True Negative):表示被模型预测为正常样本而实际也是正常样本的数量;FN为假阴性(False Negative):表示被模型预测为攻击样本而实际是正常样本的数量。

5.3 实验及结果分析

5.3.1 类别特征编码效果分析

对提出的离散编码效果进行验证。分别对数据中的类别特征使用独热编码、LightGBM自带编码方法和文章所提出的方法进行编码,并通过LightGBM算法进行检测。实验结果如表2所示。

表2 类别特征编码效果对比Tab.2 Comparison of category feature coding effect

从文章应用场景来看,所提出编码方法结合LightGBM算法在三个数据集上均能保持较好的检测效果,特别是在NSL-KDD数据集上,文章编码方法与LightGBM编码相比,能够提升1%的准确率和2%的真正率。独热编码结合LightGBM算法的检测效果较差,特别是在KDD-CUP 99和NSL-KDD的测试集中含有较多未知类别取值的情况下更为明显。

5.3.2 特征选择效果分析

对提出的特征选择方法进行参数调节和验证。将式(9)中的惩罚因子ε设定为1 000,Nmin设定为16,即数据集维度的1/3左右,并对系数λ进行调节。算法运行5次,选择目标函数最小的特征选择结果,测试结果如表3所示。

表3 降维参数调节与效果对比Tab.3 Dimensionality reduction parameter adjustment and effect comparison

可以看出,提出的特征选择算法在三个数据集上均能有效地降低特征维度,最高可去除60%的维度,特征选择之后。训练时间分别降低了22%、26%和24%,检测时间分别降低了19%、32%和6%,训练和检测时间平均降低了19%。方法选择维度的数量最低为16,证明算法中惩罚因子产生了限制效果。特征选择算法在三个数据集上均能保持很好的检测效果,其中在KDD-CUP 99和NSL-KDD数据集上的检测效果提升比较明显,最多可提升3.7%的准确率和6.4%的真正率。

从参数选择上看,选取系数λ=0.4时,算法效率最高;系数λ=0.6时,在检测结果和效率上的综合效果最好。

5.3.3 异常检测效果

对文章提出的模型进行实验和对比。根据4.2节的调优策略,参数选取结果为:对于KDD-CUP 99和NSL-KDD数据集,选择树的数量为200,叶子数为4,最大树深度为30;对于UNSW-NB15数据集,选择树的数量为900,叶子数为2,最大树深度为40。对三个数据集进行攻击检测,效果如表4所示。

表4 异常检测效果对比Tab.4 Anomaly detection effect comparison

可以看出,文章提出的整体模型在检测效果和检测时间上均具有优势。特别是在NSL-KDD数据集上,比随机森林等算法提升5%以上的准确率和约10%的真正率。

在效率方面,随机森林算法和Adaboost等集成学习算法虽然也有较好的检测效果,但文中模型的训练和检测时间明显更短,训练时间仅为两种算法的3%左右,检测时间最低可达两种算法的11%。

BP神经网络虽然也能保持较好的检测效果,但深度神经网络需要的训练时间和硬件开销显著大于其他算法[19],因此未做具体统计。在检测时间上,文中模型的检测时间最低可达BP神经网络的5%。

逻辑回归算法和朴素贝叶斯算法虽然在检测时间上存在优势,但在检测效果上存在较大不足。

5.3.4 攻击分类效果

对5.1节选取的攻击类型进行攻击分类实验。选取表4中检测性能最好的参数组合。实验效果如表5所示。

表5 攻击分类效果对比Tab.5 Comparison of attack classification effects

可以看出,文中模型在大多数情况下,能保持90%以上的准确率、70%以上的真正率和5%以下的假正率。说明文中提出的模型能较好地区分正常流量和攻击样本,并对攻击类型具有良好的区分效果。

但在具体指标上,特别是真正率和样本数量的关系较大。三种数据集下,R2L、Shellcode 和Worms型攻击的真正率均较低,普遍在30%~57%之间,说明存在误报情况。而在NSL-KDD中,Probe型攻击的假正率较高,说明存在较多漏报情况。上述情况和训练集中的相关样本的数量较少有关,上述攻击在各自训练集中的条目均少于5 000。此外,方法对Fuzzers攻击的真正率较低。这可能和Fuzzers攻击会发送随机数据的特性有关。在实际客户侧终端网络中,为防止攻击者对应用层加密协议或主站服务发动类似攻击,需要采用额外手段进行防范。

图4为三个数据集攻击分类预测结果的混淆矩阵。由于不同攻击之间的数量差异较大,为方便显示,矩阵中数值整理为当前坐标格在横排所示真实值中的占比。

图4 攻击分类的结果混淆矩阵Fig.4 Confusion matrix of attack classification results

综上所述,文中模型对采集的流量特征数据进行预处理和特征选择,降低了19%的模型训练与检测时间,有效地提升了检测效率。

在检测性能上,文中模型具有较高的准确率和较少的误报与漏报情况,以及较好的攻击分类能力。有利于在设备分散的开放网络环境下,实现高效率、高准确性的网络入侵检测。

此外,采用的特征选择方法和入侵检测方法有较好的自适应能力,可以在多个数据集上直接工作,无需进行人工分析。因此当不同入侵检测设备采集的流量特征存在差异时,模型仍然可以工作。这比较适合客户侧终端环境下,设备分散管理、数据分散采集的现状。

6 结束语

针对客户侧终端网络可能存在的安全威胁,文章提出了一种基于LightGBM的高效率网络入侵检测模型。提出了改进离散特征编码的方法;引入速度概率变异机制的BPSO算法,实现了自动化程度较高的特征选择与降维;通过基于PSO算法优化的LightGBM实现了入侵检测与攻击分类。基于开源数据集的测试证明,文中模型能够保持较好的检测效果和较高的检测效率,这有利于在客户侧终端设备数量大、设备分布分散的场景下,降低检测开销、提升反应速度。但文章方法对稀少攻击类型或特殊攻击类型的检测效果不够理想,这也使得其应对新型网络攻击的能力不足,今后应针对这些情况开展针对性研究。

猜你喜欢
特征选择编码终端
正交基低冗余无监督特征选择法
生活中的编码
复杂线束在双BCI耦合下的终端响应机理
网络入侵检测场景下的特征选择方法对比研究
X美术馆首届三年展:“终端〉_How Do We Begin?”
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
基于声波检测的地下防盗终端
Genome and healthcare
基于特征聚类集成技术的在线特征选择