王 禹,高繼勛,王旭輝,葛 琳
(1.河南工程學院 計算機學院,河南 鄭州451191;2.河南工程學院 工程訓練中心,河南 鄭州451191; 3.鄭州航空工業(yè)管理學院 智能工程學院, 河南 鄭州 450015)
邊界網(wǎng)關協(xié)議(border gateway protocol,BGP)作為互聯(lián)網(wǎng)實際的域間路由協(xié)議已運行多年,當前路由前綴劫持攻擊(prefix hijacking)、路由泄露(route leak)、分布式拒絕服務攻擊(distributed denial of service, DDoS),以及針對BGP的低速拒絕服務攻擊(BGP low-rate denial of service,BGP-LDoS)均成為影響互聯(lián)網(wǎng)域間路由系統(tǒng)安全的主要威脅。其中,BGP-LDoS攻擊針對目標域間路由系統(tǒng)區(qū)域,實施關鍵路由節(jié)點的監(jiān)測和判定,之后利用僵尸網(wǎng)絡對關鍵節(jié)點及其周邊節(jié)點進行低速拒絕服務攻擊。為了防范BGP-LDoS攻擊者對于域間路由系統(tǒng)中自治系統(tǒng)(autonomous system,也稱自治域)通信行為的窺測,學者們已開展了諸多研究[1-3]。
目前,大多數(shù)研究關注于如何監(jiān)測和發(fā)現(xiàn)BGP-LDoS攻擊跡象,屬于被動防御范疇,研究往往受到攻擊方案和技術變化的制約。因此,借鑒主動防御的思想,本研究提出了一種基于多域聯(lián)盟的域間路由隱蔽通信(covert communication)技術,通過構建并維持多自治系統(tǒng)的聯(lián)盟關系,以協(xié)同配合的方式重新配置對外Update數(shù)據(jù)包的AS-Path屬性,達到隱藏聯(lián)盟內域間路由通信的目標。
網(wǎng)絡隱蔽通信技術是指在網(wǎng)絡環(huán)境中利用信息載體的不同特性或模式完成信息的隱蔽傳輸,這一概念自誕生起,其相關研究逐步涉及信息安全的多個領域。從最初基于TCP協(xié)議的網(wǎng)絡隱蔽通道,到基于HTTP報文的隱蔽通道,甚至還有研究者利用第一人稱射擊網(wǎng)絡游戲來承載隱蔽通信[4],應用非常廣泛。
(1)基于動態(tài)路由的隱蔽通信技術[5]是指利用隨機方式選擇通信的下一跳,使得整個通信路徑上的節(jié)點均是隨機抉擇,進而規(guī)避了受到潛在攻擊者監(jiān)控和預測的風險。
(2)基于多協(xié)議的隱蔽通信技術[6]是指事先預備多種通信協(xié)議,將數(shù)據(jù)載荷(payload)經(jīng)過分片置于多種不同的協(xié)議報文中,使得第三方難以截獲所有協(xié)議下的全部報文,從而提高了通信的隱蔽性。
(3)基于調頻通信的隱蔽通信技術[7]是指通過預先設定調頻序列與多種協(xié)議構成的隱蔽信道,利用偽隨機碼生成跳轉指令,從而使通信雙方的頻率保持一致,同步在不同協(xié)議下的隱蔽通信中予以轉換。
(4)基于多連接的隱蔽通信技術[8]是指通信雙方事先建立多條活躍的連接,以發(fā)送順序與傳輸模式的不同來發(fā)送數(shù)據(jù)包,使得該隱蔽通信脫離了固定的信道條件,同時不涉及特定的統(tǒng)計特征。
然而,目前仍缺乏針對域間路由系統(tǒng)中隱蔽通道技術的研究,需要結合域間路由系統(tǒng)通信的特點,在不影響自治系統(tǒng)之間正常通信的情況下,建立隱蔽通信模型,從而減少惡意自治系統(tǒng)發(fā)起B(yǎng)GP-LDoS攻擊的可能。
BGP即邊界網(wǎng)關協(xié)議,負責在自治系統(tǒng)之間傳遞并選擇最佳路由。BGP協(xié)議包含5種報文類型:Open、Keepalive、Update、Notification、Route-refresh。其中,若BGP報文頭中的Type為2,則為Update類型報文可用于通告路由。Update報文中的內容如圖1所示。
圖1 Update報文結構Fig.1 Structure of Update
路徑屬性(path attributes)是對BGP路由的特定描述,是每個BGP數(shù)據(jù)包的一部分,描述了前綴的路徑信息。BGP路由表中有可能包含到達同一目的地的多條路由,此時BGP協(xié)議需要選擇其中一條路由作為最佳路由。
BGP決策進程將屬性和所描述的前綴路由結合在一起,根據(jù)BGP的路由優(yōu)選規(guī)則,對所有可達目的的網(wǎng)絡備選路徑屬性予以比較,經(jīng)過判定和篩選得到最佳路由,據(jù)此進行數(shù)據(jù)轉發(fā),并在該時間階段將此路由告知其對等體。
BGP作為一種路徑向量協(xié)議,以自治系統(tǒng)(autonomous system, AS)為節(jié)點,通過記錄數(shù)據(jù)包的轉發(fā)軌跡,形成一個AS列表。因此,該列表包含了數(shù)據(jù)包從起始AS至終點AS過程中所經(jīng)過的所有節(jié)點,BGP路由生成的這一列表被稱為AS-Path序列。
需要注意的是,數(shù)據(jù)包在本地AS內傳輸時,不會對AS-Path屬性內容做任何修改。當數(shù)據(jù)包離開本地AS時,當前自治系統(tǒng)編號(autonomous system number, ASN)會被自動添加到AS-Path序列的最前端位置。任何路由設備在接收Update數(shù)據(jù)包時,均會檢查AS-Path屬性內容,倘若該AS-Path序列中含有接收者路由器所在的AS號,則丟棄這一路由從而避免環(huán)路。此外,路由設備可以根據(jù)AS-Path的長度來制定最佳路由的選取策略。
因此,AS-Path路徑屬性作為公認必遵屬性,主要作用為記錄路由沿途所經(jīng)過的自治系統(tǒng),BGP對等體之間傳遞的每條路由都會攜帶這份AS編號列表繼續(xù)傳遞和更新路由。
考慮到互聯(lián)網(wǎng)中自治系統(tǒng)間的正常通信需求,為了能夠抵御BGP-LDoS等攻擊對于關鍵自治系統(tǒng)節(jié)點的監(jiān)聽、分析與判別,借鑒移動目標防御技術的主要思想,針對多自治系統(tǒng)聯(lián)盟的路由行為實施隱蔽。
首先需要構建多自治系統(tǒng)聯(lián)盟框架,以聯(lián)盟為整體單元提升其內部路由的隱蔽性,然后依靠聯(lián)盟內部各自治系統(tǒng)之間的協(xié)同配合,通過重新配置聯(lián)盟對外Update數(shù)據(jù)包的AS-Path屬性,最終達到迷惑外部潛在攻擊者的目標。
諸多研究已經(jīng)證明,互聯(lián)網(wǎng)中的AS級域間路由系統(tǒng)具有顯著的社團特性[9-10],主要表現(xiàn)如下:社團內部各組織聯(lián)系緊密,社團外部聯(lián)系松散;社團內AS節(jié)點的地理位置靠近;社團內AS節(jié)點通常具有較為一致的利益關系。
張國強等[11]從社團分解的角度,利用CNM算法獲得互聯(lián)網(wǎng)中的多個社團。CAIDA對2012年1月至8月每日的域間系統(tǒng)路由數(shù)據(jù)進行了分析和統(tǒng)計[12],依照社團特性予以社團劃分。其中:這7個月內社團模塊度的平均值為0.681,最小值為0.675;在社團數(shù)量方面,由于不同時間段內路由的變化,以及AS節(jié)點連接信息采集得不完整,故社團數(shù)量出現(xiàn)一定的波動,為43~54。綜合上述文獻發(fā)現(xiàn),60%以上的社團規(guī)模小于100個節(jié)點。
考慮到域間路由系統(tǒng)在AS級拓撲結構上存在典型的社團特性,為了更好地應對域間路由系統(tǒng)攻擊,尤其是BGP-LDoS對于拓撲關系的探測,本研究提出了一種輕量級的方法,結合互聯(lián)網(wǎng)中實際業(yè)務和商業(yè)利益的需求,將域間路由系統(tǒng)中已經(jīng)具備典型社團特性的多個自治系統(tǒng)組建成面向域間路由安全的自治系統(tǒng)聯(lián)盟(見圖2),通過自治系統(tǒng)節(jié)點間的相互配合,對聯(lián)盟外部路由設備及節(jié)點隱藏真實的路由信息,從而提升整個聯(lián)盟的攻擊抵御能力。
圖2 自治系統(tǒng)聯(lián)盟示例Fig.2 Example of AS alliance
以圖2為例,將本身具有社團特征的、編號為1~10的自治系統(tǒng)組織為聯(lián)盟。假設該聯(lián)盟的邊界節(jié)點是編號為1、2、8、9的4個自治系統(tǒng),聯(lián)盟外部連接的自治系統(tǒng)包括A、B、C、D、E等。
正常情況下,AS-Path屬性中包含的序列是有序的,體現(xiàn)了數(shù)據(jù)包通信的整個過程,不應對該路徑實施任何修改或刪除行為,以保護AS-Path的完整性與無環(huán)性。然而,有時網(wǎng)絡運維管理人員為了增加序列的長度,進而影響遠端路由設備的路徑選擇,會刻意添加重復的AS號。
針對域間路由系統(tǒng)中路由行為隱蔽的問題,同樣可以參考網(wǎng)絡運維管理人員的方法,通過重新配置AS-Path列表,對多自治系統(tǒng)聯(lián)盟外暴露出虛假AS序列,使得外部自治系統(tǒng),尤其是惡意者,無法獲知聯(lián)盟內部通信的方向,從而掩蓋聯(lián)盟內自治系統(tǒng)的拓撲關系、關鍵自治系統(tǒng)的位置、鏈路權重等重要信息。為了兼顧計算性能和隱蔽效果,本研究提出了基于AS-Path序列混淆的域間路由系統(tǒng)路由隱蔽方法,通過對AS-Path序列的重配置實現(xiàn)欺騙效果。
目前,眾多混淆算法的核心思想是將有序數(shù)列按照隨機化的方式重新進行排序,其優(yōu)勢在于計算復雜度低、反應迅速。結合已有的混淆算法,本研究提出的面向自治系統(tǒng)聯(lián)盟內AS-Path序列混淆算法如下所示:
輸入:原始的真實AS-Path序列AP_Org;輸出:經(jīng)過重配置的AS-Path序列AP_Ult。
步驟如下:
①假定原始序列AP_Org的長度為n,其中AP_Org[0]為首自治系統(tǒng)編號,AP_Org[n-1]為末端AS編號,二者不介入混淆;
②復制AP_Org至AP_Ult,目的是保證之后的操作不改變原始序列;
③將AP_Ult索引為i的AS編號隨機覆蓋至索引k處;
④將AP_Org索引為k的AS編號拷貝至AP_Ult索引i處;
⑤重復第③~④步驟n-2次,直至所有AS編號完成初始混淆;
⑥對AP_Ult中的AS編號進行隨機丟棄,數(shù)量控制在[1,n/2]。
該算法能夠保持真實AS-Path路徑的入口和出口,同時以時間復雜度為O(n)、空間復雜度為O(n)計算獲得混淆后的序列。為了防止?jié)撛诠粽邔π蛄羞M行大量采樣和分析,需要在最后一個步驟中隨機缺省若干AS編號,進而提高隱蔽效果。
圖3 基于序列混淆的AS-Path重配置示例Fig.3 Example of AS-Path reconfiguration based on sequence confusion
基于序列混淆的AS-Path重配置示例見圖3。如圖3所示,假如以AS編號2為流量入口、以AS編號9為流量出口,該原始AS-Path序列應為[2,10,5,3,4,6,7,9]。由于多自治系統(tǒng)聯(lián)盟具有相對程度的黑箱特性,所以利用上述混淆算法,外圍觀測者最終得到的AS-Path結果同真實的序列在ASN順序和數(shù)量上均不相同。并且,由于隨機數(shù)的變換,具有相同入口和出口的重配置AS-Path也不盡相同,從而實現(xiàn)了對聯(lián)盟外部的隱蔽功能。
利用基于AS-Path混淆的路由隱蔽算法,生成混淆AS-Path序列,對聯(lián)盟外攻擊者實施隱蔽。Avramopoulos等[13]研究表明,多自治域社團具有小規(guī)模數(shù)量的特征,以此來構建區(qū)域性域間路由系統(tǒng)聯(lián)盟,能夠較好地滿足通信隱蔽性。
圖4 基于序列混淆的AS-Path屬性重配置計算時間Fig.4 Duration of AS-Path reconfiguration based on sequence confusion
在AS-Path序列長度分別為20、50、100、200、400、600的情況下,計算100次后的平均混淆計算時長,結果見圖4。由圖4可知,整體上其耗費的時間呈線性分布,符合預期的計算時間復雜度O(n)。在上述情況下,僅當序列長度為50時,計算時長的增長幅度略微下降,但總體增長趨勢非常顯著。
為了驗證所提基于序列混淆的AS-Path重配置算法的有效性、判別混淆程度和影響,擬利用Levenshtein算法計算混淆前與混淆后兩個AS-Path序列的編輯距離,進而獲得前后序列之間的相似度。
原始序列記為APs,長度為m,混淆后序列記為APf,長度為n,令APs[i]表示原始序列中第i個ASN,APf[j]表示混淆后序列中第j個ASN,編輯距離記為Dist(APs,APf)。
利用Levenshtein算法,計算APs與APf序列的相似度,記為similar(APs,APf),計算公式為
(1)
在AS-Path序列長度分別為20、50、100、200、400、600的情況下,計算100次后的平均相似度,結果見圖5。
圖5 基于序列混淆的AS-Path序列相似度比較Fig.5 Similarity comparison of AS-Path based on sequence confusion
由圖5可知,隨著序列長度的增加,混淆前和混淆后AS-Path的相似度在不斷降低。例如:當序列長度為20時,混淆100次,得到平均相似度為0.653;當序列長度達到600時,運行100次得到平均相似度為0.317。可以得出,混淆后的AS-Path能夠顯著區(qū)別于原始序列。
由上述內容可知,基于AS-Path混淆的域間路由隱蔽通信方法(簡稱APR)針對原始序列具有較好的相似度差異特性,擬將該方法同已有方法進行比較,挖掘其優(yōu)勢與劣勢。文獻[14]提出了一種典型的亂序方法RL,可在不同的序列長度下比較二者的相似度,具體見圖6。
圖6 兩種方法的相似度比較Fig.6 Similarity comparisons between two methods
如圖6所示,當AS-Path序列長度分別為100、200、400、600時,給出了實施APR方法和RL方法100次之后的平均相似度值,可以看出:在AS-Path序列較短時,APR方法計算的相似度較大,而RL方法計算的相似度較??;當AS-Path序列長度為100時,APR方法的相似度為0.53,RL方法的相似度為0.34;隨著AS-Path序列長度的增加,APR方法的性能優(yōu)勢逐步顯著。例如,當AS-Path序列長度為600時,APR方法的相似度為0.317,RL方法的相似度為0.482。
通過對兩種方法的比較可知,在AS-Path序列較大的情形下,依據(jù)基于AS-Path混淆的域間路由隱蔽通信方法,同原始序列相比,計算出的混淆序列具有較低的相似度,能夠滿足對于聯(lián)盟域外惡意者的偽裝欺騙。
在互聯(lián)網(wǎng)域間路由系統(tǒng)中實施安全防護具有較大難度,一方面是由于路由系統(tǒng)本身具備的開放特性,攻擊者始終躲在暗處,雙方掌握的信息極其不對等,另一方面是因為攻擊者能夠采用的手段和方法愈加多樣化,能夠利用各種方法不斷嘗試并實施威脅。由此,以主動防御思想為指導,本研究提出了一種基于AS-Path屬性重配置的路由隱蔽方法,在構建多自治系統(tǒng)的基礎上,通過對AS-Path屬性進行重新配置達到欺騙潛在攻擊者的目標,仿真實驗和比較結果顯示該方案具有較好的效果。