RPL 路由协议中基于投票法的黑洞攻击检测算法*

2021-06-11 00:52张娴静
火力与指挥控制 2021年4期
关键词:数据包路由黑洞

张娴静

(郑州工业应用技术学院信息工程学院,郑州 451150)

0 引言

随着信息技术的发展以及智能设备的微型化,物联网(InternetofThings,IoT)[1]已在智能交通、智慧农业、康复医疗等领域广泛使用。目前,IoT 通过IEEE802.15.4,6LoWPAN 以及低功率低损耗网络路由协议(Routing Protocol for Low Power and Lossy Network,RPL)[2]技术手段在实际应用系统中使用。

考虑到能耗、计算能力、存储和带宽限制,多数IoT 设备采用IEEE802.15.4 技术标准以及IPv6 编址标准。不失一般性,典型的6LoWPANIoT 协议栈常将RPL 作为网络层的路由协议。

RPL 是面向低功耗的IoT 设备的距离矢量协议。RPL 利用以BR 为根节点的优化目的节点为导向的有向无环图(Destination Oriented Directed Acyclic Graph,DODAG)处理所有网络操作[3]。为了得到最优的路由,DODAG 中的每个节点必须依据路由指标[4]准确地选择它的父节点。通过目标函数(Objective Function,OF)将路由指标转换成节点的秩值,其反映了节点离BR 的相对距离。

此外,为了向BR 传输数据包,网络内任何一个节点先向它的父节点发数据包,然后它的父节点再向它的父节点传输,直到数据包传输至BR。

由于节点资源受限以及多跳路由特性,IoT 环境下的RPL 协议容量遭受路由攻击[5]。而黑洞攻击是RPL 协议遭受的最典型的拒绝服务攻击。攻击者试图成为DODAG 活动区域的父节点,进而收集更多节点传输的数据包。黑洞攻击阻碍了BR 对数据包的收集,降低了网络内数据包传输率。

目前,研究人员针对RPL 协议的黑洞攻击进行了大量的研究,并提出了相应的策略。文献[6-7]提出了基于信任策略。每个节点监听邻居节点所传输的信息。而文献[8-9]对OF 函数进行修改,并利用信任目标函数进行替换。此外,文献[10]利用ICM Pv6 响应机制检测选择性转发攻击。

文献[11]提出了一个轻量级的入侵检测系统SVELTE。通过SVELTE 系统检测黑洞攻击。但是该系统存在较高的虚警率。

为此,提出基于投票法的黑洞攻击检测(Voting Method-based Blackhole Attack Detection,VMBAD)算法。利用VMBAD 算法排除RPL 协议上的黑洞攻击节点,进而提高数据包传输率。仿真结果表明,VMBAD 算法能够有效地检测黑洞攻击节点。

1 系统模型

1.1 物理层网络模型

1.2 攻击模型

除了BR 之外,网络内每个叶节点均有转发数据包的任务。黑洞节点试图通过广播具有高的路由指标,进而成为网络活动区的父节点。

在DODAG 信息传输过程中,黑洞节点表现正常的行为,但在转发数据包时,黑洞节点故意地丢弃数据包。

1.3 RPL 概述

RPL 利用消息对象(DODAG Information Object,DIO)和目标广播消息对象(DODAG Destination Advertisement Object,DAO)两类控制消息计算节点的秩值。图1 显示了DODAG 的信息构建过程,其利用信号的接收信号强度(Received Signal Strength Indicator,RSSI)计算节点的秩值。

图1 DIO 和DAO 的传输过程

最初,节点N1 广播DIO 消息,邻居节点(N2 和N3)就接收此消息。随后,节点N2 和N3 就将节点N1 作为自己的父节点,并将自己的秩值设置为2,如图1(a)所示。同时,向节点N1 回复DAO 消息。然后,节点N1 和N2 也广播DIO 消息,寻求更多节点加入DODAG。如图1(b)所示,重复上述过程,使每个节点都具有自己的秩值。

2 VMBAD 算法

整个VMBAD 算法由节点层次模块和BR 层次模块两部分组成,如下页图2 所示。节点层次模块主要获取个人决策意见,然后传输至路径选择器,同时,传输BR 层,最后由BR 层次模块判断黑洞攻击节点。

2.1 节点层次模块

在节点层次模型中收集邻居的行为信息。网络内每个节点监听邻居节点的行为,相比于看门狗策略,VMBAD 算法通过过滤器模块构建了一个嫌疑列表,并监测网络中的节点。

假定网络中良性节点自行地转发来自其子节点发送的数据包。若节点接收了来自其子节点发送的数据包,而故意地不转发该数据,这类节点称为恶意节点,不转发数据包事件称为恶意事件。当屡犯恶意事件的次数达到预设的阈值,该节点就称为黑洞攻击节点。

图2 VMBAD 算法框架

除BR 之外,其他所有节点都需执行局部检测。一个局部检测从RPL 初始阶段开始,到检测到黑洞攻击节点结束。整个节点层次模块主要由以下几个单元组成:

2.1.1 过滤器

每个节点维持一个邻居列表,其包含邻居节点和它们相关的特性。通常,恶意节点可能虚假地宣称自己有更好地通达BR 的路由,进而成为父节点,收集更多的信息。

2.1.2 观察器

表1 给出一个示例。表1 中的节点5 接收了8个数据包,其发送了6 个数据包,而节点6 接收了8个数据包,但其无发送数据包。相比于节点6,节点5 是黑洞攻击节点的概率更高。

表1 嫌疑列表

2.1.3 检测器

