《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > BGP協(xié)議防御DDoS攻擊的方法淺析
BGP協(xié)議防御DDoS攻擊的方法淺析
2016年微型機(jī)與應(yīng)用第24期
陳石,劉金生
(中國聯(lián)合網(wǎng)絡(luò)通信有限公司 網(wǎng)絡(luò)運(yùn)維部互聯(lián)網(wǎng)處,北京 100033)
摘要: BGP (Border Gateway Protocol)協(xié)議是Internet中應(yīng)用最廣泛的自治系統(tǒng)間路由協(xié)議,它通過面向連接的TCP (Transfer Control Protocol)協(xié)議保障路由信息的可靠轉(zhuǎn)發(fā)。然而,以DDoS(Distributed Denial of Service)為代表的網(wǎng)絡(luò)攻擊對基于TCP 的應(yīng)用協(xié)議產(chǎn)生了嚴(yán)重的威脅。保護(hù)BGP協(xié)議較為常見的方法是在網(wǎng)絡(luò)邊緣添加防火墻、流量分析儀等安全設(shè)備。從分析BGP鄰居的建立過程及DDoS的攻擊特點(diǎn)入手,提出一種新的思路,在不增加運(yùn)營成本的前提下,實(shí)現(xiàn)BGP協(xié)議對DDoS的防御。
Abstract:
Key words :

  陳石,劉金生

  (中國聯(lián)合網(wǎng)絡(luò)通信有限公司 網(wǎng)絡(luò)運(yùn)維部互聯(lián)網(wǎng)處,北京 100033)

         摘要:BGP (Border Gateway Protocol)協(xié)議是Internet中應(yīng)用最廣泛的自治系統(tǒng)間路由協(xié)議,它通過面向連接的TCP (Transfer Control Protocol)協(xié)議保障路由信息的可靠轉(zhuǎn)發(fā)。然而,以DDoS(Distributed Denial of Service)為代表的網(wǎng)絡(luò)攻擊對基于TCP 的應(yīng)用協(xié)議產(chǎn)生了嚴(yán)重的威脅。保護(hù)BGP協(xié)議較為常見的方法是在網(wǎng)絡(luò)邊緣添加防火墻、流量分析儀等安全設(shè)備。從分析BGP鄰居的建立過程及DDoS的攻擊特點(diǎn)入手,提出一種新的思路,在不增加運(yùn)營成本的前提下,實(shí)現(xiàn)BGP協(xié)議對DDoS的防御。

  關(guān)鍵詞:BGP鄰居;TCP連接方向;分布式拒絕服務(wù)攻擊; 互聯(lián)網(wǎng)服務(wù)提供商

  中圖分類號:TP393文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.16747720.2016.24.002

  引用格式:陳石,劉金生. BGP協(xié)議防御DDoS攻擊的方法淺析[J].微型機(jī)與應(yīng)用,2016,35(24):5-7.

0引言

  根據(jù)中國聯(lián)通公眾互聯(lián)網(wǎng)CHINA169的統(tǒng)計(jì),截至2016年5月,Internet上自治系統(tǒng)間路由條目數(shù)已經(jīng)達(dá)到62萬條,如此龐大的數(shù)據(jù)信息都是依賴于路由協(xié)議進(jìn)行計(jì)算和轉(zhuǎn)發(fā),而以分布式拒絕服務(wù)攻擊(Distributed Denial of Service,DDoS)為代表的網(wǎng)絡(luò)攻擊卻對路由協(xié)議的安全產(chǎn)生了嚴(yán)重的威脅。本文提出一種基于TCP連接方向的方法對抗DDoS攻擊。

