張傳浩,谷學匯,孟彩霞
(鐵道警察學院 圖像與網絡偵查系,鄭州 450053)(*通信作者電子郵箱zhangchuanhao@rpc.edu.cn)
網絡嗅探是一種捕獲網絡通信數據并進行分析的攻擊手段。攻擊者能夠在網絡拓撲的某些節點或者鏈路上竊聽通信數據、監視網絡狀態、竊取用戶賬號密碼等敏感數據。傳統網絡靜態的網絡配置,如通信端信息配置、路由配置等給網絡嗅探攻擊提供了便利,穩定的路由配置和靜態的端信息便于攻擊者獲取通信數據以及對數據進行分析。網絡嗅探在攻擊時的靜默特點使得防御方無法獲取攻擊特征,從而防御難度較大。通信加密是防御網絡嗅探的傳統方法,將通信數據加密傳輸,使得嗅探攻擊者難以破解通信內容,然而該方法在實際應用中存在一些局限性:首先,通信加密需要通信雙方都支持加密協議,否則通信無法正常進行;其次,一些已經被廣泛應用的協議本身并沒有采用加密手段,如HTTP(HyperText Transfer Protocol)、 FTP(File Transfer Protocol)、Telent和SMTP(Simple Mail Transfer Protocol)等,這給基于這些協議的通信造成嚴重的安全隱患;再者,一些加密協議存在著安全缺陷,攻擊者可通過靜態的網絡配置獲取完整的通信數據,并利用這些缺陷破解通信數據。
另一種防御嗅探攻擊的思路是從網絡數據獲取完整性入手,采用移動目標防御(Moving Target Defense, MTD)[1-2]思想,在通信中引入周期路徑跳變機制,利用多個不同的路徑傳輸通信數據,并在網絡中將多個用戶的數據混雜,使得攻擊者“難以收集全,難以分離好”各個用戶的數據,增加攻擊者準確獲取數據的難度,提高網絡抵抗嗅探攻擊的能力。
跳變通信是基于移動目標防御(MTD)的動態性、隨機性思想的一類主動網絡防御方法,旨在打破攻擊者對網絡靜態配置的假設,變被動防御為主動防御。早在軟件定義網絡(Software Defined Network, SDN)[3]出現之前,就有利用跳變技術進行安全傳輸的相關研究,主要包括通信地址跳變與路徑跳變。
地址跳變又可以劃分為通信端口跳變與網絡地址跳變:Atighetchi等[4]提出了一種虛假的端口地址跳變方法,在數據傳輸中使用偽地址和端口迷惑攻擊者;Sifalakis等[5]提出了一種基于地址跳變的信息隱藏技術,通過網絡地址跳變將數據流分散到多個端到端的連接進行傳播,提高點到點數據傳輸的安全性;Dunlop等[6]提出MT6D(Moving Target IPv6 Defense),利用地址空間巨大的IPv6實現了魯棒的IP跳變策略,該方法采用隧道技術將數據包封裝,反復變換隧道源和目的IP地址,使攻擊者難以嗅探到完整的通信流量。受限于分布式網絡的控制方式,端口跳變一直存在協同難、規模受限的問題,上述方法實現跳變通信均需要在終端部署軟件或在網絡中增加硬件設備,這使得跳變通信難以部署; 并且這些方法僅對端信息進行跳變,而網絡中的路由/路徑不變,攻擊者容易在關鍵節點上獲得完整的通信數據。
路徑跳變技術則是隨著SDN技術的發展而逐漸被關注,在傳統網絡中,分布式管理的路由協議使得通信路徑難以快速協同跳變,而SDN技術的集中化網絡管理方式為路徑跳變的系統協同提供了支撐。路徑跳變研究主要包含路徑隨機跳變[7]和多路徑隨機選擇[8]兩類:路徑隨機跳變是預先獲取所有符合要求的節點,構建跳變節點集合,從中隨機選取下一跳節點進行數據轉發的跳變技術。多路徑隨機選擇是預先獲得盡可能多的中間節點不重復的路徑,構建跳變路徑集合,從而在每次跳變時隨機選取不同轉發路徑的跳變技術;在SDN架構下,Jafarian等[9]提出了靈活的、對終端透明的IP跳變方法OF-RHM(OpenFlow Random Host Mutation),該方法實現了終端透明的節點IP地址跳變,降低了掃描攻擊的有效性,但該方法需要在一次連續通信中保持虛擬IP不變,攻擊者容易在一臺交換機上獲取某次通信的全部數據; Duan等[8]基于SDN框架,提出一種動態隨機路徑突變方法(Random Route Mutation, RRM),多條數據流的路徑能夠同時進行隨機變化,但這種方法需要在源/目的地址間預先保留多條冗余的路徑,在實際條件下滿足該需求造成的網絡拓撲代價較大。
本文工作是在項目組之前提出一種基于SDN的節點/路徑雙重跳變通信(Double Hopping Communication, DHC)機制[10]基礎上進行的改進,DHC方法實現了終端和路徑在有限網絡規模下終端IP地址與通信路徑的跳變。本文將主要關注路徑跳變,在DHC方法基礎上提出一種改進的路徑跳變機制。
計算機網絡通信就是在源節點和目的節點之間建立一條滿足所有約束的通信鏈路。由于網絡拓撲的物理條件限制,這條鏈路(或者稱為路徑)一般將通過一個或者多個特定的節點,這些特定節點擁有較高的節點度,能夠滿足網絡嗅探攻擊利益最大化需求,所以,網絡嗅探攻擊就是要找到并攻陷網絡通信路徑上節點度較高的節點,實現嗅探攻擊的部署。
在現有的靜態配置網絡通信中,通信雙方在建立連接后,所有數據包在通信過程中均不改變通信鏈路信息,這一特點容易被攻擊者利用,在傳輸路徑上捕獲目標節點從而獲取全部或者大量通信數據。本文從網絡通信的實際應用情況出發,在SDN框架下提出一種動態路徑跳變(Dynamic Path Hopping, DPH)機制用以應對攻擊者完全靜默狀態下的網絡嗅探攻擊。在該DPH中,通信雙方建立的路徑能夠周期性遷移,增強了通信的不可預測性,同時考慮數據傳輸可靠性。DPH在宏觀上將一次通信過程建立在多條通信信道上,即便不同于無線通信的多徑傳輸協議,也能夠倍增在單點進行竊聽攻擊的難度。DPH機制在通信初始態的路徑由運行在SDN控制器上的傳統的IP路由協議建立和維持,控制器上DPH模塊對路徑通過的節點進行識別,并按照計算實施動態路徑遷移。路徑遷移空間和遷移通信協議是DPH的兩個關鍵子模塊。


