基于不平衡数据样本的工控网络态势要素提取
2021-03-23王昕,孙磊
王 昕,孙 磊
(长春工业大学 计算机科学与工程学院,吉林 长春 130012)
0 引 言
随着互联网的不断发展,工控系统也逐渐智能化、复杂化,成为国家基础设施的中枢神经。继德国最早提出“工业4.0”后,我国也提出了“中国制造2025”战略,加速了互联网技术与工业系统相互融合发展,方便工作人员操作及管理的同时,也使工控系统网络环境变得更加开放,增加了被各种网络攻击的风险,工业控制系统安全面临着前所未有的威胁与挑战[1-2]。作为国家基础设施的重要组成部分,工业控制系统(Industry Control System,ICS)一旦遭到攻击,会对国家经济造成巨大的损失,因此,保障工控网络安全迫在眉睫。
态势感知作为一种从全局视角出发实现对安全威胁的识别、理解、预测并作出响应的分析方法,已成功应用于工控网络安全方向,并成为近年来工控网络安全领域众多学者重点研究的课题,而态势要素的获取作为态势感知的基础和前提,目前相关研究仍不成熟。因此,对于态势要素获取的研究仍具有巨大意义。文献[3]针对BP神经网络对海量安全态势数据学习时过度依赖数据标签的问题,提出一种结合深度堆栈编码器和反向传播算法的网络安全态势要素识别方法,提高了态势感知的效能和准确度;文献[4]针对深度信念网络(DBN)的收敛速度慢,以及在小样本条件下态势要素获取精度不高的问题,提出了一种基于批量归一化的深度信念网络的态势要素获取方法,减少网络收敛时间,增强网络的鲁棒性能和泛化能力;文献[5]针对数据量巨大的网络态势要素的获取时间长、样本分布不平衡导致分类精度不高的问题,提出了一种基于深度自编码网络的态势要素获取方法,通过在线选择用于更新网络权值的攻击样本,达到总样本的去冗余和平衡各类攻击样本数量的目的,从而提高少数类攻击样本的分类精度;文献[6]针对态势要素获取困难的问题,提出了一种基于增强型概率神经网络的层次化框架态势要素获取方法,采用PCA算法对样本特征进行约简,并对特殊属性编码融合处理,将输出结果用于优化概率神经网络(PNN)结构,进而降低系统复杂度。
以上文献中的方法尽管都可以使态势要素获取的精度得到很好改善,但均是从数据的特征提取或者工控网络数据分布不均衡中的单一方面因素进行探索,没有全方位对数据进行有效预处理,从而使态势要素提取的精度还有待进一步提高。
基于以上分析,文中针对工控网络数据的类别分布不均衡和特征存在冗余增加训练负担等问题进行了深入研究。提出一种LOF-SMOTE算法,即在基于SMOTE算法的基础上应用LOF算法对数量偏少的少数类样本进行分布离散的数据点筛选,减少高相似度的样本生成。结合RBM特征降维,利用随机森林算法实现对工控网络态势要素的提取。在保证了多数类样本数量的基础上,有效生成少数类样本点,使数据不同各类别达到平衡,减少了过拟合现象,增加了态势要素提取的准确率。
1 要素提取框架
鉴于网络规模的不断提升和攻击种类不断增多,导致工控网络的数据量也呈雪崩式倍增。由于攻击种类和攻击时长的不同,导致数据集中某一类样本数据量要远小于其他类别样本数据量,数据分布极其不平衡,但是多数研究是针对整体的分类精度进行研究的,忽略了单一类别分类精度对整体结果的影响。如果提升了少数类样本的分类精度,整体的分类结果会得到进一步提高。
针对上述问题,创新性的将LOF算法应用到对数据中少数类样本分布较分散的数据筛选中,具体流程如图1所示。
图1 整体流程
工控网络安全态势要素提取流程主要分为两个阶段。
1.1 数据的预处理阶段
1)数据集中包含非数值型的数据,并且数据集中各个特征量之间通常存在较大的量级差,若直接对原数据进行仿真实验,会导致算法最优解的求解速度下降,分类精度变低,因此先对数据进行数值化、归一化处理。
2)把少数类数据中分布分散的数据看作局部异常点,利用LOF算法对其进行筛选。
3)利用SMOTE算法对筛选出的分散的少数类数据进行新数据点合成。
4)数据集包含41个特征列,过多的特征可能会出现特征之间具有多重共线性,也就是相互之间具有关联性,导致模型泛化能力弱,也会妨碍模型学习,故文中利用RBM算法对数据的特征进行降维。在数据预处理的最后阶段运用python的sklearn函数包把整体数据按照训练集和测试集7∶3的比例进行切割,交叉验证。
1.2 数据分析阶段
由于随机森林算法可以有效降低树与树之间的相关性,且不容易产生过拟合[7],模型训练速度比较快,特别是对于大数据而言,适应能力较强,因此,选用随机森林算法进行态势要素提取。
2 关键模块描述
2.1 SMOTE新数据生成
对于某些场景,如含有欺诈情况的医保数据、软件缺陷数据、煤矿监控系统产生的监测数据、医学诊断数据[8-11]等存在某些类别的数据在数量上远远多于其他类别的数据,导致不同类别样本分布不平衡的问题,如何平衡数据以达到最佳的研究效果成为近年来被广泛关注的热点问题。
针对此问题,Chawla等[12]提出了SMOTE(Syntheticminority Oversamplingtechnique)方法,通过在某个数据点的近邻数据点中随机选择一个近邻点,并在这两点之间进行线性插值来合成新的少数类样本对进行少数类数据点的扩充,以达到数据数量上的平衡,提高了分类器的泛化能力。
SMOTE的具体步骤如下:
1)对于少数类中每一个样本xi,计算所有少数类样本对其k近邻。
2)根据样本不平衡比例设置一个采样比例,以确定采样倍率N,对于每一个少数类样本xi,从其k近邻中随机选择若干个样本,假设选择的近邻为xj。
3)对于每一个随机选出的近邻xj,分别与原样本xi按照如下公式构建新的样本
xnew=xi+λ*(xi-xj),
(1)
其中,λ的取值范围在[0,1]之间[13]。对于同一类别的工控数据来说,数据点之间可能非常相似,距离非常小,如果直接对数据进行平衡,会导致新生成的数据点与原数据点之间的距离更加接近,导致最终态势要素提取困难。进而应用LOF算法对SMOTE算法进行改进。
2.2 LOF算法筛选
LOF算法是一种应用局部密度计算离群点的算法。对于工控网络数据而言,存在很多相近、相似的数据点,若直接对这些数据进行态势要素的获取,容易造成过拟合的现象,导致要素获取的正确率较低。所以文中针对少数类样本,创新性的应用LOF算法筛选出距离较远的少数类样本点,弥补直接对数据进行SMOTE平衡的缺陷。
LOF算法的主要步骤如下:
1)k-distance。对于点p的第k距离,记做dk(p),也就是距离p第k远的点的距离,不包括点p。
2)p点的第k距离邻域。点p的第k距离邻域Nk(p)就是p的第k距离以内的所有点,包括第k距离。因此p的第k邻域点的个数|Nk(p)|≥k。
3)点x对于点p的可达距离定义
d(x,p)=max(dk(p),d(x,p))。
(2)
4)点p的局部可达密度表示为
(3)
5)xi的局部离群因子定义
(4)
局部离群因子越小,证明局部可达密度就越大,xi是离群点的可能性越小,反之局部离群因子越大,证明xi是异常点的可能性越大[14]。通过对局部离群因子检测算法的研究,将分布较分散的少数类样本点视为离群点进行筛选,利用分散的少数点来生成新的样本点,避免因样本距离紧密而使生成的新样本点无太大差别,以及由此产生的过拟合现象。
2.3 RBM降维
RBM是一种分为可视层和隐藏层的随机神经网络模型,其层内无连接,层间相互连接。其中隐藏层表示为
h=(h1,h2,…,hm),
可视层表示为
v=(v1,v2,…,vn)T,
层与层之间的权值矩阵表示为
w=(wij)∈Rm×n。
RBM结构如图2所示。
图2 RBM结构
RBM是一种基于能量的概率分布函数,能量函数是
E(v,h)=aTv+bTh+hTWv,
(5)
式中:aT、bT----分别是可视层和隐藏层的偏置。
根据能量函数,可以求得v,h的联合概率分布为
(6)
式中:Z----归一化因子,是所有神经元的概率之和,
(7)
训练RBM特征是为了让可见层节点v的分布p(v)最大可能与输入样本所在的样本空间分布q(v)相拟合[15]。
针对工控网络数据特征维度庞大的特点,采用RBM算法对工控网络数据进行了有效的特征提取。由于目前工控网络中数据流量较大,因此可见层节点分布p(v)很难进行求解,同时大样本的迭代运算更是费时且效果不理想,所以我们提出采用对比散度(Contrastive Divergence, CD)算法进行求解。采用基于动量的小批量特征梯度下降法去优化模型参数,以使重构误差尽量小,直到模型重构误差达到可以接受的范围。
3 实验分析与结果
3.1 实验数据集
文中在Window10 PC,Inter(R) Core(TM) i5-9300H CPU @ 2.40 GHz 8 GB RAM python3.8的硬件条件下进行仿真实验。仿真实验数据集采用NSL-KDD数据集,KDDTrain+_20Percent.TXT做仿真实验训练集,KDDTest.TXT做测试集。数据集中共含有42列,其中有41个特征列(包含34个数字特征和7个字符特征)和1个标签列。
实验数据见表1。
表1 实验数据简介表 个
3.2 LOF算法参数确定
在仿真过程中,LOF算法参数的近邻数和局部离群因子的大小会对分类精度有影响,所以采用控制单一变量的方法对不同参数进行研究。LOF算法需要对样本点近邻数和局部离群因子(lof)进行探讨,如图3所示。
研究了近邻数对最终分类精度的影响,在固定局部离群因子(lof)暂时为1的基础上,选取了5~20的近邻数进行分类精确度的探讨,由图3可以看出,近邻数的多少对分类结果的影响不大,为了减少计算复杂度,选择近邻数为5。
图3 LOF算法近邻数对最终结果的影响
由于在样本数据中U2R类型数据极少,在保证近邻数为5不变的情况下,若局部离群因子取较大,会将此数据全部被筛选掉,因此探讨了lof的取值在1.0~2.0对分类准确率的影响,结果如图4所示。
图4 局部离群因子对最终结果的影响
通过实验发现,当lof采用2时,会使精确度达到最高,因此,lof的取值确定为2。
3.3 RBM降维
采用RBM算法对数据进行降维处理,首先要对模型进行构造,选用对比散度算法帮助RBM进行学习获得数据集的特征,采用梯度下降法多次迭代找到最优参数,把迭代次数调整为适当次数,数据最终所降维度对分类结果的影响如图5所示。
图5 数据维度对最终结果的影响
选取了把数据降到5、7、10、15、20、27和35维后分类正确率的变化,在维度为10时,分类精度最高,因此,采用把数据降到10维进行仿真。
3.4 对比实验结果
以往对工控网络态势要素提取的研究多从整体的分类精度进行研究,忽略了每种类别单独分类精度对整体精度的影响,为了验证文中方法的有效性,将文中算法与文献[16-17]决策树算法,以及在数据上只将其进行降维处理的仿真结果进行对比实验,最终结果见表2。
表2 不同算法的分类精度 %
通过实验证实,文中提出的方法能有效提高少数类样本的工控态势要素的准确度,从而使整体的提取精度得到了提高。
4 结 语
提出的工控网络态势要素提取方法,以LOF-SMOTE算法为组成模块,为工控网络态势要素提取中样本分布不均衡的问题提供了新的思路。应用RBM算法对数据进行特征提取,通过控制变量的方法经过多次仿真实验,找到了最优的参数值,从而得到更高的态势要素提取精度。对比实验结果表明,文中算法在每个类别的单独分类精度和整体精度都具有优势。