1、在分布式的兴趣包洪泛攻击中,针对某一特定前缀,恶意节点的兴趣包发送速率低于正常节点的兴趣包发送速率,而由于恶意攻击者在网络中大量分散,导致靠近内容提供者的上游路由器PIT表溢出,大量丢弃兴趣包,包括合法兴趣包,而由于合法用户的兴趣包发送速率较高而满足率较低,在基于PIT状态统计的检测方案中,会被误判为恶意攻击者。同理,在网络拥塞时,也会造成误判。
2、基于PIT状态统计的检测方案存在的问题
(1)他们中的绝大多数可能容易地对正常流量波动过度反应,因为提出的方法不区分合法流量波动和恶意攻击。
(2)我们认为兴趣包洪泛攻击检测和基于PIT异常状态统计的恶意前缀识别(例如兴趣包未满足率、超时率和PIT空间)可能引起错误的警告,特别对于分布式低速率兴趣包洪泛攻击。如下图所示,在低速率DDoS攻击期间,更靠近内容源的路由器G更可能首先遭遇PIT溢出,它丢掉几乎所有的后续兴趣包,包括合法兴趣包和恶意兴趣包。结果,路由器A的PIT将溢出,因此它将发送兴趣包洪泛攻击警告,这将明显是一个错误的判断。此外,兴趣包洪泛攻击“兴趣包回溯”措施,路由器A也将限制合法请求(拥有误判的前缀),因为路由器A的合法请求被认为是恶意请求(依据PIT前缀的低满足率统计)。因而,基于PIT异常状态统计的兴趣包洪泛攻击缓解将损害合法流量,因为在这种情况下,它不能区别合法请求和恶意请求。在核心网络拥塞期间,相同的错误检测将发生。
(3)一些应对措施需要路由器的合作,使得他们互相依赖。因此,当路由器受到劫持,它可以通过向邻居发送错误宣告破坏网络中的通信。然后这些邻居也可以向网络中的其他路由器传播这些错误消息。
3、本文思想: 本文中,我们提出了一个兴趣包洪泛攻击检测和应对方案,基于NDN中的累积熵和相对熵理论,这可以克服上面提到的所有缺陷。我们用累积熵算法来检测兴趣包洪泛攻击,这将基于在每个路由器接口接收到的兴趣包名字来计算,当由于洪泛恶意请求分布被破坏时,累积熵敏感地改变。累积熵可以及时地对攻击做出反应,并通过滤出正常波动避免过度反应。此外,相对熵识别算法也用于在攻击被检测后找到恶意前缀。提出的方案可以独立工作在所有的路由器上,并拥有较低的复杂性。
4、累积熵检测兴趣包洪泛攻击
信息熵反映信息源的随机性,并可以在一组兴趣包样本上计算。例如,如果检测器捕获到连续的包,以一个固定宽度W=1000的滑动窗口,并计算每个唯一兴趣包名字在那1000个包中的发生频率,然后检测器将生成一个兴趣包名字的分布模型。当攻击发生时,分布将敏感地改变,以便熵被计算。同时,熵改变将被视作攻击,甚至在流量波动情形下。
NDN网络运转正常的时候,在路由器每个接口上计算的熵在一个狭窄的范围内变化,因为用户的请求有一个相对稳定的分布。当兴趣包洪泛攻击发生时,请求分布将改变,一些NDN路由器接口上的熵将超出范围。因而,我们采用累积熵检测算法来检测兴趣包洪泛攻击,并同时避免对正常流量波动的过度反应。
5、相对熵识别恶意前缀
A. 相对熵
相对熵(也叫做Kullback-Leibler距离)是相同随机变量P和Q的两个概率分布之间差别的度量。在统计中,作为一种似然概率的对数的期望。对于离散概率分布P和Q,相对熵定义为
其中,i是集合I中的一个元素。在上面的定义中,我们使用约定0log(0/0)=0,0log(0/q)=0和plog(p/0)=∞。因此,如果存在任何符号i∈I,使得p(i)>0,q(i)=0,那么D(p||q)=∞。它总是非负的,当且仅当P=Q时,为0,P和Q之间的差别越大,D(P||Q)越大。
B. 恶意前缀识别
当兴趣包洪泛攻击被检测到的CUSUM异常改变,恶意攻击者身份验证过程将被触发,如算法2所示。因而,提出的方案消耗较少的计算资源,因为相对熵不需要被一直计算。
每个路由器记录当前取样的前缀分布P和稍早时取样的Q,其中每一项P(i)或Q(i)是计算的每个唯一兴趣包前缀i的发生频率。因为不可能在几百万兴趣包中检测第一个洪泛的请求,P和Q总是拥有相似前缀空间的两个分布。因此,通过用概率Q(i)替换概率P(i),我们可以得到新的分布P’,新的相对熵D(P’|| Q),D(P’||Q)和D(P||Q)之间的不同ΔD。此外,通过迭代P中的每个前缀并重复上述过程,我们可以得到在整个前缀空间记录的ΔD的集合。通过遍历方法,我们可以找到引起最大不同ΔD的前缀,这被视作我们识别的恶意前缀。如算法2所示,KLDSet在每次迭代过程中记录ΔD,返回保存着恶意攻击者前缀的PrefixSet[i]。实际上,识别的恶意前缀i的数量基于KLDSet中的ΔD,依赖于特定算法。
6、兴趣包洪泛攻击应对措施
当检测到异常并识别到恶意前缀,兴趣包回溯过程被触发。特别地,响应该攻击的路由器通过回溯到兴趣包源头,例如,攻击者,通过生成洪泛的数据包来用识别到的恶意前缀满足洪泛兴趣包。如图2所示,路由器I生成的洪泛数据包被转发回兴趣包源头,通过查询中间路由器的PIT表,如NDN中标准数据包同样的方式。当洪泛的数据包到达洪泛的兴趣包进入网络的接口,边缘路由器被通知,与该接口直连的的主机是攻击者。然后,边缘路由器{B,C,H}通过丢掉兴趣包限制这些接口的进包速率,因此缓解了DDoS攻击。