邢光林,霍红,侯睿
(中南民族大学 计算机科学学院,武汉 430074)
信息中心网络(Information-Centric Networking,ICN)关注数据的内容而非数据所在的具体位置,赢得了国内外学者的关注[1].命名数据网络(Named Data Networking,NDN)以其在耦合路由、网内存储等方面的特点,成为ICN中最有效的解决方案之一,被广泛认为是下一代互联网的体系代表[2].NDN中所有数据内容都被赋予唯一名称,数据内容的名称结构为”前缀/后缀”,携带相同前缀的数据内容名称可以代表某一类数据内容,后缀代表特定数据内容[3].数据内容名称被划分为几部分,不同部分之间采用‘/’来进行分隔.NDN中存在两种类型的数据包:Interest包和Data包[4].数据内容名称作为Interest包和Data包的唯一标识,用户将所需的数据内容名称封装到Interest包中并向NDN中发送,内容提供者收到Interest包后,将相应的数据内容封装在Data包中,按照与Interest包相反的路径进行传输,直至将Data包交付给用户,完成一次信息交互[5].
根据NDN中信息的交互方式及特点,在NDN中存在一种分布式拒绝服务攻击-Interest包洪泛攻击(Interest Flooding Attack,IFA)[6].恶意用户向网络发送大量携带“恶意前缀”的Interest包来请求不存在的数据内容,由于内容提供者没有相应的数据内容因而无法回传Data包[7].从而导致NDN路由器中的待定兴趣表(Pending Interest Table,PIT)存储空间被占用,合法用户无法请求新的数据内容,导致网络的服务质量下降[8].
NDN领域对IFA检测方法进行了广泛的研究.COMPAGNOA等人[9]提出Poseidon方法来检测IFA,该方法通过监测路由器特定接口的Interest包满足率(Interest Satisfaction Ratio,ISR)以及该接口在PIT中存储Interest包条目数量,进而判断是否发生攻击.但该方法没有区分Interest包所携带的合法前缀与恶意前缀,可能会限制携带合法前缀的Interest包的请求.XIN等人[10]提出累积熵与相对熵的概念,根据Interest包的名称分布计算累积熵来检测是否发生攻击,检测到攻击后通过计算相对熵来识别恶意前缀,限制携带恶意前缀的Interest包转发.但该方法能够检测出的恶意前缀数量较少.为了提高检测的准确性,ZHI等人[11]提出了基于基尼指数的IFA检测方法,通过计算基尼值的差值进行攻击检测,根据攻击前后Interest包所携带前缀的概率分布情况计算基尼值的差值从而确定恶意前缀.但此方法过于依赖Interest包的名称分布,容易造成误判.HOU等人[12]提出了基于泰尔指数的IFA检测方法,该方法通过将路由器收到的Interest包分为组内和组间,根据泰尔指数判断网络是否发生攻击.但该方法耗时较长.为了提高检测效率,XING等人[13]提出了基于隔离林的IFA防御方法(IFDM),该方法通过引入隔离林理论,根据Interest包的名称前缀构造隔离树,从而将恶意前缀与合法前缀划分到隔离树的不同位置,达到检测恶意前缀的目的.然而,当恶意Interest包所携带的恶意前缀数量增多时,上述方法可能具有一定局限性.
针对以上检测方法的不足,本文提出一种基于增强隔离林的Interest包洪泛攻击检测方法(Extended Isolation Forests Based IFA Detection Method, EIFDM).增强隔离林(Extended Isolation Forests,EIF)是一种异常检测算法,其本质是检测异常数据[14].本文借鉴EIF的思想,将EIF应用到IFA检测中,进行攻击检测.EIFDM首先通过将Interest包所携带的前缀构造成增强隔离林来计算不同前缀的异常分数从而识别出异常前缀.之后通过结合路由器的PIT占用情况来判断异常前缀是否为恶意前缀,若检测出恶意前缀,将其列入黑名单中,限制携带恶意前缀的Interest包转发,从而对IFA进行一定的缓解.仿真结果证明,该方法相对于其他方法在检测速度与检测准确性方面具有优势.
EIF由多棵具有二叉树结构的增强隔离树(Eitree)构成.在IFA检测阶段,本文首先将Interest包的前缀属性值构造Eitree.通过计算不同前缀的异常分数区分合法前缀与异常前缀.然后通过进一步的判断找到恶意前缀,将其列入黑名单中.
构造一棵Eitree的过程如下:NDN路由器通过在固定时间间隔内,以Interest包的前缀名称作为指标统计Interest包的前缀属性值,包括发送的Interest包、接收的Data包、在PIT中记录的条目以及过期PIT条目的数量.在统计的所有数据中,从待检测的样本中随机选择n个不同前缀作为集合X={x1,...,xn},作为构造Eitree的样本.从X中的前缀所携带的属性中随机选择三个,作为构造Eitree的属性,同时构成三维坐标系.在X所在的平面上根据样本属性值随机选择一个点p,同时随机选择一个法向量的每一个分量都服从(0,1)正态分布.使得满足的前缀形成Eitree的左子节点的前缀形成Eitree的右子节点,对X中的n个前缀进行递归选择和划分,直到满足以下三个条件之一:
(1)树达到最大高度(树的最大高度:l=ceiling(log2n),该值约为树的平均高度);
(2)剩下前缀划分信息相同;
(3)只剩下一个前缀不可再次划分.
多次随机选择待检测样本中的前缀构造多棵Eitree,形成EIF,此时所有前缀都被划分到Eitree的叶子节点.同时记录Eitree的叶子节点到根节点的路径长度h(x),记录完X中所有前缀的h(x)后,根据前缀的h(x)计算出平均路径长度E(h(x)),E(h(x))即X中前缀的总路径长度之和与Eitree的数量比值.
为了进一步对前缀异常情况进行判断,本文引入文献[15]的异常分数s(x,n)来判断前缀是否异常,异常分数定义如下:
其中(1)式中c(n)计算方式如下:
其中H(i)为调和函数,通常由ln (i)+0.5772156649(欧拉常数)估计.
根据以上情况,本文首先通过设定阈值Th来对前缀的异常情况进行判断,经过多次实验,设定阈值Th,如果某一前缀异常分数大于Th,则将此前缀视为异常前缀,如果小于Th,则为合法前缀.之后,本文通过PIT占用率这一判定条件对异常前缀进行进一步判断.根据经验值设定PIT占用率的阈值为Tr.如果某一异常前缀的PIT占用率超过Tr,则将此异常前缀视为恶意前缀,列入黑名单中.
本文以网状结构作为NDN的网络拓扑,Interest包遵循最短路径的原则下在NDN中进行信息交互.如图1所示,设定用户总数为14,其中设置两种类型的用户:合法用户与恶意用户,合法用户的数量为11,恶意用户的数量为3.内容提供者数量为1,NDN路由器数量为12.实验参数可见表1,本次实验总时长为30 s, IFA在第5 s发起,第30 s结束.
表1 仿真参数配置Tab. 1 Simulation parameters configuration
图1 NDN网络拓扑结构Fig. 1 NDN network topology
为了证明EIFDM的有效性,本文将此方法与其他三个具有代表性的IFA检测方法进行比较,这三种方法分别为:基于累积熵和相对熵的IFA检测方法(CE&RE)[6],基于泰尔熵值的IFA检测方法(TC)[8]、IFDM[9],本次实验通过改变恶意前缀的数量来验证这三种方法在面对IFA时所产生的局限,之后采用以下两个指标来评估在面对攻击时四种方法的具体效果:
(1)合法用户收到Data包的数量;
(2)NDN路由器R1的PIT占用率.
图2表示在恶意前缀数量变化的情况下,四种方法能否检测出全部的恶意前缀.其中,横坐标代表恶意用户发送Interest包所携带恶意前缀的数量,纵坐标表示在该种情况下四种方法能否检测到全部的恶意前缀,0表示不能检测到全部恶意前缀,1表示能检测出全部恶意前缀.如图2所示,当恶意前缀数量增多,IFDM、TC、CE&RE这三种方法在检测恶意前缀的数量上均产生局限性.EIFDM将恶意前缀分割到距离根节点更近的位置,分割次数较少,通过EIFDM计算前缀的异常分数更加准确,进而EIFDM能够更加准确地检测出全部恶意前缀.若网络中存在恶意前缀数量较多的攻击时,EIFDM在检测的准确性上存在显著优势.
图2 恶意前缀数量不同时四种方法能否检测出全部恶意前缀Fig. 2 Can four methods detect all malicious prefixes when the number of malicious prefixes varies
当恶意前缀的数量为6时,NDN的网络性能如图3所示,由图3(a)可见,在非攻击的情况下,R1路由器的PIT空间占用率维持在20%左右,当第5 s发起攻击时,R1路由器的PIT被迅速占满,影响了合法用户的请求.当EIFDM应用到遭受IFA的NDN网络中时,R1路由器的PIT空间占用率在6 s时就恢复到了正常状态,相对于IFDM和TC这两种方法耗时较少.由于CE&RE在检测过程中依赖Interest包的名称分布,当恶意前缀数量为6时,该方法只能检测出部分恶意前缀,因而只能限制部分携带恶意前缀的Interest包发送,故R1的PIT空间占用率维持在40%~60%.图3(b)表示合法用户收到Data包的数量,NDN网络正常运行时合法用户收到Data包的数量维持在2100个左右,当攻击在第5 s发起后,合法用户收到Data包的数量迅速下降,其中在TC、IFDM、CE&RE这三种方法下,Data包的数量下降了近52%,而EIFDM效果明显,在攻击发起时,合法用户依旧能够收到66%的Data包,使合法用户在短时间内收到Data包的数量恢复正常.
图3 恶意前缀种类为6时的网络性能图Fig. 3 Network performance graph when malicious prefix type is 6
本文提出了基于EIF的IFA检测方法——EIFDM,首先通过构造Eitree检测异常前缀,之后结合路由器的PIT占用率对异常前缀进行进一步判断,进而检测出全部恶意前缀.将检测出的恶意前缀列入黑名单中,限制携带恶意前缀的Interest包转发,从而有效缓解了IFA,仿真实验证明了该方法的有效性.在今后的工作中,计划在更加复杂的攻击情况下开展研究.