基于多节点联合的Ad hoc网络攻击

2012-08-06 12:51杨飞赵泽茂罗培红
网络安全技术与应用 2012年12期
关键词:路由表黑洞报文

杨飞 赵泽茂 罗培红

杭州电子科技大学通信工程学院 浙江 310018

0 引言

AODV协议是路由协议DSR和DSDV的结合,它借用了DSR的路由发现策略以及DSDV的逐跳路由、序列号和定期广播机制,是一种按需路由协议。在AODV路由协议中,当源节点需要发送报文至某个节点,而路由表中又没有到该节点的路由存在时,它就向所有邻居节点广播路由请求报文(RREQ)来查询到目的节点的路径,RREQ报文在整个网络中以泛洪方式进行传播。当中间节点收到RREQ时,首先检查此RREQ是否是之前接收过的,若是则直接丢弃不再处理,若不是则需进行下一步处理。节点先查看自己路由表中是否有到目的节点的路由。若没有,节点就在路由表中建立一条指向源节点的反向路由,然后再向邻居节点广播这个RREQ。若有到目的节点的路由或本机就是目的节点,就发送路由响应报文(RREP)沿RREQ来时建立的反向路由到源节点,沿途转发路由响应报文(RREP)的中间节点根据回答更新路由表,设置路由的下游节点、目的序列号、有效时间等。当RREP到达源节点时,就建立了一条从源节点到目标节点的有效路由。如果源节点收到多个路由回答报文,它会根据目标节点序列号以及跳数来决定选择哪一条路由。

1 AODV路由协议的黑洞问题

1.1 黑洞攻击原理

在AODV路由协议的应答机制中,允许中间节点对收到的路由请求作出路由响应,这样可以降低寻路的时延和开销。但规定节点接收到RREQ后都必须先进行3个判断:1)该RREQ是否是之前接收过的;2)路由表中是否存在到目的节点的路由;3)节点自身是否是目的节点。恶意节点可能不遵守这些规定,接收到RREQ后根本不做任何判断,伪造路由应答报文RREP或者篡改序列号,跳数,使得源节点相信并采用它所在的路由,进而可以获取数据信息,并篡改、伪造数据包。

黑洞攻击正是利用这一机制的漏洞来实施攻击的。当恶意节点捕获到其邻居节点发出的RREQ后,不对自身的路由表做任何检查,反而立即发送一个虚假的路由响应报文RREP,通过伪造跳数或者伪造目的节点序列号(即把到目的节点的跳数设置为最小,把序列号设置为最大),宣称自己有到目的节点的最佳路由,从而使的源节点相信并选中它所在的路由,然后把经过它自己的数据包和路由分组丢弃掉,这样就形成了一个吸收数据的网络黑洞,这就是所谓的黑洞问题。通过这个方式,恶意节点可以从源节点骗得大量的网络信息及重要的数据,而真正的目的节点却接收不到来自源节点的数据。攻击流程如图1所示,图中粗线表示恶意节点不遵守协议规定,跳过判断2和3两步,发送虚假路由响应报文的攻击方式。

图1 黑洞节点攻击流程图

1.2 黑洞攻击存在的不足

从上述分析可以发现,黑洞攻击实施的前提条件是正常节点发送路由请求报文RREQ。也就是说恶意节点只有在接收到路由请求报文时,才能实施攻击,若没有节点发送路由请求报文,则恶意节点就无法实施攻击。如图2所示,源节点S要向目的节点D发送报文,假若其路由表中没有到目的节点D的路由,那么节点S势必要发送路由请求报文RREQ,而此时节点B正在向S移动但还未进入节点S的通信范围内,也就是说节点B没有捕获到RREQ,当然就无法实施攻击。这样,源节点S与目的节点D之间就建立了正常的路由,开始数据包的发送。当恶意节点进入节点S的通信范围内时,即使节点S还要再次向目的节点D发送数据包,但此时节点S的路由表中已有到目的节点的路由,这时它肯定不需要再发送路由请求报文RREQ(即不需要再进行路由建立的过程,直接进入数据传输阶段)。这样,攻击节点B无法进入其路由路径,并在相当一段时间内无法攻击到节点S与D之间的通信,因为节点S已拥有到节点D的路由,除非节点S和D之间已建立的路由发生变化,否则就无法实施黑洞攻击。

