NDN中基于神经网络的兴趣洪泛攻击综合防御方案
2020-05-01雒江涛王俊霞江佐琦王孟楠
张 飞,雒江涛,何 宸,王俊霞,江佐琦,王孟楠
(1.重庆邮电大学 通信与信息工程学院, 重庆 400065; 2. 重庆邮电大学 电子信息与网络工程研究院, 重庆 400065)
0 引 言
最初的互联网设计目的是解决主机之间通信,但由于其协议强大的兼容性,承载起了无数的应用,并取得巨大的成功。不过,随着大规模的内容共享和物联网应用日益普及,基于主机地址的路由和面向连接的安全机制逐渐暴露出更多的不足。为了克服IP网络所面临的挑战,以命名数据网络(named data networking, NDN)[1]为代表的未来互联网革命性设计被提出,旨在建立以基于内容的寻址和有状态转发为核心的全新网络架构[2]。
在NDN的设计中,网络中传输的包分为2种:兴趣(interest)包和数据(data)包。每个路由器包括3种重要的数据结构:内容缓存(content store , CS)、未决兴趣表(pending interest table, PIT)和转发信息库(forwarding informationbase, FIB)。其中,CS缓存流经的数据包,用于响应后续兴趣包的请求;FIB存储兴趣包的转发策略,包含名字前缀、输出接口等字段。路由器收到兴趣包后,首先检查CS是否存在与兴趣包名字匹配的数据,若存在,则将匹配的数据包沿兴趣包到达的相反路径,原路返回到请求节点,并且丢弃该已被满足的兴趣包;若不存在,路由器查询PIT中是否包含该兴趣包名字的条目,若PIT中存在匹配的条目,则在该条目中追加该兴趣包的来源接口,并丢弃该兴趣包;若不存在,则根据名字最长前缀匹配原则查询FIB,将该兴趣包沿查询得到的输出接口转发至下一跳路由器,并在PIT中增加条目。
NDN中基于内容的路由机制使得IP网络中针对特定主机的分布式拒绝服务(distributed denial of service, DDoS)失效;然而,由于路由器中记录转发信息的PIT成为易受攻击的对象,因此形成NDN中新的DDoS攻击形式——兴趣洪泛攻击(interest flooding attack, IFA)。比如,攻击者通过发送大量恶意兴趣包请求不存在的内容[3],这些恶意请求被缓存在中间路由器的PIT中直至超时才被清除,从而使PIT资源耗尽,正常的请求因无法创建PIT条目而被丢弃,严重危害了NDN的安全。因此,针对IFA防御的研究极为必要。
单纯的IFA检测与缓解方案被广泛研究。最直接的检测方法基于PIT的统计阈值,比如PIT兴趣满足度、PIT占用空间或占用率[4]等。较复杂的检测方法有基于信息熵[5]、模糊逻辑[6]、博弈论[7]以及基尼不纯度[8]的方法。常见的缓解方案通过降低可疑流量来源端口的兴趣包输入速率。基于统计特征的检测方法的优点是检测速度较快,缺点是对于高速率突发流量,误检率较高。而且基于窗口的检测方案,只能检测出攻击发生时刻,而对于连续的攻击检测效率不高。
部分学者提出基于机器学习算法的防御方案,如基于SVM(support vector machine)[9]及径向基函数神经网络[10]的方案,但是仍然无法区别正常用户的合法请求。此外,有学者提出通过修改路由器PIT或CS功能的防御方案,如文献[11]摒弃PIT,提出了一种无状态转发的ICN(information-centric networking )网络架构,但这类方法需要在兴趣包中加入字段进行路由,使得计算开销大,兼容性差,较难实现大规模部署。
综合已有的研究,至今缺乏较为系统的防御方案,不仅能及时准确地检测IFA攻击,而且能采取有效措施降低攻击对网络产生的危害,保证正常用户的请求不被影响。本文提出一种基于粒子群优化的后向传播神经网络算法的IFA检测方法,并结合基于基尼不纯度的恶意前缀识别方法[8],以及兴趣包回溯方案[12]缓解攻击危害,旨在探索一种较为系统的防御方案。
1 PSO-BP算法
1.1 BP神经网络
BP(back propagation, BP)神经网络是目前应用最广泛的神经网络[13],是一种有效的多层神经网络学习方法,其主要特点是前向传递信号,后向传播误差,通过不断调节网络权重值以及偏置值,使得网络的最终输出与期望输出尽可能接近,直至达到最大迭代次数M,或者误差小于设定的最小误差ε。
BP神经网络拓扑结构包括输入层、隐含层和输出层。本文要解决的问题是二分类问题,选取了4个特征:PIT条目数,满足兴趣包数目,收到兴趣包数目以及收到的Data包数与发出的兴趣包数的比值。隐含层个数根据实际需求进行调整。本文的BP神经网络结构采用4-10-2,如图1。
1.2 粒子群优化算法
粒子群优化算法是受人工生命研究结果的启发、通过模拟鸟群觅食过程中的迁徙和群聚行为而提出的一种基于群体智能的全局随机搜索算法[14]。由于粒子群优化算法(particle swarm optimization, PSO)操作简单、收敛速度快,因此在函数优化、图像处理、大地测量等众多领域都得到了广泛的应用。
1.3 PSO-BP神经网络算法
BP神经网络的阈值和权值是随机初始化的,导致其收敛速度较慢,容易陷入局部极小值,所以本文引入粒子群优化算法来优化BP网络,加快其收敛速度。首先,将BP神经网络权值和阈值进行编码,然后初始化粒子群的位置和速度,接着使用粒子群算法进行迭代获得全局最佳值,最后再将得到的编码解码用于初始化BP神经网络的权值及阈值。算法的流程如图2。
2 兴趣洪泛攻击综合防御方案
2.1 攻击检测
BP神经网络具有高度的并行结构和并行处理能力,可以逼近任何非线性函数,能够很好地解决非线性问题。此外,BP神经网络具有很强的容错性、鲁棒性,以及强大的学习分类能力,被广泛地应用于分类问题。同时,本文选取的几个特征值关联性较强,使得其他的分类算法效果不佳,所以将BP神经网络用于网络攻击的检测,使用网络中海量的训练数据,对神经网络进行训练,能够得到一个准确的分类模型。
本文引入PSO对BP神经网络进行优化,通过PSO算法来初始化网络的阈值和权值,降低网络误差。优化后的算法有更高的准确性,且收敛速度得到明显提升。但是,由于PSO算法的复杂度较高,引入PSO优化之后计算开销增加,所需的训练时间增加。但本文是将训练好的网络用于网络攻击检测,对训练的实时性要求不高,所以本文使用PSO-BP神经网络是可行的。
在特征值选取上,本文通过对比网络中发生IFA攻击、突发流量时以及正常时期的各个数据的变化,选取在网络状态改变时发生明显变化的数值作为特征值。通过分析选取以下4个数据作为特征。
1)PIT条目数:在时间间隔Δt内的路由器中PIT条目数;
2)满足兴趣包数目:在时间间隔Δt内,路由器中被满足的兴趣包总数;
3)收到兴趣包数目:在时间间隔Δt内,路由器中收到的兴趣包总数;
4)λdi:在时间间隔Δt内,路由器收到的Data包数与发出的兴趣包数的比值。
这4个特征变量具有代表性,当网络中发生IFA攻击时,PIT条目数和收到兴趣包数会急剧增加,但是满足兴趣包数以及λdi会减小。当网络中发生突发流量时,网络中的PIT条目数和收到兴趣包数有所上升,λdi会下降,但是满足兴趣包数会上升。选取的这4个特征,包括了PIT的状态以及CS状态的变化,可以很有效地区分网络中的状态。
在网络中收集数据用于分类模型的训练,其中,训练数据的格式表示为{(x1,y1),(x2,y2),…,(xn,yn)},训练数据集中包含n条已分类的训练数据,其中,xi=(xi(1),xi(2),…,xi(N))是选取的N维特征向量,yi∈{c1,c2,…,cK}属于K类中的一类。每个x包含了本文选取的特征,每个y有2种取值分别代表2个类别:‘0’代表该时间段没有发生IFA攻击,‘1’代表该时间段发生IFA攻击。
本文通过在ndnSIM仿真平台上模拟正常流量、突发流量以及攻击流量,对网络中的数据进行标记,构建训练数据集。然后,用训练数据集对BP网络进行训练得到一个分类模型,用于检测网络中的IFA攻击。当网络中检测到发生IFA攻击后,启动恶意前缀识别程序。
2.2 可疑前缀的确定
本文采用基于基尼不纯度(Gini impurity)的可疑前缀识别方案[8]。在NDN网络中,路由器可以记录每个时间段的兴趣包前缀。受IFA影响,兴趣包前缀分布的改变会导致基尼不纯度发生变化,以此作为识别可疑前缀的依据。攻击前时间段的兴趣包前缀集合记为S1,IFA攻击时的兴趣包前缀集合记为S2,S1和S2集合中的前缀基本一致。
S为一个集合,Pj是集合S中j类出现的概率,该集合的基尼不纯度表示为
(1)
对于前缀i,将P1(i)记为i在集合S1中的概率,P2(i)记为i在集合S2中的概率。对集合S2中兴趣包前缀i,用集合S1中的P1(i)替换集合S2中的P2(i),得到一个新的集合S'2,用 (2) 式计算由兴趣包前缀i带来的基尼不纯度的差异。
ΔGinii=Gini(S′2)-Gini(S2)
(2)
对集合S2中的每个兴趣包前缀i,计算它的ΔGinii,并将ΔGinii<0的兴趣包前缀标记为可疑前缀。
2.3 攻击缓解
当确定攻击前缀之后,立即采取缓解措施,采用兴趣包回溯方案[12]对恶意兴趣包进行限制。检测到攻击的路由器生成一个虚假的数据包用于满足恶意请求,在原始数据包格式的基础上增加一个标志位,用于区分是否是虚假数据包。虚假数据包的内容是可疑前缀。
虚假数据包沿着请求兴趣包的路径返回到连接攻击者的边缘路由器,边缘路由器收到虚假数据包后,首先提取出兴趣包中的攻击兴趣包前缀,然后限制该前缀的请求兴趣包,从而达到IFA的防御效果。
3 实验及结果分析
本文使用开源ndnSIM[15]仿真平台对本文提出的方案进行验证。本文将基于PSO-BP算法的IFA检测机制的检测结果和基于基尼不纯度的IFA检测方案结果进行对比;并且以PIT使用率为指标对所提方案的防御效果进行了分析评估。
3.1 实验环境与参数配置
本文使用small-scale tree topology拓扑图如图3。实验的参数设计如表1,正常用户Cx发送的请求符合Zipf-Mandelbrot分布,每秒发送20~100个兴趣包;攻击用户A1发送的恶意请求符合Uniform分布,每秒发送300~1 100个兴趣包。正常用户B1发送的突发流量请求符合Zipf-Mandelbrot分布,每秒发送300~1 100个兴趣包。链路时延均为10 ms,数据带宽均为100 Mbit/s。其余的参数为默认值。
分别在5~15 s生成300 packets/s的网络突发流量,在55~65 s生成600 packets/s的IFA攻击。突发流量是指高于网络中平均流量的突发正常请求,攻击流量是指IFA用户发起的攻击请求。图4为网络状态发生改变时,所选特征值的变化。从图4中可以看出,在网络中出现突发流量时,PIT条目数、收到的兴趣包数及满足的兴趣包数会上升,突发流量会使得路由器收到的Data包数与发出的兴趣包数的比值有所下降。当网络中出现IFA攻击时,PIT条目数急剧上升为原来的约30倍,收到兴趣包数会急剧上升到原来的4倍,满足兴趣包数下降为原来的50%左右,收到的Data包数与发出的兴趣包数的比值急剧下降为原来的10%。
表1 实验参数Tab.1 Experimental parameters
3.2 训练数据集构建
在实验阶段,获取网络中各种网络状态下的特征数据,构建训练数据集用于BP神经网络分类模型的训练。实验中,部分参数设置如表2,节点Cx为正常用户请求,速率为20~100 packets/s,并且有内容提供者P1回应该请求;节点A1为网络中的IFA攻击用户,请求不存在的内容,模拟IFA攻击,请求速率为300~1 100 packets/s;节点B1请求存在的内容,模拟网络中的突发流量,速率为300~1 100 packets/s,时间为0~1 000 min。
表2 训练数据获取的实验参数Tab.2 Experimental parameters of training data acquisition
3.3 结果分析
3.2.1 检测方案的准确性
PSO-BP神经网络的相关参数设置为:BP网络中,采用3层神经网络(一个输入层,一个输出层,一个单隐层),输入层神经元数为4,隐含层神经元数为10,输出层的神经元数为2。激活函数为sigmoid函数,最大训练次数M为2 000,最大的允许误差ε为0.005,学习速率为0.015。PSO算法中,粒子群规模为50,最大迭代次数设置为200,加速度常数c1,c2均设置为2,粒子维度d由(3)式确定为72,速度为[-1,1],位置为[-1.1]。
d=m·n1+n·n1+n1+n
(3)
(3)式中:m为输入节点数;n1为隐层节点数;n为输出节点数。
本文的时间间隔Δt设置为1 s。为了评测PSO-BP分类器的分类效果,采用的指标为:真阳性率(true positive rate, TPR),即正确检测时间窗口发生攻击;假阳性率(false positive rate, FPR),即误检测出窗口发生攻击。使用60 000条数据训练得到的神经网络模型对网络中的攻击进行检测。在检测期间,随机地加入了突发网络流量,突发流量有对应的内容提供者回应请求。
每个正常用户的请求速率在20~100 packets/s变化,在仿真阶段随机加入了速率为300~1 100 packets/s突发流量,攻击用户的请求速率在300~1 100 packets/s的实验条件下,仿真时间为300 s。2种检测方案的检测结果如图5。实验结果表明,本文提出的基于PSO-BP的检测方案的检测效果优于基于基尼不纯度的检测方案:真阳率要高,假阳率要低。从图5中曲线可以看出,即使在攻击速率较低的情况下,本方案的真阳率超过了0.912 5,假阳率低于0.063 9,达到了较好的检测效果。随着攻击速率的提高,本方案的真阳率逐渐提高,假阳率一直维持在较低的水平。
表3是基于PSO-BP方案、基于基尼不纯度方案以及BP算法的检测准确率Acc,计算公式为
(4)
(4)式中:TP为正例被检测为正例的数目;TN为负例被检测为负例的数目;P为正例数目;N为负例数目。
从表3中可以看出,本方案的检测准确率超过93%,高于基于基尼不纯度的检测方案;并且,引入PSO优化后,检测的准确率与传统BP算法相比准确率提高了至少0.3%,BP算法的检测准确率在0.924~0.957,而PSO-BP算法的检测准确率在0.930~0.960。
表3 3种检测方案的检测准确率Tab.3 Detection accuracy of threedetection schemes
另外,本文用实验验证了2种方案检测连续攻击的准确性。在检测期间,节点B1分别在1~5 s, 11~15 s向网络发送了300 packets/s的突发流量,节点A1分别在6~10 s, 16~20 s发起了600 packets/s的IFA攻击,在离散时间22 s, 24 s, 27 s, 29 s,网络中发生了600 packets/s的IFA攻击。
实验结果如图6。由图6可知,使用基于PSO-BP算法的检测方法能够准确检测出6~10 s, 16~20 s以及22 s, 24 s, 27 s, 29 s发生的IFA攻击,没有将突发流量误检测成IFA攻击,并且可以在发生攻击之后很快检测出攻击的发生。而基于基尼不纯度的检测方案,只能检测到连续攻击的开始时刻6 s,16 s,以及离散的22 s, 24 s, 27 s, 29 s, 对于连续攻击和攻击发生期间无法检测。
基于窗口的检测方案在发生连续攻击时的检测效果不佳,如果攻击是由不同的恶意前缀发起的,那么将会影响后续的缓解,无法有效地防御IFA。而本文提出的基于PSO-BP算法在连续和离散的攻击情况下,其检测效果都较好。
本检测方案存在一些不足,如果选取的时间间隔小于网络的往返时延(round-trip time, RTT)时,无论是正常的兴趣请求还是攻击流量,都无法获取对应的数据响应,使得满足兴趣包特征值失效。但是,PIT条目数、收到兴趣包数以及数据包与兴趣包的比值仍然有效。此时,可以使用更多的样本数据对模型进行训练,得到一个较好的模型。
3.2.2 缓解方案的有效性
通过实验验证所提IFA防御机制的效果,图7是加入本文提出的IFA防御机制和没有加入防御时,发生IFA攻击时的PIT条目数曲线图,虚线是没有加入防御的结果,实线是加入防御机制的PIT条目数。在时间为15~25 s 时B1向网络中发送了300 packets/s的突发流量,在时间为40~60 s之间,A1向网络中发送了450 packets/s的IFA攻击。结果显示没有加入防御的PIT条目数明显急剧上升并且一直保持在较高的水平,而加入了防御之后,在攻击开始时刻PIT条目数急剧上升,但随即便下降并且保持在较低的水平。可见本文提出的IFA防御机制能够有效地防御IFA。
4 结束语
NDN网络中的安全问题一直备受关注,解决安全问题有助于推动NDN网络走向实用。而兴趣洪泛攻击又是NDN中最大安全威胁,一直缺乏综合的防御机制。本文提出一种基于PSO-BP神经网络的IFA检测与防御的系统解决方案,解决了基于窗口检测方法无法检测连续攻击的问题。实验结果显示检测效果可以达到93%,并且通过缓解方案可以有效减轻对网络的影响。