1基于TCP的邊界網(wǎng)關(guān)協(xié)議

  Internet是由眾多相互聯(lián)在一起的自治系統(tǒng)(Autonomous System,AS)組成的,而負(fù)責(zé)傳遞AS之間網(wǎng)絡(luò)層可達(dá)性信息(Network Layer Reachability Information, NLRI)的協(xié)議稱為BGP(Border Gateway Protocol)。為了確保NLRI的可靠轉(zhuǎn)發(fā),BGP使用TCP協(xié)議作為它的下層承載協(xié)議。

  TCP[1] (Transfer Control Protocol)是開放系統(tǒng)互聯(lián)(Open System Interconnect, OSI)參考模型中唯一面向連接的傳輸層協(xié)議,它使用“三次握手”機(jī)制建立面向連接的虛電路,每一條TCP連接都被通信鏈路的兩個端點(diǎn)(IP地址:端口號)唯一確定:TCP連接={(IP1:port1),(IP2:port2)}。BGP對應(yīng)的port值(端口號)為179。BGP協(xié)議在進(jìn)行路由信息的交換與轉(zhuǎn)發(fā)前,需要建立鄰居(PEER)關(guān)系,BGP建立鄰居的過程可以分為兩個階段。

  階段一: TCP通道的建立。這個階段的主要任務(wù)是在希望建立BGP鄰居的路由器之間搭建起一條數(shù)據(jù)通道。TCP的 “按序重傳”和“滑動窗口”機(jī)制能夠確保BGP承載的路由信息在互聯(lián)網(wǎng)中可靠地傳輸,而不必進(jìn)行周期性的全部泛洪。

  階段二:BGP報(bào)文的協(xié)商。在這個階段,將要建立BGP鄰居的兩臺路由器利用TCP的數(shù)據(jù)通道,使用OPEN報(bào)文以單播方式進(jìn)行能力協(xié)商(包括版本號、保持時間、BGP標(biāo)識、可選參數(shù)等),決定最終是否能夠成功建立BGP鄰居關(guān)系。

2防御DDoS攻擊的常用方法

  DDoS[2]攻擊是互聯(lián)網(wǎng)上常見的攻擊手段,黑客借助客戶/服務(wù)器技術(shù),將多個計(jì)算機(jī)聯(lián)合起來作為攻擊平臺,對目標(biāo)發(fā)動持續(xù)性攻擊,耗盡目的主機(jī)資源,最終使正常的用戶請求得不到應(yīng)答。評估DDoS的攻擊強(qiáng)度,可以采用“中間網(wǎng)絡(luò)檢測法[3]”數(shù)學(xué)模型:首先在核心路由器上以Δt為標(biāo)準(zhǔn)時間間隔對數(shù)據(jù)流量進(jìn)行采樣,然后分別計(jì)算出(源地址、目的地址、目的端口)相同的數(shù)據(jù)包的集合,得到與以上三元組相同的數(shù)據(jù)包α隨時間變化的序列。當(dāng)時間間隔很大時計(jì)算該序列的自相關(guān)系數(shù):

  βk=[∑N=ki=1(ai-)(ai+k-)]/[∑Ni=1(ai-)2]

  其中:αi(i=1,2,…,k)為k個Δt時間內(nèi)α的序列;為α的數(shù)學(xué)期望;βk為自相關(guān)系數(shù)。如果自相關(guān)系數(shù)不為0,則說明發(fā)生了DDoS攻擊,偏離值越高,說明遭到的攻擊強(qiáng)度越大,以此判斷是否需要在核心路由器上部署分布式的DDoS防御系統(tǒng)。

  理論上說,所有基于TCP的應(yīng)用都面臨DDoS攻擊的威脅,BGP協(xié)議自然也不例外。開啟了BGP協(xié)議的路由器抵御DDoS攻擊的常用手段有:在前端增設(shè)防火墻或流量過濾與清洗設(shè)備,互聯(lián)地址隱藏(或者直接使用私網(wǎng)地址互聯(lián)),源地址識別,限制SYN/ICMP流量等。這些方法在實(shí)施過程中,要么需要增加新的硬件,提高了運(yùn)營維護(hù)成本;要么需要在全網(wǎng)部署新的路由協(xié)議和安全策略,擴(kuò)展性較差。

