一种防范泛洪攻击的方法
2013-08-15刘学
刘学
(菏泽学院,山东菏泽274015)
0 引言
移动Ad Hoc网络是一种移动节点通过无线连接组成的自治系统。每个节点不仅是一个终端节点,而且具有路由功能以转发分组。这些节点可以自由的移动,自组织成一个网络。移动Ad Hoc网络不需要任何的固定基础设施(如:基站),因此可以对移动设备进行快速灵活的组网。应用的领域主要有:军事、紧急事务、个人电子设备联网以及无线网络会议或无线教室等。在有线网络中,也存在泛洪攻击。通常称它为SYN泛洪攻击。它的工作机制是一个攻击者向被攻击者发送大量的TCP连接请求,这些连接请求有假源地址。每一次请求都会让目标主机在有限的资源池中分配数据结构。一旦目标主机的资源被耗尽,任何TCP连接将不会被建立,因此,它将拒绝其它合法的访问。SYN泛洪攻击的目的是耗尽被攻击主机的资源,本文描述了防止Ad Hoc泛洪攻击的方法。
1 Ad Hoc 网络安全
有关Ad Hoc网络安全大致可分为三类:密钥管理、路由安全以及入侵检测。Capkun,Buttyan和Hubaux提出了一种完全自组织的公钥管理系统,这个系统可以被用来支持Ad Hoc网络路由协议的安全。Hass首次提出了利用阈值密码学来安全的向多个节点分发认证私钥,由于早期的Ad Hoc网络路由协议缺乏路由安全的讨论与研究,如今路由安全以被人们所关注。因此许多包含安全服务的Ad Hoc网络路由协议被提出。如有:SRP、Ariadne、ARAN、SEAD。但这些安全协议都不能够阻止Ad Hoc泛洪攻击。因为攻击者是一个内部的可信节点,它具有合法的密钥。
2 AODV路由协议概述
在AODV中,路径发现完全是按需进行的。当一个源节点需要发送数据包到一个目的节点时,如果这个源节点没有到达目的节点的路由,它会给它的相邻广播一个路由请求(RREQ)分组。每个节点维持一个单调增加的序列号,以确保路由无环路并且及时取代缓存中陈旧的路由条目。源节点将一个已知的到达目标节点的序列号包含到RREQ分组中。接收到RREQ分组的中间节点会检查它的路由表项。如果它有一条到达目标节点的路由条目,并且这个路由条目中的序列号比RREQ分组中的序列号要大,那么它会单播发送一条路由应答RREP分组给它的相邻节点(这个相邻节点是刚才给它发送RREQ分组的那个)。否则,它会建立一条反向路径,并且再次广播RREQ分组。从一个节点重复接收到的RREQ分组在默认情况下是被丢弃的。
在Ad Hoc泛洪攻击中,攻击节点会耗尽网络资源。首先,攻击节点和网络中的其它节点都建立路径。接着,攻击者通过这些路径向其它节点发送大量的无用的数据分组。这些过量的无用数据会阻塞网络耗尽其它节点正常通信的带宽。目的节点只能忙于接收攻击者发送过来的无用分组而无法正常工作。耗尽可用的网络通信带宽,使其它节点彼此由于网络的拥塞而无法正常的通信。另一方面,它们又有各自的特点。RREQ泛洪攻击会造成节点中路由表的溢出,使节点不能接收新的RREQ分组。在数据泛洪攻击中,接收攻击数据包的过程将会消耗节点的大量的资源。如果攻击者联合使用这两种攻击手段,那么会造成网络的崩溃。
3 阻止Ad Hoc泛洪攻击的方法
这一部分将给出一套防止Ad Hoc泛洪攻击的机制:相邻抑制和路径切断。这两种方法能够分别阻止以上两种泛洪攻击。
据链路层提供了基本的可靠传输的功能,但没有任何的数据链路安全服务,如:WEP协议。而且,假设链路是双向的,大多数访问控制协议都需要这个条件,特别是在协议中启用了RTS/CTS对话。另外,还需要MAC地址到IP地址的一对一的映射关系。最后,无线信道的广播特性使一个节点的传输能被它的所有相邻节点都收到。每一台主机能有唯一的ID,而且,它的ID在Ad Hoc网络中不允许被修改。
使用相邻抑制的方法可以阻止RREQ泛洪攻击。移动Ad Hoc网络是多跳的无线网络,节点通过它的相邻来发送和接收数据分组。如果它周围的相邻都拒绝转发它的数据分组,那么这个节点就无法和Ad Hoc网络中的其它节点进行通信。这个节点会被其它节点孤立出来。
依据Ad Hoc网络的特点,本文设计一种相邻抑制的方法。在AODV路由协议中,节点在处理RREQ分组是根据先进先出(FIFO)的原则。如果前面的RREQ分组没有被处理,后面的RREQ分组将不会被接收。正是由于这个原则,攻击者发出的大量的RREQ分组会首先到达,从而阻止后到达的RREQ分组。本文改变FIFO作为优先级的准则,使用过程优先级和阈值的方法来阻止RREQ泛洪攻击。节点为他的相邻节点建立了一个过程优先级和阈值节点的优先级与相邻节点发送RREQ的频率成反比。
当攻击者发起数据泛洪攻击时,相邻节点很难识别,因为相邻节点不能在网络层上判断分组中的数据是否有用。当目的节点接收到无用的数据分组后,它会在应用层进行判断。下面介绍利用路径切断方法来阻止数据泛洪攻击。当攻击者发起数据泛洪攻击时,这个攻击者首先建立一条到达被攻击节点的路径。当被攻击节点发现是一个数据泛洪攻击时,它将切断与攻击者的路径,阻止攻击者继续进行数据泛洪攻击。被攻击节点向攻击者发送RRER消息。这个消息会指出被攻击这的IP地址是不可达的。中间节点会沿路经转发这个消息,并将自己路由表中到达被攻击节点的路由删除。RRER消息可能会拦截一些与数据泛洪攻击无关的路径,但是这些路径以后会被发送消息的节点修复。由于泛洪攻击的路径被切断,所以数据泛洪攻击也就此终止。
4 结论
本文介绍了一种针对Ad Hoc网络中按需路由协议的泛洪攻击。攻击者向Ad Hoc网络发动拒绝服务攻击,攻击使用了按需路由协议的Ad Hoc网络,即使是安全按需路由协议也会遭受攻击。本文设计的防止泛洪攻击的方法来阻止这种攻击,能够有效的防止Ad Hoc网络的泛洪攻击。
[1]Haining Wang,Danlu Zhang,and Kang G.Shin,Detecting SYN Flooding Attacks[C].New York:IEEE INFOCOM’2002.
[2]Karthik Lakshminarayanan,Daniel Adkins,Adrian Perrig,Ion Stoica,Taming IP packet flooding attacks[J].ComputerCommunication Review,2004,34(1):45-50.