命名数据网络中Interest洪泛攻击检测与防御

2018-10-08 11:53邢光林
关键词:占用率攻击者路由器

邢光林,李 亚,韩 敏,侯 睿

(中南民族大学 计算机科学学院,武汉430074)

命名数据网络(Named Data Networking,NDN)以其具有优越的信息中心网络(Information Centric Network,ICN)特性被认为是下一代因特网体系结构的有效解决方案之一[1,2].NDN使用数据名称进行数据信息的转发和交换,基于此特性,目前在NDN中出现了一种基于兴趣包洪泛攻击(Interest Flooding Attack,IFA)[3]的分布式拒绝服务攻击(Distributed Denial of Service,DDOS).实施IFA时,攻击者向网络中发送大量的恶意interest包,使NDN路由器中的待定兴趣表(Pending Interest Table,PIT)空间一直被占用,导致路由器无法接收正常interest包,严重时会致使NDN网络瘫痪.

针对攻击者可以在正常行为和恶意行为之间随意切换的现象,文献[4]提出一种对路由器接口进行流量监听,随时判断IFA攻击并对其进行流量限制的IFA缓解方法,但该方法需要掌握整个网络结构且只适合用于与用户直接相连的NDN边缘路由器上;文献[5]提出一种 interest包回溯方法,当NDN路由器PIT增长速率超过阈值时,内容提供者可以通过data包追溯该interest包源头从而限制攻击者,但该方法仅通过PIT增长速率判断攻击行为,误判率较高;文献[6]提出一种神经网络RBF(Radial Basis Function)与粒子群优化算法PSO(Particle Swarm Optimization)相结合的混合多目标方法RBF-PSO,该方法利用RBF和PSO的优势提高IFA的检测准确性,但该方法开销较大,实现较复杂;文献[7]提出一种基于文献[4]改进的名称为IFBN的方法,使其不需要掌握整个网络结构且适用于所有NDN路由器,但该方法将NDN路由器接口限制为3个;文献[8]提出一种称为Poseidon的IFA检测和缓解的方法,该方法包含PL和PD,PL通过实时监听NDN路由器接口,分析接口interest/data包流量和PIT占用率来检测IFA,PD在PL基础上,基于push-back方法,通过路由器之间相互发送警告包(Warning Packet)来协作缓解IFA,但该方法存在限制正常interest包现象,造成正常用户的请求失效.相对于前述IFA检测和缓解方法,Poseidon具有适用性强(NDN中所有路由器)、IFA判定准确率高(同时参考interest/data包流量和PIT占用率情况),以及开销较小(仅需监听接口interest/data包流量和PIT占用率)等优势.因此,针对Poseidon方法的不足,本文提出一种基于概率接收的Poseidon方法——PAP(Probabilistic Acceptance-based Poseidon),通过实时监听NDN路由器接口来判断interest包数据名称字段所带有的疑似恶意前缀,并概率性限制带有疑似恶意前缀的interest包,从而达到准确判定并有效缓解IFA的目标.

1 Interest 洪泛攻击

1.1 NDN路由机制

NDN中的通信方式为请求驱动,内容请求者首先发送一个interest包请求所需数据内容,内容发布者收到interest包后将对应的数据封装在data包中,data包沿着interest包所经路径的反向路径返回至内容请求者.NDN路由器中存在3种数据结构:内容存储表(Content Store,CS)、PIT和转发信息库(Forwarding Information Base,FIB).NDN中interest包和data包的转发过程如下:NDN路由器收到interest包时,首先根据此interest包的名称在CS中进行精确匹配查找,若存在匹配表项,则将其对应的数据封装为data包并发送给内容请求者;若未查到匹配表项,则在PIT中查找该interest包名称,若存在匹配表项,则将该接口添加到PIT的请求接口集合中,删除该interest包;若未查到匹配表项,则在FIB中进行该interest包名称的最长前缀匹配的查找,若存在匹配表项,将interest包从该表项所对应的接口发送出去,并且将interest包的名称和相应接口信息添加到PIT中;若未查到匹配表项,则将该interest包丢弃.NDN路由器接收到data包时,依次查询CS和PIT,将data包从对应表项的请求接口中发送出去,并删除PIT中对应的条目信息.

