美國時間4月24號上午,亞馬遜權威域名伺服器遭到BGP路由劫持攻擊。攻擊者的目的是利用DNS和BGP固有的安全弱點來盜取加密貨幣。該劫持波及了澳洲、美國等地區,下圖顯示了受影響地區(黃色)和未受影響地區(綠色)接受到的DNS響應數據包數量:

本次劫持過程介紹

BGP協議在安全性上存在明顯的設計缺陷:在進行路由通告的過程中,每個自治網路無條件地信任鄰居發給自己的任何路由通告,即使鄰居通告的是虛假的路由信息,這些信息也會被接受並且被繼續傳播。攻擊者正是利用了這個缺陷發起路由劫持。

本次事件中,亞馬遜自治網路AS16509持有以下IP前綴,並向外發起它們的路由起源通告:205.251.192.0/23205.251.194.0/23

205.251.196.0/23

205.251.198.0/23它們均用於提供DNS服務。具體地說,互聯網用戶所使用的DNS解析器對該IP段發起針對某個域名的DNS查詢,這些查詢會被送往AS16509中的DNS權威伺服器,而DNS權威會返回該域名相應的IP地址。例如,以下查詢會返回域名myetherwallet.com的IP地址:$dig+short myetherwallet.com @205.251.195.23954.192.146.xx

而在當天上午為時兩小時的過程中,攻擊者(AS10297)對以下前綴發起了路由起源聲明:

205.251.192.0/24205.251.193.0/24205.251.195.0/24205.251.197.0/24

205.251.199.0/24

根據BGP路由選擇的最長前綴匹配原則,對這些IP段發起的DNS查詢都被劫持到了攻擊者所在的AS10297。攻擊者只對myetherwallet.com的查詢請求回復以虛假的IP地址(對其他域名的查詢請求則不予以回復),用戶稍後對該網站的訪問流量被全部劫持到一個俄羅斯ISP提供的非法網站。如果用戶在該網站中輸入登陸信息(用戶名和密碼),攻擊者就會拿到這些登陸信息,並在真實的myetherwallet.com網站上使用這些信息,從而竊取受害用戶的數字貨幣。MyEtherWallet 已發聲明表示很多用戶成為本次攻擊的受害者。安全防範手段:RPKI與BGPSEC針對這種BGP路由劫持問題,當前業界正在推進的方案是RPKI(互聯網碼號資源公鑰基礎設施),我們在之前的公眾號文章中對RPKI的原理做過介紹——RPKI與互聯網路由安全(上)、RPKI與互聯網路由安全(下)。在本案例中,如果亞馬遜部署RPKI並簽發資源證書和ROA(路由起源認證),那麼其他部署了RPKI路由器的自治網路就可以幫助過濾這些虛假路由。具體地說,亞馬遜使用自己的RPKI證書籤發以下ROA並發布到全球資料庫中:

<205.251.192.0/23, AS16509>

<205.251.194.0/23, AS16509><205.251.196.0/23, AS16509><205.251.198.0/23, AS16509>那麼部署了RPKI路由器的其他自治網路,就可以從RPKI依賴方那裡得到驗證後的IP前綴和起源AS號的綁定關係,繼而判定起源於AS16509的相應路由通告為真並將其保留,以及判定由攻擊者發起的起源於AS10297的路由通告為假並將其丟棄,從而完全抵禦這次路由劫持。RPKI作為一種域間路由安全機制,本身只能提供路由起源認證,而不能提供路由全路徑認證,所以RPKI能夠避免以上這種前綴劫持攻擊,但其他類型的路由攻擊(如路由泄漏攻擊和路徑縮短攻擊)可以繞過RPKI進行流量劫持。針對這種情況,IETF提出了一種部署在RPKI之上的全路徑認證機制——BGPSEC,並將其標準化。BGPSEC要求每一個AS都對它接收到的路由通告消息進行簽名,簽名內容作為路由消息的路徑屬性BGPSEC_Path_Signatures通告給鄰居AS。簽名內容包括:(1)上一個AS的BGPSEC_Path_Signatures;(2)本自治系統的AS號;(3)路由消息要發往的自治網路的AS號;(4)本AS的RPKI路由器公鑰。由此可見,BGPSEC_Path_Signatures實際上代表了AS路徑中的前一AS對後一AS繼續通告該路由的授權。部署了BGPSEC的AS在路徑簽名之前還要進行路徑驗證,驗證過程如下:當一個AS收到路由通告消息後,會依次驗證AS路徑中每一個AS對應的BGPSEC簽名(包含在BGPSEC_Path_Signatures中),如果全部驗證成功,說明該AS路徑是真實有效的,當前AS纔可能採用並繼續向外廣播該路由通告。BGPSEC可以有效避免BGP路徑縮短攻擊。ZDNS的RPKI研究工作ZDNS作為專業的互聯網基礎服務提供商,非常重視RPKI作為互聯網基礎設施安全保障體系的價值。從2015年開始,ZDNS對RPKI的相關技術開展研究,RPKI的發明人Stephen Kent博士(互聯網名人堂入選者)擔任研究顧問。為了我國今後能夠在RPKI安全保障體系範疇有所作為,ZDNS實驗室主任馬迪博士和Stephen Kent博士共同起草了「RPKI安全威脅模型」(待發布為RFC8211),為今後RPKI的安全保障體系的構建奠定了技術基礎。由ZDNS牽頭的RPKI安全運行技術要求系列標準,現已通過工信部的批准立項,並完成啟動了報批流程。參加單位包括:ZDNS、CNNIC、中國信息通信研究院、中國聯通、中科院信工所、中興通訊。在RPKI驗證軟體方面,ZDNS實驗室主任馬迪博士擔任RPKI驗證軟體RPSTIR國際開源項目(bgpsecurity.net)的負責人之後,ZDNS負責在全球範圍內統籌該軟體的更新維護工作。參考資料blog.cloudflare.com/bgpblogs.oracle.com/intern
推薦閱讀:
相關文章