AdHoc网络中的虫洞攻击与检测方法研究 下载本文

内容发布更新时间 : 2024/12/27 16:54:49星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

AdHoc网络中的虫洞攻击与检测方法研究

作者:王羽 张琨 刘健 陈旋

来源:《计算机时代》2014年第02期

摘 要: 虫洞攻击是一种针对移动自组织网络路由协议的攻击,一般是至少由两个节点进行合谋的协同攻击。攻击节点之间通过虫洞攻击能够大量吸引数据包,从而达到控制网络的目的。基于按需距离矢量路由协议,根据移动自组织网络中的虫洞攻击原理,采用NS2仿真平台,通过对按需距离矢量路由协议的修改,对虫洞攻击进行了仿真,并且分析了虫洞攻击对网络性能参数的影响。根据虫洞攻击特性,设计了三种攻击检测方法:地理位置定位、邻居信任检测以及邻居监听。将这三种方法在NS2中仿真,验证了其可行性。 关键词: 移动自组织网络; 按需距离矢量路由协议; NS2; 虫洞攻击 中图分类号:TP391.9 文献标志码:A 文章编号:1006-8228(2014)02-20-05 0 引言

移动Ad Hoc网络是没有中心实体的自组织网络,依靠节点间的相互协作,在复杂、移动的无线环境中自行成网,借助于多跳转发技术来弥补无线设备的有限传输距离,从而拓宽网络的覆盖范围,为用户提供各种业务服务。随着Ad Hoc网络的广泛应用,对其安全性的要求也越来越高,这使得无线Ad Hoc网络安全问题逐渐成为研究热点。移动Ad Hoc网络工作在一个节点共同协作的开放环境中,同时该网络节点间共享型链路容易被截获,具有通信缺乏身份认证保障、没有集中监控和管理机制、拓扑结构变化频繁和节点资源受限等特征。网络中因此存在很多安全漏洞,极易受到各种类型的攻击[1]。其中,虫洞攻击是一种针对移动Ad Hoc网络路由协议的高级攻击方式。这种攻击对网络造成了很大的危害,并且极难防御,一般的安全加密手段对其作用不大。绝大部分Ad Hoc路由协议没有针对虫洞攻击的安全机制,不能有效防御虫洞攻击。

1 移动Ad Hoc中的虫洞攻击

虫洞攻击是由两个合谋的恶意节点发起,彼此间建立一条私有“隧道”(“隧道”的距离一般远远大于合法节点的信号传输距离),攻击者在网络中的一个位置上记录数据包的信息,利用这条私有“隧道”将窃取的信息传递到网络的另外一个位置,造成数据包的泄露或破坏;同时因为私有“隧道”能够造成比实际路径更短的虚假路径,节点之间的路由选择都会被扰乱,攻击者就能够控制网络的路由。

虫洞攻击大体可以按照其表现形式分为两类:第一种是攻击节点不把自己的节点信息加入到路由中,即合法节点并不知道分组转发过程中有攻击节点的参与;第二种是合法节点能察觉到攻击节点转发分组,攻击节点把自己节点信息加入到路由表中,但是节点之间的行为是私密

龙源期刊网 http://www.qikan.com.cn

的。本文将第一种虫洞攻击称为隐式攻击,将第二种称为显式攻击,它们对路由的转发如图1所示[1]。

1.1 虫洞攻击的危害

虫洞如果只是通过“隧道”对分组进行了忠实的传输,对整个网络没有危害。但是由于虫洞攻击节点以及其“隧道”,吸引了大量的路由报文,相对于网络中的其他节点,攻击节点处于关键地位,如果进行恶意攻击则危害很大。

移动Ad Hoc网络协议发现节点的基础就是能够收到来自其他节点的路由分组。虫洞攻击正是利用了这个特征,接收节点报文进行攻击。 1.2 虫洞攻击的特殊性

虫洞攻击的特殊性在于其极易于发动和难于进行检测。

虫洞攻击易于发动。只需要两个合谋节点之间建立“隧道”,监听分组,传输分组,并且重放分组即可进行虫洞攻击。这一切在无线网络中极易于实现。并且在加密认证下也能发起攻击。

