◆馬新康
BGP協(xié)議實現(xiàn)DDoS防御的新思路
◆馬新康
(杭州極致互聯(lián)網(wǎng)絡(luò)科技有限公司 浙江 310000)
近年來,互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展帶動了邊界網(wǎng)關(guān)協(xié)議(BGP協(xié)議)的發(fā)展與應(yīng)用,但是,在其使用過程中,網(wǎng)絡(luò)攻擊問題頻發(fā),其中以分布式拒絕服務(wù)攻擊(DDoS)較為常見,嚴(yán)重影響了BGP協(xié)議的穩(wěn)定性及安全性使用,對此,就需要采取科學(xué)策略防范DDoS攻擊。本文先簡要介紹BGP協(xié)議,對其脆弱性進(jìn)行分析,并指出當(dāng)前針對BGP協(xié)議路由器的DDoS攻擊手段,深入探討了DDoS防御新思路,提出可以通過拓展型訪問列表、連接模式匹配和默認(rèn)路由方式來控制TCP連接方向,分別適用于不同的場景,這對提高BGP協(xié)議運行安全性具有重要意義。
邊界網(wǎng)關(guān)協(xié)議;脆弱性;分布式拒絕服務(wù)攻擊;防御方法;TCP連接方向
BGP協(xié)議是Internet中應(yīng)用最廣泛的自制系統(tǒng)間路由協(xié)議,是通過面向連接的TCP協(xié)議保障路由信息的可靠轉(zhuǎn)發(fā)。BGP這一網(wǎng)關(guān)協(xié)議可以使數(shù)據(jù)在多條線路上傳播,當(dāng)遇到障礙時,可以通過自動切換尋找到最優(yōu)路徑,從而實現(xiàn)數(shù)據(jù)的快速傳播。而且通過使用BGP協(xié)議,可以將IDC網(wǎng)絡(luò)與其他運營商互聯(lián),既保證了數(shù)據(jù)的傳輸?shù)幕ネㄐ?,又可以實現(xiàn)單IP多線路,保證了不同互聯(lián)運營商的用戶訪問,這些都是單獨的雙IP雙線無法比擬的。雖然BGP協(xié)議有著多方面的技術(shù)優(yōu)勢,但是實際使用過程中仍面臨著DDoS攻擊問題,導(dǎo)致其安全性大打折扣[1]。因此,如何防御DDoS攻擊,確保BGP路由協(xié)議的安全使用,已經(jīng)成為了當(dāng)下網(wǎng)絡(luò)領(lǐng)域的研究熱點。
BGP屬于外部或域間路由協(xié)議,是唯一一個用來處理像因特網(wǎng)大小的網(wǎng)絡(luò)協(xié)議,也是唯一能夠妥善處理好不相關(guān)路由域間的多路連接的協(xié)議。邊界網(wǎng)關(guān)協(xié)議(BGP協(xié)議)是以傳輸控制協(xié)議為基礎(chǔ)的一種外部網(wǎng)關(guān)路由協(xié)議,可支持不同自治系統(tǒng)之間路由信息的交換,在不相關(guān)路由域間的多路連接處理方面有著良好的應(yīng)用效果。BGP的本質(zhì)為路徑向量協(xié)議,兼具鏈路狀態(tài)算法和距離向量兩者的部分特點,在使用過程中,對于自治域的運行協(xié)議并未做出嚴(yán)格限制,其底層網(wǎng)絡(luò)拓?fù)漭^為靈活,可借助UPDATE消息交換的信息來建立自治域連接圖[2],并以傳輸控制協(xié)議(TCP)為基礎(chǔ),完成傳輸機(jī)制的構(gòu)建,實現(xiàn)信息在BGP鄰居間的交換。鄰居關(guān)系的建立,是信息交換的前提,完成鄰居管理的構(gòu)建后,還需利用周期的存活檢測機(jī)制信息判斷BGP鄰居是否能夠正常訪問。最后進(jìn)行BGP路由表的交換,如果路由發(fā)生變化,則會更新路由表原有數(shù)據(jù)[3]。
BGP協(xié)議優(yōu)勢明顯,但是其本身也存在一定的脆弱性,具體包括有限狀態(tài)機(jī)脆弱性、配置協(xié)議脆弱性和TCP脆弱性等幾方面。
一方面,當(dāng)網(wǎng)絡(luò)遭到惡意攻擊時,BGP協(xié)議報文則可能被篡改,包括OPEN報文、UPDATE報文等,無法保證其準(zhǔn)確性和有效性[4]。當(dāng)BGP報文出錯后,有限狀態(tài)機(jī)也會發(fā)生出錯事件,已建立的連接關(guān)系將會被中斷,此時有限狀態(tài)機(jī)處于IDLE狀態(tài)。另一方面,通過刪除、偽造等方法,會使BGP原始報文發(fā)生變化,改變其到達(dá)對等體的時間點,也會導(dǎo)致有限狀態(tài)機(jī)出錯,無法維持原有的連接關(guān)系。
管理員在對BGP進(jìn)行控制時,配置協(xié)議起到了關(guān)鍵作用,而配置協(xié)議自身的脆弱性,會對BGP路由協(xié)議造成較大威脅[5]。當(dāng)BGP發(fā)言者建立連接關(guān)系后,如果出現(xiàn)自動停止事件,則正常連接將會被中斷,相關(guān)路由也會刪除,通過該方式對網(wǎng)絡(luò)進(jìn)行惡意攻擊,會導(dǎo)致BGP連接的中斷。同時,在BGP路由協(xié)議中,用到了2個可選計時器及5個計時器,如果出現(xiàn)配置錯誤現(xiàn)象,則整個BGP協(xié)議的正常使用都會受到較大影響。
BGP協(xié)議的運行,是以TCP作為基礎(chǔ)的,所以TCP的脆弱性也是導(dǎo)致BGP脆弱性的主要原因之一。TCP脆弱性具體體現(xiàn)在以下幾方面:第一,對FIN消息、RST消息進(jìn)行偽造,使TCP的正常連接出現(xiàn)中斷,則BGP將無法建立連接關(guān)系。第二,對ACK信息、SYN信息進(jìn)行偽造,與原始數(shù)據(jù)信息出現(xiàn)沖突,則連接關(guān)系可能會被中斷,影響B(tài)GP協(xié)議運行的安全性[6]。第三,以179作為接收端口,通過大量數(shù)據(jù)包進(jìn)行DoS攻擊,過多的數(shù)據(jù)包將會影響路由器處理效率,使其處于負(fù)荷運行狀態(tài),進(jìn)而導(dǎo)致BGP無法正常運行。
圖1 DDoS攻擊模式
圖1為DDoS的攻擊模式示意圖,而在BGP路由協(xié)議中,常見的DDoS攻擊手段主要有以下幾種:第一,使當(dāng)前對等對話發(fā)生中斷,與其相關(guān)的路由將會被刪除,進(jìn)而完成對路由器的攻擊。該攻擊方式與有限狀態(tài)機(jī)脆弱性所產(chǎn)生的影響大致相同,不僅原有的正常連接發(fā)生中斷,而且路由被錯誤刪除后,也會因為繼續(xù)傳遞而對其他網(wǎng)絡(luò)路由造成影響,引發(fā)路由中斷問題。第二,在建立連接后,使BGP報文保持正常,對UPDAPE報文進(jìn)行修改,這樣在安裝路由時將會出現(xiàn)錯誤現(xiàn)象,以此來實現(xiàn)對BGP協(xié)議路由器的攻擊[7]。例如,攻擊者通過對待撤銷路由域進(jìn)行修改,將其中的可用路由刪除掉,或者通過withdrawn報文的重放,影響路由的第二次建立。并且,withdrawn虛假信息經(jīng)發(fā)送后,部分合法路由將會被撤銷,BGP協(xié)議路由器受到DDoS攻擊。
對于DDoS攻擊,當(dāng)前較為常見的防御方法包括識別源地址、增設(shè)前端防火墻、隱藏互聯(lián)地址等,但是這些方法存在運營成本高、擴(kuò)展性差等缺點,對此,就需要探索新的思路,有效防范和抵御DDoS攻擊。例如在建立BGP鄰居時,通過對TCP建立方向進(jìn)行有效控制,可減少有效鏈接請求次數(shù),進(jìn)而避免DDoS占用過多系統(tǒng)資源,對BGP協(xié)議起到保護(hù)效果,所以,對于通過控制TCP連接方向加以控制可以有效預(yù)防DDoS攻擊。
圖2 拓?fù)浣Y(jié)構(gòu)
對于TCP協(xié)議來講,端口號數(shù)據(jù)包的過濾,可借助拓展型訪問列表實現(xiàn)。在圖2所示的拓?fù)浣Y(jié)構(gòu)中,所有向A端互聯(lián)網(wǎng)接口端發(fā)起的TCP連接將會被直接拒絕,而B端接口輸出的一側(cè)可隨意建立TCP連接,不受拓展型訪問列表的影響。根據(jù)拓?fù)浣Y(jié)構(gòu)A端中的消除故障信息可知,如果TCP連接請求是從A端發(fā)出的,則會被拒絕,無法建立連接關(guān)系,如果TCP連接請求從B端發(fā)出,則會建立連接關(guān)系,然后對A端口進(jìn)行訪問。拓展型訪問列表靈活性較強(qiáng),配置較為規(guī)范,維護(hù)難度較小,可根據(jù)BGP協(xié)議實際應(yīng)用情況部署,但是拓展型訪問列表對數(shù)據(jù)包有著較高要求,需要通過拆包操作檢查所有數(shù)據(jù)包,會占據(jù)CPU資源,而CPU資源占用情況與EACL所包含的過濾條目有著直接關(guān)系,如果過濾條目較多,則會對路由器的轉(zhuǎn)發(fā)性能造成影響,不利于BGP協(xié)議的實現(xiàn)。所以,通過拓展型訪問列表控制TCP連接方向的方法,在中低端設(shè)備上并不適用。
連接模式是從BGP鄰居的建立角度來講的,屬于一種內(nèi)置安全方法,包括主動和被動兩種情況。從B端分析,當(dāng)采用主動模式時,TCP連接請求從A端發(fā)出后,是無法與B端建立連接關(guān)系的,將會被拒絕,與B端179端口關(guān)閉后的效果是相同的,其作用等同于拓展型訪問列表控制TCP連接方向。而對于兩個BGP鄰居來講,要想順利建立連接關(guān)系,則應(yīng)分別采用被動連接模式和主動連接模式,確保兩者之間能夠相互匹配。通過連接模式匹配對TCP連接方向進(jìn)行控制,與拓展型訪問列表檢查數(shù)據(jù)包存在顯著不同,該方法可以對BGP鄰居做出針對性限制,不會占用過多CPU資源。但是連接模式匹配控制TCP連接方向的靈活性較差,如果主機(jī)的網(wǎng)絡(luò)接口較多、鏈路方式為廣播式時,則所有BGP鄰居都需進(jìn)行連接模式的匹配,因此,該防御方式僅適用于企業(yè)內(nèi)網(wǎng)及企業(yè)網(wǎng)互聯(lián)中。
使用默認(rèn)路由對TCP連接方向進(jìn)行控制時,將圖1中的企業(yè)網(wǎng)作為末端網(wǎng)絡(luò),其僅有的出口網(wǎng)關(guān)為A,從A端指向B端,是經(jīng)過默認(rèn)路由實現(xiàn)的,反之,從B端指向A端,則需要借助靜態(tài)路由完成。BGP鄰居關(guān)系的建立時,在最開始環(huán)節(jié),TCP連接失敗的告警信息會傳遞至A端,而TCP的連接關(guān)系則是在B端建立的。由此可知,通過默認(rèn)路由也能夠?qū)崿F(xiàn)對TCP連接方向的控制,進(jìn)而達(dá)到防御DDoS攻擊的效果。應(yīng)注意的一點是:在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,端口A和端口B之間雖然存在默認(rèn)路由,但是因其自身所具有的防環(huán)機(jī)制,是無法通過主動模式建立TCP連接關(guān)系的,也無法收到路由告警信息。當(dāng)存在TCP連接請求時,在被動模式下,默認(rèn)路由可對其做出相應(yīng)回應(yīng),建立TCP連接關(guān)系。對此,在使用BGP路由協(xié)議時,如果網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的一端配置有默認(rèn)路由,則TCP連接的建立,必然是從另一端開始的,這種方式也可以控制TCP連接方向。但在具體應(yīng)用過程中,端口中是否配置有默認(rèn)路由,ISP是很難做出準(zhǔn)確判斷的,所以,使用該方法防御DDoS攻擊并非是完全可靠的,存在一定的風(fēng)險性,建議將其應(yīng)用于實驗網(wǎng)絡(luò)或者教學(xué)網(wǎng)絡(luò)中。
通過控制TCP連接方向?qū)DoS攻擊進(jìn)行防御,不僅有著較強(qiáng)的靈活性特點,而且整體運行成本較低,不會造成故障點的增多,相較于識別源地址、增設(shè)前端防火墻、隱藏互聯(lián)地址等傳統(tǒng)防御方法,有著多方面優(yōu)勢。在實際應(yīng)用時,可從拓展型訪問列表、連接模式匹配、默認(rèn)路由方式三方面考慮,對TCP連接方向進(jìn)行控制,以此來提高BGP協(xié)議的安全性。
[1]蔣磊.BGP路由協(xié)議的基本原理分析[J].江蘇科技信息,2018(31):40-42.
[2]林思敏.邊界路由器BGP協(xié)議的脆弱性分析[J].無線互聯(lián)科技,2016(15):10-11.
[3]王娜,杜學(xué)繪,王文娟,等.邊界網(wǎng)關(guān)協(xié)議安全研究綜述[J].計算機(jī)學(xué)報,2017(7):1626-1648.
[4]王琴.一種基于SDN架構(gòu)的海量DDOS攻擊解決方案研究[J].現(xiàn)代信息科技,2017(5):89-91.
[5]游建平.邊界網(wǎng)關(guān)協(xié)議分布式設(shè)計與實現(xiàn)[J].保密科學(xué)技術(shù),2016(4):38-41.
[6]陳石,劉金生.BGP協(xié)議防御DDoS攻擊的方法淺析[J].微型機(jī)與應(yīng)用,2016(24):5-7.
[7]杭長山.云環(huán)境下分布式拒絕服務(wù)攻擊的特點及防御技術(shù)研究[J].電腦知識與技術(shù),2017(6X):29-30.