在2008年的DefCon國際黑客大會上。安全研究員安東·卡佩拉山(5Nines數據的數據中心和網絡主管)和亞歷克斯·皮里蘇瓦(Pilosoft的首席執行官)對經過修改的新版本邊界網關協議(BGP)進行了說明。
邊界網關協議的工作原理
邊界網關協議運行在互聯網服務提供商的路由器上,屬于一種“幕后”協議。我們都知道互聯網是一個龐大的互聯網絡,邊界網關協議的路由就是建立聯系的橋梁。它可以讓路由器知道如何以及向哪里傳輸互聯網流量。相鄰的路由器在邊界網關協議被稱為鄰居。邊界網關協議的鄰居之間采用的是活躍連接,以便進行信息交換。一旦邊界網關協議的路由表發生了變換。路由器會將變動信息自動發送給所有的鄰居。在邊界網關協議中,由于互聯網是一個非常有彈性的網狀網。所以鄰居的概念是很大的一個部分。
由于互聯網是一個網狀網絡的結果。所以每條路線總是會有多種選擇。因此,對于路由器來說,它們是怎么挑選鄰居的呢?第一,邊界網關協議的每個條目部包含了幾個參數。用來對不同性質的路線進行分析。下一步。一個算法將利用這些參數選擇出最佳路線。其中的一些參數是weight、local preference、origin和AS_path(請記住這一個)。這些并不是全部,邊界網關協議會檢查更多的參數。但這個是最重要的。并且也是最根本的設計缺陷所在。導致竊聽行為成為可能。
為了找到最佳路線,邊界網關協議會對每個網絡的間隔進行考慮。舉例來說,—個路由器正在尋找網絡地址10.10.10.25。從邊界網關協議的路由表中,它可以找到進入10.xxx.xxx.xxx網絡的路線。不過,它還發現了另一條可以進入10.10.xxx.xxx網絡的路線。因為進入10.10.xxx.xxx網絡是一條比較好的路線。路由器將選擇它,將數據包發送到10.10.xxx.xxx網絡的路由器上。每個路由器都將重復上面的步驟,直至互聯網流量到達預定的目的地。
邊界網關協議的設計缺陷
現在我們對邊界網關協議的工作模式有了清晰的了解,下面我就說明一下為什么邊界網關協議的設計缺陷會導致攻擊者的重定向和竊聽成為可能。基本上,由于邊界網關協議中的路由條目的鄰居的數量是非常多的。因此,路由器只是假設邊界網關協議的路由條且是正確的,并通過這條路徑傳輸數據包。
但攻擊者會肆無忌憚地利用這種信任,以便進行邊界網關協議的重定向攻擊。竊聽者所要做的僅僅是比邊界網關協議官方提供的鄰居細化的網絡地址(例如使用10.10.25.xxx之類更接近真實的網絡lP地址)。在偽裝的邊界網關協議數據包傳播后,攻擊者的網絡不用很長的時間就可以得到傳輸的數據流了。
YouTube的中斷事件
邊界網關協議的重定向攻擊并不是什么新出現的事件,實際上你們中的許多人也許還記得發生在過去幾個月的時間里,YouTube的中斷事件。這起事件就是由于在巴基斯坦的一家互聯網服務提供商偶然誤操作的一次邊界網關協議重定向造成的。事件的具體細節和互動式顯示過程可以在RIPE NCC(負責整個歐洲地區的IP地址資源分配與管理的組織)的網站上找到。
自治系統的路由器
如果已經訪問了RIPE的網站,你就可以發現像ASl7557之類的略由器命名符。自治系統號碼(ASN)被分配到每個自治系統(AS)以便來進行識別。簡單地說。每個自治系統是一個單獨實體,可以對路由信息控制進行處理。該實體負責維護控制范圍內所有采用邊界網關協議的路由器提供的服務。
兩次重定向
當邊界網關協議的重定向發生時,即使不是惡意的,造成的后果也是非常明顯的。為了對這種行為的后果進行解釋。還以YouTube事件為例子。一旦巴基斯坦的互聯網服務提供商對邊界網關協議路由所做的改動開始生效,YouTube的網站就無法進入,并且會影響到所有國家的訪問。
卡佩拉山和皮里蘇瓦已經找到一種方法。可以讓互聯網用戶對重定向攻擊進行確認。他們創造性地增加了第二次調整,這樣就可以防止中間人類型(MitM)攻擊進行的竊聽。專家們知道。這在理論上是可行的,但直到2008年的DefCon國際黑客大會之前,沒人能夠實現這樣的效果。
通過增加第二次重定向,卡佩拉山和皮里蘇瓦給我留下了深刻的印象,因為這不是一個很直觀的過程。為了證明這一點,我對確切發生的過程進行一下概略的說明。首先,攻擊者的路由器作為到達原始目的地網絡的最佳途徑是通過欺騙自身實現的。由于邊界網關協議的工作原理。我們知道現在錯誤的路由信息已經傳播到攻擊者的路由器所有邊界網關協議的鄰居上。由于所有攻擊者的路由器的邊界網關協議的鄰居都認為它是最佳途徑,因此,攻擊者的路由器的所有傳輸都會通過邊界網關協議的鄰居送回鄰居。現在,問題就出現了。不要著急,下面就是最酷的部分。
AS path prepending
卡佩拉山和皮里蘇瓦通過利用AS path prepending繞過了這個問題。在前面,我們說過路徑選擇采用了AS_path的屬性。在一次回旋操作中。將AS_path的屬性調整為自治系統的路由器拒絕來自攻擊者的路由器的欺騙性邊界網關協議條目。攻擊者將轉發網絡流量到具體的邊界網關協議鄰居。這樣的話,在數據到達目的地之前,采用邊界網關協議路由進程的互聯網傳輸將保持正常。
這樣意味著什么?
確認通過邊界網關協議進行的竊聽是很困難的事情。路由追蹤可以用來分析,但很難確定是否存在異常行為。為了安全起見,我們必須考慮這是一個中間人類型的攻擊并使用相同的優化技術,也就是現在經常說的虛擬專用網。
幾種臨時的解決方案正在試圖消除設計中存在的缺陷。其中的一種解決方案是對邊界網關協議的鄰居進行驗證,但它將耗費大量資源。并且只要有一家互聯網服務提供商拒絕使用,整個網絡就將崩潰。另一種解決方案是使用簽名的證書,對邊界網關協議的鄰居進行驗證。但這只適用于傳輸過程的第一步。
一種解決方案被稱為安全邊界網關協議(S-BGP)。下面是他們的網站上對其工作方式的介紹:
“采用安全邊界網關協議的網絡環境包含了三種安全機制:首先是采用了公鑰基礎設施(PKl)的網絡地址認證機制,并且擁有自治系統(AS)號碼,一個自治系統的身份,并且采用邊界網關協議的路由器的身份驗證和授權系統類似自治系統。
其次,一個新的、可選的傳遞路徑用的邊界網關協議屬性可以用來進行數字簽名,以便進行邊界網關協議的路由信息更新。這些證書的簽名包含了地址的前綴和路徑等信息以便進行驗證。
第三,互聯網協議安全性系列(IPSec)可以為數據和部分序列的完整性提供保障,并且保證采用邊界網關協議的路由器可以對來自其它部分的流量進行驗證。”
安全邊界網關協議聽起來非常強大,但問題是現有的大多數路由器沒有足夠的內存或處理能力來處理額外的工作量。
最后的思考
由于時代的變化,原來的網絡開發者希望的信任機制變得不可靠,安全方面的漏洞凸顯出來。不論是卡明斯基的錯誤還是邊界網關協議導致的竊聽都是證明。我不能肯定未來會怎么變化,但仍然保持樂觀態度。
除此之外,由于費用和開銷的問題。邊界網關協議導致的竊聽是很難修復的。我敢肯定。互聯網服務供應商是不會主動加入這個潮流的,除非用戶不斷地推動。(cstyle)