图2 黑洞攻击示例图

2 改进的攻击方案

针对黑洞攻击中存在的不足,本文提出一种基于多节点合谋的跨层攻击方法,攻击流程图如图3所示。该方法中,恶意节点的行为可以分为如下几步:

Step1 恶意节点B首先移动到节点S附近,进入其通信范围,等待源节点S发送RREQ,若正好节点S有发送路由请求报文RREQ,则恶意节点B收到后立即发送路由响应RREP,从而实施黑洞攻击;若节点S已在发送数据包,则需合谋节点M的配合。

Step2 合谋节点M进入目的节点D附近或者节点S与D通信路径上的某个节点附近,然后节点M在MAC层发起占用信道的DoS攻击,中断正在工作的路径,如图3合谋节点M向通信路径上的节点F发动DoS攻击,致使节点F无法再转发来自节点S的数据包,使得源节点S误以为这条路由路径发生错误,从而重新发送路由请求报文RREQ。

Step3这时,恶意节点B在收到路由请求报文后,就伪造应答数据包并立即发送路由响应报文RREQ,使源节点S误以为其有到目的节点的最好路由,从而选择节点B作为路由路径,这样节点B就成功进入该路由路径,实施黑洞攻击。

图3 改进的攻击流程图

这样通过多节点联合攻击,恶意节点实现了对节点S的主动攻击,而不必像传统的AODV 路由攻击那样,需要等待节点发起路由请求才能实施攻击。而且一旦恶意节点能够把自己加入到通信节点之间,它就可以任意处理通过自己的数据包,不只限于像黑洞攻击中那样丢弃数据包,甚至它还可以利用自己在路由中的位置作为中间人攻击的第一步,为进一步的攻击打下铺垫。

现有针对AODV的攻击更多的都是局限于恶意节点已进入路由路径中,假若节点间通信路由已经建立,则如何实施有针对性的攻击。本文提出的攻击方案正是针对当节点间路由已建立,数据包正在传输的情形实施的。这种攻击方案的主要特点有:1)相对于传统的DoS攻击,更具针对性。因为它不像传统DoS攻击那样不间断地发送攻击数据报文,只是占用和消耗节点以及网络通信资源,导致网络性能急骤下降,而本文提出的方案它是有目的性地针对某条路径进行攻击,这样可以减少节点自身的资源消耗。2)相对于黑洞攻击,更具主动性。因为黑洞攻击需要等待节点发起路由请求才能实施攻击,而本方案可以干扰正在传输的路径,迫使源节点重新发起路由请求。

3 仿真与分析

本次模拟仿真实验所使用的平台为Windows 7+Virtual Box+Ubuntu11.10+NS-2.35,选用IEEE802.11作为MAC层的协议,路由协议为AODV协议,场景大小为750m×750m的方形区域,场景及节点模型的其他参数设置如表1所示。

表1 仿真参数设置

为了更好地模拟本文提出的攻击方案,排除其他因素带来的干扰,如节点移动导致的路由重新建立,本次仿真假定节点处于静止状态。节点1和5分别为发送节点和接收节点,节点1从1s开始向节点5发送数据包。黑洞节点0向节点2移动,并在7.5s时进入其通信范围内。节点6为合谋节点,在40s时在Mac层对节点4发动占用信道的DoS攻击。用nam截取实验的场景图如图4所示。

使用上述所搭建的仿真场景进行了DoS攻击时间分别为2s和10s两次仿真。仿真结束后利用Gawk来分析仿真结果,并用Gnuplot工具进行绘图。分析两种情况下网络的吞吐量,丢包率及路由请求发起的时间和次数,仿真结果如图5、6、7所示。

图4 仿真场景图

图5 加入攻击后网络的吞吐量变化情况

