无线传感器网络面临的攻击与对策*

2012-04-01 08:52马亲民王晓春戴光智
传感器与微系统 2012年3期
关键词:链路层重传攻击者

马亲民,王晓春,戴光智

(1.华中师范大学,湖北 武汉 430079;2.深圳职业技术学院,广东深圳 518055)

无线传感器网络(wireless sensor networks,WSNs)借助于节点中内置的形式多样的传感器测量所在周边环境中的热、红外、声纳、雷达和地震波等信号,从而探测包括温度、湿度、噪声、光强度、压力、土壤成分、移动物体的大小、速度和方向等众多的物质现象[1]。也正由于WSNs自身的特点:节点分布随意,拓扑结构变化快,节点能量、体积、计算能力受限等,造成了它极容易受到各种形式的攻击。

按照安全需求,这些攻击可以分成如下几类[2]:

1)针对加密与认证的攻击:这类攻击有窃听、数据包重传、数据包篡改和欺骗等,标准的加密方式就能保证通信信道的安全和认证,从而防止诸如此类的攻击。

2)针对网络可见性的攻击:这类攻击常常就是指DoS攻击,它可以针对传感器网络的任何一层进行攻击。

3)对服务完整性的秘密攻击:攻击者的目标是让网络接收错误的数据。例如:攻击者劫持了一个节点,从而可以通过它向网络上注入错误的数据。

这种日益凸显的弱点,已经成为阻碍WSNs应用发展的主要障碍。本文结合WSNs的特点,系统地分析了WSNs物理层、数据链路层、网络层、传输层容易受到的各类攻击:物理层受到的电波干扰攻击,链路层的数据碰撞攻击并由此引发的能量衰竭,网络层中针对路由的攻击如伪造篡改地址、重发路由、虫洞攻击、Sinkhole攻击等,传输层的泛洪攻击。本文在分析这些攻击的机制的基础上,给出了目前针对这些攻击的一些有效的对策。

1 物理层的攻击及其对策

WSNs的物理层负责信道的选择、载波的产生、信号的探测、调制、数据加密等。由于涉及到无线波媒介,无线传感器网络一定可能存在着电波干扰。而且,节点很有可能被安置在恶劣的、不安全的环境中,这样极易被攻击者物理接触,这就是物理层面临的2种最有可能的攻击。

1.1 电波干扰

直接对网络节点使用的无线频率进行干扰就是电波干扰[3]。这种干扰源如果功率很大,足可以破坏整个网络的通信,即使功率很小,只能影响网络的很小一部分,但是很多这种小功率的干扰源被随机地分布在网络中,也可以阻碍整个网络的通信。

采用各种形式的扩频技术就可以有效地应对这种攻击,尤其以跳频最为有效,但是扩频技术的使用为设计带来更大的复杂度,同时在使用过程中势必带来更多的能耗。但是以廉价、低功耗为目标的WSNs,往往采用单一频率进行通信,因而极易成为此类攻击的牺牲品。其次,也可以采用低占空比的方式运行,网络中的节点绝大部分时间是在休眠的,这样攻击者持续的大功率的电波干扰将以大能耗为代价,很有可能还没有破坏网络,它自己就已经把能量耗尽[4]。

1.2 物理截获

WSNs一般有成百上千个传感节点,很难对每个节点进行监控和保护,因而,每个节点都是一个潜在的攻击点,都能被攻击者进行物理和逻辑攻击。另外,传感器通常部署在无人维护的环境当中,这更加方便了攻击者捕获传感节点。当攻击者截获了某个节点,就可以提取出诸如加密密码之类的敏感数据,进而,攻击者可以篡改该节点甚至干脆换一个完全受其控制的傀儡节点[5]。

2 链路层的攻击与对策

数据链路层负责多路数据流的复用、数据帧的检测、媒介访问控制、错误控制等,从而对提供点对点、点对多点提供可靠的通信。这一层的攻击包括访问冲突、资源耗竭、不公平等。

