许 力,李光辉*
(1.江南大学物联网工程学院,江苏 无锡 214122;2.物联网技术应用教育部工程技术研究中心,江苏 无锡 214122)
目前,在无线传感网的部署中,可能存在节点被捕获,关键信息被窃取的问题。攻击者的目的是破坏无线传感器网络的安全属性,包括机密性、完整性、可用性和身份认证。为了实现这些攻击目标,攻击者从无线传感器网络的单一协议层或跨协议层发动攻击[1]。现有的两种入侵检测系统[2]:一种是特征检测系统,另一种是异常检测系统。与特征检测相比,异常检测具有更高的检测率。近些年,基于流量预测[3]、统计方法[4]、数据挖掘[5]、博弈论[6]、免疫理论[7]或者信任管理等方法不断被提出。现有的基于信任管理的方法旨在利用模糊理论、概率论和统计量、加权法等方法来提高检测性能、资源效率、鲁棒性等[8]。
模糊理论被用来确定传感器节点的信任度。Guo等人[9]为无线传感器网络提出一个新的信任管理框架(TMF),该框架将灰色理论与模糊集相结合,根据邻居节点的观测值计算节点的信任值,并且使用多个参数来决定信任值。Ram等人[10]提出了基于模糊逻辑的多属性信任方法,该信任方法以多个参数作为信任度量,利用模糊计算理论计算每个节点的最终信任值。
概率分布常被用来建立信任评估。Ganeriwal等人[11]提出了一种基于信誉的分布式无线传感器网络框架,它使用看门狗机制监测相邻节点的通信行为,用β分布表示节点信誉分布,并根据概率信誉分布的统计期望值计算信任值。Luo等人[12]提出一种系统,该系统采用哈希算法为传感器节点生成识别标签,用于区分外部攻击者和正常节点,并根据基于β密度函数的信任评估方法动态管理每个节点的信任值,以检测受损节点。
用加权方法估算信任值是常见的方法。Atakli等人[13]提出了一种基于加权信任评估的无线传感器网络节点检测方法,该方法利用加权法建立信任值,在基站内对节点转发的数据进行数据检测,从而减少传感器节点之间的通信开销。Shaikh等人[14]提出了一种基于簇的集群信任管理方法,利用加权法计算簇内节点的信任值。该方法只关注单个节点的信任值,从而降低了信任评估的成本。Bao等人[15]提出了基于分层的信任管理方法,该方法将服务质量和社会信任作为信任度量,利用加权法计算各层信任值,采用基于随机petri网的分析方法评估方法的性能。
Yao等人[16]提出了一种参数化和局部化的无线传感器网络信任管理方法,该方法中每个传感器节点保持高度抽象的参数,评估其感兴趣的邻居的可信度,采用适当的加密方法识别恶意节点,并在网络中共享意见。Li等人[17]提出了一种轻量级、可靠的集群信任系统,在消除节点间相互反馈的情况下,可以提高系统效率,同时减少恶意节点的影响。Jiang等人[18]提出了一种有效的分布式信任方法,节点的可信度包括直接信任和间接信任,在计算直接信任时,考虑通信信任、能量信任和数据信任。当监测节点不能直接观察目标节点的通信行为时,根据其他节点的建议,得到间接信任值。Mehmood等人[19]提出了一种基于知识的上下文感知方法来检测恶意节点的入侵,首先对事件进行分类,并确认簇内负责人,阻止恶意重复生成的活动,簇头还可以利用推理理论,将事件记录和分析机制放在基站上,减少节点上额外的能量损耗。
为了准确地检测网络中存在的攻击行为,降低误报率和漏报率,本文提出一种结合信任系统和数据噪声检测技术的多协议层入侵检测方法T-MPNID(Trust-Multi Protocol layer Noise Intrusion Detection)。T-MPNID方法中将多个协议层的关键参数作为信任度量[1],利用加权法融合信任值,并通过噪声检测技术进行再检测,建立惩罚机制,得到全局信任值。若节点的全局信任值小于预定义的阈值,则将该节点视为恶意节点。节点的信任值由不同协议层的关键参数决定,能够有效的检测出单层和跨层攻击,不仅提高了检测率,而且降低了误报率和漏报率。
目前,基于信任机制的入侵检测方法存在两类问题:①通过分析单一协议层中,恶意节点行为的特性以及对节点的行为进行评估,得到节点信任值。该类方法仅能检测出单协议层的攻击,无法适应真实环境。实际部署的无线传感器网络容易受到多种攻击,而每一种安全机制执行都要消耗宝贵资源(电池电量、存储空间、计算代价等),难以满足实际需求。②在跨层攻击中,跨层攻击对多个协议层产生影响,仅仅考虑每一层信任值变化,并设置各层检测阈值到达检测效果,忽略协议层间的联系,且在检测过程中缺少再检测机制,检测的误报率与漏报率较高。
本文提出的T-MPNID入侵检测方法,不仅分析单层攻击中节点的恶意行为,而且分析单层攻击对其他层的影响,充分考虑节点在多个协议层异常行为,共同评估节点信任值。此外,结合数据噪声检测技术对多个协议层的关键参数进行再检测,对检测为异常关键参数的节点,采用惩罚机制降低其信任值,得到最终的全局信任值。该方法有效提高了检测率,降低了误报率和漏报率。
本节针对入侵检测中存在的问题,提出了T-MPNID入侵检测方法,给出了多协议层入侵检测方法的总体框架,并对物理层、MAC层、网络层上节点的信任值评估、融合信任值评估、数据噪声检测、惩罚机制以及全局信任值评估等进行了详细描述。
图1是基于信任机制的多协议层入侵检测方法(T-MPNID)的总体框架,监测节点将评估的信任值和各协议层关键参数发送给簇头,在簇头节点将多个监测节点评估的信任值进行融合后,将融合信任值和关键参数发送给基站。基站根据簇头节点提供的信任值和关键参数进行数据噪声检测,对恶意节点的信任值进行惩罚,得到全局信任值,通过节点的全局信任值与预定义的阈值相比,得到最终的检测结果。
图1 基于信任机制的多协议层入侵检测方法框架
图2 分簇结构无线传感器网络
本文考虑分簇结构的无线传感器网络,如图2所示,每个簇内由多个节点(SNs)和一个簇头节点组成,网络中的监测节点定义为:网络中的节点与其邻居节点间相互监测,互为监测节点。邻居节点定义为:一个节点通信范围内的所有节点,都为该节点的邻居节点。
无线传感器网络攻击主要针对物理层,MAC层和网络层,因此主要针对这三层进行研究。本文提出的T-MPNID入侵检测方法包括两个阶段:①对三层信任值进行评估,利用加权法对三层信任值进行融合,得到融合信任值。②对各协议层关键参数进行数据噪声检测,启用惩罚机制得到全局信任值。
图3给出多协议层入侵检测方法的流程图。
2.2.1 物理层信任值评估
在物理层中,节点的能量消耗是评估信任值的一个关键的要素。在T-MPNID入侵检测方法中,将能量消耗作为计算物理层的信任值的关键参数。SP、RP、FP分别表示发送、接收和转发数据包的数量,数据包数量粗略估计Δt时间段内的能量消耗。监测节点i可以得到邻居节点j在Δt时间段的能耗Ecj(t)=SPj(t)+RPj(t)+FPj(t),(下文的计算均指在第t个检测周期内)。并计算节点j与其邻居节点能耗的相对偏差:
(1)
(2)
在式(2)中,节点物理层的信任值随着Ej(t)的增大而减小。此外,当Ej(t)大于1时,表明节点的能量消耗大于邻居节点的平均能量消耗的两倍以上,可能为恶意节点,物理层的信任值为0。
2.2.2MAC层信任值评估
在MAC层中,攻击者为了获得信道访问的优先级,通过减少随机退避时间(设置较小的竞争窗口(CW)),恶意节点的重传率会低于正常节点,将节点连续两次成功传输的时间间隔定义为空闲时间。在T-MPNID的方法中,将节点的空闲时间和重传率作为评估MAC层的信任值的关键参数。那么监测节点i对邻居节点j的信任值计算公式为:
(3)
(4)
图4 802.11协议DCF模式
在网络中将节点j的邻居节点可以表示为:Kj={k1,k2,k4,…,kn}。通过监测节点j的邻居节点空闲时间,得到节点j的邻居节点的平均空闲时间:
(5)
在式(5)中,n表示邻居节点个数。利用j节点空闲时间和其邻居节点的空闲时间,可以得到j节点与其邻居节点空闲时间的相对偏差值:
(6)
在式(6)中,b为节点发送数据的次数。通过空闲时间的相对偏差值,如果节点的空闲时间小于其邻居节点的平均空闲时间,该节点的信任值将会减小。由式(7)可计算出节点j空闲时间的信任值。
(7)
(8)
在式(8)中,RSij(t)表示监测节点i计算节点j的数据包重传次数。节点j的邻居节点平均重传率计算公式为:
(9)
(10)
由式(10)可知,若节点j的重传率小于该节点邻居节点的平均重传率,其信任值将减小。
2.2.3 网络层信任值评估
在网络层中,攻击者主要通过破坏网络路由进行攻击。恶意节点通过广播虚假的路由信息,使得恶意节点可以窃取更多的信息。攻击者还可以概率性的转发数据包,使部分数据包不能到达目标节点。因此,T-MPNID入侵检测方法将节点到簇头的跳数和节点包的转发率两个关键参数作为网络层的信任度量,计算网络层的信任值公式为:
(11)
式中:α1∈[0,1],α2∈[0,1]分别是计算网络层信任值中,跳数和转发率两个关键参数的权值,可以根据网络部署的实际情况确定,且满足α1+α2=1。
当跳数作为计算节点信任值的关键参数时,利用节点和其邻居平均节点跳数的相对偏差值,计算该节点的信任值。采用Abdullah等人提出的方法[21],每个节点建立单个节点的邻居数据库,数据库中包含相邻节点的ID和节点到簇头的跳数,可以得到节点j的邻居节点到簇头的平均跳数计算公式为:
(12)
在式(12)中,hop_countjKi表示节点j的邻居节点Ki到簇头的跳数,n表示邻居节点的数量。
(13)
监测节点i可以获得其邻居节点j的数据包转发数量。将转发率作为网络层中包转发率的信任值,计算该节点的转发率的公式为。
(14)
在式(14)中,FPj(t)表示节点j成功转发数据包的数量,RFPj(t)表示周围节点需要通过节点j转发的数据包的数量。若节点j转发失败次数越多,那么信任值下降的越快。
2.2.4 融合信任值评估
(15)
(16)
在T-MPNID入侵检测方法中,利用DB-SCAN(Density-Based Spatial Clustering of Applications with Noise)算法[22]对关键参数进行数据噪声点检测。DB-SCAN算法是一种基于密度的聚类方法[23],基于密度的聚类方法的基本思想是:对于同一类中的任意一个数据对象,以该数据对象为圆心,给定半径(Eps)限定一个区域,在该区域内必须至少包含最小个数(Minpts)的数据对象。它优势是能够发现任意形状的类别,有很强的抗噪性,并且只需扫描一遍数据集即可完成聚类。
假设样本集为E={E1,E2,…,Ev},与DB-SCAN相关的一些基本概念定义如下:
定义1给定一个数据样本点Ej∈E,以Ej为圆心,Eps为半径的区域称该对象的邻域,邻域内的数据样本点集合表示为MEps(Ej)。
定义2如果MEps(Ej)≥Minpts,那么Ej称为核心对象,若Ex∈MEps(Ej),那么Ex从Ej出发是直接密度可达的。
定义3Ex为一个数据样本点,如果Ex∈MEps(Ej),且MEps(Ej) 定义4在给定MinPts和Eps的集合D中,存在一个数据样本链Nl,N2,…,Nn,,N1=q,Nn=p,若点Ni从点Ni+1直接密度可达(1≤i 定义5给定MinPts和Eps,如果数据样本对象集合E中,存在一个对象c,使得对象Ej和Ex是从对象c密度可达,那么对象Ej和Ex是密度相连的(density-connected)。 在DBSCAN聚类算法中,通过检索所有样本数据点创建新类,类中包含的数据点都是密度相连的。如果存在数据点独立于所有聚类的数据点集合,那么该类数据点称为噪声。 DB-SCAN在无线传感器网络中可以用于入侵检测问题[24]。在检测过程中,本方法将MAC层和网络层中的退避窗口平均值和节点转发率作为噪声检测的关键参数。基站将被检测为异常关键参数对应的传感器节点ID号记录在一个噪声传感器列表L中,转发给簇内各传感器节点。 为了提高检测率,基站对噪声传感器列表中的节点进行信任值惩罚,降低其信任值。本文根据实际需求,惩罚程度也不相同,j节点惩罚后的融合信任值表示为: (17) 全局信任值是判别节点是否为恶意节点的信任值。检测阈值S为判定节点是否为恶意节点的一个预定义的值,若节点信任值大于S则为正常节点,反之则为恶意节点。T-MPNID入侵检测方法的全局信任值由直接信任值和历史信任值融合得到。直接信任值是当前检测周期节点行为的直观反映。引入历史信任值可以保证恶意节点的信任值呈下降趋势,直到低于设定检测阈值S。节点j的全局信任值计算公式: (18) 在式(18)中,μ∈[0,1]是历史信任值的权重,完整算法见表1。 本文对提出的入侵检测方法进行了仿真,利用MATLAB2016a作为仿真工具,在100 m×100 m范围内部署了120个传感器节点,并平均分成4个簇。信任值更新的时间间隔为10 min。详细的仿真参数见表2。 表1 T-MPNID基于信任机制的无线传感器网络多协议层入侵检测算法 表2 实验参数值 图5为正常节点和被攻击节点随着仿真时间增加信任值变化关系图,当仿真时间较短时,正常节点的信任值在(0.975,0.98)范围内波动,当仿真时间足够长时,节点的信任值趋于稳定。在MAC层和网络层模拟了四种典型的攻击,包括退避攻击(back-off manipulation attack)、选择性转发攻击(selective forwarding attack)、槽洞攻击(Sinkhole attack)和MAC-网络的跨层攻击(MAC-Network cross-layer attack)。在退避攻击中,恶意节点的信任值在(0.845,0.865)范围波动,最终稳定在0.858。在槽洞攻击中,恶意节点的信任值在(0.813,0.845)范围波动,最终稳定在0.815。在跨层攻击中,恶意节点的信任值稳定在0.665。攻击者同时发起对MAC层和网络层的攻击,通过使用更小的CW退避窗口,虚假路由信息吸引网络中的流量,并对发送过来的数据包进行选择性转发。 图5 各种攻击下的节点信任值变化图 误报率FPR(False Positive Rate)和漏报率FNR(False Negative Rate)是衡量检测系统的性能关键指标。误报是指:正常节点被检测为恶意节点。漏报是指:恶意节点被检测为正常节点。在T-MPNID入侵检测方法中,为了确定最佳的检测阈值S在四种攻击类型中模拟了不同检测阈值下误报率和漏报率。如图6,大部分攻击类型的误报率和漏报率在小范围的波动,但是在跨层攻击中,影响信任值的因素多,导致漏报率的波动较大。槽洞攻击漏报率曲线与跨层攻击误报率曲线的交点处,四种攻击中的误报率和漏报率最低。最优检测阈值为0.885,当四种类型的攻击在阈值S为0.885时,误报率和漏报率均小于0.07。 本文选择0.885作为最优检测阈值S,分析了不同恶意节点数量对检测率的影响。如图7所示,在T-MPNID入侵检测方法中,四种攻击的检测率随着恶意节点数量增多而降低。当恶意节点数量的比例小于10%时,四种攻击的检测率都高于0.97。当在恶意节点数量的比例超过10%时,检测率会明显降低,且随着恶意节点的增多,检测率呈下降趋势,但检测率始终保持在0.8以上。 图6 不同检测阈值下误报率和漏报率 图7 不同恶意节点比例的检测率 图8 不同比例恶意节点的检测率对比图 本文提出的T-MPNID入侵检测方法与Feng等人[25]提出的NBBTE方法和Wang等人[1]提出的PLTB方法在检测率、误报率、漏报率三个方面进行对比。 图8(a)是T-MPNID方法检测率与NBBTE方法对比图,在四种攻击下T-MPNID方法检测率都优于NBBTE方法。NBBTE方法只关注网络层的节点行为,因此在MAC层检测率为0。本文所提方法在跨层攻击、槽洞攻击和选择性转发攻击中的检测率比NBBTE方法分别提高22%、10%、3%。如图8(b)所示,T-MPNID方法的检测率与PLTB方法进行对比,两种方法随着恶意节点的数量增多,检测率在不断下降。当恶意节点数量的比例低于10%时,T-MPNID方法中,四种攻击的检测率均保持在0.97以上。当恶意节点数量比例为大于10%时,退避攻击和跨层攻击检测率下降幅度远低于PLTB。当恶意节点数量的比例为30%时,在退避攻击、跨层攻击、槽洞攻击和选择性转发攻击四种攻击中,T-MPNID方法的检测率比PLTB方法分别提高了0.33、0.25、0.08、0.03。 图9 不同恶意节点的比例下误报率对比图 图9(a)为T-MPNID方法的误报率与NBBTE方法对比图,随着恶意节点的数量的增多,误报率呈上升趋势。由于NBBTE方法没有考虑退避攻击,因此没有对退避攻击进行分析。在槽洞攻击、跨层攻击和选择性转发攻击中,T-MPNID方法的误报率均低于NBBTE方法。在恶意节点数量的比例为30%时,T-MPNID方法的误报率在跨层攻击和槽洞攻击中比NBBTE方法分别降低了50%和40%。图9(b)为T-MPNID方法的误报率与PLTB方法对比图,当恶意节点数量的比例超过20%时,在槽洞攻击和跨层攻击中,T-MPNID方法的误报率比PLTB方法低5%~8%。在两种方法中,选择性转发攻击的误报率都在稳定在0.02。 本文还对漏报率进行对比分析。在图10(a)中,T-MPNID方法中四种攻击的漏报率均低于NBBTE方法。当恶意节点数量比例为20%时,在T-MPNID方法中,槽洞攻击、选择性转发攻击、跨层攻击的漏报率与NBBTE方法相比分别降低了54%、51.8%、53.1%。当恶意节点数量比例为30%时,T-MPNID 方法在槽洞攻击、选择性转发攻击、跨层攻击的漏报率比NBBTE方法分别降低了20.6%、22.3%、15.8%。在图10(b)中,PLTB方法与 T-MPNID 方法进行比较,当恶意节点数量比例超过15%时,在退避攻击、槽洞攻击、跨层攻击和选择性转发四种攻击中,T-MPNID方法的漏报率与PLTB相比平均降低9%、5%、3%、1%。 图10 不同恶意节点的比例下的漏报率对比图 在NBBTE方法中,包括直接评估和间接评估。NBBTE的主要开销就是HELLO包和间接评估中的推荐值,与网络中相邻节点的平均数量有关。在PLTB方法中,监测节点在一个周期将评估的结果发送给簇头,通信开销与跳数有关。 在T-MPNID方法中,簇头将一个周期内评估的平均融合信任值和关键参数发送给基站,基站将被惩罚过的节点信任值发送给簇内节点,节点将簇头发来的数据包向邻居节点转发。因此T-MPNID方法的通信开销与节点到簇头的跳数有关。假设簇内有n个节点,节点到簇头的平均跳数为Nhop,平均邻居节点数为Na。T-MPNID方法一个检测周期内的通信开销为CostT-M=n(Nhop+1)。在NBBTE方法中,一个检测周期内的通信开销为CostNB=n(2Na+1)。在PLTB方法中,一个周期内的通信开销为CostPL=nNhop。选择1个簇头,30个节点来分析本文T-MPNID方法的通信开销。 如图11表示平均跳数与通信开销的关系,平均邻居节点数为3。当平均跳数为小于6时,T-MPNID方法的通信开销小于NBBTE方法。当节点到簇头的平均跳数为5时,在平均邻居节点数不同的情况下,如图12所示,当平均邻居节点数量大于2时,T-MPNID方法的通信开销小于NBBTE方法,略高于PLTB方法。 图11 不同平均跳数的通信开销对比图 图12 不同平均邻居节点数通信开销对比图 综上,本文所提的T-MPNID方法在平均邻居数量在[3,6]范围内,节点到簇头的平均跳数在[2,6]的范围内有着较低的通信开销。不适用于邻居节点数较少和节点到簇头跳数大于6跳的多跳无线传感器网络。 无线传感器网络容易受到不同协议层的攻击,本文提出的T-MPNID入侵检测方法,在多个协议层选择决定信任值的关键参数,不仅分析单层攻击中节点的恶意行为,而且充分考虑各协议层异常行为,共同评估节点信任值。此外,该方法结合数据噪声检测技术进行再检测,有效避免评估的信任值误差,降低了误报率和漏报率。本文所提方法具有可扩展性,可以根据实际环境,增加更多的参数来计算信任值,相比传统的信任检测方法有更高的检测率,较低的误报率和漏报率。2.4 惩罚机制
2.5 全局信任值评估
3 仿真结果
3.1 仿真环境
3.2 仿真结果
3.3 通信开销
4 结论