3防御DDoS攻擊的新思路

  DDoS攻擊最常用的手段是同步泛洪(SYNFLOOD),向攻擊目標(biāo)發(fā)起大量的同步連接請求,卻不回復(fù)ACK,最終耗盡目標(biāo)服務(wù)器的資源。這種攻擊方式必須有明確的攻擊目標(biāo),也就是說攻擊是有方向性的。順著這個思路,如果能夠在BGP鄰居建立的第一階段控制住TCP連接的建立方向,就可以有效降低有效連接請求的數(shù)量,抑制DDoS對系統(tǒng)的資源占用,達(dá)到保護(hù)BGP協(xié)議的效果。

  如圖1所示,企業(yè)網(wǎng)AS100希望通過ISP(網(wǎng)絡(luò)服務(wù)提供商)將AS200接入互聯(lián)網(wǎng)。物理層面:邊界路由器A與B通過一條物理鏈路相連;網(wǎng)絡(luò)層面:A與B使用邏輯接口(環(huán)回口)建立BGP鄰居進(jìn)行路由信息交換。

  

001.jpg

  圖中ISP為避免受到來自外部的DDoS攻擊,在與企業(yè)網(wǎng)建立BGP鄰居的第一個階段(即TCP建立階段),拒絕所有始發(fā)于A的外部TCP連接請求,僅允許本地作為發(fā)起端。

  那么,這樣做是否會影響B(tài)GP鄰居的建立呢?如前所述,在建立BGP鄰居的第一個階段,雙方都會發(fā)起TCP連接請求,雖然ISP一側(cè)的路由器B拒絕了來自企業(yè)網(wǎng)路由器A的TCP建立請求,但始發(fā)于B的TCP建立請求并不會受到任何影響。根據(jù)TCP的建立機(jī)制[4],如果B端的TCP activedelay延時小于A端,在完成三次握手之后,TCP連接就會建立成功;若B端的TCP activedelay延時大于A端,則此次連接建立失敗,但TCP兩端會重新生成隨機(jī)的activedelay延時并發(fā)出第二次、第三次……連接請求,一旦B端的activedelay延時小于A端,TCP連接就會成功建立,并進(jìn)入到BGP鄰居建立的下一階段。所以控制TCP的連接方向并不會影響B(tài)GP鄰居的正常建立。

  事實(shí)上,不論是否限制TCP的連接方向, BGP鄰居建立完成后,同一對BGP鄰居之間都只會保存一條TCP鏈路的連接。

4控制TCP連接方向具體方法

  在實(shí)際網(wǎng)絡(luò)環(huán)境中,控制TCP連接方向的方法有三種:

  (1)擴(kuò)展型訪問控制列表(EACL: Extended Access Control List)

  B端配置實(shí)例:

  ip accesslist extended 100

  deny tcp any any eq bgp

  permit ip any any

  擴(kuò)展的訪問控制列表可以針對TCP協(xié)議的各種應(yīng)用(端口號)進(jìn)行數(shù)據(jù)包的過濾,圖1中,在B端的互聯(lián)接口入向應(yīng)用本策略,可以拒絕所有向B端BGP端口發(fā)起的TCP連接,而對B端出向的TCP連接不做任何限制。

  在A端打開debug信息,可以看到從A端始發(fā)的TCP連接請求被拒絕(圖2)。最終建立的TCP連接一定是B的隨機(jī)高端口訪問A的179端口(圖3),即該連接始發(fā)于B。

 