2.1 碰 撞

当2个节点在相同频率同时进行数据发送的时候,就会发生碰撞,数据包就会出错,导致接收端的校验和不匹配,接收端于是把该这些无效的数据包丢弃。攻击者可能有意通过产生一些诸如ACK控制消息之类的数据包碰撞,于是,在某些MAC协议中,将导致指数级的退避。

典型的抗碰撞的方法是采用纠错码(error-correcting codes,ECC)。大多数的纠错码都只能处理低级别的碰撞,比如:环境或概率误差。而且,这种编码方式会给节点带来计算上和通信商的额外的开销。一旦攻击者破坏的数据数目超过这些编码能够纠正的数据,这些额外的开销将变得徒劳。虽然有办法去检测这些恶意的碰撞,但是目前为止,尚无完备的对策[6]。

2.2 资源耗竭

攻击者使用持续的碰撞将导致节点能量很快枯竭。以一个简单链路层协议实体为例,当它发现发送出去的数据包被破坏的时候,就会重传,而这些重传出来数据包又会与攻击者的数据包发生碰撞,而作为接收端的附近节点会不断去接收这些被破坏的数据,然后进行校验,于是继续重传、碰撞,周而复始,直至自身和附近节点的能量储备被耗尽为止,除非这种毫无希望的重传被发现并且被阻止[7]。

一种可能的应对方案是对MAC的数据传输速率进行限制,这样就链路层就可以忽略额外的数据发送请求,从而阻止由于持续的重传导致的能量枯竭[8]。

另一种应对方案是采用时分复用技术,每个节点只能在自己的时隙中才能传输数据,这样有序的安排可以免去对每帧数据进行判断[9,10]。

2.3 不公平

攻击者间隔地使用上述的链路层攻击,将会导致网络中的不公平,这也可以看做是一种弱型DoS攻击。

3 网络层的攻击与对策

网络与路由层通常按照如下的原则进行设计:

1)因节点能量有限,因此,能效是要考虑的首要问题,所有的设计工作必须考虑能效;

2)网络以数据为中心;

3)传感器网络是基于属性进行寻址的(attribute-based addressing),不必像传统网络都有一个唯一的标识(ID)。

这一层的攻击包含如下一些种类。

3.1 捏造、修改和重传路由信息

针对路由协议最直接的攻击就是以正在节点间交换的路由信息为目标。攻击者可能会捏造、篡改或者重传路由信息,以破坏网络中正常的通信,包括创建路由回环、引诱或排斥来自某些节点的数据、扩展或缩短网络源路由、产生伪造错误信息、分割网络、增加端对端的传输时延等[11]。

相应的对策是在发送的消息后面附加上一个消息验证码(message authentication code,MAC)。这样接收端就会通过该MAC以确认数据是否在传输过程被改动过。通过向数据中加入计数器或者时间戳,可以应对重传路由的问题。

3.2 选择性转发

在多跳网络中,通常假设所有的节点都是准确无误地转发接收到的数据。于是攻击者就会创建恶意节点,它们不是转发所有的数据,而是选择性转发一些,其他的数据直接丢弃。黑洞攻击就是这种形式的实例,因为该恶意节点把所有接收到的数据全部丢弃,没有任何数据出来,犹如网络中的黑洞一般。

一种应对措施是使用多种路径来多次传输数据,这个显然增大了通信量和能耗,但可以尽量避免数据经过这些恶意节点而被无端丢弃。另一种措施是检测出存在的恶意节点,并视其为无效节点,或者寻找另外的路由避免数据经由恶意节点。

3.3 Sinkhole攻击

在Sinkhole攻击中,攻击者通过伪造路由信息,使得被劫持的节点在周围节点看起来能够提供非常好的路由。于是周围的节点都选择被劫持节点来转发自己的数据包。因为网络中的大面积范围内的数据都将流向这个对手的节点,这种攻击非常容易实现选择性转发。

3.4 Sybil攻击

