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

  陳石,劉金生

  (中國聯(lián)合網絡通信有限公司 網絡運維部互聯(lián)網處,北京 100033)

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

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

  中圖分類號:TP393文獻標識碼:ADOI: 10.19358/j.issn.16747720.2016.24.002

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

0引言

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

1基于TCP的邊界網關協(xié)議

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

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

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

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

2防御DDoS攻擊的常用方法

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

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

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

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

3防御DDoS攻擊的新思路

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

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

  

001.jpg

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

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

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

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

  在實際網絡環(huán)境中,控制TCP連接方向的方法有三種:

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

  B端配置實例:

  ip accesslist extended 100

  deny tcp any any eq bgp

  permit ip any any

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

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

 

002.jpg

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

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

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

  B端配置實例:neighbor 1.1.1.1 transport connectionmode active

  A端配置實例:neighbor 2.2.2.2 transport connectionmode passive

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

  (3)默認路由(defaultrouting)

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

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

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

  在實際網絡環(huán)境中,ISP往往沒有能力監(jiān)控從接入端指向自己的是否為一條默認路由。因此,依靠對端的配置來抵御DDoS的攻擊還是有一定風險的。相對于生產網絡,這種方法更適用于教學或實驗的網絡環(huán)境。

5結論

  與增加防火墻等硬件設備相比,通過控制TCP連接的方向來防御DDoS攻擊,可以不受網絡拓撲結構的限制,除了部署靈活以外,還能夠避免增加新的故障點,降低了運營成本,不失為BGP應用的一種新的探索與嘗試。

參考文獻

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

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

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

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


此內容為AET網站原創(chuàng),未經授權禁止轉載。