1.2 IFA的表现形式

攻击者发送大量由特定名称前缀与随机产生的后缀所构成的interest包,由于该interest包所请求的数据不存在,NDN路由器无法收到对应的data包致使其PIT空间不能及时释放,从而严重影响NDN路由器的正常工作.如图1所示,内容提供者S能够提供名称为/a/b/c.mp4的数据内容,则路由器R1的FIB中一定存在名称前缀/a/b/,因此基于该名称前缀的interest包都能通过R1转发给S.若攻击者A1发送大量由/a/b/与随机生成后缀所构成的恶意interest包,即/a/b/xx,由于S没有对应的数据,因此这些恶意interest包会长期存留在R1、R2和R3的PIT中,直到其生存时间耗尽才会被PIT删除,从而造成PIT长期处于空间占满状态,同时会影响正常用户的正常请求,如用户U1、U2和U3发送的正常interest包就会由于R1、R2和R3的PIT空间不足而被丢弃.

图1 NDN中兴趣包洪泛攻击Fig.1 Interest Flooding Attack in NDN

2 PAP方法

针对上述IFA,本文提出一种基于Poseidon的改进方法——PAP.PAP分为检测和缓解两个阶段:在检测阶段,PAP实时监听NDN路由器接口,周期性记录通过接口的interest包和data包数量及PIT空间占用情况,将其作为检测IFA的指标,并构建interest包超时未响应表(Overtime Interest Table,OIT),将其作为缓解IFA的参考;在缓解阶段,NDN路由器通过OIT来判断遭到攻击的名称前缀,并通过发送警告包来相互协作,同时概率性接收包含该前缀的interest包来缓解IFA.PAP检测和缓解方案具体说明如下,参数定义如表1所示.

表1 PAP中的符号Tab.1 Notation in PAP

2.1 检测阶段

当PIT中interest包对应的条目在其生存时间内没有得到data包响应,该条目就会从PIT中删除,根据该条目的名称前缀和接收接口来构造OIT.如图2所示,路由器ri的PIT条目{/android/ui/cache.txt,{1,2,3}}对应的interest包在其生存时间内未得到data包响应,则将名称前缀/android/ui/插入ri的OIT中,若其OIT中没有该名称前缀,则将其计数记为1;否则,将其计数加1.当计数超过c时,判定该名称前缀为疑似恶意前缀.

图2 ri的超时未响应interest表OITFig.2 The overtime unresponsive interest table OIT of ri

2.2 缓解阶段

Poseidon方法检测到接口受到IFA后则限制该接口对interest包的接收.以下两种正常interest包将会被丢弃: 1)名称包含疑似恶意前缀的正常interest包.当NDN路由器判定名称前缀为疑似恶意前缀时,说明该名称前缀受到了IFA,而不是所有包含该名称前缀的interest包都是恶意interest包.如图1中,A1发送大量以/a/b/为名称前缀的恶意interest包来请求不存在的数据,使得/a/b/被判定为疑似恶意前缀,而/a/b/c.mp4是一个包含疑似恶意前缀的正常interest包;2)名称不包含疑似恶意前缀的正常interest包.

当PAP检测到接口受到IFA时,根据OIT来判定疑似恶意前缀,由于存在名称包含疑似恶意前缀的正常interest包,PAP按照公式(1)概率性接收名称包含疑似恶意前缀的interest包,接收名称不包含疑似恶意前缀的interest包,并同时从该接口发送警告包,通知其相邻路由器可能正在或者已经发生IFA.警告包是名称前缀为/PAP/ WARNING/的data包,包含其生存时间、疑似恶意前缀等信息.

f(x)=α×(1-1/ω)+(1-α)/ω.

(1)

Algorithm 1: the Processing Flow of the Package

if msg is Data Packet then

process msg as Data Packet and return

end if

if msg is Interest Packet then

usingOITito create Warning Packet and sent it to adjacent router

end if

if the name prefix of msg inOITiand its counter is bigger thancthen

drop msg according to equation (1)

