似然多元分类的动态恶意节点检测算法
2018-11-17王学成
刘 冰,王学成
(1.浙江经济职业技术学院 数字信息技术学院,浙江 杭州 310018;2.吉林大学 计算机科学与技术学院,吉林 长春 130012)
0 引 言
为了保障节点通信数据的安全性,如何对无线传感器网络的安全进行有效保障尤为重要[1-5]。目前黑客对无线传感器网络的攻击主要采用病毒控制通信节点或者采用伪装的通信节点(这些节点在文中统称为恶意节点),进而对无线传感器网络造成破坏。
恶意节点破坏无线传感器网络的方式通常采用泛洪攻击和虫洞攻击的方式,在泛洪攻击中,恶意节点传播混乱的信息使得大部分的邻居节点将数据传输给它,窃取了其它节点的监测数据并破坏了正常的路由通信。在虫洞攻击中,两个或以上的恶意节点通过私有的通讯管道互相传递信息,减少跳跃数来获得绕路权,进而对随后的资料封包造成被窃听或者阻断正常路由的数据传递服务的可能[6,7]。为了能够有效识别恶意节点,从而阻止黑客对无线网络的进一步破坏,国内外许多专家学者对这些问题进行了深入的探讨并开展了研究工作,取得了一定的成果。
张琳等提出一种基于DPAM-MD算法的无线传感器网络恶意节点识别算法,该算法为了解决恶意节点检测的低识别率和高误判率等问题,引入了基于DPAM-MD算法的恶意节点识别方法,在传统信誉阈值判断模型的基础上,通过结合曼哈顿度量和DPAM算法识别出亚攻击性节点[8]。蔡绍滨等提出基于云模型的无线传感器网络恶意节点识别技术,该技术考虑到基于密码的安全体系不能有效处理来自网络内部的攻击,识别出恶意节点,因此在识别恶意节点上基于云理论提出了一种信任模型,通过节点的可信度计算及更新来监测节点的异常操作,从而准确识别恶意节点[9,10]。Ho等提出一种无线传感器网络移动恶意攻击节点分布式检测方案,该方案的核心思想是采用连续的假设来检验某些特定时间段的沉默节点,采用一个时序概率比检验的统计决策过程来制定节点的动态阈值方案,区分恶意节点[11]。Ning等提出一种基于重复博弈的无线传感器网络的恶意节点检测定位算法,该算法引入信任评价方法来区分恶意信标节点,并建立重复博弈框架来定位恶意节点[12]。
本文首先提取恶意节点区别于正常节点的特征属性,再基于似然估计及多元分类理论提出判别函数,从而根据未标记节点的特征向量来判断节点类型。
1 场景分析
图1为一个无线传感器网络的系统场景,在该场景中,S节点为汇聚节点,S节点负责收集所有采集节点的监测数据,所有的采集节点需要通过多跳的方式将数据发送至节点S。采用最短路径的路由协议,节点A将数据传输至节点S需要通过路由A→B→C→D→E→S。假设此时节点C为恶意节点,恶意节点会阻碍其它节点将数据正常传输到S,例如在图1中它会将节点A的大部分数据都转发到不相关的节点F,阻碍了节点A与汇聚节点的正常通信,由于场景中节点D、E、G处于汇聚节点较近的距离,可以被S实施监控,因此本文将这些节点定义为类型已知的节点,简称TK节点,在当前的网络场景下,本文的目标是在该网络中寻找出所有的恶意节点。
图1 网络场景
2 多元分类的规则定义
多元统计分析是一种统计数据的形式,涵盖多个结果变量的同时观察和分析[13,14]。多元分类是一种结合多元统计分析的样本分类方法[15]。一般多元分类有两种形式,分别为基于似然和基于判别的分类形式,基于似然的分类是寻找一个参数的似然函数以及在给予一定的观测结果下的一组参数值的似然性,它等于给出的那些参数值的观测结果概率。该方法在估计来自一组统计数据的参数上有着关键作用,基于似然多元分类的基本原理如下:假设有一组样本共可以分为M个类{1,2,…,m},对于一个随机样本xi,用D表示样本xi的类,当p(D=a|xi)>p(D=b|xi),a,b∈M并且a≠b,则xi属于类a,p(D|xi)表示后验概率。根据后验概率的定义[16]
(1)
(2)
通过式(2),可以放入一个随机未标记样本xi,并且选择具有最大后验概率的Da来作为该样本的类型。
3 多元分类的动态恶意节点检测
3.1 节点特征属性
3.2 恶意节点攻击模式分析
恶意节点攻击通常采用3种攻击模式:选择性转发攻击:恶意节点将源节点的数据转发至其它无法达到目的节点的链路,从而阻断源节点与目的节点之间的通讯。假设节点C为选择性转发的恶意节点,它从节点A接收到数据后概率性地将数据转发给路由路径上的节点或者直接丢弃数据包,这使得恶意节点的下一跳节点D无法接收完全的数据包,导致网络陷入混乱。其次,假设节点F为带有sinkhole攻击的恶意节点,该节点回应其所有邻居节点的路由请求,并且声称它与汇聚节点之间有高质量的链,这使得邻居节点与它建立起了链路,例如A→B→C→F,在这种情况下节点A,B和C的数据包无法达到汇聚节点。最后,假设F和G联合采取了虫洞攻击,F类似采取了sinkhole攻击,声称它与G节点之间有一个高质量的链路通往汇聚节点,从而建立起链路B→F→G→S,通过该方法恶意节点可以进行消息包装或者更改数据传输过程中的消息。基于前面提到的节点属性,对于节点i的特征矢量Xi={p(i),pr(i),MA,Ti},恶意节点的攻击模式可以建模为:
(1)对于选择性转发攻击的恶意节点
p(i)≤pT,i∩pr(i)≤prT,i
(3)
pT,i表示成功发送率的阈值,prT,i表示转发率的阈值。在这里设置pT,i=0.9,prT,i=0.6。
(2)对于sinkhole攻击的恶意节点
p(i)≤pT,i∩pr(i)≤prT,i∩Mi≥nT
(4)
其中,nT表示连通维度的阈值。
(3)对于虫洞攻击的恶意节点
Mi≥nT∩TH≥Ti
(5)
TH表示延迟比率阈值。
3.3 多元分类的动态恶意节点检测
由于恶意节点的异常操作增加了能量损耗,因此相比正常节点具有更低的发送功率,并且成功发送数据包至下一跳节点的概率相比其它正常节点的概率要低。其中,具有选择性转发攻击的恶意节点由于其恶性丢包的行为,其转发率相比正常节点更低,此外,由于带有sinkhole攻击的恶意节点吸引其它节点向它转发数据,因此具有较大的连通维度MA。当无线传感器网络中节点均匀分布时,节点之间的传输距离近似相等,因此节点的传输延迟几乎相同,而带有虫洞攻击的恶意节点的传输延迟具有一个更大的值,这是因为它通过改变路由信息将消息发送到更远的节点。因此,在本文的无线传感器网络中,将通过这些节点特性的学习来将恶意节点区分出来。
在本文中将所有样本通过基于似然多元分类算法进行学习,并生成一个类别来准确分类所有其它N-q个未知的节点。假设类条件概率密度p{X|Da}是一个正常的概率密度函数Nd(μa,∑a)[16]
(6)
定义判别函数wa(x),根据式(1)的贝叶斯规则可以得到
(7)
进行每个类别的最大似然估计,平均值及协方差矩阵的计算,分别得到
(8)
(9)
(10)
从而式(9)可以化简为
(11)
4 实验仿真及分析
在本节中,为了验证所提出的基于似然多元分类的无线传感器网络动态恶意节点检测算法的有效性,本文采用带有扩展模型nrlsensorsim的NS2仿真器对算法进行编程仿真,并与多个同类算法进行实验结果的对比分析,以此来检验本文算法的性能。实验仿真参数见表1,接着本文将选择性转发攻击与sinkhole攻击的恶意节点部署在无线传感器网络中,并且设定选择性转发攻击的节点的转发率只有50%,未标记的恶意节点与其它未标记的正常节点随机均匀分布在无线传感器网络中,其中4个为选择性转发攻击节点,4个sinkhole攻击节点,2个虫洞攻击节点。实验中的对比算法采用的是文献[11]和文献[12]所提出的恶意节点检测算法。
表1 仿真参数
实验场景中共110个无线传感器节点,用0代表正常节点的类型,1.0代表选择性转发攻击的节点类型,-1.0和-2.0分别代表sinkhole攻击和虫洞攻击的节点类型。图2为本文算法的实验检测结果,从图中可以看出,本文算法检测到的恶意节点有10个,图3和图4分别为文献[10]的检测结果和文献[11]的检测结果,检测到的恶意节点有8个和7个,表2为正确的检测结果与各算法的检测结果的对比表格。从表2的对比结果可以看出,本文算法检测的恶意节点总数与正确结果一致,并且正确地为未知节点进行了标识,因此本文算法的检测准确度优于文献[10]和文献[11]的方法。
为了更加准确地评价算法的检测结果,在实验中先后进行了100次仿真实验,每次实验的所有节点都初始化位置,随机分布在无线传感器网络中,每次实验后都统计各算法的检测错误率,得到了图5的算法平均检测错误率分布图,准确标识的恶意节点数与总恶意节点数的比值,再被100%减去后的结果为检测错误率。例如表2中文献[10]的算法识别出8个恶意节点,但准确标识的恶意节点有7个,因此错误率为100%-7/10=30%。从图5的对比结果可以看出,仿真时间过短会影响算法的检测结果,这是由于算法需要时间来对节点的特性进行提取,并且将恶意节点的特性与正常节点进行对比,实行准确分类。达到一定的所需时间后,算法检测的错误率就不会随着时间的增加而降低,从而达到一个稳定状态。从图5的对比结果可以看出,本文算法的检测错误率低于文献[10]和文献[11]的算法,在准确检测恶意节点上表现出了更好的优势。
图2 本文算法的检测结果
图3 文献[10]的检测结果
图4 文献[11]的检测结果
表2 检测结果对比
图5 检测错误率对比
5 结束语
针对无线传感器网络的恶意节点检测识别问题,本文根据节点在无线传感器网络活动时的状态信息,提取节点的特征属性:成功发送率,转发率,连通维度以及平均传输延迟,接着分析节点攻击模式并结合节点特征属性进行建模,再基于似然的多元统计分析方法对恶意节点进行分类。实验采用NS2仿真器对算法进行编程仿真,并采用实验结果对比分析的方法来验证本文算法的性能,从实验结果可以看出,本文算法在准确检测并标识恶意节点上表现出了较好的效果。