Ad Hoc无线网络虫洞攻击安全策略研究
2011-03-14滕萍
滕萍
辽宁警官高等专科学校公安信息系 辽宁 116036
0 引言
无线移动Ad Hoc(Mobile Ad Hoc Networks)网络作为一种无中心控制的多跳传输网络,逐渐成为移动通信网络的一种重要类型。移动Ad Hoc网络工作在一个要求节点共同协作的开放环境中,同时该网络节点间共享型无线链路易被截获,具有通信缺乏身份认证保障、没有集中监控和管理机制、拓扑结构变化频繁和节点资源受限等特征。网络因此存在很多安全漏洞,极易受到各种类型的攻击,如欺骗攻击、自私攻击、拒绝服务攻击等。其中,虫洞攻击是一种针对移动Ad Hoc网络路由协议的高级攻击形式。这种攻击能对网络造成很大危害,并且极难防御,一般的安全加密手段对其没有作用。绝大部分Ad Hoc网络路由协议没有针对虫洞攻击的安全机制,不能有效检测虫洞攻击。本文提出了一种较为简便的网络拓扑分析算法检测虫洞攻击,并基于该算法提出了OLSR路由协议安全改进机制。
1 虫洞攻击与OLSR路由协议
1.1 虫洞攻击
虫洞(Wormhole)攻击是一种针对Ad Hoc网络路由协议的高级攻击形式。它是网络中的两个攻击节点合谋发动的一种协同攻击。攻击节点间建立了一条高质量高带宽的私有链路通道,称为“隧道”(Tunnel)。攻击节点X在网络中监听并记录接收到的分组,然后通过“隧道"秘密的将该分组传到网络中另一端的合谋节点Y,再由Y将分组重新注入网络中,如图1所示。这种攻击形式简单,但危害很大,极难检测。
图1 虫洞攻击
1.2 OLSR路由协议
OLSR路由协议是由 IETF MANET(Mobile Ad Hoc Networks)工作组专门为无线移动Ad Hoc网提出的一种标准化的表驱动式优化链路状态路由协议。作为一种先应式路由协议,它周期性的交换路由信息并能在需要时随时建立起路由。而作为链路状态协议,它维护了从洪泛拓扑控制分组获得的网络拓扑信息,以此依据路由算法决定到网络中每个目的地的最佳路径。OLSR路由协议在单纯链路状态协议上作了改进,表现出了以下重要特征: .
(1)只有被邻居节点选择出来的 MPRs(Multi Point Replay,多点中继集)才能向网络转发拓扑控制分组,实现分组洪泛最小化;
(2)节点对外只通告与 MPR selector(多点中继选择者)之间的链路,减小了控制分组的大小。
在OLSR路由协议中,并不是所有的邻居都会进行路由控制分组的转发,只有被选为MPR的邻居才能进行转发。节点利用本地邻居表和路由表中的信息路由分组,通过MPR机制来控制TC分组在网络中广播的规模,减少控制分组给网络带来的负荷,同时避免形成广播风暴。它适合于流量是随机发生的并且是散布的而不总是在发生在小的特定节点集的网络。OLSR也适合于通信对发生改变的场景,在这种情况下,不需要产生额外的控制分组,因为所有所知的目的节点随时都要维护路由。移动Ad Hoc网络越大越密集,OLSR路由协议就越有优越性。
2 OLSR安全路由协议设计
针对虫洞攻击,本文提出一种OLSR安全路由协议,通过将HIDA检测算法嵌入到OLSR路由协议中,然后辅以相应安全机制来完成。
2.1 HIDA算法的实现
在这里介绍 HIDA检测算法在OLSR路由协议中的实现,使协议在完成路由功能的同时进行虫洞攻击的防御检测。OLSR路由协议是表驱动的,以l跳邻居表和2跳邻居表作为路由计算的基础,HIDA算法即主要依据这两个表项实现。OLSR路由协议嵌入HIDA算法的主要流程:节点A若收到一个之前不在2跳邻居表的新邻居的HELLO报文,它就设置一个全局定时器,启动虫洞攻击检测算法。当A在HELLO Interval这段时间内第一次收到两个节点M和N的HELLO分组,并且这两个节点不互为邻居,同时检测到它们不在A的l跳和2跳邻居表内时,将它们记录在一个可疑邻居表中。在HELLO Interval中,A通过接收到旧邻居节点的HELLO分组,可以计算出这个短时间内收到M和N的HELLO分组的正常邻居节点个数,若这种旧邻居节点个数大于或等于两个以上,则A就可判定存在虫洞攻击、M和N为伪邻居。否则,A就认为可疑邻居表中节点是可信任的,将这些临时存储信息移除。检测到虫洞攻击后,A将其伪邻居M和N记录在伪邻居表中,并迅速采取一系列自愈措施:将伪邻居从MPR集中及时删除,忽略它们的HELLO分组以及M和N邻居表中的节点的HELLO分组。在一定时间(5s)之后,A重新接收所有节点分组。
HIDA检测算法在全局定时器启动后进行工作,节点将接收到的节点信息记录进行临时存储,并在两倍 HELLO Interval时间内完成可疑邻居表的计算。定时器超时,统计可疑邻居表信息,分析邻居拓扑关系。最后对可疑邻居表清零,撤销定时器,并进行下一次检测循环。
2.2 探询分组机制
本文基于OLSR路由协议,提出一种探询分组机制,将其加入至UOLSR安全路由协议中,弥补了HIDA虫洞攻击检测算法的不足,完善其性能。
当节点检测到伪邻居的存在时,就会立即向所有邻居广播一种探询分组。探询分组包括节点对当前邻居的认知信息,即伪邻居表当中的信息。通过探询分组的交互,如果收发双方节点均在对方的伪邻居表中,即检测到虫洞攻击的节点同时收到其它节点的探询分组的话,那么该节点就可以确定:存在虫洞攻击、对方节点是自己的伪邻居。如果只有一方节点发现自己存于对方的伪邻居表当中,表明检测结果的信任级别不高,可能会存在误判现象。
探询分组机制主要用来评估伪邻居检测结果的信任级别,根据网络应用环境条件或者不同的防御级别需求,节点可以根据OLSR安全路由协议的检测结果采取不同的处理机制:节点通过伪邻居处理完成自愈以防止虫洞攻击或者节点将检测结果反馈给网络的监控实体来处理。
探询分组机制在OLSR安全路由协议中的具体实现是在周期性的HELLO报文中对伪邻居做特殊标识,接收节点通过检查标识来识别出探询分组和邻居节点伪邻居信息。探询分组在节点检测到虫洞攻击的一个HELLO Interval时间内发送,接收节点能迅速地做出反应。
2.3 伪邻居处理
当虫洞攻击被检测到时,节点就需要对伪邻居进行处理。OLSR路由协议中虫洞攻击产生的伪邻居中的一部分最终会成为节点的MPR节点。MPR节点实现洪泛TC控制分组的功能,它们对分组的转发决定着节点对网络拓扑的认知,节点的路由表项的建立完全建立在TC控制分组基础上。伪邻居一旦成为MPR节点,节点与伪邻居之间的链路必将会出现在其它节点的路由表项当中,而这条链路是攻击节点通过“隧道”发动虫洞攻击表现出来的。那么,这些路由都会受控于攻击节点。因此,伪邻居处理的第一步是将 MPR集中的伪邻居及时删除,这样就避免了虫洞攻击的产生的最主要危害作用。
基于以上分析,对伪邻居的处理可以依据以下两种机制:
(1)自愈机制:主要考虑去除伪邻居的引入对网络造成的危害作用。节点在检测到虫洞攻击后采取一系列自恢复措施:移除协议各个表中伪邻居的相关信息、屏蔽伪邻居及相关分组。自愈机制是每个节点以自组织的形式对伪邻居进行处理,它需要每个节点都运行OLSR安全路由协议,因此,它对节点的计算资源消耗更大。
(2)报警机制:主要考虑解决误判现象引起的合法节点间不能通信的问题。节点不轻易将未经确认的伪邻居进行移除和屏蔽,而是在检测到虫洞攻击后向网络的管理者或用户做反馈,由它们进行进一步处理。报警机制在网络中划分不同区域,每个区域选择一个信任节点进行虫洞攻击检测,区域的大小由检测级别决定,检测级别越高,区域划分就越小。这种机制需要网络提供一种辅助方案来完成被信任的检测节点的选取。
3 结语
本文综合分析已有安全路由协议的策略,根据虫洞攻击的原理和特性,提出了一种较为简便的虫洞攻击检测算法——HIDA算法。HIDA算法的主要思想是通过分析虫洞攻击在网络中产生伪邻居的特殊现象,采用伪邻居检测的手段来防御攻击。
[1]陈林星,曾曦,曹毅.移动Ad Hoe网络:自组织分组无线网络技术.电子工业出版社.2006.
[2]于宏毅.无线移动自组织网.人民邮电出版社.2006.