ADHOC网络黑洞攻击仿真 下载本文

ADHOC网络黑洞攻击仿真

简述:黑洞攻击是一种典型的针对无线自组织(Ad Hoc)网络的攻击,也是Ad Hoc网络面临的主要安全威胁之一。为实现对黑洞攻击的仿真研究,基于黑洞攻击原理,在AODV路由协议的基础上,利用OPNET网络仿真平台,建立了Ad Hoc网络黑洞攻击仿真模型,搭建了不同攻击强度下的仿真场景。仿真结果表明:该模型能够较为准确地模拟各种环境下黑洞攻击对Ad Hoc网络性能的影响,可为Ad Hoc网络安全防范等问题的研究提供重要参考。

Ad H oc网络是由一组带有无线收发装置的移动节点组成的一个多跳的临时性自治系统。它能够在不依赖任何预设基础设施的情况下,以任意的网状拓扑结构实现网络的自动组织和运行,可广泛应用于军事战术通信、应急通信等需要快速部署、动态组网的通信场合。

然而,Ad Hoc网络的开放性和灵活性也决定了它很容易受到攻击,特别是针对其路由协议的攻击。黑洞就是其中一种常见的攻击方式,它通过对路由协议的欺骗获得对网络数据包的控制,进而进行丢弃,从而实现对Ad Hoc网络的攻击。大部分现有的Ad Hoc网络路由协议,都没有对这种攻击的防御或处理机制。虽然目前已有许多文献提出了可能的解决方案,但这些方案往往停留在理论分析阶段,缺乏有力的实验验证和分析手段。仿真技术是研究和分析网络攻击行为的有效手段,它能够在不同的网络条件下,方便地得出攻击对网络造成的影响,并能对各种网络安全防范措施进行验证。

因此,建立Ad Hoc网络黑洞攻击仿真模型,提供一个可靠的仿真测试环境,对于Ad Hoc网络安全防范问题的进一步研究,具有重要的意义。

文中首先简要介绍了Ad Hoc网络中常用的AODV路由协议,分析了黑洞利用该协议的弱点进行攻击的原理,接着从Ad Hoc网络黑洞攻击的仿真入手,建立了Ad Hoc网络黑洞攻击节点模型,搭建了仿真场景,对不同强度的黑洞攻击行为进行仿真。最后,结合仿真结果分析了黑洞攻击对网络性能的影响。

1. A ODV路由协议与黑洞攻击

AODV路由协议是Ad H o c网络中一种常见的按需路由协议。当网络中的节点需要向目的节点传送数据时,将首先向它的相邻节点广播一个路由请求报文,报文具有惟一标识,并包含了源节点和目的节点的地址信息。中间节点收到路由请求报文后,如果自己就是目的节点,则沿着该请求报文经过的路由向源节点反向发送一个包含路径信息的路由响应报文,由此建立一条从源节

点到目的节点的路由。

如果不是目的节点,则在记录了上游节点地址(以便形成反向路由)后,继续向邻节点转发该请求报文,直到到达目的节点为止。此外,在一条已建立的路由上传输数据时,转发数据的节点将先向该路由的下一跳节点发送路由应答请求报文,收到该请求报文的节点则回复一条路由应答响应报文,表示路由仍然有效。如果因为中间节点或目的节点的移动而造成路由失效,检测到路由断连的节点则向其上一跳节点发送路由错误报文,收到该报文的节点将删除该部分路由。

AODV协议的特点保证了Ad H oc网络能够动态组网并自组织运行,而该协议正常运行的前提是网络中的节点都必须是合作的、可信的。一旦出现了恶意节点,很容易就对协议造成破坏。黑洞攻击正是利用了AODV协议的这些弱点来进行攻击[3]。Ad Hoc网络中的黑洞攻击节点对收到的每个路由请求报文都回复一个虚拟的路由响应报文,以表明该节点有一条到达目的节点的最短路由。由于黑洞攻击节点回复路由响应时省略了许多中间环节,因此它的路由响应往往会最先到达源节点。收到该回复的源节点则很可能就此建立错误的路由,把黑洞攻击节点作为路由路径中的中间节点,将数据包传送过去。此时,攻击节点只需要将收到的数据包统统销毁,就会在网络中形成一个吞噬数据包的黑洞,从而破坏协议的正常功能,甚至使网络瘫痪。 2. 基于OPN ET的黑洞攻击仿真模型

OP NET是一款优秀的通信与计算机网络仿真软件[10]。它采用层次化的建模机制,将建模的工作划分为网络层、节点层和进程层3个层次。网络模型反映网络的拓扑结构、地理布局以及移动性等; 节点模型对应着实际网络中的各种计算和通信设备; 进程模型则以有限状态机构成的状态转移图来描述节点所含进程的行为,如协议和算法等。

利用OPNET来对黑洞攻击进行仿真,是通过在Ad Hoc网络仿真场景中加入黑洞攻击节点来实现的。而黑洞攻击节点模型与Ad Hoc网络节点模型,主要是在网络层的路由进程模型的建模中有所区别,因此文中主要对黑洞攻击节点路由进程模型的建模进行阐述。

通过前文的论述,可知黑洞攻击的基本方法是: 1) 攻击节点不发送路由请求,不传送数据包;

2) 对所有收到的路由请求报文,攻击节点都回复一条我有一条只要一跳就能到达目的节点的路径的路由响应报文;

3) 销毁所有收到的路由响应报文和路由错误报文,不予转发; 4) 销毁所有收到的数据包,不予转发;

5) 对收到的路由应答请求报文,回复路由应答响应报文。 由此得到黑洞攻击仿真的流程:

图1黑洞攻击仿真流程

根据黑洞攻击仿真的流程,建立黑洞攻击节点路由进程模型(见图2)。 该模型包含了7个有限状态机,分别模拟7种状态:

1) init状态:当仿真开始时,进程模型首先进入init状态进行初始化操作,操作内容包括:调入用户定义的属性和参数,初始化进程模型的全局变量,设置中断优先级,注册统计量等。

2) wait状态:模型在完成初始化操作后,立即跳转到wait状态,等待触发事件的发生。触发条件包括RCV_APP_PKT(收到数据包)、RCV_ROUTE_REQUEST(收到路由请求报文)、RCV_ACK_REQUEST(收到路由应答请求报文)等。根据触发条件的不同进程将跳转到不同的状态。

3) RCV_AP P(收到数据包)状态:由于黑洞节点将抛弃所有收到的数据包,因此模型将不进行任何判断,而是直接将数据包销毁。

4) RCV_RREQ(收到路由请求报文)状态:黑洞节点收到路由请求报文后,模型将立即生成一条路由响应报文,并在该报文包含的路径信息中填入该攻击节点的地址,然后将目的节点的地址放在攻击节点的地址后面,从而表示攻击节点有一条只要一跳就能到达目的节点的路径,最后将该路由响应报文反向传送回发起本次路由请求的源节点。

5) RCV_RREP(收到路由响应报文)状态:进程将销毁该路由响应报文,而不是转发到下一个节点。节点本身也不需要更新路由表。

6) RCV_RRER(收到路由错误报文)状态:模型将直接销毁该路由错误报文,而不会去维护