记录了嫌疑节点所收、发数据包数后,就计算收数据包数与发数据包数的差。如果差值大于预设的阈值δ,则认为该嫌疑节点是黑洞攻击节点,如算法1 所示。

2.1.4 路径修改单元

检测阶段结束后,节点就查看自己的邻居节点是否存在黑洞攻击节点。如果存在黑洞攻击节点,就对RPL 路由协议进行修改,避开黑洞攻击节点。

算法1:

并且向BR 通知,黑洞攻击节点的信息。

2.2 BR 层次模块

BR 层次模块是由BR 完成。当BR 收集了来自不同节点上报的黑洞攻击节点的意见后,它需要做出最终决策。

首先分两种情况讨论嫌疑节点行为以及观察节点(嫌疑节点的邻居节点)的行为。Case1:节点可能执行正常或恶意行为;Case2:观察节点是否如实地向BR 节点汇报自己决策意见。

在Case1 情况中,节点实施恶意行为的概率为0.5。而在Case2 情况,观察节点向BR 报告虚假信息的概率也为0.5。因此,认为如果嫌疑节点实施了恶意行为,观察节点可能不真实地向BR 汇报。据此,节点实施恶意行为和观察节点向BR 不真实地汇报信息的概率均为0.5×0.5=0.25。

2.2.1 投票法概述

2.2.2 基于改进的投票法的攻击检测算法

简单投票法是基于“完全公平”的思想,并没有考虑各个投票者的准确性[13]。为此,VMBAD 算法对简单的投票法进行改进,提出基于距离优化的投票法。

图3 距离归一化处理示意图

一旦确定了最终的决策意见,BR 形成黑洞攻击节点列表bt就在全网内进行通报,致使黑洞攻击节点与网络隔离。

BR 将黑洞攻击节点bt 插入DIO 消息中,在网络广播。表2 给出了典型的DIO 数据包格式。DIO数据包中有两个8 bit 域(Flags 段和Reserved 段),它们目前还未使用。为此,VMBAD 算法选用Flags段表述黑洞攻击节点的ID 号。一旦收到DIO 消息,就从中提出黑洞攻击的ID,并将此节点加入黑洞攻击列表。

表2 DIO 消息格式

3 性能分析

3.1 仿真环境

利用Contiki3.0[14]操作系统和Cooja[15]仿真器建立仿真平台。在区域内部署20~50 个节点。所有节点为静态节点。所有节点引用有向无线媒介(Directed Graph Radio Medium,DGRM),因此,节点能够设置RSSI 值,具体的仿真参数如表3 所示。

表3 仿真参数

引用数据包传递率作为性能指标,数据包传递率等于BR 所接收的数据包数与网络内节点所产生的数据包总数之比。

3.2 数据分析

3.2.1 实验1

本次实验分析恶意节点数对数据包传递率的影响。如下页图4 所示,图4 分别显示了节点数为20、30、40 和50 四类情况。

从图4 可知,节点密度的增加使数据包传递率总体呈下降趋势。例如,对比图4(a)和4(d)不难发现,在10%黑洞攻击节点条件下,20 个节点的环境下(图4(a))的数据包传递率高于50 个节点环境(图4(d))。原因在于:节点数越多,密度越大,数据包间的传输干扰越大,网络拥塞越严重,进而降低了数据包传输。

此外,图4 还显示了没有恶意节点的攻击、攻击消除后以及存在攻击3 种情况下的数据包传递率。从这3 种情况下的数据包传递率数据可知,存在攻击下的数据包传递率最低,而经过攻击检测消除后,数据包传递率得到有效提升。例如,在图4(d)中,当50%的恶意节点时,存在攻击环境下的数据包传递率只有72%。经攻击消除后,数据包传递率提升至约86%。这也说明,通过检测黑洞攻击节点,并将其隔离,能够有效地提升数据包传递率。

图4 攻击节点对数据包传递率的影响

3.2.2 实验2

本次实验分析对黑洞攻击节点的检测率。检测率等于所检测到的黑洞攻击节点与总的黑洞攻击节点之比。

从图5 可知,提出的VMBAD 算法能够有效地检测黑洞攻击节点。当有50%的黑洞攻击节点时,对黑洞攻击节点的检测率达到90%以上。此外,观察图5 可知,节点数越多,检测率越大。原因在于:黑洞攻击节点越多,更容易发现攻击节点。

图5 对黑洞攻击节点的检测率

4 结论

针对RPL 协议的黑洞攻击节点问题,提出基于投票检测黑洞攻击节点算法。先通过观察邻居节点的行为,再构建嫌疑节点列表,并利用投票法进一步判断嫌疑节点是否为黑洞攻击节点。仿真结果表明,通过排除黑洞攻击节点,提高了数据包传递率。

VMBAD 算法是利用节点捕获RSSI 值为依据,并利用改进的投票法进行黑洞攻击检测。不容忽视的是:RSSI 值容易受到外界环境的影响。然而,VMBAD 算法是通过比较邻居节点的RSSI 值进行检测黑洞攻击。尽管RSSI 值受到外界影响,但是处于同一区域的邻居节点的RSSI 值所受的影响可能是相同的。

后期,将进一步分析RSSI 值的精度对检测性能的影响,这将是后期的研究工作方向。

猜你喜欢
数据包路由黑洞
二维隐蔽时间信道构建的研究*
HAYDON黑洞
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
数据通信中路由策略的匹配模式
一种用于6LoWPAN的多路径路由协议
OSPF外部路由引起的环路问题
5500万光年之外的“黑洞”,是如何被拍到的
黑洞什么样,有图有真相
C#串口高效可靠的接收方案设计
黑洞思