Sybil攻击是一个对WSNs非常有害的攻击方式,Sybil攻击就是指一个恶意的设备或节点违法地以多个身份出现,通常把这个设备或节点的这些多余的身份称为Sybil设备或节点[12,13]。由于多个身份的出现,相关的协议和算法都会受到影响,如容错机制、分布式存储、网络拓扑维持等。以分布式存储为例,假设某算法是利用同样一份数据在3个不同地方即节点存放拷贝的方式来取得一定级别的数据冗余,一旦当中有节点伪装成为2个节点,算法就会错误地认为已经有足够的冗余度了,可是事实却绝非如此,于是埋下了隐藏的网络漏洞。

3.5 虫洞攻击

虫洞(wormhole)攻击在2个恶意节点间建立一条隧道,攻击者在隧道的一端记录接收到的数据包,通过此隧道将数据包传递到隧道的另一端,然后再重放。对选择最短路径的路由协议来说,虫洞将吸引较大的网络流量。因为在一般情况下,隧道的长度大于一跳距离,但在路由上却表现为一跳距离,这样,节点在选择路由时肯定倾向于虫洞所在的路径。更重要的是,虫洞攻击如果成功,攻击者就能够以此进行更多的攻击。例如:攻击者可以主动丢包或者改变数据包内容。

对于虫洞攻击,目前已经提出了一些检测和防御的方法,其中最常用的就是包束缚,就是在每个数据包中添加束缚信息以限定包的传输距离。束缚信息有2种:一种是地理束缚,发送方将其位置信息和发送时间添加到包中,接收方根据自身位置和接收时间估算出发送方到接收方的最大距离,如果估算出的最大距离超过单跳传输距离,则丢弃该数据包;另一种是时间束缚,这种方法假设无线电信号的最大传输速率等于光速,因此,数据包的生存期可以使用最大传输距离和光速计算得到。发送方将包的生存期加入到包中,接收方根据接收时间检查包是否超时。

3.6 Hello洪水攻击

很多的路由协议,都通过HEELO报文来确定邻居关系:当一个节点能收到HELLO报文的时候,就认为该报文源节点在自己的无线电波范围以内,即是自己的邻居节点。攻击者就会使用一个大功率的发送器的恶意节点去发送HELLO报文,使得一个很大范围内的节点都误以为这个恶意节点是自己的邻居。

3.7 确认欺骗

WSNs中的路由协议大都要求使用确认机制。攻击节点就会在窃听到发往别处的数据包后,发出欺骗的确认消息,从而造成源节点对网络的误读。例如:节点(由于某种原因)已经失效,应该没有回应,也就没有确认消息,可是确认的消息会让源节点误认为该节点依然工作正常。

4 传输层的攻击与对策

传输层负责管理端对端的连接,这一层的主要攻击有:泛洪(flooding)和去同步(desynchronization)。

4.1 泛洪攻击

只要传输层的协议需要在连接的两端维持状态,那么,该协议就容易受到泛洪攻击而导致内存耗尽。攻击者通过不断地连接请求,不断地消耗接收端节点的内存和增加连接数,最终将使其内存耗尽或者使得其到达最大允许连接数。于是,后来的合法连接请求也会被忽略[14]。

一种应对措施是,对每个建立的连接进行限制,从而降低连续发起无用连接请求的速度,自然也就不会耗尽节点的资源。

4.2 去同步

去同步实际就是破坏已经建立好的连接。当某节点正在等待数据时,攻击者故意发出一些虚假数据给它,该节点收到后发现数据有错,会误认为数据传输过程中发生错误,一方面会去纠错,另一方面可能要求源节点重发该数据。如果这种攻击的时机切入很好的话,很可疑就会降低甚至会完全阻止已经建立好连接的端对端的数据传输,因为这些节点会消耗宝贵的能量试图去纠正原本不存在的错误[15]。

最好的应对措施就是要求端对端的所有数据包都要求进行验证,这样可以避免那些虚假的、捏造的数据传输。很显然,这种应对措施是用复杂的计算和能量消耗换来的。

