庞 滨,张 茹,李 茹
内蒙古大学 计算机学院,呼和浩特 010021
对于网络资源的消费者来说,人们只关心如何快速获取网络中的内容,而不关心内容的具体位置,传统的传输控制协议/互联网协议(transmission control protocol/Internet protocol,TCP/IP)的网络体系结构已经满足不了如今人们对网络资源获取的需求。针对传统互联网存在的问题,以内容为中心的网络体系架构得到了很大的关注。命名数据网络(named data networking,NDN)[1]以内容为中心的网络体系结构是2009年由加州大学洛杉矶分校的张丽霞和Van Jacobson等人提出的。NDN因其内容命名的地理位置无关性和资源就近满足的内容缓存机制使其更适合部署在车辆自组织网络(vehicular Ad-hoc network,VANET)环境中[2-7]。在NDN架构提出不久之后,NDN的提出者张丽霞等人就开始致力于将NDN部署到移动无线环境的研究,特别是对典型的移动无线环境VANET投入了更多的关注。NDN在VANET环境下的部署成为当前网络研究的热点之一[7-16]。
近年来,拒绝服务攻击(denial of service,DoS)和分布式拒绝服务攻击(distributeddenialofservice,DDoS)变得越来越普遍[17]。在传统的以主机为中心的TCP/IP网络体系结构每一层中都存在这类攻击问题。在命名数据网络中,终端用户通过发送兴趣请求包请求所需的数据,而网络唯一地响应每个请求,网络架构的不同有效避免了传统互联网架构下的许多分布式拒绝服务攻击。但是由于NDN中存在的特有结构待定兴趣表(pending interest table,PIT)和内容缓存表(content store,CS),以及VANET环境中节点移动速度快并且拓扑不断变化,使得当NDN部署到VANET环境会受到一种新型DDoS攻击——兴趣包涟漪式广播扩散攻击(popple broadcast diffusion attack,PBDA)[18]。在文献[18]中阐述了兴趣包涟漪式广播扩散攻击的模式,在城市道路环境下分析了危害的程度,但没有给出缓解策略。在PBDA中恶意节点广播不针对特定前缀的、不可被满足的、随机构造的兴趣包并且以高于正常节点的发送频率发送,恶意节点将自己一跳范围内的所有节点PIT占满,由于兴趣包不能被满足,一跳范围内的所有节点继续转发兴趣包形成涟漪式攻击效果,最终将网络中节点的PIT占满,不能满足合法用户的请求最终达到拒绝服务的目的。而对应有线NDN下的类似PBDA的兴趣包泛洪攻击缓解策略主要有:(1)基于兴趣包前缀的检测方法,这类缓解方法主要检测请求异常的兴趣包前缀并告知给下游节点异常前缀信息;(2)基于节点端口的检测方法,这类缓解方法通过端口收发包比例的变化剧烈程度来检测是否受到攻击从而限制端口速率;(3)基于节点追溯的检测方法,这类缓解方法主要监测PIT的大小,一旦检测到攻击反向追溯攻击路径找到攻击源节点。
然而无线环境下的兴趣包涟漪式广播扩散攻击不攻击特定的内容提供者服务器,而是攻击恶意节点可达的所有节点,因而不存在稳定的攻击目标与攻击路径。因此,有线网络下的缓解策略在无线网络环境下不成立。而且,由于VANET节点的快速移动性,造成网络拓扑的动态变化,使得沿着被攻击的目标节点反向追溯攻击路径找到攻击源节点的方式不可行。本文对兴趣包涟漪式广播扩散攻击提出基于节点间协作的缓解策略。节点通过交换PIT信息得到邻居节点的PIT表,并将邻居节点同一个检测周期PIT表项与自身PIT对应表项进行比较来丢弃恶意兴趣包,从而保证正常的应用服务。
本文的其余部分安排如下:第2章介绍相关工作;第3章阐述VANET下NDN中基于节点协作的检测机制原理;第4章介绍基于节点协作的兴趣包涟漪式广播扩散攻击的缓解方法和仿真实验验证;第5章是结论。
2012年,张丽霞等人发表了NDN环境下可能遭受的DoS和DDoS攻击的综述[17],提出了针对NDN架构特点的拒绝服务攻击主要有两种,分别是攻击PIT表的兴趣泛洪攻击和攻击内容缓存CS的内容污染攻击。2013年,张丽霞等人对有线网络NDN下攻击PIT表的兴趣泛洪攻击进行了进一步的分析研究并给出了相应的缓解对策[19]。2013年意大利Padua大学的Compagno等人提出名为Poseidon的缓解兴趣泛洪攻击架构,该架构可以部署在全网范围的路由器上;在该架构下路由器按接口限制兴趣包速率,不区别正常兴趣包和恶意兴趣包,因此合法用户发送的正常兴趣包传输速率也将受到限制,合法用户受攻击影响较大[20]。2015年法国特鲁瓦技术大学的Nguyen等人提出一种基于统计假设检验理论的检测器来检测兴趣泛洪攻击[21-22]。2016年巴西海军国防部的Guimarães等人提出了一种分析模型,该模型用于制定使系统吞吐量达到最大化的函数,并通过优化超时时间,使DoS攻击影响最小化[23]。2016年中国科学院大学的辛永辉等人提出一种基于监测内容请求异常分布的累积熵兴趣泛洪攻击检测方案,然后提供相对熵理论的恶意前缀识别方法。在检测后使用兴趣追踪策略来限制攻击者[24]。该方案可以减少兴趣泛洪攻击的误判和保护合法用户,可避免对正常流量波动的过度反应。2016年德国达姆施塔特工业大学的Salah等人提出一种通用的针对兴趣洪泛攻击的缓解机制[25]。上述可查到的研究均是在有线网络环境下进行讨论的。
因为VANET环境中节点移动速度快并且拓扑不断变化使得恶意节点攻击后的位置不会静止不动,而且正常请求与恶意请求从兴趣包格式和请求的内容上没有显著不同,所以有线下的依靠端口逆向溯源定位可能的攻击者的缓解方案不适用于无线环境。
因为有线网络下的缓解策略在无线网络环境下不成立,而且由于VANET节点的快速移动性,造成网络拓扑的动态变化,使得沿着被攻击的目标节点反向追溯攻击路径找到攻击源节点的方式不可行。于是,在分析了攻击发生时各个节点PIT的变化情况和攻击目标是网络所有节点这一特殊性,提出了基于节点间协作的缓解方法。
既然PBDA这种兴趣包泛洪攻击的目标是NDN中的PIT,这里从恶意节点发动攻击时自身的PIT信息与正常节点PIT的分析入手,来获得PIT表项中的差异,进一步获得缓解攻击的方法。PIT里主要存放三个信息:收到的未满足的兴趣请求包前缀,收到此前缀请求的一个或多个接口,以及此条请求的超时时间。如果是正常节点的PIT,则里面的表项应该包括自身应用产生的兴趣请求前缀、本地逻辑接口和超时时间,还有从物理接口收到的外部其他节点发送过来的PIT表项,包括其他节点应用产生的兴趣请求前缀、接收兴趣包的物理接口和超时时间。
恶意攻击节点的攻击速率和攻击的持续时间是影响PBDA攻击效果的重要因素,如果想达到理想攻击效果,恶意节点必须要不停地产生不可满足前缀的兴趣请求包,并首先填充自身的PIT,并一直保证PIT满载才能达到此种效果。攻击节点首先是占满自己的PIT才能将这些请求包发送出去,因此攻击节点在攻击时PIT表项每一条的恶意请求都是一个不存在的随机请求前缀和本地应用逻辑接口以及超时时间组成的,把自己的PIT占满,同时也不可能接收其他节点发送的兴趣请求。而正常节点的PIT表项,除了有自身应用产生的表项,还存在从其他节点收到的标记为物理接口的兴趣请求。同时可以和邻居节点交换信息。发现了恶意攻击节点PIT和正常节点对应表项的差别,除了前缀不同,最主要的是兴趣请求来源端口的不同,以及是否能接收其他节点的兴趣请求。一个典型的PBDA攻击环境如图1所示。
Fig.1 PIT change graph of nodes under PBDA attack图1 PBDA攻击下节点的PIT变化图
如图1所示,攻击节点E以及周围三个正常节点A、B、C以及一个内容提供节点P。在攻击开始后不久,攻击节点的PIT被自己的恶意兴趣请求占满并一直保持满载,周围的正常节点A和B因为在互相的传播范围内,因此PIT表除了自己本地应用产生的兴趣请求,还包含对方的兴趣请求和攻击节点的恶意请求,节点C因为和A、B不在传播范围内,因此只包含自己本地应用产生的兴趣请求和攻击节点的恶意请求。随着攻击的持续,节点A、B、C的PIT将只剩下自己本地应用产生的兴趣请求和攻击节点的恶意请求。此时A和B的PIT也和C的相似。从图中可以看出,所有节点的PIT表项中来自恶意攻击节点的兴趣包请求表项占了大多数,有多个副本,除了记录来源端口的不同,都要占据PIT最长时间,其他都一致,因此可以通过正常节点间在PIT未被完全占满前进行协作,识别恶意请求进行丢弃,保证正常服务的影响下降到最小。
从上述原理分析可以看出,如果正常节点能够互相交换PIT表信息,并且利用恶意节点PIT满载无法响应其他节点请求的特点,设计一套基于节点间协作的PBDA缓解模式。首先正常节点应该设置PIT表占有率阈值,来保证当节点PIT占用率到达某个门限后触发检测机制,同时保证在攻击发动后正常节点仍保存一部分表项用作互相之间协作通信。这里设tk为第k个检测周期,ri-ex为网络中第i个节点从外部收到的兴趣包,PITsize为PIT表大小。
定义检测阈值为:
在攻击开始后如果PIT表项增加迅速达到阈值,则启动节点间协作检测机制。互相之间发送PIT表查询兴趣请求包。节点以广播的方式向周围邻居节点发送多个查询兴趣请求包,每个节点回应PIT告知包,包的结构如下所示。
Timestamp Information Signature
告知包内含有发送告知报文节点的时间戳信息Timestamp,发送者的签名Signature和互相交换的信息Information。Information部分里只包含发送节点的PIT表里非本地接口的表项信息。
接收到“告知包”处理流程如图2所示。
节点从接口接收到一个数据包,处理流程如算法1所示。
算法1处理数据包算法
有了上述机制后,节点间可以相互交换PIT表信息,判断哪些请求可能是恶意请求,并进行下一步处理来缓解PBDA攻击的影响。
Fig.2 Flow chart of mitigation strategy implementation图2 缓解策略实施流程图
节点的缓解方法最简单的就是按照一定规则丢弃原来PIT表的表项,比如随机选择丢弃或选择PIT表已存在时间最长的,然后将新的表项插入。参考传统网络环境下基于节点协作的DDoS缓解方法[26-29],本文提出了自己的基于节点协作的缓解方法,来判断恶意请求表项并予以丢弃。具体方法如下:
(1)如果节点PIT表的占用率大于设定的阈值,表明有可能附近存在攻击节点,此时需要发送PIT查询兴趣请求给周围邻居,等待周围邻居响应。
(2)如果周围没有响应,则说明周围只有攻击节点或者是正常的高频率兴趣请求节点,无法确切判断,此时缓解方法只能退化成普通的随机丢弃或选择PIT表已存在时间最长表项丢弃。
(3)如果有邻居节点响应返回告知包,此时将告知包的每一条PIT信息和自己的PIT表的信息进行比较。首先剔除掉本节点发送给邻居节点的表项,剩下的逐一进行比对,如果有相同的,给此兴趣请求表项计数加1。从图1可以看出,恶意攻击节点发送的兴趣请求副本最多,并且正常节点已经排除自己本地接口发送的请求,因此PIT表中计数次数多,驻留时间长的表项是恶意请求的可能性就比较大,而周围邻居节点越多,收到的告知包越多,判断的准确率就越高。
(4)判断完成后,可以按照PIT表内的计数次数从大到小,驻留时间从大到小的顺序排序,以次数为优先条件,次数相同时按驻留时间排序。因为次数多的是攻击包的可能性大,按照顺序进行删除,直到PIT表占用率回到阈值以下。
如果攻击节点周围有两个以上正常节点可以互相进行上述信息交流,则可以将恶意请求大部分都判断出来,并丢弃掉,保证NDN网络服务的正常运行,比随机丢弃或单独选择PIT里存在最长时间表项丢弃效果有所提升,保证网络的安全运行。
为了验证缓解策略的有效性,在VMware上搭建Ubuntu系统,在Ubuntu系统上搭建Ndnsim仿真环境,在Ndnsim仿真环境上实现了基于VANET环境的NDN网络兴趣包涟漪式广播扩散攻击和缓解策略,通过Ndnsim仿真环境提供的trace文件获得仿真结果。为了看出缓解措施实施前后的PIT表的变化和网络服务质量的变化,完全采用了文献[18]的仿真环境,整个系统模拟道路如图3所示。仿真所使用的参数与文献[18]完全一致。VANET环境参数如表1所示,仿真参数如表2所示。
Fig.3 System simulation road图3 系统模拟道路
Table 1 VANET environment parameters table表1 VANET环境参数表
Table 2 Experimental parameter table表2 实验参数表
实验首先选取在802.11p协议支持的多跳环境下,固定节点之间的间距,保证连通状态的前提下观察某正常节点的PIT表占据情况和实施缓解策略后PIT表占据情况,如图4所示。
Fig.4 PIT analysis before and after mitigation strategy in fixed distance connected states图4 固定间距连通状态下缓解策略实施前后PIT分析
可以看出,攻击未开始时正常节点除了自己生成兴趣包还转发它收到的其他节点的兴趣包,但从攻击开始的100 s后正常节点的PIT表基本都在接近满载状态,除了本节点自己产生的兴趣包,其他节点的兴趣包已经被挤出PIT表,PIT表已经被恶意请求所占据。之后加载缓解方法,设定PIT占据率阈值为PIT大小的80%。重复上述实验,保证连通状态的前提下加载缓解方法后观察某正常节点的PIT表占据情况。
从图4可以比较看出,未加入缓解措施,攻击未开始时正常节点除了自己生成兴趣包还转发它收到的其他节点的兴趣包,但PIT占用率并不是很高,这是因为正常的兴趣请求满足很快,并不会造成PIT空间的大量占用,从攻击开始的100 s后,正常节点的PIT表占用率大幅上升,如果不进行缓解,基本都在接近满载状态,除了本节点自己产生的兴趣包。其他空间都会被恶意请求所占据,其他节点的正常请求被挤出PIT,更谈不上被满足了,加载了缓解方法后,节点的PIT占用率超过阈值后,马上开始互相之间发送PIT请求兴趣包,在收到回应的告知包后,按照策略进行处理,从图中可以看出,恶意请求的数量下降一部分,不再完全占据可能的所有PIT表项,更为重要的是,正常请求占据PIT表项的数量不会大幅减少。虽然因为攻击的存在,刚开始正常请求表项数量下降后,经缓解后占据PIT数量基本与攻击前持平,而后期略有增加,意味着被满足的速率有所放缓,但是相比较无法进入PIT表而不能获得数据请求的资格,已经使网络服务的质量有了大幅提升。但是此方法是在恶意兴趣请求已经进入节点的PIT后才进行判断是否恶意进行丢弃,因此有一定的滞后性,在面对无孔不入的兴趣包涟漪式广播扩散攻击PBDA,如果端口不进行限速,仍然会在某些时间点上造成PIT满载的临时状态,但不会一直满载下去造成服务的中断。
之后加载图3所示生成的道路轨迹数据,在模拟的城市道路上24辆车的密度下,保证车辆基本全连通的情况下,恶意节点不同数量对整体系统满足率的变化情况状态。从24个车辆节点选取3个恶意节点和多个内容提供者节点,其他为正常节点。正常节点一直向内容提供者节点按照正常速率请求数据,此兴趣请求在内容提供节点存在的情况下一定可以被满足,为了保证在一定车辆密度下攻击的持续性,达到较好的攻击效果,在经过一段模拟时间后,恶意节点开始以其最大可能速率发送随机构造的不可满足的兴趣包进行兴趣包请求广播攻击,达到拒绝正常服务的攻击目标。
同样的环境下,正常节点部署基于协作的缓解措施,经过一段时间记录观察整个过程整个网络的正常请求满足率的变化情况,并与未采用缓解措施的模拟情况进行比较,如图5所示。
Fig.5 Satisfaction rate change status in connected state before and after mitigation measures are implemented图5 缓解措施实施前后连通状态下满足率变化状态
从图5中可以看出,随着缓解措施的应用,如果攻击节点周围有两个以上正常节点可以互相进行上述信息交流,则可以将恶意请求大部分都判断出来,并丢弃掉,缓解效果还是比较明显,随着时间推移,满足率从不到30%逐渐上升到了60%以上,保证NDN网络服务的正常运行,比随机丢弃或单独选择PIT里存在最长时间表项丢弃效果提升明显。保证了NDN网络服务的基本正常运行。
本文对VANET环境下NDN中发现的一种新型的兴趣包泛洪攻击形式——PBDA进行研究,在详细分析攻击发生后恶意攻击节点和正常节点的PIT表项变化,以及NDN的数据转发机制特点的基础上,根据恶意请求和正常请求在同一影响范围内副本数量的不同以及恶意节点不响应正常兴趣请求的行为差别,构造了邻居之间互相通过发送PIT查询信息请求包和对应告知包的机制,通过邻居节点间的相互协作,发挥节点间信息共享的优势,排查恶意请求,达到缓解攻击,保证服务的目的。并通过仿真实验对比部署缓解方法前后正常节点的满足率,通过对比可以看出,从未实施缓解措施前的不到35%的整体满足率可以缓解达到整体满足率60%以上,正常服务效率大为提高。