陳 石,劉金生
(中國聯合網絡通信有限公司 網絡運維部互聯網處,北京 100033)
BGP協議防御DDoS攻擊的方法淺析
陳 石,劉金生
(中國聯合網絡通信有限公司 網絡運維部互聯網處,北京 100033)
BGP (Border Gateway Protocol)協議是Internet中應用最廣泛的自治系統間路由協議,它通過面向連接的TCP (Transfer Control Protocol)協議保障路由信息的可靠轉發。然而,以DDoS(Distributed Denial of Service)為代表的網絡攻擊對基于TCP 的應用協議產生了嚴重的威脅。保護BGP協議較為常見的方法是在網絡邊緣添加防火墻、流量分析儀等安全設備。從分析BGP鄰居的建立過程及DDoS的攻擊特點入手,提出一種新的思路,在不增加運營成本的前提下,實現BGP協議對DDoS的防御。
BGP鄰居;TCP連接方向;分布式拒絕服務攻擊; 互聯網服務提供商
根據中國聯通公眾互聯網CHINA169的統計,截至2016年5月,Internet上自治系統間路由條目數已經達到62萬條,如此龐大的數據信息都是依賴于路由協議進行計算和轉發,而以分布式拒絕服務攻擊(Distributed Denial of Service,DDoS)為代表的網絡攻擊卻對路由協議的安全產生了嚴重的威脅。本文提出一種基于TCP連接方向的方法對抗DDoS攻擊。
Internet是由眾多相互聯在一起的自治系統(Autonomous System,AS)組成的,而負責傳遞AS之間網絡層可達性信息(Network Layer Reachability Information, NLRI)的協議稱為BGP(Border Gateway Protocol)。為了確保NLRI的可靠轉發,BGP使用TCP協議作為它的下層承載協議。
TCP[1](Transfer Control Protocol)是開放系統互聯(Open System Interconnect, OSI)參考模型中唯一面向連接的傳輸層協議,它使用“三次握手”機制建立面向連接的虛電路,每一條TCP連接都被通信鏈路的兩個端點(IP地址:端口號)唯一確定:TCP連接={(IP1:port1),(IP2:port2)}。BGP對應的port值(端口號)為179。BGP協議在進行路由信息的交換與轉發前,需要建立鄰居(PEER)關系,BGP建立鄰居的過程可以分為兩個階段。
階段一: TCP通道的建立。這個階段的主要任務是在希望建立BGP鄰居的路由器之間搭建起一條數據通道。TCP的 “按序重傳”和“滑動窗口”機制能夠確保BGP承載的路由信息在互聯網中可靠地傳輸,而不必進行周期性的全部泛洪。
階段二:BGP報文的協商。在這個階段,將要建立BGP鄰居的兩臺路由器利用TCP的數據通道,使用OPEN報文以單播方式進行能力協商(包括版本號、保持時間、BGP標識、可選參數等),決定最終是否能夠成功建立BGP鄰居關系。
DDoS[2]攻擊是互聯網上常見的攻擊手段,黑客借助客戶/服務器技術,將多個計算機聯合起來作為攻擊平臺,對目標發動持續性攻擊,耗盡目的主機資源,最終使正常的用戶請求得不到應答。評估DDoS的攻擊強度,可以采用“中間網絡檢測法[3]”數學模型:首先在核心路由器上以Δt為標準時間間隔對數據流量進行采樣,然后分別計算出(源地址、目的地址、目的端口)相同的數據包的集合,得到與以上三元組相同的數據包α隨時間變化的序列。當時間間隔很大時計算該序列的自相關系數:

理論上說,所有基于TCP的應用都面臨DDoS攻擊的威脅,BGP協議自然也不例外。開啟了BGP協議的路由器抵御DDoS攻擊的常用手段有:在前端增設防火墻或流量過濾與清洗設備,互聯地址隱藏(或者直接使用私網地址互聯),源地址識別,限制SYN/ICMP流量等。這些方法在實施過程中,要么需要增加新的硬件,提高了運營維護成本;要么需要在全網部署新的路由協議和安全策略,擴展性較差。
DDoS攻擊最常用的手段是同步泛洪(SYN-FLOOD),向攻擊目標發起大量的同步連接請求,卻不回復ACK,最終耗盡目標服務器的資源。這種攻擊方式必須有明確的攻擊目標,也就是說攻擊是有方向性的。順著這個思路,如果能夠在BGP鄰居建立的第一階段控制住TCP連接的建立方向,就可以有效降低有效連接請求的數量,抑制DDoS對系統的資源占用,達到保護BGP協議的效果。
如圖1所示,企業網AS100希望通過ISP(網絡服務提供商)將AS200接入互聯網。物理層面:邊界路由器A與B通過一條物理鏈路相連;網絡層面:A與B使用邏輯接口(環回口)建立BGP鄰居進行路由信息交換。

圖1 企業接入互聯網的典型拓撲
圖中ISP為避免受到來自外部的DDoS攻擊,在與企業網建立BGP鄰居的第一個階段(即TCP建立階段),拒絕所有始發于A的外部TCP連接請求,僅允許本地作為發起端。
那么,這樣做是否會影響BGP鄰居的建立呢?如前所述,在建立BGP鄰居的第一個階段,雙方都會發起TCP連接請求,雖然ISP一側的路由器B拒絕了來自企業網路由器A的TCP建立請求,但始發于B的TCP建立請求并不會受到任何影響。根據TCP的建立機制[4],如果B端的TCP active-delay延時小于A端,在完成三次握手之后,TCP連接就會建立成功;若B端的TCP active-delay延時大于A端,則此次連接建立失敗,但TCP兩端會重新生成隨機的active-delay延時并發出第二次、第三次……連接請求,一旦B端的active-delay延時小于A端,TCP連接就會成功建立,并進入到BGP鄰居建立的下一階段。所以控制TCP的連接方向并不會影響BGP鄰居的正常建立。
事實上,不論是否限制TCP的連接方向, BGP鄰居建立完成后,同一對BGP鄰居之間都只會保存一條TCP鏈路的連接。
在實際網絡環境中,控制TCP連接方向的方法有三種:
(1)擴展型訪問控制列表(EACL: Extended Access Control List)
B端配置實例:
ip access-list extended 100
deny tcp any any eq bgp
permit ip any any
擴展的訪問控制列表可以針對TCP協議的各種應用(端口號)進行數據包的過濾,圖1中,在B端的互聯接口入向應用本策略,可以拒絕所有向B端BGP端口發起的TCP連接,而對B端出向的TCP連接不做任何限制。
在A端打開debug信息,可以看到從A端始發的TCP連接請求被拒絕(圖2)。最終建立的TCP連接一定是B的隨機高端口訪問A的179端口(圖3),即該連接始發于B。

圖2 A到B目的地不可達