5 结束语

本文采用分层模式将WSNs各层所面临的安全威胁和可能受到的攻击进行了分析,并且根据发生的原理,给了相应的对策。WSNs以其低功耗、低复杂度、低成本等优点越来越多的被用在各个监控领域,但是也是这些特点导致了WSNs很容易受到各种各样的击,如物理层的电磁波干扰将直接导致信息无法正常传输,在数据链路层的由于数据包碰撞将会导致节点不断重发数据导致能量的快速衰竭,在网络层面临的更多的各种欺骗导致网络结构的混乱,在传输层的洪水攻击也会最终使得节点的能够耗尽。所有这些种种攻击在设计网络的时候就要多加分析,加以防范,才能使得WSNs更加健壮。

[1]任丰原,黄海宁,林 闯.无线传感器网络[J].软件学报,2003,14(7):1282 -1291.

[2]Akyildiz I F,Su W,Sankarasubramaniam Y,et al.Wireless sensor networks:A survey[J].Computer Networks,Elsevier Science,2002,38(4):393 -422.

[3]朱政坚,谭庆平.无线传感器网络安全研究综述[J].计算机工程与科学,2008,30(4):101 -105.

[4]Mpitziopoulos A,Gavalas D,Konstantopoulos C,et al.A survey on jamming attacks and countermeasures in WSNs[J].Communications Surveys& Tutorials,IEEE,2009,11(4):42 -56.

[5]Wang Yong,Garhan A,Byrav R.A survey of security issues in wireless sensor networks[J].Communications Surveys & Tutorials,IEEE,2006,8(2):2 -23.

[6]Xiao Yang,Chen Hsiao-hwa ,Sun Bo,et al.MAC security and security overhead analysis in the IEEE 802.15.4 wireless sensor networks[J].EURASIP Journal on Wireless Communications and Networking,2006(2):1 -12.

[7]Wood A D,Stankovic J A.Denial of service in sensor networks[J].IEEE Computer,2002(8):54 -62.

[8]Aymond R D R,Midkiff S F.Denial of service in wireless sensor networks:Attacks and defences[J].IEEE Security and Privacy,2008,7(1):74 -81.

[9]Pelechrinis M I K,Krishnamurthy S V.Denial of service attacks in wireless networks:The case of jammers[J].IEEE Communications Surveys& Tutorials,2011(2):1 -13.

[10]廖传书,韩 屏.无线传感网络的冲突感知MAC协议研究[J].计算机应用,2007(7):1572-1575.

[11]Karlof C,Wagner D.Secure routing in wireless sensor networks:Attacks and countermeasures[J].Ad Hoc Networks,2003,1(2-3):293-315.

[12]余 群,张建明.无线传感器网络中的Sybil攻击检测.[J].计算机应用,2006(12):2897-2902.

[13]Ssu K F,Wang W T.Detecting sybil attacks in wireless sensor networks using neighboring information[J].Computer Networks,2009,53(18):3042 -3056.

[14]Marsh D W,Baldwin R O.A security policy language for wireless sensor networks[J].Journal of Systems and Software,2009,82(1):101-111.

[15]Shon T,Koo B,Choi Hyohyun,et al.Security architecture for IEEE 802.15.4-based wireless sensor networks[C]//Proceedings of the 4th International Conference on Wireless Pervasive Computing,2009:294 -298.

猜你喜欢
链路层重传攻击者
机动能力受限的目标-攻击-防御定性微分对策
基于多空间内存共享的数据链路层网络包捕获方法
面向异构网络的多路径数据重传研究∗
正面迎接批判
基于FPGA全功能MVB网络从设备链路层IP核设计
有限次重复博弈下的网络攻击行为研究
数据链路层的选择重传协议的优化改进
IEEE 1394事务层接口的设计与实现
MPTCP中一种减缓缓存阻塞的重传策略
选择性重传法在IPTV中的应用