隋東方,唐 勇,劉宇靖,王恩澤
(國防科技大學計算機學院,湖南 長沙 410073)
近年來,隨著科技的發(fā)展以及人類對網絡通信依賴的加深,域間路由傳輸發(fā)揮著越來越重要的作用。而作為域間路由通信的重要協(xié)議邊界網關協(xié)議BGP(Border Gateway Protocol),因其脆弱性,經常會引發(fā)全網范圍的安全事故。其中IP前綴劫持就是互聯(lián)網的一種主要安全威脅。在前綴劫持過程中,攻擊者試圖欺騙自治系統(tǒng)AS(Autonomous Systems)成為感染者,這樣從感染者到受害者的數(shù)據(jù)流量就將被重定向到攻擊者。而由于缺乏完整的知識或認證,路由器或網絡運營商很難及時、準確地識別偽造的前綴所有權聲明[1]。
檢測和分析大規(guī)模的前綴劫持事件是一件十分有必要但又充滿挑戰(zhàn)的工作[2]。攻擊能夠通過多種難以預測的方式進行,同時,大規(guī)模的劫持事件往往涉及了數(shù)量眾多的受害者和感染者,準確、高效地檢測和分析大規(guī)模前綴劫持事件是一項富有挑戰(zhàn)性的任務。
2019年6月6日,瑞士數(shù)據(jù)中心主機托管公司Safe Host的自治系統(tǒng)AS21217錯誤地更新了路由,向中國電信的自治系統(tǒng)AS4134泄露了70 000多條路由,造成了大規(guī)模的前綴劫持。這次事件導致許多泄露的路由在互聯(lián)網上傳輸超過2個小時,嚴重影響了全球網絡的通信質量。這次事件影響范圍廣、持續(xù)時間長,是一個非常有價值的研究案例。本文以該事件為研究案例,提出了一種高效的事件檢測和特征分析方法,并分析了該事件的影響。
在檢測方面,本文首先通過分析BGP更新報文數(shù)量的異常突長確定劫持事件的發(fā)生,之后提取報文增長突出的時間段,通過分析AS出現(xiàn)頻率的異常,以及劫持發(fā)生前后連續(xù)AS情況的異常確定攻擊AS以及感染AS中的關鍵點;同時,我們也對劫持發(fā)生時,網絡的MOAS(Multiple Origin AS)沖突情況和AS-PATH路徑膨脹情況進行了檢測,證實了此次劫持導致這2項異常增長。在特征分析方面,本文對劫持的類型、受害者及感染者等情況進行了分析,以回答下面的問題:(1)這次事件是否包括了復雜的劫持類型,如子前綴劫持、路由篡改等?(2)這次事件造成了多大的影響?有多少受害者被劫持?有多少感染者被感染?(3)這次事件的劫持路由的傳播過程是怎樣的?
使用歐洲IP資源網絡協(xié)調中心RIPE(Réseaux IP Européens)的路由信息服務RIS(Routing Information Service)項目[3]收集的公開的BGP數(shù)據(jù)來實現(xiàn)本文的方法。文獻[3]是第1篇詳細分析2019年Safe Host BGP事件的學術論文。本文得到的關于這次事件的結論包括:(1)這次劫持的“攻擊者”為AS21217,AS4134是劫持路由傳播事件的關鍵點;(2)此次劫持事件導致了嚴重的多源AS沖突和AS-PATH路徑膨脹問題;(3)此次事件的劫持類型包括劫持前綴并篡改AS路徑以及劫持子前綴并篡改AS路徑2種類型;(4)檢測到311個AS被感染,長度為4的感染鏈數(shù)量最多,且分屬于3 895個AS的28 118個前綴IP段成為受害者,同時本文還實現(xiàn)了一個可視化系統(tǒng)來展示劫持發(fā)生時的全球網絡態(tài)勢。
邊界網關協(xié)議在互聯(lián)網之間傳遞可達性信息,是域間路由通信最為重要的協(xié)議,目前主要使用的是BGP-4[4]。鑒于BGP安全的重要性,國際互聯(lián)網工程任務組IETF(Internet Engineering Task Force)在2006年組建了安全域間路由SIDR(Secure Inter-Domain Routing)工作組,用于從事BGP安全研究和制定相關標準。此后,越來越多的針對BGP的安全問題[5 - 10]的研究開展起來。從第1個安全方案S-BGP至今,安全研究人員已經提出了多種方案來檢測和緩解BGP的安全問題,但BGP安全問題至今仍未得到有效的解決[11],足見處理BGP安全問題的復雜性與挑戰(zhàn)性。
2.1.1 BGP前綴劫持
在域間路由系統(tǒng)中,IP前綴的合法擁有者AS向鄰居宣告此前綴,該路由信息在互聯(lián)網上傳播,各AS獲得到達此前綴的路徑信息,在其路由表中以AS PATH屬性表示途經的AS。但是,由于配置錯誤或惡意攻擊等原因,并不擁有某IP前綴的AS非法宣告此前綴,則會引發(fā)BGP前綴劫持事件。
在BGP前綴劫持過程中,非法宣告前綴的AS被稱為攻擊者,前綴原本的合法擁有者被稱為受害者;在路由的傳播過程中,直接遭受攻擊且相信劫持路由、并將其傳播的AS稱為感染者,沒有相信和傳播劫持路由的AS稱為未感染者。
完整的BGP前綴劫持分類包括4類:劫持前綴(類型1)、劫持子前綴(類型2)、劫持前綴并篡改路徑(類型3)和劫持子前綴并篡改路徑(類型4)[12]。類型1的BGP前綴劫持是劫持與受害者AS相同的前綴,在攻擊過程中,攻擊者宣告本屬于受害者的IP前綴,劫持路由同樣在互聯(lián)網上傳播,相信該劫持路由的AS成為感染者;類型2是劫持受害者AS的子前綴;類型3是在劫持前綴的情況下,其AS路徑的始發(fā)點依然是前綴所屬的真正AS;類型4是類型2和類型3的結合。其中類型3與類型4可有效避免MOAS沖突。
2.1.2 多源AS沖突
多源AS MOAS沖突,是指一個IP前綴同時由多個AS發(fā)起,即有多個源AS對前綴IP進行了宣告。假如有這樣2條路由的AS-PATH屬性:
Asph1= {p1,p2,…,pn}
Asph2= {q1,q2,…,qm}
所攜帶的IP前綴相同,當pn≠qm時,稱發(fā)生了多源AS沖突現(xiàn)象。
產生MOAS沖突的原因有很多,主要有4種情況,(1)宣告的IP前綴位于AS交接處 ;(2)不使用BGP的多宿主產生的宣告;(3)使用私有AS號的多宿主產生的宣告;(4)錯誤或者惡意的配置。
2.1.3 AS-PATH路徑膨脹
BGP協(xié)議的更新報文中包含多種屬性,其中AS-PATH是非常重要的一個屬性。AS-PATH屬性是公認必遵屬性,它指路由被傳播到BGP路由器之前,途經所有AS的編號序列??蓪S-PATH表示成如下形式{ASN,ASN-1,…,AS3,AS2,AS1},此處稱AS1為origin_as,即起始AS;稱ASN為peer_as,它是路由經過的最近的一個AS。由于路由器的策略配置等因素,AS之間的實際路徑的長度可能會比實際的最短路徑大,這種現(xiàn)象稱為AS-PATH路徑膨脹。
一方面,前綴劫持的防御措施的研究包括3類:劫持發(fā)生前的預防、劫持發(fā)生時的檢測以及劫持發(fā)生后的反應。預防工作需要改變BGP協(xié)議,需要在全網范圍內部署[13]。檢測機制又可以劃分為基于控制平面信息的檢測[14,15]、基于數(shù)據(jù)平面的檢測[16]以及控制平面和數(shù)據(jù)平面協(xié)同檢測。反應機制主要包括宣告更長的前綴,并與劫持路由的宣告者協(xié)商撤銷劫持路由等。
另一方面,歐洲移動網絡的BGP事件發(fā)生后,相關的研究較少。Oracle公司針對該事件發(fā)布了一篇技術博客[17],多家新聞媒體對該事件進行了報道。本文的研究成果與Oracle公司公布的結果之間相互印證,例如,攻擊發(fā)生的起始時間、攻擊者的AS號、劫持持續(xù)時間等。但是,本文進一步分析了此次事件的影響,對攻擊者、感染者及受害者的情況都進行了進一步的說明,定位了感染AS中的關鍵點,對劫持發(fā)生時的多源AS沖突和AS-PATH路徑膨脹情況也進行了檢測,識別出劫持的類型,對劫持路由的傳播過程也進行了特征分析。
目前針對BGP路由的研究數(shù)據(jù)主要來源于大型BGP監(jiān)測系統(tǒng)所采集的互聯(lián)網真實數(shù)據(jù)。現(xiàn)在業(yè)界最權威、規(guī)模最大的監(jiān)測系統(tǒng)是RIPE RIS項目和Route Views項目[18]。它們都在互聯(lián)網中部署了大量的遠程路由采集器RRC(Remote Route Collectors),收集BGP路由表和Update報文,并定時存儲下來發(fā)布在其網站上??梢杂纱说玫奖槐O(jiān)測的AS到達互聯(lián)網上其他AS的真實路由,也可以根據(jù)特定時間區(qū)間重現(xiàn)互聯(lián)網上發(fā)生的歷史事件,此可用的數(shù)據(jù)集向我們展示了較為廣闊的域間路由視圖,可以使用此數(shù)據(jù)來對互聯(lián)網的行為進行采樣分析。本文實驗采用了RIPE RIS項目中的數(shù)據(jù);同時使用了BGPStream的開源軟件框架工具來對RIPE RIS項目中的BGP數(shù)據(jù)進行檢測和特征分析。
根據(jù)新聞和技術博客上的記載,瑞士Safe Host在09:43 UTC(Coordinated Universal Time)泄露路由給中國電信,之后中國電信網絡宣告了這些路由,此次事件持續(xù)了超過2個小時。
本文將當天8:00到13:00的BGP路由更新報文數(shù)量按每1 min的間隔進行統(tǒng)計,結果如圖1所示。從圖1中發(fā)現(xiàn),在10點之后的2個多小時內,路由宣告報文出現(xiàn)3次顯著異常的波峰,路由撤銷報文出現(xiàn)1次顯著異常波峰,結果與事件的時間線相吻合。路由更新報文的急劇增加是域間路由系統(tǒng)發(fā)生大規(guī)模事件的標識。
Figure 1 Number of Announcements and Withdrawals in BGP updates圖1 更新報文中宣告報文與撤銷報文的個數(shù)
10:24到10:25這1 min是第1次宣告報文數(shù)量的波峰,我們提取這1 min的數(shù)據(jù)進行深入分析。計算期間出現(xiàn)的傳輸AS,圖2展示了傳輸AS出現(xiàn)的次數(shù),x軸是AS排序,y軸是該AS以傳輸AS的身份出現(xiàn)在路由更新報文中的比例,這種‘冪律’形式的分布表示,極少數(shù)的AS出現(xiàn)得很頻繁,而大多數(shù)AS出現(xiàn)的次數(shù)很少。排名前10的AS列在表1中,我們可以看到,AS出現(xiàn)頻率最高的前3名為AS174、AS4134和AS21217,可以列為最高等級。
Figure 2 Occurrence frequencies of transit ASes from 10:24 to 10:25 UTC圖2 10:24~10:25時間段內傳輸AS的出現(xiàn)頻率
表1 事件中AS Rank排名前10的AS及其出現(xiàn)頻率
對CAIDA中AS Rank排名數(shù)據(jù)[19]分析發(fā)現(xiàn),AS4134和AS174均是排名前0.1%的AS(其中AS174排名第4,AS4134排名第45),而AS21217是排名8.26%的AS(AS21217排名第5 451),卻在此劫持事件中排名第3,是很異常的表現(xiàn)。
一個AS在互聯(lián)網中的路由態(tài)勢不會在短時間內發(fā)生變化。我們將劫持發(fā)生后首次出現(xiàn)的路徑稱為異常路由。為了確定異常路由,取劫持發(fā)生前8:40~9:40這一個小時為參考基準,檢測劫持前后出現(xiàn)“X-A”和“A-Y”這種AS-PATH路徑的路由,最終發(fā)現(xiàn)當A為AS21217時,異常路由的比例最高,且首次出現(xiàn)異常路由時間為9:43,不同時段出現(xiàn)的路徑種類和數(shù)目見表2。其中“X-21217”路徑中異常路由的比例為99.99%,“21217-Y”路徑中異常路由的比例為99.999%。
由此,我們將1 134 119條路由標記為異常路由,確定AS21217為此次劫持事件中的攻擊者。對于前綴劫持攻擊,說服一些關鍵的AS信任攻擊者偽造的虛假路由是很有必要的[20]。在“X-21217”路徑的異常路由中,X為4134時的比例占異常路由總數(shù)的99.999%,故AS4134可被認為是攻擊過程中感染AS的關鍵點。異常路由出現(xiàn)的起始時間為9:43,恰好與Oracle公司報告的劫持起始時間相同,得以相互印證。
Table 2 Identification of anomalous routes
b “21217-Y” 不同時段路徑數(shù)量對比
本文取事件當日8時~13時全球數(shù)據(jù),分析MOAS沖突情況,統(tǒng)計每分鐘發(fā)生MOAS沖突的IP前綴總數(shù),結果如圖3所示。由圖3可知,在9:43劫持發(fā)生后,發(fā)生MOAS沖突的IP前綴數(shù)目明顯增多,出現(xiàn)多次高峰值,這說明此次劫持事件對網絡的MOAS沖突產生了較大影響。
Figure 3 Number of IP prefixes with MOAS conflicts from 8:00 to 13:00 (UTC)圖3 8時~13時發(fā)生MOAS沖突的IP前綴數(shù)目
Figure 4 Number of AS path inflation from 8:00 to 13:00 (UTC)圖4 8時~13時(UTC)AS路徑膨脹數(shù)目
同樣取劫持當日8時~13時BGP更新報文數(shù)據(jù)進行分析,獲取所有出現(xiàn)的AS,將這些AS構建成一個無向圖,其中每個AS為一個節(jié)點,相鄰AS之間為一條邊。對更新報文中每個AS-PATH的peer_as和origin_as,計算基于更新報文中BGP路徑的路徑長度L1,基于無向圖的最短路徑為L2。若L1=L2,則peer_as和origin_as之間沒有發(fā)生路徑膨脹;若L1>L2,則說明發(fā)生了路徑膨脹。在測量時間段內,統(tǒng)計每分鐘發(fā)生路徑膨脹的不同origin_as和peer_as對的個數(shù),結果如圖4所示??梢钥闯觯俪职l(fā)生前路徑膨脹對的個數(shù)基本保持在20 000個以下;在發(fā)生劫持后,有一個時間點origin_as和peer_as對的個數(shù)明顯大幅增高,達到68 181個,這也是此次劫持事件的一個重要特征。
此次事件中,絕大部分的異常路由可以被劃分為類型3和類型4,即劫持前綴并篡改路徑和劫持子前綴并篡改路徑。本文選取BGP路由表中的正常路徑和異常路由條目的AS-PATH進行對比,由此判斷劫持種類。每種類型的示例如表3所示。在第1個例子中,AS21217劫持了AS18403的前綴1.53.252.0/24并篡改了AS-PATH。在第2個例子中,AS21217劫持了AS18403的子前綴1.55.210.0/24并篡改了AS-PATH 。
Table 3 Examples of prefix hijacking types
Figure 5 Visual map of hijacking events圖5 劫持事件可視化地圖
對感染期間9:43~12:00異常路由進行分析,統(tǒng)計異常路由中攻擊者AS21217傳播IP的路徑,發(fā)現(xiàn)感染AS數(shù)量為311個;同時通過分析異常路由傳播的IP前綴并結合MaxMind的geoip數(shù)據(jù)庫[21],統(tǒng)計出受害的IP前綴數(shù)目共28 118個,分屬于3 895個AS,且分屬于160余個國家,這些國家以歐洲居多。為了直觀觀察影響,本文實現(xiàn)了一個可視化系統(tǒng)來觀察劫持影響,如圖5所示,圖中標記出了攻擊者以及眾多感染者AS的位置,從圖5中可直觀看出,歐洲地區(qū)受感染AS數(shù)量最多。
BGP前綴劫持是一個動態(tài)傳播的過程。劫持路由從攻擊者一跳接一跳地傳播給感染者。將劫持路由從一個AS傳播到另一個AS的一跳稱為一條“感染鏈路”,感染鏈路是有向的。將感染鏈路首尾相接,可以得到從攻擊者AS21217到所有感染者的感染鏈。在受感染的311個AS中,每一跳的感染者數(shù)量如表4所示。第1跳的感染者只有AS4134和AS6830,第2跳的感染者包括了33個成員。這意味者,在眾多的鄰居中,AS21217只將劫持路由傳播給了AS4134和AS6830,之后AS4134和AS6830又傳播給了33個鄰居,后續(xù)以此類推。
Table 4 Distribution of infected AS number in each hop
同時,對每一條感染鏈的長度進行統(tǒng)計,結果如表5所示。感染鏈路最小長度為3,最大長度為10,其中長度為4的感染鏈路最多,占比48.07%,數(shù)量向兩側依次遞減。
Table 5 Distribution of infected link
本中以2019年Safe Host網絡事件為研究案例,提出了高效的大規(guī)模BGP事件的檢測與特征分析方法,同時分析了該事件產生的影響。 分析結果包括如下幾條:(1)這次劫持的“攻擊者”為AS21217,AS4134是劫持路由傳播過程中的關鍵點;(1)此次劫持事件導致了嚴重的多源AS沖突和AS-PATH路徑膨脹問題;(3)此次事件的劫持類型包括劫持前綴并篡改AS路徑以及劫持子前綴并篡改AS路徑2種類型;(4)檢測到311個AS被感染,長度為4的感染鏈數(shù)量最多,且分屬于3 895個AS的28 118個前綴IP段成為受害者,同時還實現(xiàn)了一個可視化系統(tǒng)來展示劫持發(fā)生時的全球網絡態(tài)勢。這些研究結果一方面與Oracle公司公布的結果相互印證,另一方面又對Safe Host事件進行了更加詳盡的補充和深入挖掘,對大規(guī)模的BGP前綴劫持檢測和防御工作提供了技術和數(shù)據(jù)支撐。