《邊界網(wǎng)關(guān)協(xié)議 一顆潛伏在互聯(lián)網(wǎng)中的定時(shí)炸彈》由會(huì)員分享,可在線閱讀,更多相關(guān)《邊界網(wǎng)關(guān)協(xié)議 一顆潛伏在互聯(lián)網(wǎng)中的定時(shí)炸彈(4頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、作為互聯(lián)網(wǎng)核心路由協(xié)議,邊界網(wǎng)關(guān)協(xié)議采用了信任機(jī)制,所以攻擊者被容許對(duì)互聯(lián)網(wǎng)流量進(jìn)行攔截。這個(gè)問題已經(jīng)存在了很長的時(shí)間了,并且一直沒有被修復(fù)。本文將解釋相關(guān)的原因,并指出新問題出現(xiàn)的原因。
在今年的DefCon國際黑客大會(huì)上,安全研究員安東·卡佩拉山(5Nines數(shù)據(jù)的數(shù)據(jù)中心和網(wǎng)絡(luò)主管)和亞歷克斯·皮里蘇瓦(Pilosoft的首席執(zhí)行官)對(duì)經(jīng)過修改的新版本邊界網(wǎng)關(guān)協(xié)議(BGP)進(jìn)行了說明。
邊界網(wǎng)關(guān)協(xié)議的工作原理
邊界網(wǎng)關(guān)協(xié)議運(yùn)行在互聯(lián)網(wǎng)服務(wù)提供商的路由器上,屬于一種“幕后”協(xié)議。我們都知道互聯(lián)網(wǎng)是一個(gè)龐大的互聯(lián)網(wǎng)絡(luò),邊界網(wǎng)關(guān)協(xié)議的路由就是建立聯(lián)系的橋梁,它可以讓路由器知道如何以及向哪
2、里傳輸互聯(lián)網(wǎng)流量。相鄰的路由器在邊界網(wǎng)關(guān)協(xié)議被稱做鄰居。邊界網(wǎng)關(guān)協(xié)議的鄰居之間采用的是活躍連接,以便進(jìn)行信息交換。一旦邊界網(wǎng)關(guān)協(xié)議的路由表發(fā)生了變換,路由器會(huì)將變動(dòng)信息自動(dòng)發(fā)送給所有的鄰居。在邊界網(wǎng)關(guān)協(xié)議中,由于互聯(lián)網(wǎng)是一個(gè)非常彈性的網(wǎng)狀網(wǎng),所以鄰居的概念是很大的一個(gè)部分。
由于互聯(lián)網(wǎng)是一個(gè)網(wǎng)狀網(wǎng)絡(luò),所以每條路線總是會(huì)有多種選擇。因此,對(duì)于路由器來說,它們是怎么挑選鄰居的呢?第一,邊界網(wǎng)關(guān)協(xié)議的每個(gè)條目都包含了幾個(gè)參數(shù),用來對(duì)不同性質(zhì)的路線進(jìn)行分析。下一步,一個(gè)算法將利用這些參數(shù)里選擇出最佳路線。其中的一些參數(shù)是weight、local preference、origin和AS_path(請(qǐng)
3、記住這一個(gè))。這些并不是全部,邊界網(wǎng)關(guān)協(xié)議會(huì)檢查更多的參數(shù),但這個(gè)是最重要的,并且也是最根本的設(shè)計(jì)缺陷所在,導(dǎo)致竊聽行為成為可能。
為了找到最佳路線,邊界網(wǎng)關(guān)協(xié)議會(huì)對(duì)每個(gè)網(wǎng)絡(luò)的間隔進(jìn)行考慮。舉例來說,一個(gè)路由器正在尋找網(wǎng)絡(luò)地址10.10.10.25。從邊界網(wǎng)關(guān)協(xié)議的路由表中,它可以找到進(jìn)入1o.xxx.xxx.xxx網(wǎng)絡(luò)的路線。不過,它還發(fā)現(xiàn)了另一條可以進(jìn)入10.10.xxx.xxx網(wǎng)絡(luò)的路線。因?yàn)檫M(jìn)入10.10.xxx.xxx網(wǎng)絡(luò)是一條比較好的路線,路由器將選擇它,將數(shù)據(jù)包發(fā)送到10.10.xxx.xxx網(wǎng)絡(luò)的路由器上。每個(gè)路由器都將重復(fù)上面的步驟,直至互聯(lián)網(wǎng)流量到達(dá)預(yù)定的目的地。
不用
4、說,邊界網(wǎng)關(guān)協(xié)議也可以變得非常復(fù)雜。在這個(gè)時(shí)間,最好的說明方法是通過例子來演示。以如果我想去為例子來看:
一、我在網(wǎng)絡(luò)瀏覽器的地址欄中輸入,然后單擊確定。
二、在域名系統(tǒng)魔力的幫助下,我的網(wǎng)絡(luò)瀏覽器知道了的網(wǎng)絡(luò)地址,并且發(fā)送了一個(gè)網(wǎng)頁查詢到我的互聯(lián)網(wǎng)服務(wù)提供商的網(wǎng)關(guān)路由器上。
三、網(wǎng)關(guān)路由器然后檢查它的邊界網(wǎng)關(guān)協(xié)議路由表中的信息,選擇最佳路線。
四、通過邊界網(wǎng)關(guān)協(xié)議進(jìn)行的選擇,網(wǎng)關(guān)路由器按照最佳路線發(fā)送數(shù)據(jù)包到鄰居的路由器。在每個(gè)路由器中都要進(jìn)行這樣的選擇,直到數(shù)據(jù)包到達(dá)。
邊界網(wǎng)關(guān)協(xié)議的設(shè)計(jì)缺陷
現(xiàn)在我們對(duì)邊界網(wǎng)關(guān)協(xié)議的工作模式有了清晰的了解,下面我就說明一下為什么邊界網(wǎng)關(guān)協(xié)議的
5、設(shè)計(jì)缺陷會(huì)導(dǎo)致攻擊者的重定向和竊聽成為可能?;旧希捎谶吔缇W(wǎng)關(guān)協(xié)議中的路由條目的鄰居的數(shù)量是非常多。因此,路由器只是假設(shè)邊界網(wǎng)關(guān)協(xié)議的路由條目是正確的,并通過這條路徑傳輸數(shù)據(jù)包。
但攻擊者會(huì)肆無忌憚地利用這種信任,以便進(jìn)行邊界網(wǎng)關(guān)協(xié)議的重定向攻擊。竊聽者所有要做的僅僅是比邊界網(wǎng)關(guān)協(xié)議官方提供的鄰居細(xì)化的網(wǎng)絡(luò)地址(例如使用10.10.25.xxx之類更接近真實(shí)的網(wǎng)絡(luò)IP地址)。在偽裝的邊界網(wǎng)關(guān)協(xié)議數(shù)據(jù)包傳播后,攻擊者的網(wǎng)絡(luò)不用很長的時(shí)間就可以得到傳輸?shù)臄?shù)據(jù)流了。
的中斷事件
邊界網(wǎng)關(guān)協(xié)議的重定向攻擊并不是什么新出現(xiàn)的事件,實(shí)際上你們中許多人也許還記得發(fā)在過去兩個(gè)月的時(shí)間里,的中斷事件。這
6、起事件就是由于在巴基斯坦的一家互聯(lián)網(wǎng)服務(wù)提供商偶然誤操作的一次邊界網(wǎng)關(guān)協(xié)議重定向造成的。
自治系統(tǒng)的路由器
如果已經(jīng)訪問了RIPE的網(wǎng)站,你就可發(fā)現(xiàn)象AS17557之類的路由器命名符。自治系統(tǒng)號(hào)碼(ASN)被分配到每個(gè)自治系統(tǒng)(AS)以便來進(jìn)行識(shí)別。簡(jiǎn)單的說,每個(gè)自治系統(tǒng)是一個(gè)單獨(dú)實(shí)體,可以對(duì)路由信息控制進(jìn)行處理。該實(shí)體負(fù)責(zé)維護(hù)控制范圍內(nèi)所有采用邊界網(wǎng)關(guān)協(xié)議的路由器提供的服務(wù)。
兩次重定向
當(dāng)邊界網(wǎng)關(guān)協(xié)議重定向發(fā)生的時(shí)間,即使不是惡意的,造成的后果也是非常明顯的。為了對(duì)這種行為的后果進(jìn)行解釋,還以事件為例子,一旦巴基斯坦的互聯(lián)網(wǎng)服務(wù)提供商對(duì)邊界網(wǎng)關(guān)協(xié)議路由所作的改動(dòng)開始生效,的網(wǎng)站就無
7、法進(jìn)入,并且會(huì)影響到所有國家的訪問。
卡佩拉山和皮里蘇瓦已經(jīng)找到一種方法,可以讓互聯(lián)網(wǎng)用戶對(duì)重定向攻擊進(jìn)行確認(rèn)。他們創(chuàng)造性地增加了第二次調(diào)整,這樣就可以防止中間人類型(MitM)攻擊進(jìn)行的竊聽。專家們知道,這是理論上是可行,但直到二○○八年的DefCon國際黑客大會(huì)之前,沒人能夠?qū)崿F(xiàn)這樣的效果。
通過增加第二次重定向,卡佩拉山和皮里蘇瓦給我留下了深刻的印象,因?yàn)檫@不是一個(gè)很直觀的過程。為了證明這一點(diǎn),我對(duì)確切發(fā)生的過程進(jìn)行一下概略的說明。首先,攻擊者的路由器作為到達(dá)原始目的地網(wǎng)絡(luò)的最佳途徑是通過欺騙自身實(shí)現(xiàn)的。由于邊界網(wǎng)關(guān)協(xié)議的工作原理,我們知道現(xiàn)在錯(cuò)誤的路由信息已經(jīng)傳播到攻擊者的路由器所
8、有邊界網(wǎng)關(guān)協(xié)議的鄰居上。由于所有攻擊者的路由器的邊界網(wǎng)關(guān)協(xié)議的鄰居都認(rèn)為它是最佳途徑,因此,攻擊者的路由器的所有傳輸都會(huì)通過(邊界網(wǎng)關(guān)協(xié)議的鄰居)送回鄰居?,F(xiàn)在,問題就出現(xiàn)了,不要著急,下面就是最酷的部分。
AS path prepending
卡佩拉山和皮里蘇瓦通過利用AS path prepending繞過了這個(gè)問題。在前面,我們說過路徑選擇采用了AS_path的屬性。在一次回旋操作中,將AS_path的屬性調(diào)整為自治系統(tǒng)的路由器拒絕來自攻擊者的路由器的欺騙性邊界網(wǎng)關(guān)協(xié)議條目。攻擊者將轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量到具體的邊界網(wǎng)關(guān)協(xié)議鄰居。這樣的話,在數(shù)據(jù)到達(dá)目的地之前,采用邊界網(wǎng)關(guān)協(xié)議路由進(jìn)程的互聯(lián)網(wǎng)
9、傳輸將保持正常。
這樣意味著什么?
確認(rèn)通過邊界網(wǎng)關(guān)協(xié)議進(jìn)行的竊聽是很困難的事情。路由追蹤可以用來分析,但很難確定是否存在異常行為。為了安全起見,我們必須考慮這是一個(gè)中間人類型的攻擊并使用相同的優(yōu)化技術(shù),也就是現(xiàn)在經(jīng)常說的虛擬專用網(wǎng)。
幾種臨時(shí)的解決方案正在試圖消除設(shè)計(jì)中存在的缺陷。其中的一種解決方案是對(duì)邊界網(wǎng)關(guān)協(xié)議的鄰居進(jìn)行驗(yàn)證,但它將耗費(fèi)大量資源,并且只要有一家互聯(lián)網(wǎng)服務(wù)提供商拒絕使用,整個(gè)網(wǎng)絡(luò)就將崩潰。另一種解決方案是使用簽名的證書,對(duì)邊界網(wǎng)關(guān)協(xié)議的鄰居進(jìn)行驗(yàn)證,但這只適用于傳輸過程的第一步。
一種解決方案被稱做安全邊界網(wǎng)關(guān)協(xié)議(S-BGP)。下面是他們的網(wǎng)站上對(duì)其工作方式的介紹
10、:
“采用安全邊界網(wǎng)關(guān)協(xié)議的網(wǎng)絡(luò)環(huán)境包含了三種安全機(jī)制:首先是采用了公鑰基礎(chǔ)設(shè)施(PKI)的網(wǎng)絡(luò)地址認(rèn)證機(jī)制,并且擁有自治系統(tǒng)(AS)號(hào)碼,一個(gè)自治系統(tǒng)的身份,并且采用邊界網(wǎng)關(guān)協(xié)議的路由器的身份驗(yàn)證和授權(quán)系統(tǒng)類似自治系統(tǒng)。
其次,一個(gè)新的、可選的傳遞路徑用的邊界網(wǎng)關(guān)協(xié)議屬性可以用來進(jìn)行數(shù)字簽名以便進(jìn)行邊界網(wǎng)關(guān)協(xié)議的路由信息更新。這些證書的簽名包含了地址的前綴和路徑等信息以便進(jìn)行驗(yàn)證。
第三, 互聯(lián)網(wǎng)協(xié)議安全性系列(IPSec)可以為數(shù)據(jù)和部分序列的完整性提供保障,并且保證采用邊界網(wǎng)關(guān)協(xié)議的路由器可以對(duì)來自其它部分的流量進(jìn)行驗(yàn)證?!?
安全邊界網(wǎng)關(guān)協(xié)議聽起來非常強(qiáng)大,但問題是現(xiàn)有的大多數(shù)路由器沒有足夠的內(nèi)存或處理能力來處理額外的工作量。
最后的思考
由于時(shí)代的變化,原來的網(wǎng)絡(luò)開發(fā)者希望的信任機(jī)制變得不可靠,安全方面的漏洞凸顯出來。不論是卡明斯基的錯(cuò)誤還是邊界網(wǎng)關(guān)協(xié)議導(dǎo)致的竊聽都是證明。我不能肯定未來會(huì)怎么變化,但將仍然保持樂觀態(tài)度。
除此之外,由于費(fèi)用和開銷的問題邊界網(wǎng)關(guān)協(xié)議導(dǎo)致的竊聽是很難修復(fù)的。我敢肯定,互聯(lián)網(wǎng)服務(wù)供應(yīng)商是不會(huì)主動(dòng)加入這個(gè)潮流,除非用戶不斷地推動(dòng)。