由图5可以发现在7.5s黑洞攻击节点0进入节点2的通信范围内时,节点1到节点5之间的路由已经建立,已在传输数据包,且网络的吞吐量一直保持不变,这表明黑洞攻击未能奏效。直到40s时,节点6对节点4发动DoS攻击,网络吞吐量骤增,致使节点2无法通过节点4发送数据包给节点5,于是节点2发送链路错误的信息给节点1。之后节点1重新发起路由请求,此时,所发送的路由请求报文还得不到响应,这是因为DoS攻击还在继续,攻击也干扰到节点2的传输,使得节点2也一直处于退避状态,无法处理路由请求。直到DoS攻击结束,节点1发出RREQ才在网络中广播,当节点0收到路由请求报文RREQ后,立即实施黑洞攻击。比较攻击前后吞吐量变化情况,计算可得攻击使得网络吞吐量下降了近30%,这说明DoS攻击成功中断正在传输的路径,使得源节点重新发起路由请求,进而节点0成功实施黑洞攻击。

当DoS攻击结束后,吞吐量在短时间内变为0,其持续的时间与DoS攻击的时间长短有关,这是因为IEEE 802.11MAC协议采取了避退机制,避退时长由公式(1)确定:

式中Random()返回[0,CW]内的均匀分布随机数,SlotTime是相应的物理层时隙长度。CW的取值由二进制指数退避算法确定,即若竞争信道失败,节点都将以二进制指数递增的方式增大竞争窗口直到竞争窗口大小达到CWmax。

图6 DoS攻击时间为10s时,节点发起路由请求的仿真情况

由图6可以发现,在收到链路错误的消息后,节点0会一直重新发送路由请求,且因退避机制的缘故,两次路由请求发送的时间相隔越来越长,直到请求得到回应,成功建立路由。观察图7可以发现在0~40s之间,网络基本没有出现丢包的情形,也表明黑洞攻击未能奏效,直到发动DoS攻击后,节点0成功实施了黑洞攻击,网络才出现丢包,甚至最高到达35%。

图7 不同DoS攻击时间下网络丢包率的仿真结果

4 结论

由于Ad hoc网络具有动态的拓扑结构,开放的媒体接入及有限的终端能源等特点,使得Ad hoc网络的安全问题越来越受到重视,路由安全更是整个网络安全的重要部分。本文通过对Ad hoc网络中AODV路由协议的研究,针对现有黑洞攻击中存在的不足,提出了一种新的基于多节点联合的跨层攻击方案,即若在黑洞节点进入网络时,网络中节点已在传输数据,此时,可利用合谋节点对正在传输的路径发动占用信道的DoS攻击,中断其传输路径,迫使源节点重新发送路由请求,从而黑洞节点可以实施黑洞攻击;同时利用NS2仿真工具进行模拟并加以分析。本文提出的攻击手段相比于传统的黑洞攻击和DoS攻击更具主动性和针对性,但模拟的环境还仅仅局限于静态的拓扑结构,下一步将研究其在动态环境中的攻击力。

[1] 任伟,金海.802.11移动Ad Hoc网络中针对MAC层的分布式拒绝服务攻击[J].计算机安全.2005.

[2] 易平,钟亦平,张世永.移动ad hoc网络中DOS攻击及其防御机制[J].计算机研究与发展.2005.

[3] 王忠恒,张曦煌.移动AdHoc网络AODV路由协议的改进[J].计算机应用.2010.

[4] 彭志楠,叶丹霞,范明钰.移动Ad hoc网络的黑洞攻击研究[J].计算机应用研究.2009.

猜你喜欢
路由表黑洞报文
基于J1939 协议多包报文的时序研究及应用
HAYDON黑洞
CTCS-2级报文数据管理需求分析和实现
基于OSPF特殊区域和LSA的教学设计与实践
研究路由表的查找过程
浅析反驳类报文要点
5500万光年之外的“黑洞”,是如何被拍到的
黑洞什么样,有图有真相
ATS与列车通信报文分析
黑洞思