一种基于RBM-SVM算法的无线传感网络入侵检测算法
2022-07-07武静凯
程 超 武静凯 陈 梅
(长春工业大学计算机科学与工程学院 吉林 长春 130012)
0 引 言
随着5G时代的到来,以无线传感网络(Wireless Sensor Networks,WSN)为基础的万物互联所组成物联网的基础设施,在迅速发展的同时也面临越来越多信息化风险[1-3]。随着网络设施不断完善和发展,网络中的数据量和数据的维度都在不断增大,网络通信的安全和时效也越来越被重视[4-7]。入侵检测系统(Intrusion detection system,IDS)作为一种积极主动的安全防护技术,越来越多地应用到了无线网络安全中[8]。目前无线传感网络容易受到黑洞攻击、路由重放攻击、泛洪攻击、WSN内部攻击等攻击行为,这些攻击行为使WSN无法按照原有设定方式正常工作,严重消耗WSN网络的节点能量和内存资源,导致网络延迟甚至瘫痪,无法正常运行[9]。因此,IDS的检测并响应对于WSN网络甚至对于对整个物联网至关重要。
近年来,国内外专家学者们将人工智能方法应用于入侵检测系统中,提出了一系列入侵检测方法。文献[10]针对当前网络环境下的网络数据更为庞大、复杂和多维的特性提出了基于DAN-BP的入侵检测模型。文献[11]针对攻击行为Probe(Probing)、U2R(User to root)、R2L(Remote to local)的检测率比较低提出一种新的混合多层次入侵检测模型,检测正常和异常的网络行为,模型应用KNN离群点检测算法来检测并删除离群数据并结合网络流量的相似性,提出一种类别检测划分方法避免了异常行为在检测过程中的相互干扰。文献[12]针对WSN中资源受限的IDS策略优化问题,提出了一种具有博弈的动态多阶段入侵检测模型,通过贝叶斯规则修正下一阶段外部节点为恶意节点的后验概率模型分析预测出最易遭受入侵的节点。文献[13]针对集成学习的入侵检测算法在对原问题进行划分过程中会存在一定的边缘信息与整体信息的丢失的问题,以及模型融合耗时需要复杂的调整参数过程,提出了一种改进的基于集成学习的入侵检测算法,将原问题转化成多个二分类问题,并把多个分类器的概率预测结果作为先验知识加入到原本的特征中,再进行多分类模型的学习。以上文献在入侵检测系统中均有很好的改进效果,但由于WSN网络存在簇行结构,且WSN网络存在计算能力不足的问题,深层神经网络以及集成学习方法将无法得到很好的入侵检测效果。
基于此,提出了一种基于RBM特征提取和多层SVM分类算法的无线传感网络入侵检测算法,首先采用RBM算法将大流量数据中特征进行提取,保证在不丢失网络流量数据特征的基础上将高维流量数据转化为低维数据,根据WSN网络簇行结构特点,通过多层SVM分类方法逐层分类,保证了网络的传输性能和安全性,将网络入侵数据及时检测并删除,保证WSN网络安全。
1 入侵检测相关技术研究
1.1 受限玻尔兹曼机特征提取
受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是基于能量的概率分布函数,其能量函数可表示为:
式中:向量h=(h1,h2,…,hm)T表示隐藏层各神经元的值,向量v=(v1,v2,…,vn)T表示可见层各神经元的值,ai为可见层神经元i的偏置值,bj为隐藏层神经元j的偏置值,W=(wij)m×n∈Rm×n为可见层到隐藏层之间连接权重矩阵[14]。
根据能量函数,可以求得v、h的联合概率分布为:
(2)
Z为配分函数(归一化因子):
(3)
本文将RBM算法应用于WSN网络流量数据特征提取,采用无监督学习方法,对RBM特征提取模型进行训练。训练RBM特征的目的是为了让可见层节点v的分布p(v)最大可能地拟合输入样本所在的样本空间的分布q(v)。从信息熵的角度理解,即使得p和q之间的KL距离最小,则两种分布越接近[15]:
(4)
(5)
式中:T为假设的训练样本数量;vt表示第t个训练样本。为了求得模型参数θ={W,a,b},采用对数损失函数:
(6)
由于当今网络中流量较大,p(v)概率分布在实际应用难以求得,对于大量训练样本v迭代求解计算量大且很难求得最优解。本文采用对比散度(Contrastive Divergence,CD)算法求解,通过k次Gibbs采样方式近似估计期望项[16]。为了加快RBM模型学习效率以及最优参数θ={W,a,b},采用基于动量的小批量特征梯度下降法去优化模型参数,最小化重构误差,直到模型重构误差达到理想最小值。
1.2 基于WSN分簇的多层SVM检测方法
无线传感器网络拓扑结构有多种,本文针对基于分簇的无线传感器网络。无线传感器根据分簇协议分为不同的簇,分簇后的无线传感器网络结构主要由普通节点、簇头节点、Sink节点3种节点组成。大量底层普通节点汇聚成不同簇,每个簇从簇内节点中选出合适的簇头节点,普通节点在当前簇内相互通信,将收集到的信息汇集到簇头节点。Sink节点作为网关节点,负责传感器网络与外部网络连接,簇头节点将信息汇集处理发送给Sink节点,由Sink节点将信息发送到其他网络中,由外部网络将WSN网络收集的信息进行传输[17-19]。
本文通过基于分簇的无线传感器节点网络的拓扑结构,将分层SVM分类方法应用于无线传感器网络的各个分层当中。对于无线传感网络,影响最大的入侵攻击即为泛洪攻击,当无线传感网络中遭受泛洪攻击时,无线节点间将传输大量泛洪信息,导致WSN网络出现严重拥塞问题,严重影响正常流量数据的传输,导致整个网络的传输延迟,甚至最终导致WSN网络中节点能量消耗殆尽,通信链路损坏。
普通节点作为无线传感器网络的底层节点,时刻监控和记录着当前目标的状态信息,会收集大量数据信息,并将信息传输给簇头节点。本文采用多层次的WSN二分类方法,最大化入侵数据间的差异,从而保证更好的检测效果。如图1所示,将第一层普通节点层进行泛洪攻击数据与其他流量数据的分类,从而丢弃大量泛洪攻击流量,保证网络质量,再次通过SVM二分类方法,对Probe攻击行为与其他攻击行为进行分类。在簇节点层,通过SVM二分类方法对U2R攻击与other分类并丢弃U2R数据,将other数据传输给Sink节点,由Sink节点做下一步处理。Sink节点通过SVM二分类方法将R2L攻击数据和Normal正常数据分类,最终将正常数据发送到其他网络中,将攻击类型数据删除,达到节约节点资源,同时将攻击行为拦截并处理在WSN网络中,防止入侵流量数据传输到其他网络中影响WSN网络上层的其他系统。
图1 WSN分簇的多层SVM检测方法
2 实验仿真
本节采用计算机实验仿真方法对所提出的方法进行模拟实验。实验环境为:Window10 PC,Inter Core i7- 9750H CPU @ 2.60 GHz 8 GB RAM。采用Python 3.7.3来实现本文算法,并采用公共入侵检测数据集NSL-KDD数据集模拟实验作为本次仿真实验数据集,仿真实验训练集选择KDDTrain+_20Percent.TXT,测试集为KDDTest+.TXT。数据集中每条数据由41个特征和1个标签组成,41个特征中包括34个数字特征和7个字符特征。训练集共有25 192条数据,包括正常流量数据13 449条、Dos攻击数据9 234条、Probe攻击数据2 289条、U2R攻击数据11条、R2L攻击数据209条。测试集共有11 850条数据,包括正常流量数据2 152条、Dos攻击数据4 342条、Probe攻击数据2 402条、U2R攻击数据200条、R2L攻击数据2 754条。数据集中攻击类型可分为4大类,训练集攻击类型可分为21小类,测试集中新加入17种训练集中没有的攻击类型。
入侵检测系统评价指标由混淆矩阵计算,其主要评价指标分为准确性Acc(accuracy)、检测率DR(detection rate)、误报率FAR(false alarm rate)和漏报率MAR(missing alarm rate),其计算公式如下:
(7)
(8)
(9)
(10)
式中:TP为将异常流量数据样本分类为异常的数量;TN为将正常流量数据样本分类为正常的数量;FP为将正常流量数据样本分类为异常的数量;FN为将异常流量数据样本分类为正常的数量。
在WSN网络中主要攻击类型有黑洞攻击、灰洞攻击、泛洪攻击、重放路由攻击、虫洞攻击等。NSL-KDD数据集中包括四种攻击类型:拒绝服务攻击Dos、嗅探攻击Probe、来自远程的非法访问R2L和普通用户对超级用户特权非法访问攻击U2R。根据攻击行为可将WSN网络中的黑洞、虫洞等攻击归纳为Probe攻击,将欺骗、重放路由攻击归纳为R2L攻击,将内部攻击归纳为U2R攻击,将泛洪攻击、资源消耗攻击等攻击归纳为Dos攻击。
2.1 RBM特征提取模型训练
首先构造RBM模型,选取CD算法作为训练算法对RBM模型进行无监督学习,帮助RBM模型获得数据集内部特征。采用基于动量的梯度下降法多次迭代训练最优θ={W,a,b}。RBM模型训练分为三部分:前向传播、反向传播和误差对比。通过比较数据的预测概率和真实分布,采用KL散度衡量两个分布的相似性,通过迭代最小化KL散度求得最优参数。
本次仿真设置RBM模型输入神经元个数为41,模型输出神经元个数分别为36、27、18、9。如图2所示,通过Gibbs一次采样即达到较小的重构误差,通过多次基于动量梯度下降法迭代寻优,最终重构误差降至0.44左右。可见RBM网络在降维的同时,可以有效提取出数据特征,保证RBM网络处理的数据可以很好地保留特征信息。图中折线图从上到下,分别是降到9、18、27、36维度的数据重构误差,所降的维度越低,重构误差越大。
图2 重构误差
2.2 RBM-SVM实验仿真
为验证多层SVM入侵检测方法在WSN网络入侵检测的可行性,本文通过训练RBM模型,达到可接受的重构误差后,输出模型参数θ={W,a,b},并将模型参数代入RBM模型中,对NSL-KDD数据集进行特征提取和降维处理。将降维后的数据代入SVM多层分类器中。首先修改数据集标签,将Dos攻击标签改为1,其他数据特征标签改为0,然后依次训练第二分分类器,将Probe攻击标签设为1,其他标签设为0,依次训练每层的SVM分类器。
为了验证本文提出入侵检测模型分类器,本文首先将NSL-KDD数据集训练集与测试集合并,并通过python中sklearn函数包train_test_split按test_size=0.3切分训练集和测试集,将数据集随机分为10份,选取7份作为训练集,剩下3份作为测试集,同时与其他入侵检测方法进行对比仿真。
如表1所示,多层SVM分类方法能有效检测出Dos攻击,准确率为99.06%,同时对于其他攻击行为也有很好的准确率。由于U2R攻击和R2L攻击数据量很小,仅占训练集和测试集总和的0.5%和12.6%,虽然有很高的准确率,但是检测率不够高,且有较高的漏报率,可见机器学习分类算法更偏向于标签量较大的特征。
表1 RBM-SVM模型检测性能(%)
与其他入侵检测系统模型对比仿真,对比结果如图3所示,本文提出的模型在准确率Acc上高于随机森林模型,在检测率上效果稍低于随机森林模型。如图4所示,本文提出的模型在误报率上优于随机森林模型,在误报率上略次于随机森林模型。由于数据集中U2R攻击类型数据占比较少,导致检测U2R攻击数据时检测率较低导致漏报率较高,影响整体模型评价检测率和漏报率。本文提出的模型可以有效检测WSN网络中网络攻击行为,保证网络连通性和安全性。
图3 模型准确率和检测率仿真结果对比图
图4 模型误报率和漏报率仿真结果对比图
公共安全入侵检测数据集NSL-KDD测试数据集中加入了部分训练数据集中不存在的攻击特征目的是检验入侵检测模型的泛化能力。为了验证本文提出的模型对未知攻击检测能力,选择NSL-KDD划分好的训练集KDDTrain+_20Percent.TXT对模型进行训练,将测试集KDDTest+.TXT带入训练好的模型当中。本次仿真实验采用SVM径向基核函数(RBF),采用网格寻优方法对参数C和g进行寻优。本文提出的无线传感器网络RBM-SVM入侵检测模型仿真结果准确率为91.92%,RBM-RandomForest模型准确率为81.28%,RBM-DecisionTree模型准确率为80.08%,在泛化能力方面,本文提出的模型对未知攻击检测效果更好。
3 结 语
针对WSN网络安全问题,本文提出一种基于RBM特征提取和多层SVM检测的无线传感网络入侵检测方法,从维度较高的网络数据中提取有用的特征信息并结合无线传感器网络拓扑结构及各种攻击流量相似性分层检测入侵行为。通过NSL_KDD入侵检测数据集进行仿真,实验结果表明该算法可以有效检测WSN网络入侵行为,对于未知攻击也有一定检测能力。但本文提出的方法仍可进一步提高,如提高检测小流量攻击行为、SVM参数寻优等问题。