1)路徑最大距離約束。主機H1與H2間的所有非環路路徑長度均小于該依據該網絡拓撲構建的路徑集合PathSetH1→H2中的最大路徑長度L。

網絡可以使用無向圖模型G=〈V,E〉來描述,其中V表示節點,而E表示節點間的連接或邊。節點度N是指和該節點相關聯的邊的條數,又稱關聯度。可以將路徑選擇條件形式化定義為路徑權重,作為選擇該路徑的概率。定義路徑權重表達式為:
Weight(Pathk) =
(1)

考慮到Pathi權重分布得不均衡,如果僅考慮空間擾動,導致部分具有較大權重的路徑被選中的可能性比較大,而攻擊者可能在探測到某些關鍵路徑后,在該路徑上通過串并接、攻擊路徑節點等方式部署了嗅探探針,而這些路徑Pathi在連續的跳變周期中如果被重復選中就增加了被竊聽探針捕獲的數據量,造成防御機制失效。本文為Pathi設定一個隨機計數器β,規定Pathi最近兩次被選中為傳輸路徑的間隔周期;用tPathi表示當前Pathi被選中的迭代周期,則(t+1)-tPathi>β成為Pathi被再次選擇為傳輸路徑的必要條件(t為遞增變量,表示跳變周期)。設bi是一個布爾變量,則時間繞動表達式為(2)所示,如果bi為真,則表示Pathi當前滿足時間擾動約束,可以作為待選路徑。從全局角度看,這使得各個路徑被選中為跳變路徑的概率均勻,增加了攻擊者對跳變路徑的預測難度。

(2)
通過定義上述1)~3)約束條件,兩個特定網絡節點的大部分通信流量都經過某個單獨節點(除了源/目的節點)的概率大大降低。

算法1 WRPIS算法。
1)
WeightRamdomPathInterleavedSelect((Path1,Path2,…,Pathn),(b1,b2,…,bn),(w1,w2,…,wn),(tPath1,tPath2,…,tPathn),t,RP,β)
2)
sum = 0
3)
foriin (1,2,…,n)
4)
if (bi==true) and ((t+1)-tPathi>β)
5)
//時間擾動約束
6)
new_sum=sum+wi
7)
ifsum