虫洞攻击难于检测。虫洞攻击节点在上层协议是不可见的,虫洞节点的表面的动作和正常节点相似,必须得在路由协议中进行研究才能发现虫洞攻击。 2 虫洞攻击的检测方法

目前有很多用于检测虫洞攻击的方法,本文主要实现了三种虫洞攻击检测方法的核心协议。

2.1 基于地理位置定位的检测方法

卡耐基大学有使用“数据包束缚”的方法检测出虫洞攻击[2],其主要思想在于,在数据包中加入信息来控制数据包的传输范围,主要有“时间束缚”与“空间束缚”。本文主要使用的是空间束缚,节点在发送报文的时候,把自己的位置信息加入到报文之中,接受节点在接收到报文时通过计算自己和上一跳节点的距离来判断是不是在一跳距离之内,进而检测出虫洞攻击。还有一种类似的方法,是由Jane Zhen和Sampalli Srinivas[3]提出的一种称之为循环旅行时间(Round Trip Time,RTT)的方法来检测虫洞。A节点计算与B节点之间的RTT,通过发送一个信息给B,要求立刻回复。A,B间的RTT就是从A发送请求,到接收到B的回复所经历的时间。每个节点都计算与邻居节点间的RTT,因为两个假冒邻居间的RTT必然大于真正邻居间的RTT。因此通过比较A和A邻居间的RTT,A节点可以确定哪个邻居是假冒邻居。这种方法不需要额外的硬件,并容易实现。

龙源期刊网 http://www.qikan.com.cn

2.2 基于信任模型的检测方法

根据前文的描述,虫洞攻击能够控制路由,其在路由表中明显的表现是,受攻击节点在路由表下一跳表项中出现的频率会变高。所以本文在路由表项中建立了一个信任值,其值与下一跳节点在整个路由表中下一跳出现的频率有关,即如果某路由项下一跳地址是很多路由项的下一跳地址,则该下一跳则很大可能是恶意节点,目前本文尚未对具体出现的概率分布进行深入分析,而只是在仿真环节进行了试探性的实验[4]。 2.3 基于邻居监听的分析方法

虫洞攻击的一个显著特点就是某虫洞节点在接受RREQ时并不进行转发而是直接通过“隧道”进行传输,所以邻居节点可以通过网卡的混杂模式来监听可疑的虫洞节点。如果怀疑一个节点是虫洞节点,则发送RREQ报文,如果怀疑节点不进行广播而是直接传给了另一个节点,则该节点就是虫洞节点[5]。

3 攻击攻击方法的仿真设计与实现 3.1 NS2仿真场景设置

针对设计要求,综合各文献对虫洞攻击与检测仿真参数的设置,本文的场景参数设置如表1所示。

3.2.2 在无线物理层建立“隧道”

虫洞攻击仿真的一大难点是如何设置出一条虫洞节点之间的合谋“隧道”。本文“隧道”的具体实现形式是:攻击节点捕获和重放合法节点控制分组时,它们的传输范围与合法节点一样大小;然而当攻击节点间通过秘密链路建立通信时,它们的传输范围远远大于正常节点的一跳传输范围。

在NS2中,移动节点依据无线电波传播模型计算传输能量损耗,以此确定节点的传输范围,移动节点在收到数据包后计算其能量损耗,并以此来确定是否接收分组。因此,本文仿真“隧道”的建立即通过修改NS2无线网络模块中物理层算法来实现。仿真实现中,攻击节点的物理层接收模块接收到数据包后,将检查有没有虫洞附加标志位:若有标志位,说明该数据包来自合谋节点,传输范围门限将调整至“隧道”长度大小;若没有标志位,说明该数据包来自合法节点,节点接收范围门限将调整为正常节点传输范围值。合谋虫洞“隧道”效果如图3所示。 依据无线电波传播模型,在实现节点物理层动态调整数据包接收门限算法后,攻击节点X和Y能够具备两种传输范围,并以此实现“隧道”通信。攻击节点结合攻击协议和“隧道”模型即能顺利发动虫洞攻击:X在合法节点传输范围内监听网络,捕获合法节点A的分组,调整自己的传输范围至“隧道”长度,将分组秘密传输给Y,Y接收到分组后,调整传输范围至合法节点1跳距离,再将该分组重放到网络中。节点B和C均能收到该分组,认为A是自己的邻居。