圖3 由B始發的TCP連接建立成功
擴展型訪問控制列表具有配置規范、部署靈活、易于維護的特點,但它對通過接口的每一個數據包都要進行拆包檢查,當一個EACL中包含的過濾條目較多時會占用大量的CPU資源,甚至會影響設備的轉發性能。因此,這種方法并不適用于中低端的路由器設備,建議應用在具有分布式CPU架構的骨干路由器上,例如在電信級的網絡環境(ISP)中部署。
(2)連接模式匹配(connection-mode)
連接模式是BGP協議內置的安全策略,針對具體的BGP鄰居部署。它分為主動和被動兩種模式,如果在B端設置了主動模式,則所有從A始發的TCP連接請求到達B端時均被拒絕,這就相當于關閉了B側的179端口,實現效果與擴展型訪問控制列表類似。需要注意的是:兩個BGP鄰居的連接模式必須主動與被動匹配,否則TCP連接無法建立。
B端配置實例:neighbor 1.1.1.1 transport connection-mode active
A端配置實例:neighbor 2.2.2.2 transport connection-mode passive
相比EACL的“逢包必檢”,本連接模式只針對具體的BGP鄰居進行限制,對系統資源的占用要小很多。但在廣播型鏈路或者多宿主的網絡環境中,連接模式需要分別對每個鄰居開啟此功能,部署不夠靈活,建議應用在企業網互聯或者企業內網Intranet中。
(3)默認路由(default-routing)
為了更好地理解這種方法,把企業網AS100想象成一個末端網絡,路由器A是它唯一的出口網關。A通過默認路由指向B,而B則通過一條靜態路由指向A。
在BGP鄰居建立的第一個階段,A會收到告警信息:“Active open failed-no route to peer”(即始發TCP連接失敗,沒有到達鄰居的路由),最終建立成功的TCP連接始發于B端。如此看來,使用默認路由同樣可以控制TCP連接方向。
這里需要搞清楚一個問題:A明明有一條指向B的默認路由,為什么會收到無路由的告警呢?這是因為默認路由有一個隱含的防環機制:它不能主動發起TCP連接請求;但對于接收到的TCP連接請求,默認路由可以被動地響應,按照三次握手流程返回seq和ack值,完成TCP建立。所以當一端使用了默認路由時,最終完成的TCP連接一定始發于配置默認路由的另一端。
在實際網絡環境中,ISP往往沒有能力監控從接入端指向自己的是否為一條默認路由。因此,依靠對端的配置來抵御DDoS的攻擊還是有一定風險的。相對于生產網絡,這種方法更適用于教學或實驗的網絡環境。
與增加防火墻等硬件設備相比,通過控制TCP連接的方向來防御DDoS攻擊,可以不受網絡拓撲結構的限制,除了部署靈活以外,還能夠避免增加新的故障點,降低了運營成本,不失為BGP應用的一種新的探索與嘗試。
[1] STEVENS W R. TCP/TP詳解卷1:協議[M].北京:機械工業出版社,2016.
[2] 李鋒.粒子群BP神經網絡在DDoS攻擊檢測中的應用[J].微型機與應用,2014,33(3):50-54.
[3] 孫欽東,張德運,高鵬.基于時間序列分析的分布式拒絕服務攻擊檢測[J].計算機學報,2005,28(5):767-773
[4] STEWART J. Bgp4: Inter-domain routing in the Internet[M].Boston: Addison Wesley,1998.
Analysis on the method of defending DDoS attack against BGP protocol
Chen Shi1,Liu Jinsheng2
(Network Operation and Maintenance Department Internet Office, China United Telecommunication Company, Beijing 100033, China)
BGP (Border Gateway Protocol) is the most widely used inter-AS(autonomous system) routing protocol in the Internet. It uses the connection-oriented TCP (Transfer Control Protocol) to guarantee the reliable forwarding of the routing information. However, the applications based on TCP are facing a serious threat from network attack such as DDoS (Distributed Denial of Service). In order to protect the security of BGP protocol, the common ways are to add firewall, flow analyzer or other security hardwares at the network edge. In this paper, the author analyzes the establishment process of BGP peers and the characteristics of DDoS attacks, then puts forward a new way of thinking, in the case of no increase in operating costs, achieving the defense of DDoS for BGP protocol.
BGP peers; direction of TCP connection; distributed denial of service; Internet service provider
TP393
A
10.19358/j.issn.1674- 7720.2016.24.002
陳石,劉金生. BGP協議防御DDoS攻擊的方法淺析[J].微型機與應用,2016,35(24):5-7.
2016-06-27)
陳石(1974-),通信作者,男,碩士研究生,高級工程師,主要研究方向:互聯網管理和維護工作。E-mail:chenshi5@chinaunicom.cn。
劉金生(1973-),男,本科,工程師,主要研究方向:互聯網管理和維護工作。