周慧芝,余员琴,欧洲洋
(湖南交通工程学院 电气与信息工程学院,湖南 衡阳 421009)
无线传感器网络应用快速增长,其安全问题越来越突显。保护系统中数据机密、可用、完整以及网络免受入侵攻击是现今学术界与商界共同关注的问题。入侵检测系统(Intrusion Detection System,IDS)收集网络中各种数据,通过收集到的数据可以检测恶意攻击或违反规则等造成的异常情况[1]。目前入侵检测技术融合智能算法,基于机器学习是主流方法。传统浅层机器学习难以提取现今随时间变化的高维且非线性的海量数据的本质特征,入侵检测准确率低,算法复杂且训练时间过长,传统网络入侵检查系统已不适用于WSN。针对WSN特点设计融合深度学习技术与侵检测技术,考虑全网络能量消耗、内存大小、通信带宽、计算能力及检测准确率等要求的入侵检测系统是当前所趋。
网络安全形势日益复杂,其攻击手段多样化,危害程度不可控,依据检测方法将其分为普通攻击和新型攻击两类[2]。针对未知特征的新型攻击和入侵检测系统的实用性,本文设计分级式入侵检测模型。考虑无线传感器网络(Wireless Sensor Network,WSN)的特点和入侵检测需求,采用改进的动态竞争的非均匀分簇路由算法(Non-Uniform Clustering Routing Protocol Based on Energy Consumption, NCRP)路由协议;考虑簇头与基站间传输信息量,网络入侵检测的效率,多种新型攻击和精准率,基于深度学习算法在簇头节点融合数据压缩和异常检测算法,在基站节点进行高级检测,即二级入侵检测响应。
在分级式入侵检测模型上,基于深度学习算法的无线传感器网络入侵检测模型分为传感器节点(包括数据采集和数据预处理)、簇头节点(包括路由协议和异常检测)、基站节点(包括高级检测和入侵响应)3个架构6个模块。
入侵检测过程主要分为以下3个步骤:
(1)布置在目标感知区域的传感器节点实现数据采集和预处理模块功能,将采集的敏感数据进行One-hot编码且标准化后发送给其簇头。
(2)首先嵌入在传感器节点的改进NCRP的路由协议负责WSN中簇的划分,簇头和簇个数的选取;然后启用神经网络SAE(Sparse Atuo Encoder)和分类器(Support Vector Machine,SVM)整合成SAESM的异常检测,检测无异常,则压缩数据并发送给基站,由基站启用整合成SAE和LSTM(Long Short Term Memory Network),即SLSTM算法进行二级检测以防簇头的一级检测出错,反之,簇头进行一级本地响应,再发送给基站,由基站进行二级检测攻击类型。
(3)基站的高级检测模块处理簇头发送来正常或异常数据,若检测正常数据仍为正常,则结束;若检测正常数据为异常,则全网响应新型攻击,并更新至网络特征库;若检测的是异常数据,则进行攻击类型识别,若无法识别,则更新至网络特征库。
设计以人工或机械方式随机部署传感器节点,其WSN具有以下特征:
(1)网络中的全部传感器节点有唯一ID,随机部署后,不可改动传感器节点ID信息。
(2)全网络中的每个节点同构其初始能量和计算能力,基站固定布控在监测区外,存储和计算能力无限。
(3)网络中的全部节点以接收的信号强度值估计近似距离,以此选取自身的发射功率。
(4)网络中的全部节点可进行数据融合,提高有效传输信息量。
(5)网络中的全部节点可获知自身当前剩余能量信息。
NCRP路由协议是基于LEACH协议的“轮”循环机制,每轮由非均匀分簇(选取簇首和簇群)、簇间多跳路由构建和数据转发(簇内单跳传输和簇间多跳传输)3个阶段[3]。针对靠近基站的簇首具有收发数据等多项任务,导致能量得到大量消耗,本文提出改进LEACH 算法,动态选取簇首使靠近基站形成更多的簇,均衡网络能耗,延长WSN的生存期。
第一轮非均匀分簇。基于LEACH算法提出概率求自算公式(1),以节点与基站间的距离d为调节选取簇首因素,d值越小,候选簇首概率T越大,从而控制簇规模,实现簇群多,达到非均匀分簇,式(1)字符信息如表1所示。
(1)
基站以定值功率向全网广播信号数据包,以此计算节点与基站间的近似距离,搜索dmin的节点,再使用式(3)计算当选候选簇首的概率,在[0,1]随机选取一个数与Tn(i)比较,基小于Tn(i),则该节点进入候选簇首队列,否则进入睡眠状态,日后再被唤醒。
后续轮次非均匀分簇。设定临界时间,在时间内簇首若未收到当选消息,以簇内r前1/p轮未当选簇首且能量最高的节点成为下一轮簇首,并广播选取簇首信息并捎带采集数据传输给簇内节点;若簇内不存在r前1/p轮未当选簇首节点,参照第一轮分均匀分簇,以此实现均衡节点能量,延长WSN生存期。
簇间多跳路由。NCRP协议中簇内单跳转发数据简单快捷,簇间多跳转发数据,选取其邻居簇首为中继节点,转发至基站。考虑簇间数据的差异性和算法的复杂性不做数据融合,直接转发完整数据包。黄廷辉等[4]通过贪婪算法的最小代价函数来建立簇间多跳路由,其代价函数如公式(2)所示,式(2)字符信息如表2所示。
表2 式(2)字符信息
cost(i,j)=
(2)
因此cost(RNi)=min{ cost(i,j) },簇首Si的中继节点是本身,则直接发送数据到基站;否则,簇首Si发送数据到中继节点RNi,当每个簇首都找到中继节点,簇间多跳路由建立。
数据转发阶段。数据转发主要指簇内成员节点将采集的数据单跳转发给簇首,簇首再将收到的数据进行融合后转发至其中继节点。直至中继节点接到所有簇首转发的数据,即完成数据采集一周期。
(1)产生候选簇首;
(2)产生最终簇首;
(3)簇间多跳路由;
(4)转发数据;
(5)每簇r前1/p轮未当选簇首节点数≥2,满足则选取每簇能量最高的2个节点当选簇首,不满足则至(1)重新一轮。
自动编码器(Auto Encoder,AE)是典型三层神经网络[5],针对海量非线性高维数据时,改进AE成栈式自动编码器,把前一个AE的隐藏层的输出作为后一个AE的输入,即级联起。
栈式自动编码器通过每一层的神经元自动地学习到数据中潜在的规律,用来表征高维的输入数据。而海量高维非线性数据在栈式自动编码器隐藏层节点数小于输入/输出层的节点数,其学习效果才好,否则失去学习能力,导致原始数据输出。本文引入稀疏,设置隐藏层节点数大于输入输出层的节点数,在同一时刻设置隐藏层节点部分神经元处“兴奋”状态,其他神经元保持“抑制”状态,即稀疏自动编码器(Sparse Auto Encoder,SAE)实现了整个神经网络稀疏。
支持向量机(Support Vector Machine,SVM)是一类按监督学习方式对数据进行二元分类的广义线性分类器,其基本原理是在空间寻找最优决策面,使不同类别的数据能分布在决策面的两侧,从而实现分类。SVM按其构建模型由简至繁可分为线性可分支持向量机、线性支持向量机和非线性支持向量机[6]。输入向量[x1,x2,...,xm]通过SVM映射到中间节点,后线性组合,并加偏置b,得到结果y。
整合SAE和SVM,设计基于深度学习的SAESM的簇头节点数据压缩及异常检测算法,即实现数据降维后进行异常检测,只对数据处理,与路由协议无关。其网络假定条件同2.1一样。
递归神经网络(Recurrent Neural Network,RNN)是深度学习中一种非常重要的神经网络[7],通过在浅层的人工神经网络(Artificial Neural Network,ANN)中引入自反馈神经元,让整个网络记忆所处理过的数据及关联时间序列数据信息,便于充分挖掘输入样本间存在的关联性,主要有输入层、隐藏层和输出层。针对RNN处理长距离依赖数据产生梯度爆炸,梯度消失及记忆不足等问题,Hochreiter等[8]提出一种长短时记忆网络(Long Short Term Memory Network,LSTM),引入可控自循环,使梯度长时间可持续流动且跟踪信息。
整合SAE压缩算法编码输出的数据发送到基站后使用LSTM多分类检测算法进行入侵检测,二者深度融合成SLSTM。
本文采用分簇式网络拓扑,改进NCRP算法与传统LEACH对比分析,充分考虑了传感器节点间的距离和能量问题,有效延长网络工作时间;设计NCRP+SAESM算法基站节点接收数据量最多,比NCRP或LEACH单独使用分别高出1.16倍和1.33倍,异常检测的准确率高达94.42%,有效提高数据传输量和异常效率;SLSTM算法的准确率高达97.82%,相对RNN的记忆能力不足和存在梯度消失等,改进后算法提高了4.9%,检测时间减少到33.50 s。与其他算法相比,本文算法实时性较强。