《電子技術(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ò)攻擊對(duì)基于TCP 的應(yīng)用協(xié)議產(chǎn)生了嚴(yán)重的威脅。保護(hù)BGP協(xié)議較為常見的方法是在網(wǎng)絡(luò)邊緣添加防火墻,、流量分析儀等安全設(shè)備,。從分析BGP鄰居的建立過程及DDoS的攻擊特點(diǎn)入手,提出一種新的思路,,在不增加運(yùn)營(yíng)成本的前提下,,實(shí)現(xiàn)BGP協(xié)議對(duì)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ò)攻擊對(duì)基于TCP 的應(yīng)用協(xié)議產(chǎn)生了嚴(yán)重的威脅。保護(hù)BGP協(xié)議較為常見的方法是在網(wǎng)絡(luò)邊緣添加防火墻,、流量分析儀等安全設(shè)備,。從分析BGP鄰居的建立過程及DDoS的攻擊特點(diǎn)入手,提出一種新的思路,,在不增加運(yùn)營(yíng)成本的前提下,,實(shí)現(xiàn)BGP協(xié)議對(duì)DDoS的防御。

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

  中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼: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ò)攻擊卻對(duì)路由協(xié)議的安全產(chǎn)生了嚴(yán)重的威脅,。本文提出一種基于TCP連接方向的方法對(duì)抗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連接都被通信鏈路的兩個(gè)端點(diǎn)(IP地址:端口號(hào))唯一確定:TCP連接={(IP1:port1),(IP2:port2)}。BGP對(duì)應(yīng)的port值(端口號(hào))為179,。BGP協(xié)議在進(jìn)行路由信息的交換與轉(zhuǎn)發(fā)前,,需要建立鄰居(PEER)關(guān)系,BGP建立鄰居的過程可以分為兩個(gè)階段,。

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

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

2防御DDoS攻擊的常用方法

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

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

  其中:αi(i=1,2,…,k)為k個(gè)Δt時(shí)間內(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)),,源地址識(shí)別,限制SYN/ICMP流量等,。這些方法在實(shí)施過程中,,要么需要增加新的硬件,提高了運(yùn)營(yíng)維護(hù)成本,;要么需要在全網(wǎng)部署新的路由協(xié)議和安全策略,,擴(kuò)展性較差。

3防御DDoS攻擊的新思路

  DDoS攻擊最常用的手段是同步泛洪(SYNFLOOD),向攻擊目標(biāo)發(fā)起大量的同步連接請(qǐng)求,,卻不回復(fù)ACK,,最終耗盡目標(biāo)服務(wù)器的資源。這種攻擊方式必須有明確的攻擊目標(biāo),,也就是說攻擊是有方向性的,。順著這個(gè)思路,如果能夠在BGP鄰居建立的第一階段控制住TCP連接的建立方向,,就可以有效降低有效連接請(qǐng)求的數(shù)量,,抑制DDoS對(duì)系統(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鄰居的第一個(gè)階段(即TCP建立階段),,拒絕所有始發(fā)于A的外部TCP連接請(qǐng)求,,僅允許本地作為發(fā)起端。

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

  事實(shí)上,,不論是否限制TCP的連接方向,, BGP鄰居建立完成后,同一對(duì)BGP鄰居之間都只會(huì)保存一條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ò)展的訪問控制列表可以針對(duì)TCP協(xié)議的各種應(yīng)用(端口號(hào))進(jìn)行數(shù)據(jù)包的過濾,圖1中,,在B端的互聯(lián)接口入向應(yīng)用本策略,,可以拒絕所有向B端BGP端口發(fā)起的TCP連接,而對(duì)B端出向的TCP連接不做任何限制,。

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

 

002.jpg

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

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

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

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

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

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

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

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

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

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

  在實(shí)際網(wǎng)絡(luò)環(huán)境中,,ISP往往沒有能力監(jiān)控從接入端指向自己的是否為一條默認(rèn)路由。因此,,依靠對(duì)端的配置來抵御DDoS的攻擊還是有一定風(fēng)險(xiǎn)的,。相對(duì)于生產(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)營(yíng)成本,不失為BGP應(yīng)用的一種新的探索與嘗試,。

參考文獻(xiàn)

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

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

  [3] 孫欽東,,張德運(yùn),,高鵬.基于時(shí)間序列分析的分布式拒絕服務(wù)攻擊檢測(cè)[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)載,。