林思敏
(中国联合网络通信有限公司 汕尾市分公司,广东 汕尾 516600)
边界路由器BGP协议的脆弱性分析
林思敏
(中国联合网络通信有限公司 汕尾市分公司,广东汕尾516600)
文章重点分析了边界路由器上边界网关协议(Border Gateway Protocol,BGP)协议的脆弱性,深入研究了CXPST算法的攻击原理,并提出了相应的改进型的震荡路径选取策略,从理论上完成了对改进型震荡路径选取策略的更优性的证明。根据实验结果可知,通过笔者设计的BGP协议,可以在更短时间内使得运行BGP协议的骨干路由器无法正常工作,效果明显强于CXPST算法。
BGP协议;脆弱性;路由器;CXPST;DDoS攻击
BGP协议又称边界网关协议,它是一种运行在TCP上的自治系统路由协议,一般都由网络上的骨干路由器完成边界网关协议路由器的运行。关于骨干路由器和骨干路由器上运行的BGP协议安全性的研究有很多,这是因为骨干路由器在网络上深受人们的关注。BGP协议扮演着至关重要的通信角色,是边界网关路由器运行的最经典的路由协议。
1.1BGP协议攻击原理
如图1所示,当对边界路由器拓扑时,只需连接图中的任何一条边,就可以公式推算出通信的权值,其计算公式如下:
Droute(AB, e)= ∑route(AB,e)
其中,route(AB, e)可以被理解为从A点到B点全路径的固定边长e,它是一个定值,当路径经过边e,那么,route (AB,e)的值就为1,而如果路径完全没有经过e边,那么它的值就为0。
有一种利用BCP协议攻击的情况,如图1所示,其原理也就是选取某一已知的两个节点A和B,从而选取网络,然后计算出AB之间的关键路径并视职位震荡路径。然后根据策划者的策略,利用ZMW的攻击算法完成攻击关键路径分布式拒绝服务(Distributed Denial of Service,DDoS)的任务[1],最后导致连接关键路径的路由器只能侦测到其链路上出现的时断时续的状态。鉴于此,如果路由器的更新信息不幸被附近的其他路由器接收到,那么该接收路由器也可以更新路由表,并向与其相邻的其他路由器传递更新之后的信息,这时如果突然切断两个路由器之间的连接链路,路由器会自动更新其路由表,同时向其相邻的路由器发送路由表更新信息。如此循环,路由表的更新信息就会扩散至整个网络的所有区域。只要保证网络应用在运行状态上的正常,BCP协议就能在一个较为稳定的环境下运行,BGP协议之间之所以很少出现路由器的更新过程,是因为路由器很少出现不停断开或连接的情况[2]。
1.2改进型振荡攻击路径计算
1.2.1CXPST算法震荡路径计算中的问题
定理1:最佳方案为选取关键路径作为震荡路径。
证明:根据以上结果的值,关键路径e的是应对BCP协议攻击的重要因素,方法为选择观景路径e为最高边,它一定要是多条连接AB路径边中具有最高共享程度的,因此,所有经过AB的路径大多数都要经过e边。
图1 BGP协议攻击原理
只要e被选作为震荡路径,只要网络拓扑中出现了路径震荡的情况,路由器都会将更新消息发送至e边附近的其他路径。
只要路由器完成了对路由表的更新任务,其他的路由器就都能够接收到来自此路由器的信息。由于扩散叠加效应的作用,在一次路径震荡时有路由器生成的路由表会将更新次数最多的路由器和它附近路径中的路由器连接,并不是将其直接连接到e边上。如图1中的R1, R2所示。一旦数据量过大的信息更新使得关键路径中的路由器难以正常运行时,就可以依据路由的扩散叠加效应,由关键路径路由器附近的其他路由器进行信息处理,因此,会出现某些路由器加大信息计算量的情况。
1.2.2改进震荡路径设计原理
为了对震荡路径在选取的设计上进行进一步的优化处理,实验人员引入了震荡影响因子的概念。
定义1:震荡影响因子。该因子可以理解为当前路由器路径选择会被网络拓扑中的某一段路径所影响,影响的因素取决于该路径震荡的程度,记为f(R, path(a,b))。
路由器的路由表之所以会更新,必定是因为网络上的某段路径发生震荡,该路径的震荡对路由器的影响因子则被称为f(R, path(a,b))=1。
如果震荡发生在它和某一路由器直接相连的路径,那么此路径的震荡就会成为影响路由器的因子,该因子用f(R, path (a,b))表示,结果为1。如图1所示,如果路由器的R3和R4的路径出现震荡的现象,那么对路由器R3的影响因子数值就为1。如果出现震荡现象的路径和当前的路由器没有直接连接起来,那么此时的影响因子就既有可能小于1,也有可能大于1,但肯定不再为1。具体的震荡影响因子的计算过程如下:
如图2所示,对于已知的AB网络拓扑来说,所有的节点都是运行BCP协议的边界路由器。
R2和R10之间的路径发生震荡,所以有f(R2, path(R2,R10))=1。
由于R7有3个不同的转发分支,假设每个分支进行数据转发的代价是均等的,则R7的影响因子由如下公式计算得到:
f(R7, path(R2,R10))= *f(R2, path(R2,R10))
同理可计算得到:
f(R8, path(R2,R10))= *f(R7, path(R2,R10))
f(Rl, path(R2,R10))= *f (R8, path(R2,R10))
同时, R2 路由表更新直接也会对 R1 产生影响, 因此有:
f(Rl, path(R2,R10))= *f (R2, path(R2,R10))
以此类推, 可以得到路径 R(R,path(10,2))的震荡,对路由器R1的总影响因子为:
Totle(f(R1, path(R2, R10)))= *f (Ri,path(R2, R10))
其中Ri代表与路由器 R1 相邻的5个路由器。
图 2 改进型震荡路径的选取
受BCP协议的扩散效应影响,每个路由器在更新了路由表之后都会立即向其他的路由器发动更新信息,由于每个路由器的更新速度不同,因此更新完成的时间点也不同,通常不会同时达到其他路由器。由此看来,关键路径上的路由器对路由表的更新频率与震荡路径对路由器的总震因子密切相关[3]。
为了验证此策略的可行性,笔者专门建立了最接近真实的实验环境,对骨干路由器的组成以及网络路由器的更新过程进行了真实模拟。实验结果表明路由器CPU负荷受到来自震荡路径的影响,为了有效降低震荡路径影响骨干路由器CPU负荷的程度、缩短测量的时间,本文从中选取了在实验条件内的路由器组成的24段拓扑网络,用这些网络建立震荡路径进行实验,然后根据上文所提到的算法,将网络拓扑链路中的这24段震荡路径取出,然后对比CXPST所选取的另外24段震荡路径。
最终的测量结果如图3所示。可以看出,在进行实际测量时,采用本文设计的算法,相对而言,骨干路由器CPU的负荷比较高,而在20s的时候,使用笔者所给出的算法进行处理,路由器的CPU已经接近满负荷运转,但使用CXPST的算法,路由器CPU的负荷却维持在正常水平,只有不到90%。因此,笔者的方法会更快地导致网络拓扑图中产生震荡路径,使得路由器难以正常运转。
图3 振荡路径对路由器CPU负荷的影响
[1]况晓辉,赵刚,温研,等.大规模分布式系统脆弱性分析框架研究[J].计算机科学,2012(6):58-60.
[2]李德毅.复杂网络与网络安全[J].军队指挥自动化,2015(6):15-20.
[3]邢栩嘉,林闯,蒋屹新.计算机系统脆弱性评估研究[J].计算机学报,2014(1):1-11.
Vulnerability analysis of BGP protocol in border router
Lin Simin
(Shanwei Branch of China United Network Communications Limited, Shanwei 516600, China)
This paper analyzes the vulnerability of BGP agreement on boundary router, in-depth studies the attack principle of CXPST algorithm, and puts forward the corresponding improved shock path selection strategy, theoretically completed the proof that improved shock path selection strategy is more optimum. According to the experimental results, the design of BGP protocol can make the backbone router running BGP protocol can not work normally in a shorter period of time, and the effect is obviously stronger than the algorithm CXPST.
BGP protocol; vulnerability; router; CXPST; DDoS attack
林思敏(1987— ),女,广东陆丰,助理工程师;研究方向:网络工程。