002.jpg

  擴(kuò)展型訪問控制列表具有配置規(guī)范、部署靈活、易于維護(hù)的特點(diǎn),但它對通過接口的每一個數(shù)據(jù)包都要進(jìn)行拆包檢查,當(dāng)一個EACL中包含的過濾條目較多時會占用大量的CPU資源,甚至?xí)绊懺O(shè)備的轉(zhuǎn)發(fā)性能。因此,這種方法并不適用于中低端的路由器設(shè)備,建議應(yīng)用在具有分布式CPU架構(gòu)的骨干路由器上,例如在電信級的網(wǎng)絡(luò)環(huán)境(ISP)中部署。

 ?。?)連接模式匹配(connectionmode)

  連接模式是BGP協(xié)議內(nèi)置的安全策略,針對具體的BGP鄰居部署。它分為主動和被動兩種模式,如果在B端設(shè)置了主動模式,則所有從A始發(fā)的TCP連接請求到達(dá)B端時均被拒絕,這就相當(dāng)于關(guān)閉了B側(cè)的179端口,實(shí)現(xiàn)效果與擴(kuò)展型訪問控制列表類似。需要注意的是:兩個BGP鄰居的連接模式必須主動與被動匹配,否則TCP連接無法建立。

  B端配置實(shí)例:neighbor 1.1.1.1 transport connectionmode active

  A端配置實(shí)例:neighbor 2.2.2.2 transport connectionmode passive

  相比EACL的“逢包必檢”,本連接模式只針對具體的BGP鄰居進(jìn)行限制,對系統(tǒng)資源的占用要小很多。但在廣播型鏈路或者多宿主的網(wǎng)絡(luò)環(huán)境中,連接模式需要分別對每個鄰居開啟此功能,部署不夠靈活,建議應(yīng)用在企業(yè)網(wǎng)互聯(lián)或者企業(yè)內(nèi)網(wǎng)Intranet中。

  (3)默認(rèn)路由(defaultrouting)

  為了更好地理解這種方法,把企業(yè)網(wǎng)AS100想象成一個末端網(wǎng)絡(luò),路由器A是它唯一的出口網(wǎng)關(guān)。A通過默認(rèn)路由指向B,而B則通過一條靜態(tài)路由指向A。

  在BGP鄰居建立的第一個階段,A會收到告警信息:“Active open failedno route to peer”(即始發(fā)TCP連接失敗,沒有到達(dá)鄰居的路由),最終建立成功的TCP連接始發(fā)于B端。如此看來,使用默認(rèn)路由同樣可以控制TCP連接方向。

  這里需要搞清楚一個問題:A明明有一條指向B的默認(rèn)路由,為什么會收到無路由的告警呢?這是因?yàn)槟J(rèn)路由有一個隱含的防環(huán)機(jī)制:它不能主動發(fā)起TCP連接請求;但對于接收到的TCP連接請求,默認(rèn)路由可以被動地響應(yīng),按照三次握手流程返回seq和ack值,完成TCP建立。所以當(dāng)一端使用了默認(rèn)路由時,最終完成的TCP連接一定始發(fā)于配置默認(rèn)路由的另一端。

  在實(shí)際網(wǎng)絡(luò)環(huán)境中,ISP往往沒有能力監(jiān)控從接入端指向自己的是否為一條默認(rèn)路由。因此,依靠對端的配置來抵御DDoS的攻擊還是有一定風(fēng)險(xiǎn)的。相對于生產(chǎn)網(wǎng)絡(luò),這種方法更適用于教學(xué)或?qū)嶒?yàn)的網(wǎng)絡(luò)環(huán)境。

5結(jié)論

  與增加防火墻等硬件設(shè)備相比,通過控制TCP連接的方向來防御DDoS攻擊,可以不受網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的限制,除了部署靈活以外,還能夠避免增加新的故障點(diǎn),降低了運(yùn)營成本,不失為BGP應(yīng)用的一種新的探索與嘗試。

參考文獻(xiàn)

  [1] STEVENS W R. TCP/TP詳解卷1:協(xié)議[M].北京:機(jī)械工業(yè)出版社,2016.

 ?。?] 李鋒.粒子群BP神經(jīng)網(wǎng)絡(luò)在DDoS攻擊檢測中的應(yīng)用[J].微型機(jī)與應(yīng)用,2014,33(3):5054.

 ?。?] 孫欽東,張德運(yùn),高鵬.基于時間序列分析的分布式拒絕服務(wù)攻擊檢測[J].計(jì)算機(jī)學(xué)報(bào),2005,28(5):767773

 ?。?] STEWART J. Bgp4: Interdomain routing in the Internet[M].Boston: Addison Wesley,1998.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。