王继营
(黄淮学院信息工程学院,河南 驻马店 463000)
目前,无线传感网络(wireless sensor networks,WSNs)已广泛应用于军事、康复医疗、智能交通系统等领域,并且已成为部署物联网(internet of things,IoT)[1]的必要技术。物联网的目的就是将所有物体接入Internet,使这些物体能够收集、交互数据,进而为人类服务。在物联网中,常采用基于IPv6协议,其允许WSNs以大规模方式部署。
此外,WSNs的无线特性和固有属性使传感节点容易遭受多类攻击[2],传统的安全技术难以直接应用于WSNs[3]。攻击者可能来自内部或外部[4],对于外部攻击者,可利用加密技术防御;而内部攻击则十分危险,因为内部攻击节点能够共谋合法节点,因此常将入侵检测系统插入WSNs,作为其防御方式。
选择性转发攻击被认为是对WSNs最危险的攻击。事实上,共谋节点能够选择性或全部丢失对其他节点有益的数据包。此外,部分应用如康复医疗、智能交通系统中,节点会发生移动,这影响了链路的稳定性,增加了数据包的丢失。因此,在移动WSNs中检测此类攻击是非常困难的。
文献[5]先部署检测节点,通过检测节点获取节点的数据包转发率和熵函数,再利用这些值计算每个节点的名誉值;如果名誉值低于预设的门限值,则该节点被判为选择性转发攻击节点。然而,在移动的WSNs网络内,每个节点的下一跳节点经常变化,使得该算法不能用于移动的WSNs网络,仅适用于静态WSNs。文献[6]提出利用计算节点的秩值,通过比较节点与父节点秩值差,检测攻击节点;但是此方法不能检测移动性攻击者。文献[7]利用部署无人机观察网络节点,并收集数据,再计算每个节点所接收的数据包数;随后利用SPRT测试检测恶意节点。然而,部署无人机是非常昂贵的,不适应于低有成本的WSNs网络。
上述的这些算法是针对静态WSNs设计的,在基于IPv6移动WSNs网络内难以表现良好性能。为此,本文对基于IPv6的移动WSNs的选择性攻击进行研究,提出基于序贯概率比测试(SPRT)的选择性攻击检测算法,并将其应用于标准IPv6的RPL协议,进而检测、隔离恶意节点。
WSNs网络中,每个路由节点从邻居节点收集信息,然后存储于表中。该表有两栏,第1栏存储所接收的数据包数;第2栏包含需要发送的数据包数。令Rcik表 示节点i从 邻居节点k所接收的数据包数,每个节点的邻居节点数限于8个;Senti表示节点i向它首选父节点(preferred parent node,PPN)j所转发的数据包数。
网络内所有节点连续地更新自己的表。对于每个时间戳T,每个节点i依据所收集的数据包和已存储于邻居表的HELLO包建立信息。数据包包含了数据包编号 S eqN、当前节点身份ID、PPN、从每个邻居节点所接收的数据包数和时间戳,其中时间戳表示接收最后一个数据包的时间[8]。
一旦接收了m个 HELLO数据包,信宿节点就计算丢失数据包数dm以 及节点i丢失数据包的概率pr。dm和pr的定义为
如果pr值大于阈值Δ,说明节点i丢失的数据包数过多,因此需对其进行隔离[9]。阈值Δ随信道特性和节点移动动态变化。为了定义阈值,引用期望传输次数(expected transmission count,ETX)。ETX表示为了将一个数据包传输至目的节点所需传输的控制包数。
将阈值Δ等于p′,定义为传感节点发生丢失数据包概率的可接收值(容忍值)。因此,p′等于由节点i到目的节点的每条链路qi的ETX值之和的倒数,即:
在一定时期内,节点i的子节点所发送的数据包数减去PPN所接收的数据包数,若该值与节点i的子节点所发送的数据包数的比值大于2倍阈值,则说明节点i对它所发送的、接收的数据包数说谎,如下式所示:
接下来判断pr是否满足式(4)。如果满足,则说明节点i存在不良行为,需要进行隔离一次。引用变量 co unter统 计隔离的次数。每隔离一次,c ounter就自加1。伪代码如下所示:
最后,判断此节点是否成为恶意节点。如果一个节点i被隔离X次,则它就是选择性转发攻击节点。
1.2节给出恶意节点的定义。本节通过序贯概率比测试 (sequential probability ratio test,SPRT)[10]检测RPL路由的恶意节点,进而提高检测概率,降低虚警率与漏警率[11]。
SPRT是基于两个假设的统计过程:简单假设和选择性假设。首先定义阈值p1,且p1≥p′;如果满足pr≥p1条件,则此节点称为恶意节点。再定义另一个阈值p0,且p0≤p′;如 果满足pr≤p0条件,则传感节点称为合法节点[12]。如果这两个条件都不满足,则对此节点不作任何判断。
在SPRT中,H0表示正常情况的假设;H1表示异常情况的假设[13]。
令α和β分别表示SPRT测试的漏警率和虚警率。通过设定所有SPRT的参数,定义am和rm。am、rm分别表示接收数、丢失数,为m次抽样中丢失数据包数dm的上、下限,则有:
具体的决策过程,如图1算法所示。需对阈值调整参数γ、ε及抽样次数m进行初始化。
信宿将恶意节点的身份载入DIO消息[14]。每个节点收到DIO消息后,从中提取恶意节点的身份,然后从自己的父节点列表中删除这些节点,从而使得这些节点不参与路由。
基于Cooja软件建立仿真平台,将SPRT-DA算法应用于RPL协议,分析执行SPRT-DA算法的检测概率[15]和网络开销。在仿真过程,3个恶意节点位于彼此不相交的路径上,恶意节点离信宿两跳以上的距离。仿真参数如表1所示。
图1 SPRT-DA算法
表1 仿真参数
2.2.1 实验一
本次实验分析am和rm对 漏警率 α 和虚警率 β的影响。在网络部署后,利用式(3)计算得在无攻击者环境下,丢失数据包平均概率在0.3~0.4变化。因此,在仿真过程中,将合法节点丢失数据包的概率设为0.3~0.4,20个抽样观察中,有6~8个数据包丢失。实验数据如表2~表5所示。
从表中数据可知,当rm降低、am增加时,漏警率增加,使得更多的恶意节点被揭发。事实上,如果am增加,能够识别所有恶意节点。
2.2.2 实验二
本次实验分析α和β对恶意节点和合法节点检测率的影响,实验数据如图2、图3、图4和图5所示。其中恶意节点检测率表示被检测的恶意节点数与总的恶意节点数之比,类似地,合法节点检测率等于被检测的合法节点数与总的合法节点数之比。
表2 α随am和rm的变化(p′=0.4 、β=0.5)
表3 β随am和rm的变化(p′=0.4 、α=0.01)
表4 α随am和rm的变化(p′=0.3 、β=0.5)
表5 β随am和rm的变化(p′=0.3、α=0.01)
图2 α对恶意节点和合法节点的检测率的影响(p′=0.4、β=0.5)
从图2可知,在p′=0.4、β=0.5环境下,恶意节点的检测率随 α的增加,呈下降趋势。当 α从0上升至0.01,恶意节点的检测率从1迅速下降至0.66。而合法节点的检测率随 α的增加,呈增加趋势,当α从0上升至0.01时,合法节点的检测率从零上升至0.58,并随后保持稳定不变。
图3 β对恶意节点和合法节点的检测率的影响(p′=0.4、α=0.01)
图4 α对恶意节点和合法节点的检测率的影响(p′=0.3、β=0.5)
图5 β对恶意节点和合法节点的检测率的影响(p′=0.3、α=0.01)
从图3可知,β的增加提高了合法节点的检测率,而恶意节点的检测率随 β的增加呈下降趋势。在β=0.05、β=0.1、β=0.2 和β=0.5时,对恶意节点的检测率逼近于1,达到0.99。当虚警率 β大于0.5后,检测率下降。但是,在 β变化期间,合法节点的检测率较低,低于0.6。
从图4可知,在p′=0.3、β=0.5条件,α的变化对合法节点检测率没有影响,其值稳定在0.58。而恶意节点检测率呈下降趋势,最后稳定于0.58。
由图5可知,p′=0.3、α=0.01时,β的增加降低了对恶意节点的检测,但提高了合法节点检测率。
2.2.3 对比实验
选择文献[5]提出的基于信任机制的检测算法(trust mechanism based detection,TMD)、文献[6]提出的实时入侵检测算法(real-time intrusion detection,RID)和文献[7]提出的黑洞检测算法(detection of black hole attack,DBA)作为参照,并与本文的算法性能比较。这4个算法对恶意节点的检测率随虚警率的变化曲线如图6所示。
图6 不同方法对恶意节点检测率的对比
由图可知,本文提出的算法对恶意节点的检测率优于TMD和RID,但低于DBA方法,文献[7]利用无人机收集网络数据,能够收集全局信息,但部署成本很高,它是以成本换取高的检测率。而文献[5]、[6]的检测率较低,这主要是因为它适合静态WSNs,不适应移动的WSNs。
本文针对基于IPv6的移动无线传感网络,提出一个新的算法,检测选择性转发攻击,并隔离攻击节点。本算法结合基于自适应阈值的SPRT,进而提高检测率。实验结果表明,提出的SPRT-DA算法能够有效地检测恶意节点。然而,SPRT-DA算法需通过交互Hello包实现,这加大了网络的额外开销,所以后续研究需着力于降低控制包数。