徐 宏,江 波,谢金辉
(中国电子科技集团公司第三十二研究所,上海 201800)
无线传感器网络(Wireless Sensor Networks,WSNs)由大量传感器节点组成,由于采用无线广播的通信方式,容易受到拒绝服务(Denial of Service,DoS)攻击[1],并且传感器节点受到各种资源(如存储、计算、能量)的约束,使得无线传感器网络在安全方面相对于其他网络面临着更大的挑战[2]。
针对无线传感器网络DoS 攻击,文献[3]提出基于流量预测的WSN 入侵检测技术,利用自回归滑动平均模型ARMA 得到正常节点接收率范围,但该方法主要针对流量有较大影响的攻击,无法检测Sybil、虫洞等攻击手段。文献[4]提出了一种基于博弈论的入侵检测模型,通过分析模型均衡解来论证执行入侵检测系统的必要性,该方法难于处理间断性攻击。文献[5]采用支持向量机技术,通过检测样本的局部半径和全局半径阈值来检测入侵,但是这种方法需要处理大量的数据,且计算复杂度较大。文献[6]基于时空压缩的神经自编码模型,改进了传统的节点感知数据处理方法,但是增加了节点计算能耗。文献[7-11]中,综合分析了不同DoS 攻击行为的能耗差异,提出基于节点能量预测思想的网络入侵检测方案,通过对比节点预测能耗与实际能耗,将检测到的攻击根据能量阈值进行分类。
该文从能量角度进一步分析节点异常行为与能耗之间的关系,提出一种基于能耗特征的轻量入侵检测模型(IDSEC),并通过对比实验验证该模型的有效性。
传感器节点的异常行为是判断其是否对网络进行攻击的重要依据[12-13],而节点的行为一般建立在消耗自身能量的基础上。虽然节点能耗受到网络拓扑、网络协议、工作任务以及环境等多因素的共同作用,对于周期性收集发送数据的稳定无线传感器网络,单个节点的工作行为状态一般具有稳定性。考虑在没有DoS 攻击发生或者受到其他非正常因素影响时,节点能耗会保持在一定的合理范围内,并且节点执行相同任务所引起的能耗变动过程和任务本身具有一定程度的相关性,该文从节点周期能耗结果以及能耗变化过程两个方面对节点进行异常检测,并参考历史检测信息最终判定节点的安全状态。由于该文基于能耗分析,因此未考虑防范数据篡改类型攻击,且假设节点数据真实可靠。
1.2.1 能耗预测模型
假设节点工作时间T由l个工作时隙Δt组成,即T=l∙Δt;每个时隙内节点只存在一种工作状态,S={s1,s2,…,sM} 为节点有限工作状态空间;E={e1,e2,…,eM}为对应工作状态在一个时隙内的能耗;随机过程{Xn,n∈N}表示传感器节点工作过程,描述节点在不同工作时隙所处的状态。
假设节点初始状态为i,从状态i到状态j的一步转移概率为pij=P(Xn+1=sj|Xn=si)。根据C-K 方程得到n步转移概率为:
其中,0 假设节点的初始状态概率分布为π=(π1,π2,…πM),则单个节点在时间T内的能耗预测值为: 1.2.2 能耗分析模型 节点在时间T内完成任务H时,电源模块记录每个时隙自身的功率pi,并形成一次功率观测序列P=(p1,p2,…pl);对正常节点工作进行长期检测,可得到功率统计序列,将其作为理论参考标准。 记ρP,Pˉ为一次观测序列P与统计序列Pˉ的相关系数,简记为ρ,计算公式如下: 其中,σP,Pˉ为P与的协方差,σP、σPˉ为P与的标准差。 定义State(vi)表示节点vi的能耗检测结果,取值为{normal,abnormal},State(vi)=normal表示检测正常,State(vi)=abnormal表示检测异常。检测规则如下: 其中,Δε=|E-|为能耗残差,简称残差;E为节点实际能耗;ϕ为残差上限,用于判定节点能耗是否存在异常;φ为相关系数下限,用于判定节点完成任务实际过程与理论过程的相关性。ϕ与φ的取值根据具体情况设定。 假设节点在最近一段时间内共进行了α+β次检测,α表示检测为正常的次数,β表示检测为异常的次数。考虑导致节点异常的原因可能是DoS 攻击或者偶然因素导致的误判。为了降低偶然因素导致的误警,设计一种参考节点历史行为的评价函数S(α,β),简记为S,计算方法如下: 其中,S的取值范围为[0,10];为惩罚因子,使得S的值随检测异常的增加迅速减小。根据实际情况设定连续观测次数及S的判定阈值λ。当S<λ时,认为该节点行为持续异常并判定为入侵节点。 假设通过长期检测,已知节点状态转移概率、功率统计序列Pˉ以及最近节点状态检测历史记录(正常次数α、异常次数β);并根据检测数据设定能耗误差阈值ϕ、相关性阈值φ、判定阈值λ。算法通过节点vi获取到当前时间T内实际能耗E及功率观测序列P。入侵检测算法具体步骤如下: Step1:数据准备。根据能耗预测模型预测节点vi在时间T内的能耗Ê。 Step2:第一阶段能耗检测,检测节点实际能耗是否出现大幅度波动。计算E与Ê的残差Δε。如果Δε<ϕ,转到Step3;否则State(vi)=abnormal,更新β=β+1,转到Step4。 Step3:第二阶段能耗检测,检测节点实际能耗过程与理论过程的相关性。计算P与Pˉ的相关系数ρ。如果ρ∈(φ,1],State(vi)=normal,更新α=α+1,转到Step4;否则State(vi)=abnormal,更新β=β+1,转到Step4。 Step4:入侵判定。根据Step3更新的α、β与式(6)计算S。如果S>λ,判定节点为正常节点;否则为入侵节点。 通过Matlab 对入侵检测算法进行仿真实验。实验采用中移物联网开发的搭载ESP8266 麒麟座mini的传感器模块作为数据获取对象。传感器节点工作周期为10 s,每隔0.5 s 进行一次能耗记录,循环工作时序流程:监听并接收数据(1.5 s)→待机(1 s)→环境感知与数据处理(4 s)→发送数据(2.5 s)→待机(1.5 s)。设定4 种模拟攻击作为对照组实验,分别是选择转发攻击[14]、通过私有隧道远距传输的虫洞攻击[15]、拥有两个虚假身份的Sybil 攻击[16]、延迟数据发送的时延攻击[17]。 表1 为正常节点连续工作30 个周期的实际能耗和预测能耗。 表1 能耗数据 通过数据分析可得,实际能耗平均值为0.926 mJ,预测能耗平均值为0.913 mJ,平均残差为0.091 mJ,残差标准差σ为0.070 mJ。根据上述数据,设定残差上限ϕ=+σ,即ϕ取0.161 mJ,约为正常能耗的17%;设定S参考前4 次观测记录,判定阈值λ为0.5。 图1 为4 种模拟攻击下的实际功耗的近似拟合曲线。 图1 节点功耗拟合曲线 表2为4种模拟攻击下的实际能耗统计数据。 表2 实验统计数据 相对于正常节点,50%的选择转发节点平均减少耗能0.143 mJ,虫洞节点平均增加耗能0.166 mJ,Sybil节点平均增加耗能0.280 mJ,时延节点与正常节点能耗接近;相关性方面,正常节点相对于自身统计数据相关系数为0.979,设定相关系数阈值下限φ=0.90。 检测率是评价入侵检测性能的重要指标。检测率一般指被正确识别的入侵节点与所有入侵节点个数之比。为了直观地分析该文IDSEC 算法的性能,选取文献[7]IDSEP算法、文献[10]IDSEM 算法进行对比实验。模拟场景为100个节点随机分布在100 m×100 m的自由空间,节点通信半径为25 m,单路径传输;模拟攻击方式采用转发率从0%~90%递增的选择转发攻击、虫洞攻击、Sybil攻击、时延攻击,攻击节点占节点总数的15%。 图2 为选择转发攻击在3 种检测模型中的检测结果。 图2 选择转发攻击检测率 表3 为4 种不同攻击下3 种检测模型的检测率结果。 表3 虫洞、Sybil、时延攻击检测率 对于选择转发攻击,IDSEP、IDSEM、IDSEC 3 种模型的检测率随转发率上升而下降。这是由于随着恶意节点转发率的提高,其行为表现就越接近正常节点,因此检测率也随之下降,但IDSEC 模型增加了对节点能耗过程的检测,相较于其他两种对比模型,检测率下降较慢。对于虫洞攻击,由于IDSEP 模型相对其他两种模型,能耗预测精度较低,IDSEP 模型检测率仅为37.3%,IDSEM 模型、IDSEC 模型检测结果接近,这是由于虫洞攻击本身主要通过提高自身发射功率建立私有通信隧道,对能耗结果的影响较大而对能耗过程的相似度影响较小。对于Sybil 攻击,3 种模型均可准确检测。对于时延攻击,IDSEP与IDSEM 检测率不足5%,而IDSEC 检测结果为100%,这是由于时延攻击只是延迟数据发送,对能耗结果影响不明显,但对能耗过程影响较大。 为了进一步探究不同攻击的能耗特征以及不同检测模型差距的原因,根据仿真实验选取4 种类型攻击节点与正常节点的能耗实验数据结果进行分析。选取节点的能耗相关系数为维度一(X轴表示),节点实际能耗与节点正常能耗均值比为维度二(Y轴表示),简称能耗比。根据节点两个维度数据,将实验数据绘入能耗特征分布图中,如图3 所示。 图3 节点不同行为能耗特征分布图 1)节点方面 相同行为的节点能耗特征具有相似性,集中分布在图中某一区域;而不同行为的节点聚集区域不同。 仿真实验使用以上4 种攻击,描述了4 种节点异常行为:①选择转发攻击所表现出的异常行为是节点未完成规定任务,节点能耗结果和相关系数随节点工作完成度降低而降低;②时延攻击所表现出的异常行为是节点虽完成规定任务但完成时序存在问题,因此耗能正常但相关系数异常;③Sybil 攻击所表现出的异常行为是节点整体出现较大异常,因此能耗与相关系数均出现异常;④虫洞攻击所表现出的异常行为是节点工作整体流程正常,但局部工作行为出现耗能异常现象,因此对相关系数影响较小,但对能耗结果影响较大。不难得出节点行为与能耗特性之间存在着一定的关联关系,下一步工作可以根据节点能耗特征情况推测节点攻击类型,进而采取相应的措施。 2)模型方面 使用检测盲区这一概念来描述入侵检测模型在能耗分布图中不能识别入侵攻击的区域。横线A、A′代表能耗预测精度,两条横线之间的区域记为第一类检测盲区;纵线B为相关性判定阈值,纵线右侧的区域记为第二类检测盲区。现有的基于能耗的入侵检测模型虽然检测效果各有不同,但核心都是基于能耗预测,其检测率取决于模型的预测精度,精度越高,第一类检测盲区越小;文中模型使用两阶段能耗检测,其检测盲区为两类盲区的重叠矩形区域,检测盲区更小。 文中介绍了一种基于节点能耗特征的无线传感器网络轻量入侵检测模型。从能耗结果与能耗过程两个方面对节点异常行为进行检测,并结合节点历史检测情况判断是否存在入侵行为。通过仿真实验,验证了该方法对多种入侵行为具有较好的检测效果,同时验证了节点不同行为与能耗特征之间的关系。但是对非周期工作节点,该模型还存在一定的缺陷需要改进,这是下一阶段需要解决的问题;如何通过节点的能耗特征识别攻击模式还需要进一步的研究。1.3 状态判定
2 基于节点能耗特征的入侵检测算法
3 仿真与分析
3.1 参数设定
3.2 仿真实验
3.3 实验分析
4 结论