end if

else

process msg as Interest Packet

end if

end if

if msg is Warning Packet then

else

drop msg

end if

end if

3 仿真实验

本文以二叉树作为NDN网络拓扑结构,如图3所示.不失一般性,本文随机设定正常用户数量为12,攻击者数量为4,NDN路由器数量为15,内容提供者数量为1.仿真实验参数如表2所示,仿真时间为50s.仿真开始时,正常用户发送interest包,10 s后,攻击者开始发送大量恶意interest包.

图3 网络拓扑结构图Fig.3 Network topology

表2 仿真实验参数Tab.2 Simulation parameters

实验中,正常用户以Zipf分布[9]的方式请求存在的数据,攻击者请求不存在的数据且每次请求的数据都是不同的.本文利用用户收到的data包数量和路由器PIT空间占用率两方面来验证PAP的性能.在攻击速率不同的情况下,和NM(No Measure)、PL、PD以及IFBN方法进行比较.

攻击者发送interest包速率为1000个/s时的情形如图4.图4(a)给出了正常用户接收到的data包的数量的对比.刚开始时,所有用户接收到的data包的数量为1200(100%).第10 s攻击开始后,用户接收到的data包的数量急剧下降.其中NM下降了近60%,其次是PL和PD,PD由于路由器之间采用了相互协作的方法,下降的比PL小一点.由于IFBN限制路由器只有3个接口,通过路由器两个接口流量和PIT占用率判断攻击来限制恶意行为,下降的比PD要小.最后是PAP,用户能够保证接收到80%以上的data包.这是由于PAP不仅能够通过警告包将疑似恶意前缀等信息传递给相邻路由器,实现信息共享,还能够通过概率模型限制恶意interest包,从而提高接受正常interest包的数量.图4(b)是路由器R1的PIT占用率的对比,从第10 s开始攻击,NM中PIT的占用率立刻达到了100%,PL、PD以及IFBN检测存在IFA时,直接丢弃接收的interest包,一定程度上降低了PIT的占用率,而PAP牺牲了一定的PIT空间来概率性接收包含疑似恶意前缀的interest包,使得PIT占用率比PL、PD、IFBN高.

攻击者发送interest包速率为2000个/s时的情形如图5.图5(a) 给出了正常用户接收到的data包的数量的对比,可以发现和攻击速率为1000个/s相比,所有的方法接收到的data包数量都有所降低,但PAP还能接收到60%以上的data包,较大程度地缓解了IFA带来的影响.图5(b) 是路由器R1的PIT占用率的对比,可以发现当攻击速率变大时,PAP方法下R1路由器的PIT占用率变化不大,表明PAP在不同的攻击速率下也能较好地缓解IFA.

(a)正常用户接收data包数量 (b)路由器R1的PIT占用率图4 攻击者发送interest包速率为1000个/s时的网络性能图Fig.4 Network performance diagram of an attacker sending interest packets at a rate of 1000 packets per second

(a)正常用户接收data包数量 (b)路由器R1的PIT占用率图5 攻击者发送interest包速率为2000个/s时的网络性能图Fig.5 Network performance diagram of an attacker sending interest packets at a rate of 2000 packets per second

4 总结

本文提出了一种基于Poseidon的改进方法——PAP,该方法根据路由器的PIT空间使用情况和接口流量来检测IFA,通过路由器之间的协作逐步限制接口恶意流量,尽可能实现接近攻击源头、限制恶意interest包的目的.其中,在检测IFA时,通过OIT判断疑似恶意前缀;在缓解IFA时,概率性限制名称包含疑似恶意前缀的interest包,从而尽量降低对正常用户获取数据的影响.通过二叉树网络拓扑进行仿真研究,验证了本方法的可行性及优越性.

猜你喜欢
占用率攻击者路由器
买千兆路由器看接口参数
维持生命
路由器每天都要关
路由器每天都要关
适当提高“两金”占用率助人助己
降低CE设备子接口占用率的研究与应用
正面迎接批判
正面迎接批判
有限次重复博弈下的网络攻击行为研究
基于云计算的虚拟机在线迁移算法