林洪秀,邢長友,詹 熙
(中國人民解放軍陸軍工程大學(xué) 指揮控制工程學(xué)院,南京 210007)
大量研究表明,大部分網(wǎng)絡(luò)攻擊開始之前通常存在網(wǎng)絡(luò)偵察階段[1]。在網(wǎng)絡(luò)偵察階段,攻擊者主要獲取目標(biāo)網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)?、IP 地址塊、服務(wù)依賴關(guān)系和存在漏洞的服務(wù)器等信息,其中,網(wǎng)絡(luò)拓?fù)涫且环N非常重要的攻擊信息,攻擊者可以根據(jù)目標(biāo)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)對(duì)網(wǎng)絡(luò)中的關(guān)鍵鏈路和關(guān)鍵節(jié)點(diǎn)發(fā)起鏈路洪泛攻擊(Link-Flooding Attack,LFA)[2]等精準(zhǔn)攻擊,破壞目標(biāo)網(wǎng)絡(luò)的連通性。
作為一種主動(dòng)欺騙防御技術(shù),網(wǎng)絡(luò)拓?fù)浠煜夹g(shù)能夠有效對(duì)抗攻擊者實(shí)施的網(wǎng)絡(luò)拓?fù)渫茢啵?]。網(wǎng)絡(luò)拓?fù)浠煜夹g(shù)[4-5]并不刻意阻止攻擊者的攻擊行為,而是識(shí)別網(wǎng)絡(luò)中的探測(cè)流,通過策略性地混淆探測(cè)流,將真實(shí)網(wǎng)絡(luò)拓?fù)鋫窝b成混淆網(wǎng)絡(luò)拓?fù)洌构粽邿o法發(fā)起有效攻擊。
目前,網(wǎng)絡(luò)拓?fù)浠煜夹g(shù)在對(duì)抗基于traceroute的網(wǎng)絡(luò)拓?fù)渫茢嘌芯恐腥〉昧溯^好的成果,但面向網(wǎng)絡(luò)層析成像的拓?fù)浠煜夹g(shù)的相關(guān)研究較少,且存在一定的局限性。在網(wǎng)絡(luò)層析成像拓?fù)渫茢嘀?,攻擊者通過使用多種探測(cè)模式測(cè)量路徑性能相關(guān)性,從而根據(jù)測(cè)量結(jié)果推斷網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)[6]。網(wǎng)絡(luò)拓?fù)浠煜夹g(shù)則通過對(duì)探測(cè)流進(jìn)行混淆操作[7],擾動(dòng)攻擊者的測(cè)量結(jié)果,使其推斷出錯(cuò)誤的網(wǎng)絡(luò)拓?fù)?,其具體的混淆操作方法與攻擊者進(jìn)行拓?fù)渫茢鄷r(shí)使用的性能參數(shù)類型相關(guān),如攻擊方以時(shí)延為拓?fù)渫茢嗟男阅軈?shù)時(shí),防守方通常通過延遲操作來混淆探測(cè)流,而當(dāng)攻擊方以丟包率為拓?fù)渫茢嗟男阅軈?shù)時(shí),則防守方通常通過丟棄數(shù)據(jù)包操作來混淆探測(cè)流。不同性能參數(shù)對(duì)應(yīng)著攻擊方不同的探測(cè)模式,若混淆操作與探測(cè)模式不匹配,則會(huì)出現(xiàn)無法有效混淆探測(cè)流的后果,因此,準(zhǔn)確識(shí)別探測(cè)模式對(duì)于增強(qiáng)面向網(wǎng)絡(luò)層析成像的拓?fù)浠煜夹g(shù)具有重要意義。然而,現(xiàn)有面向網(wǎng)絡(luò)層析成像的拓?fù)浠煜夹g(shù)只能識(shí)別攻擊者的探測(cè)行為,無法進(jìn)一步識(shí)別攻擊者使用的探測(cè)模式。
針對(duì)上述問題,本文提出一種既能在線識(shí)別探測(cè)行為與探測(cè)模式,又能策略性混淆探測(cè)流的方法,實(shí)現(xiàn)這一目標(biāo)主要存在以下3 個(gè)挑戰(zhàn):1)在線檢測(cè)攻擊者的探測(cè)流對(duì)實(shí)時(shí)性的要求比較高,在追求檢測(cè)準(zhǔn)確性的同時(shí)也能保證檢測(cè)時(shí)效性具有一定的挑戰(zhàn)性;2)不同探測(cè)模式下的探測(cè)流區(qū)別較小,準(zhǔn)確識(shí)別探測(cè)包的探測(cè)模式具有一定的挑戰(zhàn)性;3)如何混淆探測(cè)流使攻擊者偵察到混淆網(wǎng)絡(luò)具有一定的挑戰(zhàn)性。
為解決以上問題,本文提出一種對(duì)抗多模式網(wǎng)絡(luò)層析成像的拓?fù)浠煜龣C(jī)制M2NTO。針對(duì)第1 個(gè)挑戰(zhàn),設(shè)計(jì)一種基于增量學(xué)習(xí)的在線決策樹分類算法,在探測(cè)流的早期階段進(jìn)行識(shí)別和分類,根據(jù)分類結(jié)果對(duì)探測(cè)流的后續(xù)數(shù)據(jù)包進(jìn)行相應(yīng)的混淆操作。針對(duì)第2 個(gè)挑戰(zhàn),根據(jù)網(wǎng)絡(luò)層析成像探測(cè)流在傳輸模式上存在的區(qū)別,將探測(cè)流檢測(cè)分為2 個(gè)步驟:首先使用流量分類算法識(shí)別網(wǎng)絡(luò)中的探測(cè)流,然后再以塊的形式對(duì)識(shí)別到的探測(cè)流進(jìn)行二次分類,從而得到探測(cè)流的探測(cè)模式。針對(duì)第3 個(gè)挑戰(zhàn),根據(jù)網(wǎng)絡(luò)負(fù)載情況與探測(cè)方法判斷攻擊者使用的性能參數(shù),結(jié)合性能參數(shù)的特點(diǎn)和探測(cè)模式的原理為每種性能參數(shù)設(shè)計(jì)相應(yīng)的混淆方案。
本文基于SDN[8]技術(shù)實(shí)現(xiàn)M2NTO 的原型系統(tǒng),M2NTO 通過在網(wǎng)絡(luò)邊緣部署SDN 交換機(jī)實(shí)時(shí)捕獲端節(jié)點(diǎn)發(fā)出的網(wǎng)絡(luò)流數(shù)據(jù)并轉(zhuǎn)發(fā)到SDN 控制器,隨后SDN 控制器再進(jìn)行特征提取、流量分類及下發(fā)流表等操作,最后,SDN 交換機(jī)根據(jù)下發(fā)的流表規(guī)則進(jìn)行相關(guān)混淆操作,從而準(zhǔn)確識(shí)別探測(cè)流類別并有效混淆網(wǎng)絡(luò)層析成像探測(cè)包,達(dá)到防御基于網(wǎng)絡(luò)層析成像的拓?fù)涮綔y(cè)的目的。
網(wǎng)絡(luò)層析成像技術(shù)根據(jù)端到端測(cè)量結(jié)果推斷網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),常用的拓?fù)渫茢嗨惴ㄖ饕蠱LT(Maximum Likelihood Tree)[9]、HTE(Hierarchical Tree Estimation)[10]和RNJ(Rooted Neighbor-Joining)[11]等算法,這些方法的拓?fù)渫茢噙^程主要分為測(cè)量端到端性能、計(jì)算節(jié)點(diǎn)相關(guān)性、重構(gòu)網(wǎng)絡(luò)拓?fù)? 個(gè)步驟[12]。首 先,使 用“三明治”分組列 車[13]和“背 靠背”[9]等測(cè)量方法從源節(jié)點(diǎn)發(fā)送一組探測(cè)包到目的節(jié)點(diǎn)。然后,在目的節(jié)點(diǎn)計(jì)算共享路徑性能(排隊(duì)時(shí)延、鏈路利用率、時(shí)延協(xié)方差等),根據(jù)相關(guān)性能的值計(jì)算目的節(jié)點(diǎn)對(duì)之間的相關(guān)性,共享路徑越長,相關(guān)性值越大,節(jié)點(diǎn)對(duì)相關(guān)性越大。最后,根據(jù)節(jié)點(diǎn)相關(guān)性重構(gòu)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
網(wǎng)絡(luò)層析成像技術(shù)準(zhǔn)確推斷目標(biāo)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的前提是測(cè)量數(shù)據(jù)真實(shí)可靠,根據(jù)這個(gè)特點(diǎn),HOU等[4]提出了一種先檢測(cè)后混淆的網(wǎng)絡(luò)層析成像拓?fù)浠煜蚣躊roTo。ProTo 中的檢測(cè)模塊以一種輕量級(jí)的KNN 分類器識(shí)別網(wǎng)絡(luò)層析成像探測(cè)包,通過離線自訓(xùn)練和在線增量更新,可以達(dá)到較高的檢測(cè)率和較低的誤報(bào)率;混淆模塊通過延遲識(shí)別到的探測(cè)包,使攻擊者測(cè)量的網(wǎng)絡(luò)端到端性能不準(zhǔn)確,從而計(jì)算到錯(cuò)誤的節(jié)點(diǎn)相關(guān)性,推斷出錯(cuò)誤的網(wǎng)絡(luò)拓?fù)?。LIU等[5]針對(duì)ProTo 的混淆性能存在不確定性這個(gè)問題,設(shè)計(jì)了一個(gè)多目標(biāo)優(yōu)化模型AntiTomo,根據(jù)欺騙性、安全性、低成本等目標(biāo),在候選混淆拓?fù)浣M成的候選森林中使用貪心算法選擇最優(yōu)候選樹作為混淆網(wǎng)絡(luò)拓?fù)洹?/p>
雖然ProTo 和AntiTomo 在對(duì)抗網(wǎng)絡(luò)層析成像拓?fù)渫茢嗌掀鸬搅艘欢ǖ淖饔?,但兩者都存在一定的局限性:AntiTomo 不對(duì)網(wǎng)絡(luò)層析成像探測(cè)包進(jìn)行識(shí)別,僅通過增加網(wǎng)絡(luò)鏈路的端到端時(shí)延來混淆網(wǎng)絡(luò)拓?fù)?,這種混淆操作會(huì)影響正常數(shù)據(jù)包的傳輸,降低網(wǎng)絡(luò)性能甚至影響網(wǎng)絡(luò)功能;ProTo 只能檢測(cè)到攻擊者基于網(wǎng)絡(luò)層析成像的探測(cè)行為,無法進(jìn)一步識(shí)別其使用的測(cè)量方法類型,且只能在網(wǎng)絡(luò)層析成像的性能參數(shù)為排隊(duì)時(shí)延的情況下進(jìn)行混淆操作。
圖1 是攻擊者利用源節(jié)點(diǎn)s1和目的節(jié)點(diǎn){d1,d2,d3,d4,d5}形成的1×5 探測(cè)網(wǎng)絡(luò)。在網(wǎng)絡(luò)拓?fù)涠说蕉颂綔y(cè)過程中,攻擊者在源節(jié)點(diǎn)s1發(fā)出一組探測(cè)分組,這些探測(cè)分組將沿著相應(yīng)的路由到達(dá)目的節(jié)點(diǎn)。在基于層析成像的網(wǎng)絡(luò)拓?fù)涮綔y(cè)模型中,為了推斷目標(biāo)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),攻擊者需要測(cè)量任意2 個(gè)目的節(jié)點(diǎn)間的相關(guān)性,因此,需要組合測(cè)量到所有目的節(jié)點(diǎn)對(duì)之間的性能,最后推斷出整個(gè)目標(biāo)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。為了準(zhǔn)確計(jì)算節(jié)點(diǎn)間的相關(guān)性,在實(shí)際測(cè)量中攻擊者往往多次測(cè)量計(jì)算均值,通常需要向每個(gè)節(jié)點(diǎn)對(duì)發(fā)送幾百甚至上千個(gè)探測(cè)包。因此,在攻擊者探測(cè)期間,網(wǎng)絡(luò)中可以觀測(cè)到具有相同模式的大量流量。
圖1 基于網(wǎng)絡(luò)層析成像的拓?fù)渫茢喾椒‵ig.1 Topology inference method based on network tomography
網(wǎng)絡(luò)層析成像常用的測(cè)量方法如圖2 所示,“三明治”分組列車測(cè)量方法的探測(cè)包組由3 個(gè)數(shù)據(jù)包
圖2 基于網(wǎng)絡(luò)層析成像的拓?fù)涮綔y(cè)方法Fig.2 Topology probe method based on network tomography
2 種測(cè)量方法的探測(cè)模式不同,節(jié)點(diǎn)相關(guān)性計(jì)算的思想也不同。在“三明治”分組列車探測(cè)方法中,大數(shù)據(jù)包j1大小通常超過1 000 Byte,在鏈路中的傳輸時(shí)延較大,導(dǎo)致小數(shù)據(jù)包p2在節(jié)點(diǎn)f處的排隊(duì)時(shí)延較長,使得節(jié)點(diǎn)i和節(jié)點(diǎn)j的共享路徑越長,數(shù)據(jù)包p1和大數(shù)據(jù)包j1經(jīng)過的節(jié)點(diǎn)越多,在目的節(jié)點(diǎn)di觀測(cè)到2 個(gè)小數(shù)據(jù)包的時(shí)延差值就越大,節(jié)點(diǎn)di和節(jié)點(diǎn)dj相關(guān)性越大?!氨晨勘场碧綔y(cè)方法的本質(zhì)是模擬多播網(wǎng)絡(luò),由于2 個(gè)數(shù)據(jù)包之間的時(shí)間間隔極小,可以認(rèn)為2 個(gè)數(shù)據(jù)包在共享鏈路上所經(jīng)過的網(wǎng)絡(luò)狀況相同,在目的節(jié)點(diǎn)計(jì)算端到端單向時(shí)延或丟包率,根據(jù)時(shí)延協(xié)方差或丟包率計(jì)算2 個(gè)節(jié)點(diǎn)的共享路徑長度,時(shí)延協(xié)方差或丟包率越大,共享路徑越長。
針對(duì)上述探測(cè)過程,本文設(shè)計(jì)的網(wǎng)絡(luò)拓?fù)浠煜P腿鐖D3 所示,主要分為網(wǎng)絡(luò)流量監(jiān)聽與處理、探測(cè)流量識(shí)別與分類和探測(cè)流量混淆操作3 個(gè)階段。在網(wǎng)絡(luò)流量監(jiān)聽與處理階段,完成監(jiān)聽網(wǎng)絡(luò)實(shí)時(shí)數(shù)據(jù)流、提取數(shù)據(jù)流特征以及特征選擇等處理操作。在探測(cè)流量識(shí)別與分類階段,將處理好的數(shù)據(jù)送入分類器進(jìn)行分類,得到網(wǎng)絡(luò)流類型的分類結(jié)果,之后根據(jù)新到達(dá)的數(shù)據(jù)動(dòng)態(tài)更新該分類器。在探測(cè)流量混淆操作階段,首先結(jié)合流量分類的結(jié)果和網(wǎng)絡(luò)負(fù)載情況判斷攻擊者使用的網(wǎng)絡(luò)性能參數(shù),然后根據(jù)混淆網(wǎng)絡(luò)拓?fù)渖伤惴?gòu)建混淆網(wǎng)絡(luò)拓?fù)洳⒂?jì)算混淆操作中用到的性能參數(shù),最后根據(jù)得到的性能參數(shù)對(duì)K-cast 探測(cè)流進(jìn)行相應(yīng)的混淆操作。
圖3 對(duì)抗網(wǎng)絡(luò)層析成像的拓?fù)浠煜P虵ig.3 Topology obfuscation model against network tomography
需要說明的是,由于流量分類階段初始分類器的構(gòu)建需要帶標(biāo)簽的數(shù)據(jù)集進(jìn)行訓(xùn)練,因此在流量檢測(cè)系統(tǒng)上線前還需要經(jīng)過一個(gè)離線處理階段。在離線處理階段,首先收集網(wǎng)絡(luò)流數(shù)據(jù)提取網(wǎng)絡(luò)流的特征,并人工對(duì)樣本進(jìn)行標(biāo)記生成初始訓(xùn)練集和初始探測(cè)流數(shù)據(jù)集,以備后續(xù)使用初始訓(xùn)練集和探測(cè)流數(shù)據(jù)集訓(xùn)練分類器得到初始分類器。
在入口節(jié)點(diǎn)監(jiān)聽端節(jié)點(diǎn)發(fā)出的數(shù)據(jù)包,解析數(shù)據(jù)包的五元組信息(<源IP,目的IP,源端口,目的端口,協(xié)議類型>),根據(jù)五元組信息判斷當(dāng)前數(shù)據(jù)包所屬的網(wǎng)絡(luò)流,并對(duì)網(wǎng)絡(luò)流進(jìn)行信息統(tǒng)計(jì)與特征提取。MOORE 等[14]提出了248 個(gè)可以 用于機(jī) 器學(xué)習(xí)流量分類的流量特征,但這些特征大多都無法在線提取,因此,許多關(guān)于在線流量分類的研究通常把前n個(gè)數(shù)據(jù)包的統(tǒng)計(jì)信息作為流特征[15]。HUANG 等[16]通過實(shí)驗(yàn)證明了僅使用網(wǎng)絡(luò)流的前幾個(gè)數(shù)據(jù)包進(jìn)行分類能同時(shí)兼顧效率與精度。由于網(wǎng)絡(luò)層析成像技術(shù)使用的網(wǎng)絡(luò)探測(cè)方法具有固定的傳輸模式,且其早期子流的特征能夠基本反映整條流的網(wǎng)絡(luò)特征,因此本文以網(wǎng)絡(luò)流前5 個(gè)數(shù)據(jù)包的統(tǒng)計(jì)特征和到達(dá)時(shí)間及五元組信息作為網(wǎng)絡(luò)流的特征,如表1 所示。
表1 網(wǎng)絡(luò)流特征信息Table 1 Network traffic characteristics information
1)IP 地址距離
IP 地址可以標(biāo)識(shí)端節(jié)點(diǎn)的網(wǎng)絡(luò)位置,IP 地址距離是源/目的IP 地址相與的結(jié)果,可以度量2 個(gè)IP 地址的距離。給定源IP 地址[10.0.0.1]和目的IP 地址[10.0.0.2],逐位相與結(jié)果為1,表明2 個(gè)地址非常接近,可能位于同一子網(wǎng)中。
2)數(shù)據(jù)包大小的方差
網(wǎng)絡(luò)層析成像在探測(cè)時(shí)不同探測(cè)流的數(shù)據(jù)包大小可能不同,但在同一條探測(cè)流中的數(shù)據(jù)包大小通常是一致的。為了使這種特性更好地應(yīng)用到分類中,對(duì)數(shù)據(jù)包的大小進(jìn)行方差計(jì)算,數(shù)據(jù)包大小波動(dòng)越小,方差越小。
3)時(shí)間間隔
網(wǎng)絡(luò)層析成像探測(cè)數(shù)據(jù)包以恒定的時(shí)間間隔傳輸,以消除隨機(jī)測(cè)量噪聲。在數(shù)據(jù)收集階段記錄了每條流的前5 個(gè)數(shù)據(jù)包的到達(dá)時(shí)間,再增加5 個(gè)數(shù)據(jù)包之間的時(shí)間間隔特征。
4)時(shí)間間隔方差
不同探測(cè)流的探測(cè)包時(shí)間間隔大小可能不相同,但在同一條探測(cè)流內(nèi)的探測(cè)包時(shí)間間隔是一樣的。因此,采用時(shí)間間隔方差來衡量數(shù)據(jù)包時(shí)間間隔的波動(dòng)。
5)反向流
網(wǎng)絡(luò)層析成像從同一個(gè)源節(jié)點(diǎn)發(fā)出探測(cè)包,在目的節(jié)點(diǎn)觀測(cè)探測(cè)包的性能,不要求有從目的節(jié)點(diǎn)到源節(jié)點(diǎn)的反向流。然而,很多正常的網(wǎng)絡(luò)流是有反向流的,如實(shí)時(shí)視頻語音通話、網(wǎng)站表單驗(yàn)證等,因此,是否存在反向流也是檢測(cè)探測(cè)流的一個(gè)特征。
網(wǎng)絡(luò)層析成像探測(cè)流因其特殊的測(cè)量方式,IP地址距離、數(shù)據(jù)包大小方差、時(shí)間間隔等特征存在明顯的規(guī)律,與正常網(wǎng)絡(luò)流區(qū)別較大,但是探測(cè)流之間的區(qū)別較小,如“三明治”探測(cè)方法中的2 個(gè)小數(shù)據(jù)包與“背靠背”探測(cè)方法中的數(shù)據(jù)包IP 地址距離、數(shù)據(jù)包大小、時(shí)間間隔等特征區(qū)別較小,無法根據(jù)單個(gè)探測(cè)流的特征識(shí)別探測(cè)模式,而探測(cè)流的主要區(qū)別在于探測(cè)流之間的整體傳輸模式,需要提取多個(gè)探測(cè)流之間的相關(guān)關(guān)系來區(qū)分傳輸模式。因此,本文將網(wǎng)絡(luò)層析成像探測(cè)流分類過程分為2 步:首先,以單條流的特征來識(shí)別網(wǎng)絡(luò)流中的探測(cè)流;然后,從識(shí)別到探測(cè)流開始,以連續(xù)到達(dá)的k條探測(cè)流視為一塊,以塊的形式提取探測(cè)流相關(guān)關(guān)系特征,識(shí)別探測(cè)流塊的傳輸模式??紤]到探測(cè)流與正常數(shù)據(jù)流的區(qū)別,在第1 步中使用如表2 所示的特征。
表2 探測(cè)行為識(shí)別采用的特征信息Table 2 Feature information used for probe behavior recognition
第2 步要對(duì)識(shí)別出的探測(cè)流類型進(jìn)行分類??紤]到探測(cè)流之間的區(qū)別主要在于傳輸模式的差異,而單個(gè)探測(cè)流不易識(shí)別其傳輸模式,此處須通過提取由k條探測(cè)流構(gòu)成的探測(cè)流塊的特征進(jìn)行分類,因此第2 步使用如表3 所示的特征。
表3 探測(cè)流分類采用的特征信息Table 3 Feature information used for probe traffic classification
考慮到?jīng)Q策樹[17]在處理離散特征上的優(yōu)勢(shì),而上述提取的特征多為離散值,因此,本文使用決策樹作為基礎(chǔ)分類器??紤]到網(wǎng)絡(luò)流的特征會(huì)隨著網(wǎng)絡(luò)狀態(tài)的波動(dòng)而不斷發(fā)生改變,普通算法無法處理應(yīng)對(duì)這種不斷發(fā)生變化的情況。增量學(xué)習(xí)的方法是漸進(jìn)地進(jìn)行知識(shí)學(xué)習(xí)、修正和加強(qiáng)已有的知識(shí)的過程[18],其能適應(yīng)不斷變化的網(wǎng)絡(luò)流,在學(xué)到與當(dāng)前網(wǎng)絡(luò)狀態(tài)匹配的特征時(shí),還能保存大部分以前已經(jīng)學(xué)到的知識(shí)[19]。因此,本文結(jié)合決策樹算法與增量學(xué)習(xí),設(shè)計(jì)了一種在線流量檢測(cè)方法,使其能夠適應(yīng)不斷變化的網(wǎng)絡(luò)狀況,達(dá)到較高的流量檢測(cè)精度。該檢測(cè)機(jī)制主要分成3 步:
1)初始決策樹生成?;陔x線處理階段提取的初始訓(xùn)練集和探測(cè)流數(shù)據(jù)集創(chuàng)建2 棵初始決策樹T1和T2,其中T1用于探測(cè)流識(shí)別,T2用于探測(cè)流分類。
2)探測(cè)行為識(shí)別。使用T1識(shí)別新到達(dá)的網(wǎng)絡(luò)流是否為探測(cè)流,若識(shí)別結(jié)果為正常數(shù)據(jù)流則直接傳輸,否則,使用T2對(duì)該探測(cè)流進(jìn)行二次分類。識(shí)別完成后將該網(wǎng)絡(luò)流數(shù)據(jù)加入訓(xùn)練集,然后根據(jù)訓(xùn)練集中網(wǎng)絡(luò)流樣本特征的到達(dá)時(shí)間更新樣本權(quán)重,最后,根據(jù)更新后的訓(xùn)練集對(duì)決策樹T1進(jìn)行更新。
3)探測(cè)流分類。將T1最新識(shí)別出的探測(cè)流與其前k-1 個(gè)被識(shí)別出的探測(cè)流合并成探測(cè)流塊,使用T2以提取該探測(cè)流塊的特征進(jìn)行二次分類,識(shí)別出新到達(dá)的探測(cè)流的模式,識(shí)別完成后將該探測(cè)流數(shù)據(jù)加入探測(cè)流數(shù)據(jù)集,然后根據(jù)探測(cè)流數(shù)據(jù)集中樣本的到達(dá)時(shí)間更新樣本權(quán)重,最后,根據(jù)更新后的探測(cè)流數(shù)據(jù)集對(duì)決策樹T2進(jìn)行更新。
下面從初始決策樹生成、探測(cè)行為識(shí)別和探測(cè)流分類這3 個(gè)方面詳細(xì)介紹本文提出的探測(cè)流量在線檢測(cè)機(jī)制。
3.2.1 初始決策樹生成
在流量檢測(cè)系統(tǒng)上線前,需要構(gòu)建初始決策樹T1和T2。決策樹模型呈樹形結(jié)構(gòu),如何確定內(nèi)部分支節(jié)點(diǎn)是創(chuàng)建決策樹的關(guān)鍵。在流量識(shí)別中,選擇特征屬性的順序決定了決策樹的內(nèi)部分支結(jié)構(gòu),直接影響到分類的性能。
信息熵增益率是選擇最佳特征的常用方法之一,表示特征使數(shù)據(jù)集分類的不確定性減少的程度,信息增益大的特征分類能力更強(qiáng)。對(duì)于一個(gè)包含K類樣本的數(shù)據(jù)集D,其信息熵的計(jì)算公式如下:
其中:Ck表示數(shù)據(jù)集中屬于類k的樣本;Pk為樣本的類屬性為k的概率;Wk表示Ck中樣本權(quán)重的總和;WD為所有樣本權(quán)重的總和。在數(shù)據(jù)集樣本權(quán)重都為1時(shí),Pk=|Ck|/|D|,|Ck|表示Ck中的樣本個(gè)數(shù),|D|表示數(shù)據(jù)集D的總樣本個(gè)數(shù)。攻擊者在網(wǎng)絡(luò)層析成像探測(cè)時(shí)為了達(dá)到隱蔽性的目的,探測(cè)包造成的網(wǎng)絡(luò)負(fù)載通常為鏈路帶寬的1%~2%,而總體網(wǎng)絡(luò)負(fù)載比例一般在30%~70%之間,這會(huì)導(dǎo)致數(shù)據(jù)集中正常網(wǎng)絡(luò)流的樣本數(shù)量大于探測(cè)流的樣本數(shù)量。為了解決數(shù)據(jù)集類別不平衡的問題,本文給小類樣本賦予更高的權(quán)重,權(quán)重大小由數(shù)據(jù)集中大類樣本數(shù)量與小類樣本數(shù)量的比例決定,大類與小類之間的權(quán)重關(guān)系如下:
其 中:wk1和wk2分別為 類k1和 類k2的樣本權(quán)重;|Ck1|為類Ck1樣本個(gè)數(shù);|Ck2|為類Ck2樣本個(gè)數(shù)。本文將大類即正常數(shù)據(jù)流這一類的權(quán)重設(shè)定1,則探測(cè)流數(shù)據(jù)的權(quán)重為|Cnormal|/|Cprob|,其中:|Cnormal|為正常網(wǎng)絡(luò)流樣本個(gè)數(shù);|Cprob|為探測(cè)流樣本個(gè)數(shù)。
設(shè)數(shù)據(jù)集D的特征集為A={A1,A2,…,An},每個(gè)特征Ai能取ni個(gè)不同的值{ai,1,ai,2,…,ai,ni}。根據(jù)特征Ai的取值可以將數(shù)據(jù)集D分為ni個(gè)子集D1,D2,…,Dni,|Dj|為子集Dj中的樣 本個(gè)數(shù)|D|,Wij代表分支ai,j的權(quán)重,其值為子集Dj中樣本權(quán)重總和。記子集Dj中樣本類屬性為p的樣本的集合為Djp,Wijp表示Djp中樣本權(quán)重的總和。特征Ai的條件信息熵為:
其中:Pi是特征Ai取值為ai的概率。信息增益的定義為:
信息增益的值與訓(xùn)練數(shù)據(jù)集相關(guān),當(dāng)訓(xùn)練數(shù)據(jù)集的信息熵大時(shí),信息增益值會(huì)偏大。因此,使用信息增益率進(jìn)行改進(jìn):
在初始決策樹T1的生成過程中,首先利用離線階段收集的初始數(shù)據(jù)集D1和特征集A(如表2 所示),計(jì)算初始數(shù)據(jù)集D1的信息熵和每個(gè)特征的信息增益率,然后根據(jù)信息增益率的值選出最佳分裂特征,以最佳分裂特征為根節(jié)點(diǎn),并根據(jù)最佳分裂特征劃分子集,用剩余的特征遞歸構(gòu)建子樹,最后得到完整的決策樹T1。初始決策樹T2的創(chuàng)建步驟與創(chuàng)建T1一樣,區(qū)別在于初始數(shù)據(jù)集和特征集。初始數(shù)據(jù)集D2是從數(shù)據(jù)集D1中分類出來的探測(cè)流集合,特征集B如表3 所示。
在初始決策樹訓(xùn)練完成后,用分層交叉驗(yàn)證法對(duì)決策樹進(jìn)行后剪枝,提升決策樹分類的泛化能力。
3.2.2 探測(cè)行為識(shí)別
流量檢測(cè)系統(tǒng)在線后,入口交換機(jī)監(jiān)聽到實(shí)時(shí)網(wǎng)絡(luò)流,根據(jù)決策樹T1識(shí)別網(wǎng)絡(luò)流中攻擊者發(fā)出的探測(cè)流。由于網(wǎng)絡(luò)流的特征會(huì)隨時(shí)間發(fā)生變化,而當(dāng)前流與最近到達(dá)的流相關(guān)性高,與最開始到達(dá)的流相關(guān)性低,因此本文引入衰落模型的概念,根據(jù)流到達(dá)的先后順序?qū)?shù)據(jù)進(jìn)行加權(quán)。本文應(yīng)用一個(gè)具有指數(shù)函數(shù)的衰落模型來設(shè)置樣本e的權(quán)重:
其中:λ為衰落因子,0<λ<1。為減少實(shí)時(shí)更新數(shù)據(jù)集實(shí)例權(quán)重的時(shí)間花銷,根據(jù)網(wǎng)絡(luò)流到達(dá)的順序?qū)?shù)據(jù)集中的樣本進(jìn)行編號(hào),第一個(gè)到達(dá)的網(wǎng)絡(luò)流樣本序號(hào)設(shè)置為1,最新到達(dá)的實(shí)例序號(hào)為t,Δt是當(dāng)前樣本的序號(hào)與數(shù)據(jù)集中樣本序號(hào)的差值。wk是樣本的類別權(quán)重,表示類別為k的樣本的權(quán)重大小。每新到達(dá)一個(gè)流時(shí),都更新數(shù)據(jù)集中樣本的權(quán)重。樣本權(quán)重更新會(huì)引起特征權(quán)重的變化,即決策樹中每個(gè)節(jié)點(diǎn)分支的權(quán)重發(fā)生改變,而權(quán)重過小的分支意味著很少或者很舊的樣本屬于這一特征的分類決策下,對(duì)整體分類貢獻(xiàn)不大,因此,對(duì)這類分支予與刪除操作,而權(quán)重較大且不純的分支則進(jìn)行繼續(xù)生長。
探測(cè)流模式識(shí)別的在線更新算法如算法1 所示。算法輸入數(shù)據(jù)集D和決策樹T,以及相關(guān)參數(shù)即衰落因子λ、節(jié)點(diǎn)權(quán)重下界參數(shù)α、節(jié)點(diǎn)權(quán)重上界參數(shù)β,輸出更新后的數(shù)據(jù)集D'和決策樹T'。該算法首先計(jì)算數(shù)據(jù)集中的每個(gè)樣本與當(dāng)前樣本的序號(hào)差值(第2 行),接著根據(jù)式(6)更新樣本權(quán)重(第3 行),然后再計(jì)算節(jié)點(diǎn)權(quán)重的平均值(第5 行),從根節(jié)點(diǎn)開始遍歷決策樹中所有節(jié)點(diǎn)(第6 行),根據(jù)新的樣本權(quán)重更新節(jié)點(diǎn)分支的權(quán)重值(第8 行),若該分支為葉子節(jié)點(diǎn)分支且權(quán)重值大于上界閾值(參數(shù)β與節(jié)點(diǎn)權(quán)重平均值的乘積),就為該分支創(chuàng)建子樹(第9~10 行),并剪枝權(quán)重小于下界閾值(參數(shù)α與節(jié)點(diǎn)權(quán)重平均值的乘積)的分支(第11~12 行)。
算法1OnlineUpdate
3.2.3 探測(cè)流分類
在識(shí)別出探測(cè)流后,要進(jìn)一步區(qū)分探測(cè)流的模式。探測(cè)流分類算法如算法2 所示。新的網(wǎng)絡(luò)流e到達(dá)后,首先根據(jù)決策樹T1區(qū)分出探測(cè)流和正常流(第1 行),并將分類結(jié)果加入到原始數(shù)據(jù)集(第2~3 行),然后根據(jù)在線更新算法對(duì)決策樹T1和原始數(shù)據(jù)集D1進(jìn)行更新(第4 行)。如果新到達(dá)的流是識(shí)別為正常數(shù)據(jù)流(第5 行),直接輸出分類結(jié)果(第6 行);否則用列表tmpProbData 存儲(chǔ)探測(cè)流數(shù)據(jù)(第8 行),直到收集滿k個(gè)探測(cè)流(第10 行),提取這k個(gè)探測(cè)流的特征(第11 行),根據(jù)決策樹T2進(jìn)行分類(第12 行),將分類結(jié)果和探測(cè)流數(shù)據(jù)加入到探測(cè)流數(shù)據(jù)集中(第13~14 行),并進(jìn)行更新(第15 行),以及將列表清空,等待下一個(gè)探測(cè)流進(jìn)入(第16 行),最后輸出探測(cè)流模式的類別(第18 行)。
算法2Attack flow classification
在識(shí)別出探測(cè)包,并對(duì)探測(cè)包的模式進(jìn)行準(zhǔn)確分類后,需要對(duì)探測(cè)包進(jìn)行相應(yīng)的混淆操作,具體的混淆操作方法與探測(cè)包的探測(cè)模式和使用的性能參數(shù)類型相關(guān)。為了使攻擊者推斷出混淆后的網(wǎng)絡(luò)拓?fù)?,需要將攻擊者測(cè)量的端到端性能修改成混淆網(wǎng)絡(luò)拓?fù)涞男阅?,本文基于文獻(xiàn)[5]提出的方法構(gòu)建混淆網(wǎng)絡(luò)拓?fù)浜陀?jì)算混淆網(wǎng)絡(luò)拓?fù)涞南嚓P(guān)性能。
性能參數(shù)類型與探測(cè)模式有關(guān),網(wǎng)絡(luò)層析成像拓?fù)渫茢喑S玫木W(wǎng)絡(luò)性能參數(shù)有排隊(duì)時(shí)延、時(shí)延協(xié)方差和成功傳輸率,排隊(duì)時(shí)延可以通過“三明治”分組列車探測(cè)方法得到,時(shí)延協(xié)方差和成功傳輸率通過“背靠背”探測(cè)方法得到。相關(guān)研究表明[10,12],不同性能參數(shù)在網(wǎng)絡(luò)環(huán)境中的適應(yīng)情況不同,當(dāng)網(wǎng)絡(luò)負(fù)載較小時(shí),網(wǎng)絡(luò)中的時(shí)延和丟包較少,測(cè)量分組在共享鏈路中的時(shí)延變化較小,因此,時(shí)延協(xié)方差和成功傳輸率性能參數(shù)不適用于網(wǎng)絡(luò)負(fù)載較小的網(wǎng)絡(luò)環(huán)境,而當(dāng)性能參數(shù)為排隊(duì)時(shí)延時(shí),端到端時(shí)延完全由“三明治”測(cè)量中的大數(shù)據(jù)包產(chǎn)生的,測(cè)量結(jié)果較為準(zhǔn)確,推斷的網(wǎng)絡(luò)拓?fù)錅?zhǔn)確性最高;當(dāng)網(wǎng)絡(luò)負(fù)載適中時(shí),網(wǎng)絡(luò)中的背景流量較多,影響排隊(duì)時(shí)延的概率增大,而測(cè)量分組在共享鏈路中的時(shí)延變化較大,節(jié)點(diǎn)間共享鏈路的時(shí)延方差較大,時(shí)延協(xié)方差性能參數(shù)推斷的網(wǎng)絡(luò)拓?fù)錅?zhǔn)確性最高;當(dāng)網(wǎng)絡(luò)負(fù)載較大時(shí),網(wǎng)絡(luò)中丟包較多,丟包率較大,導(dǎo)致測(cè)量的樣本數(shù)量大大減少,使得時(shí)延協(xié)方差和排隊(duì)時(shí)延性能參數(shù)測(cè)量準(zhǔn)確率下降,而采用成功傳輸率性能參數(shù)可以較好地反映節(jié)點(diǎn)間共享鏈路的情況。
因此,本文結(jié)合網(wǎng)絡(luò)負(fù)載情況推斷攻擊者使用的端到端性能參數(shù)類型。如果探測(cè)包的探測(cè)模式是“三明治”分組列車,那么攻擊者采用性能參數(shù)為排隊(duì)時(shí)延;如果探測(cè)包的探測(cè)模式是“背靠背”探測(cè),需要網(wǎng)絡(luò)負(fù)載信息進(jìn)行輔助判斷,如果網(wǎng)絡(luò)負(fù)載較輕,那么攻擊者采用性能參數(shù)是時(shí)延協(xié)方差,否則攻擊者采用性能參數(shù)是成功傳輸率。
本文為每種性能參數(shù)都設(shè)計(jì)了相應(yīng)的混淆操作方案。以圖4 為例,假設(shè)在真實(shí)網(wǎng)絡(luò)中,攻擊者從源節(jié)點(diǎn)S發(fā)出一組探測(cè)包,分別到達(dá)目的節(jié)點(diǎn)i和目的節(jié) 點(diǎn)j,P(i,j)為節(jié)點(diǎn)i和節(jié)點(diǎn)j的父節(jié) 點(diǎn)。鏈 路(S→P(i,j))為節(jié)點(diǎn)i和節(jié)點(diǎn)j的共享路徑,XP,(i,j)為共享路徑的性能,Xi,(i,j)為鏈路(P(i,j) →i)的性能,Xj,(i,j)為鏈路(P(i,j) →j)的性能,Yi,(i,j)和Yj,(i,j)分別為攻擊者在目的節(jié)點(diǎn)i和目的節(jié)點(diǎn)j測(cè)量到的端到端性能。根據(jù)文獻(xiàn)[5]可以計(jì)算得到混淆網(wǎng)絡(luò)中節(jié)點(diǎn)i和節(jié)點(diǎn)j的相關(guān)性能為XP',(i,j),為了將真實(shí)網(wǎng)絡(luò)拓?fù)鋫窝b成混淆網(wǎng)絡(luò)拓?fù)洌€需計(jì)算混淆網(wǎng)絡(luò)的端到端性能Yi',(i,j)和Yj',(i,j),將真實(shí)網(wǎng)絡(luò)的端到端性能Yi,(i,j)和Yj,(i,j)修改成混淆網(wǎng)絡(luò)的端到端性能Yi',(i,j)和Yj',(i,j),每種性能參數(shù)的混淆操作方案和計(jì)算過程如圖4 所示。
1)排隊(duì)時(shí)延
排隊(duì)時(shí)延由“三明治”測(cè)量包中的大數(shù)據(jù)包在經(jīng)過節(jié)點(diǎn)和鏈路時(shí)產(chǎn)生,導(dǎo)致跟在其后的第2 個(gè)小數(shù)據(jù)包與第1 個(gè)小數(shù)據(jù)包到達(dá)目的節(jié)點(diǎn)的時(shí)間隔間變大。因此,排隊(duì)時(shí)延性能參數(shù)的混淆操作只需延遲“三明治”分組列車中的第2 個(gè)小數(shù)據(jù)包,延遲時(shí)間Dt為混淆網(wǎng)絡(luò)端到端時(shí)延Yi',(i,j)與真實(shí)網(wǎng)絡(luò)的端到端時(shí)延Yi,(i,j)的差:
需要說明的是,在實(shí)際的網(wǎng)絡(luò)操作中,增加探測(cè)包的時(shí)延和丟棄概率比減少探測(cè)包的時(shí)延和丟棄概率簡單得多,因此在與時(shí)延相關(guān)的性能參數(shù)混淆操作中,本文一律采取延遲探測(cè)包,在成功傳輸率性能參數(shù)的混淆操作中采取丟棄探測(cè)包。
2)時(shí)延協(xié)方差
節(jié)點(diǎn)i和節(jié)點(diǎn)j的時(shí)延協(xié)方差由“背靠背”探測(cè)方法測(cè)量的端到端時(shí)延計(jì)算得到,根據(jù)網(wǎng)絡(luò)層析成像中鏈路獨(dú)立性假設(shè),節(jié)點(diǎn)對(duì)的端到端時(shí)延協(xié)方差為共享路徑時(shí)延的方差:
根據(jù)式(9)所示的協(xié)方差計(jì)算公式可以得到混淆網(wǎng)絡(luò)拓?fù)涞亩说蕉藭r(shí)延協(xié)方差計(jì)算公式,如式(10)所示:
在實(shí)際的網(wǎng)絡(luò)探測(cè)中,攻擊者會(huì)向每個(gè)節(jié)點(diǎn)對(duì)發(fā)送多個(gè)探測(cè)包組,以消除測(cè)量誤差。而根據(jù)文獻(xiàn)[6]計(jì)算混淆網(wǎng)絡(luò)的相關(guān)時(shí)延時(shí),一個(gè)節(jié)點(diǎn)對(duì)通過計(jì)算只能得到唯一確定的相關(guān)時(shí)延XP′,(i,j),因此,將式(10)簡化為:
在已知XP',(i,j)和Xi,(i,j)的情況下求解Yi'(i,j)和Yj',(i,j),有無數(shù)多個(gè)解。時(shí)延協(xié)方差性能參數(shù)的每次混淆操作取其中一組滿足Yi',(i,j)≥Yi,(i,j),Yj',(i,j)≥Yj,(i,j)的解,根據(jù)解Yi',(i,j)和Yj',(i,j)同時(shí)延遲“背靠背”測(cè)量中的2 個(gè)探測(cè)包。到達(dá)目的節(jié)點(diǎn)i的探測(cè)包延遲時(shí)間Cov_delay(i)為:
3)成功傳輸率
成功傳輸率表示探測(cè)包在目的節(jié)點(diǎn)被成功接收的概率,節(jié)點(diǎn)i和節(jié)點(diǎn)j的共享給路徑越長,成功傳輸率越小。假設(shè)XP',(i,j)為混淆網(wǎng)絡(luò)中節(jié)點(diǎn)i和節(jié)點(diǎn)j在共享路徑(S→P(i,j))的成功傳輸率,Xi,(i,j)為鏈路(P(i,j) →j)的成功傳輸率,Xj,(i,j)為鏈路(P(i,j) →j)的成功傳輸率,那么混淆網(wǎng)絡(luò)的端到端成功傳輸率為:
成功傳輸率性能參數(shù)的混淆操作為以一定的概率丟棄探測(cè)包,到達(dá)目的節(jié)點(diǎn)i的探測(cè)包被丟棄的概率為:
綜上所述,在探測(cè)流量的混淆操作中,當(dāng)攻擊者以排隊(duì)時(shí)延作為拓?fù)渫茢嗟男阅軈?shù)時(shí),需要在目的節(jié)點(diǎn)i處的出口節(jié)點(diǎn)上延遲“三明治”分組列車中的第二個(gè)小探測(cè)包,延遲操作的具體實(shí)現(xiàn)是將探測(cè)包存入特殊的隊(duì)列中,延遲時(shí)間由式(7)計(jì)算得到;當(dāng)攻擊者以時(shí)延協(xié)方差作為拓?fù)渫茢嗟男阅軈?shù)時(shí),需要在目的節(jié)點(diǎn)i和節(jié)點(diǎn)j處的2 個(gè)出口節(jié)點(diǎn)上分別的對(duì)“背靠背”探測(cè)中的兩個(gè)探測(cè)包進(jìn)行延遲,延遲時(shí)間由式(12)計(jì)算得到;當(dāng)攻擊者以成功傳輸率作為拓?fù)渫茢嗟男阅軈?shù)時(shí),需要在目的節(jié)點(diǎn)i和節(jié)點(diǎn)j處的2 個(gè)出口節(jié)點(diǎn)上以一定的概率丟棄探測(cè)包,丟包概率由式(14)計(jì)算得到。
本文利用SDN 控制器可以對(duì)網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備進(jìn)行編程的特點(diǎn),在SDN 環(huán)境中實(shí)現(xiàn)了M2NTO 的原型系統(tǒng),其原型架構(gòu)如圖5 所示??紤]到SDN 交換機(jī)的部署成本,M2NTO 只在入口節(jié)點(diǎn)和出口節(jié)點(diǎn)部署SDN 交換機(jī)。在入口SDN 交換機(jī)處監(jiān)聽端節(jié)點(diǎn)發(fā)出的網(wǎng)絡(luò)流,在接入端口收到數(shù)據(jù)包后根據(jù)流表項(xiàng)中的動(dòng)作進(jìn)行操作,若沒有匹配的流表項(xiàng)則以Packet_in 的消息形式轉(zhuǎn)發(fā)至SDN 控制器。SDN 控制器對(duì)捕獲到的網(wǎng)絡(luò)流進(jìn)行識(shí)別和分類,根據(jù)網(wǎng)絡(luò)層析探測(cè)包的類型制定相應(yīng)的拓?fù)浠煜呗?,并通過下發(fā)流表項(xiàng)將混淆策略部署到出口SDN 交換機(jī),出口SDN 交換機(jī)根據(jù)流表信息對(duì)探測(cè)包進(jìn)行丟棄、延遲等混淆操作。
M2NTO 原型系統(tǒng)實(shí)現(xiàn)如圖6 所示。在控制層,使用RYU 控制器[20]進(jìn)行數(shù)據(jù)包特征處理和探測(cè)包檢測(cè),根據(jù)檢測(cè)結(jié)果制定相應(yīng)的流表策略并下發(fā)到SDN 交換機(jī)。在數(shù)據(jù)層,使用Mininet 仿真軟件[21]實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)錁?gòu)建和數(shù)據(jù)包處理相關(guān)的任務(wù),包括數(shù)據(jù)包捕獲和轉(zhuǎn)發(fā)等操作。
圖6 系統(tǒng)實(shí)現(xiàn)Fig.6 System implementation
RYU 控制器主要由3 個(gè)模塊組成:流量監(jiān)聽器,流量檢測(cè)器,流表管理器。流量監(jiān)聽器負(fù)責(zé)捕獲OpenFlow 交換機(jī)接收的數(shù)據(jù)包,并對(duì)數(shù)據(jù)包進(jìn)行預(yù)處理,例如提取數(shù)據(jù)包的基本特征(如IP 地址、網(wǎng)絡(luò)服務(wù)、連接時(shí)間等)。流量檢測(cè)器負(fù)責(zé)對(duì)數(shù)據(jù)包進(jìn)行分類,檢測(cè)模型設(shè)計(jì)為在線增量監(jiān)督學(xué)習(xí)框架,分為離線訓(xùn)練和在線更新兩部分,根據(jù)實(shí)時(shí)流量動(dòng)態(tài)更新數(shù)據(jù)集和分類模型。流表管理器負(fù)責(zé)根據(jù)流量檢測(cè)結(jié)果設(shè)計(jì)流表項(xiàng),將流表項(xiàng)下發(fā)給出口SDN 交換機(jī)。
為評(píng)估防御系統(tǒng)的性能,本文基于Mininet 構(gòu)建Internet Topology Zoo[22]中 的3 種真實(shí) 網(wǎng)絡(luò)拓 撲,分別代表小型網(wǎng)絡(luò)、中型網(wǎng)絡(luò)和大型網(wǎng)絡(luò),其網(wǎng)絡(luò)拓?fù)湫畔⑷绫? 所示。本文遵循樹結(jié)構(gòu)進(jìn)行網(wǎng)絡(luò)層析成像端到端測(cè)量,將拓?fù)渲卸葦?shù)較低的節(jié)點(diǎn)(degree ≤2)視為端節(jié)點(diǎn),并隨機(jī)選擇一個(gè)端節(jié)點(diǎn)作為源節(jié)點(diǎn),其他端節(jié)點(diǎn)作為接收節(jié)點(diǎn)。隨后,計(jì)算源節(jié)點(diǎn)到每個(gè)目的節(jié)點(diǎn)的最短路徑,將所有最短路徑組成網(wǎng)絡(luò)層析成像探測(cè)網(wǎng)絡(luò)。由于目前沒有網(wǎng)絡(luò)層析成像測(cè)量的公開數(shù)據(jù)集,因此本文用Python 的scapy 模塊[23]生成網(wǎng)絡(luò)層析成像探測(cè)包,從源節(jié)點(diǎn)發(fā)送到各個(gè)目的節(jié)點(diǎn)。同時(shí),通過運(yùn)行不同的網(wǎng)絡(luò)應(yīng)用程序來收集各種類型的網(wǎng)絡(luò)流,包括網(wǎng)頁瀏覽、文件傳輸、在線聊天和視頻流等,并將這些數(shù)據(jù)包作為實(shí)驗(yàn)網(wǎng)絡(luò)的背景網(wǎng)絡(luò)流量進(jìn)行重放,通過這種方式模擬真實(shí)的使用場(chǎng)景。
表4 網(wǎng)絡(luò)拓?fù)湫畔able 4 Network topology information
作為經(jīng)典的網(wǎng)絡(luò)層析成像拓?fù)渫茢喾椒ǎ琑NJ算法[14]推斷準(zhǔn)確率高、計(jì)算復(fù)雜度低,本文假設(shè)攻擊者使用RNJ 算法推斷目標(biāo)網(wǎng)絡(luò)拓?fù)?。?shí)驗(yàn)相關(guān)參數(shù)初始設(shè)置為λ=0.999 9、α=0.8、β=1.2、k=3,初始數(shù)據(jù)集的大小為1 000。本文在相同的實(shí)驗(yàn)設(shè)置下重復(fù)執(zhí)行了100 次評(píng)估實(shí)驗(yàn),并將其平均值作為最后的評(píng)估結(jié)果。
為了評(píng)估M2NTO 的流量檢測(cè)性能,在實(shí)驗(yàn)中將M2NTO 與另外幾種經(jīng)典分類算法進(jìn)行了對(duì)比:
1)M2NTO:使用基于在線增量更新的動(dòng)態(tài)決策樹算法對(duì)探測(cè)流量進(jìn)行實(shí)時(shí)檢測(cè)與分類。
2)ProTo:使用增量更新的半監(jiān)督KNN 算法檢測(cè)探測(cè)流量檢測(cè),不對(duì)探測(cè)流量的類型進(jìn)行分類,統(tǒng)一對(duì)探測(cè)流執(zhí)行延遲的拓?fù)浠煜僮鳌?/p>
3)No update:使用沒有在線增量更新的決策樹算法檢測(cè)流量。
4)Random Forest:使用隨機(jī)森林算法檢測(cè)探測(cè)流量,并對(duì)探測(cè)流量的測(cè)量模式進(jìn)行分類。
5)SVM:使用SVM 算法檢測(cè)探測(cè)流量,并對(duì)探測(cè)流量的測(cè)量模式進(jìn)行分類。
6)s-M2NTO:不進(jìn)行兩步分類,直接使用增量更新的動(dòng)態(tài)決策算法對(duì)網(wǎng)絡(luò)流進(jìn)行多分類。
4.2.1 流量檢測(cè)性能評(píng)估
為評(píng)估M2NTO 在線流量檢測(cè)的性能,本文使用了以下3 個(gè)性能指標(biāo):
1)探測(cè)流檢測(cè)率:正確區(qū)分探測(cè)流和正常網(wǎng)絡(luò)流的概率,即分類正確的網(wǎng)絡(luò)流數(shù)量在所有網(wǎng)絡(luò)流數(shù)量中的所占比例。假設(shè)網(wǎng)絡(luò)流集D={(x1,y1),(x2,y2),…,(xn,yn)},其 中,x為網(wǎng)絡(luò) 流,y={'normal','prob'}為網(wǎng)絡(luò)流類別,yi='normal'表示網(wǎng)絡(luò)流xi的真實(shí)類別是正常網(wǎng)絡(luò)流。若yi'為第一棵決策樹對(duì)網(wǎng)絡(luò)流xi的分類結(jié)果,則探測(cè)流的檢測(cè)率為:
2)誤報(bào)率:正常網(wǎng)絡(luò)流被識(shí)別為探測(cè)流的概率,即被錯(cuò)誤識(shí)別的正常網(wǎng)絡(luò)流數(shù)量占所有正常網(wǎng)絡(luò)流數(shù)量之比。錯(cuò)誤識(shí)別的正常網(wǎng)絡(luò)流會(huì)視為探測(cè)流而被延遲或者丟棄,對(duì)網(wǎng)絡(luò)性能造成一定的影響。因此,在網(wǎng)絡(luò)層析成像流量檢測(cè)中應(yīng)盡可能降低誤報(bào)率。誤報(bào)率的定義為:
3)探測(cè)流分類準(zhǔn)確率:探測(cè)流的類型分類正確的概率,即探測(cè)流的類型分類正確的數(shù)量占所有探測(cè)流數(shù)量的比例。假設(shè)探測(cè)流數(shù)據(jù)集Dprob={(x1',z1),(x2',z2),…,(xm',zm)},其中,zi是探測(cè)流xi'的真實(shí)類別,第2 棵決策樹分類的結(jié)果為zi',則探測(cè)流量分類率為:
如圖7 所示,本文評(píng)估了在初始設(shè)置下不同流量檢測(cè)機(jī)制在不同規(guī)模的網(wǎng)絡(luò)中的檢測(cè)性能。由于ProTo 算法只能識(shí)別探測(cè)行為,探測(cè)流分類使用文本提出的動(dòng)態(tài)決策樹機(jī)制進(jìn)行分類。從圖中可看出,直接進(jìn)行多分類的方法探測(cè)流識(shí)別準(zhǔn)確率和分類正確率較低,誤報(bào)率較其他方法高,而增量更新決策樹算法的檢測(cè)率、誤報(bào)率和探測(cè)流分類準(zhǔn)確率都要優(yōu)于其他幾種流量檢測(cè)機(jī)制,在3 種不同規(guī)模的探測(cè)網(wǎng)絡(luò)中本文提出的增量更新決策樹流量檢測(cè)算法識(shí)別探測(cè)流的準(zhǔn)確率都達(dá)到了98%,誤報(bào)率維持在2%左右,探測(cè)流分類準(zhǔn)確率達(dá)到95%以上。實(shí)驗(yàn)結(jié)果表明本文提出的網(wǎng)絡(luò)層析成像流量檢測(cè)機(jī)制能夠準(zhǔn)確識(shí)別網(wǎng)絡(luò)層析成像探測(cè)模式,抵御攻擊者實(shí)施的基于網(wǎng)絡(luò)層析成像技術(shù)的網(wǎng)絡(luò)拓?fù)渫茢唷?/p>
圖7 流量檢測(cè)性能Fig.7 Traffic detection performance
初始訓(xùn)練數(shù)據(jù)集的規(guī)模對(duì)流量檢測(cè)系統(tǒng)的性能有很大的影響,不同初始訓(xùn)練集規(guī)模下的檢測(cè)性能如表5 所示。
表5 不同初始訓(xùn)練集規(guī)模下的檢測(cè)性能Table 5 Detection performance under different initial training set sizes
由表5 可以看出,當(dāng)初始訓(xùn)練集規(guī)模從500 增加到3 000 時(shí),不同規(guī)模的網(wǎng)絡(luò)中的探測(cè)流檢測(cè)率和探測(cè)流類型分類正確率都大幅提高,同時(shí)誤報(bào)率也有所下降。
決策樹根據(jù)節(jié)點(diǎn)密度的下限和上限值動(dòng)態(tài)更新,枝剪節(jié)點(diǎn)密度低于下限的節(jié)點(diǎn),分裂節(jié)點(diǎn)密度大于上限的節(jié)點(diǎn)。決策樹的復(fù)雜度和分類準(zhǔn)確率與參數(shù)α和β有關(guān),圖8 顯示了α和β取不同值時(shí),隨著時(shí)間推移網(wǎng)絡(luò)流數(shù)量增加探測(cè)流檢測(cè)率、誤報(bào)率和探測(cè)流分類準(zhǔn)確率的變化。實(shí)驗(yàn)結(jié)果表明,流量檢測(cè)機(jī)制在線后,隨著網(wǎng)絡(luò)中流的數(shù)量增加,探測(cè)流的檢測(cè)率和分類準(zhǔn)確率也隨之增大,誤報(bào)率隨之下降,并且檢測(cè)率和分類準(zhǔn)確率呈現(xiàn)隨著α的增大和β的減小而增加的趨勢(shì)。然而,并不是β值越大越好,過度的生長會(huì)導(dǎo)致決策樹過于復(fù)雜,增加動(dòng)態(tài)更新和分類過程的時(shí)間花銷。實(shí)時(shí)流量檢測(cè)系統(tǒng)要對(duì)準(zhǔn)確率和實(shí)時(shí)性進(jìn)行平衡,在保證高準(zhǔn)確率的同時(shí)也能夠?qū)?shí)時(shí)到達(dá)的流進(jìn)行快速分類,減少對(duì)網(wǎng)絡(luò)性能的影響。
圖8 參數(shù)α 和β 對(duì)檢測(cè)性能的影響Fig.8 Influence of parameters α and β on detection performance
此外,探測(cè)流是以塊為單位提取特征,探測(cè)流分類的準(zhǔn)確率還與塊的大小即k值相關(guān)。圖9 展示了探測(cè)流分類準(zhǔn)確率與k值的關(guān)系,在k=3 時(shí)探測(cè)流分類準(zhǔn)確率最高。這是因?yàn)椤叭髦巍碧綔y(cè)是以3 個(gè)小包夾著一個(gè)大包的數(shù)據(jù)包組的方式進(jìn)行探測(cè),4 個(gè)探測(cè)流為一塊提取的特征更具代表性。
圖9 探測(cè)流分類準(zhǔn)確率與k 值的關(guān)系Fig.9 Relation between classification accuracy of probe flow and the value of k
4.2.2 混淆效果評(píng)估
網(wǎng)絡(luò)拓?fù)浠煜哪繕?biāo)是混淆攻擊者的測(cè)量結(jié)果使其推斷出虛假的網(wǎng)絡(luò)拓?fù)?,攻擊者推斷的虛假拓?fù)渑c真實(shí)網(wǎng)絡(luò)拓?fù)渲g的差距越大表示混淆效果越好,網(wǎng)絡(luò)拓?fù)浠煜龣C(jī)制對(duì)抗網(wǎng)絡(luò)層析成像探測(cè)行為的有效性越高。樹編輯距離是衡量兩棵樹之間差異性的常用指標(biāo)[24],表示通過替換、插入、刪除等編輯操作將一棵樹轉(zhuǎn)換為另一顆樹的成本。為了使評(píng)估更加直觀,本文使用相似度分?jǐn)?shù)進(jìn)行評(píng)估,其公式如下:
Ssimi的取值范圍為[0,1],TED(T')表示真實(shí)網(wǎng)絡(luò)拓?fù)銽轉(zhuǎn)化為攻擊者推斷的虛假網(wǎng)絡(luò)拓?fù)銽'之間的編輯成本,TED(T)表示從頭構(gòu)建T所需的編輯成本,TED(T')表示從頭構(gòu)建T'的編輯成本。真實(shí)網(wǎng)絡(luò)拓?fù)渑c攻擊者推斷的虛假拓?fù)湎嗨贫仍酱?,Ssimi的值越大,當(dāng)兩個(gè)網(wǎng)絡(luò)拓?fù)渫耆嗤瑫r(shí),Ssimi=1。
由于攻擊者在用網(wǎng)絡(luò)層析成像技術(shù)進(jìn)行拓?fù)涮綔y(cè)時(shí),會(huì)根據(jù)網(wǎng)絡(luò)負(fù)載情況調(diào)整探測(cè)模式并選擇不同的網(wǎng)絡(luò)性能指標(biāo)作為端到端性能參數(shù),因此,本文比較了當(dāng)網(wǎng)絡(luò)負(fù)載不同時(shí),ProTo 拓?fù)浠煜龣C(jī)制、AntiTomo 拓?fù)浠煜龣C(jī)制和本文所提出的拓?fù)浠煜龣C(jī)制在3 個(gè)不同規(guī)模的網(wǎng)絡(luò)拓?fù)渲械幕煜Ч?/p>
實(shí)驗(yàn)結(jié)果如圖10 所示,在網(wǎng)絡(luò)沒有任何防護(hù)措施時(shí),攻擊者推斷的網(wǎng)絡(luò)拓?fù)渑c真實(shí)網(wǎng)絡(luò)拓?fù)涞南嗨贫容^大。ProTo 和AntiTomo 只有在網(wǎng)絡(luò)負(fù)載較低時(shí)才能降低攻擊推斷的網(wǎng)絡(luò)拓?fù)渑c真實(shí)網(wǎng)絡(luò)拓?fù)涞南嗨菩裕煜ЧS著網(wǎng)絡(luò)負(fù)載增加而變差,而M2NTO 在網(wǎng)絡(luò)負(fù)載較小、網(wǎng)絡(luò)負(fù)載適中和網(wǎng)絡(luò)負(fù)載較大的情況下都能顯著降低攻擊者推斷的網(wǎng)絡(luò)拓?fù)渑c真實(shí)網(wǎng)絡(luò)拓?fù)涞南嗨菩?。這是因?yàn)锳ntiTomo 和ProTo 都只通過增加探測(cè)包的排隊(duì)時(shí)延來混淆探測(cè)包的測(cè)量結(jié)果,而排隊(duì)時(shí)延由“三明治”分組列車方法測(cè)量得到,但“三明治”分組列車測(cè)量方法只有在網(wǎng)絡(luò)負(fù)載較小的時(shí)候測(cè)量結(jié)果較為準(zhǔn)確,隨著網(wǎng)絡(luò)負(fù)載增大,出現(xiàn)鏈路擁塞的概率加大,探測(cè)包的排隊(duì)時(shí)延會(huì)受到鏈路擁塞的影響,測(cè)量的準(zhǔn)確降低,導(dǎo)致混淆效果變差,并且網(wǎng)絡(luò)負(fù)載發(fā)生變化,攻擊者可能會(huì)采用其他測(cè)量方法和其他性能指標(biāo),AntiTomo 不識(shí)別網(wǎng)絡(luò)層析成像探測(cè)包,ProTo 沒有對(duì)探測(cè)包的測(cè)量方法進(jìn)行分類,兩者都感知不到攻擊者探測(cè)策略的變換。而M2NTO 不僅識(shí)別探測(cè)包的測(cè)量方法類型,還會(huì)根據(jù)網(wǎng)絡(luò)負(fù)載變化調(diào)整混淆操作,可以有效對(duì)抗基于網(wǎng)絡(luò)層析成像的拓?fù)渫茢唷?/p>
圖10 拓?fù)浠煜阅軐?duì)比Fig.10 Topology obfuscation performance comparison
4.2.3 實(shí)時(shí)性評(píng)估
在線分類對(duì)實(shí)時(shí)性有很高的要求,實(shí)時(shí)性的要求包含兩個(gè)方面:快速的線上檢測(cè)和快速的模型更新。為評(píng)估本文提出的網(wǎng)絡(luò)層析成像流量檢測(cè)機(jī)制的實(shí)時(shí) 性,本文在8 核2.30 GHz Intel?CoreTMi7-10875H CPU 和16 GB RAM 的電腦上,測(cè)試了在不同數(shù)據(jù)集規(guī)模中動(dòng)態(tài)決策樹模型更新和網(wǎng)絡(luò)層析成像探測(cè)流檢測(cè)與分類所消耗的平均時(shí)長,如圖11 所示。模型更新和探測(cè)流實(shí)時(shí)檢測(cè)分類的平均時(shí)長隨著數(shù)據(jù)集規(guī)模增大而增加,在數(shù)據(jù)集規(guī)模為5 000時(shí),識(shí)別探測(cè)流的平均時(shí)長約為2.4 ms,模型更新時(shí)間為1.5 ms,這說明探測(cè)流量檢測(cè)機(jī)制可以在極短的時(shí)間內(nèi)識(shí)別探測(cè)流,從而適應(yīng)高速網(wǎng)絡(luò)流環(huán)境。
圖11 探測(cè)流檢測(cè)與模型更新效率Fig.11 Efficiency of probe flow detection and model update
作為一種典型的網(wǎng)絡(luò)偵察方法,攻擊者使用網(wǎng)絡(luò)層析成像技術(shù)可以準(zhǔn)確推斷目標(biāo)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),精準(zhǔn)攻擊網(wǎng)絡(luò)中的關(guān)鍵鏈路和關(guān)鍵節(jié)點(diǎn)。為了對(duì)抗基于網(wǎng)絡(luò)層析成像的拓?fù)渫茢啵疚奶岢隽藢?duì)抗多模式網(wǎng)絡(luò)層析成像的拓?fù)浠煜龣C(jī)制M2NTO。M2NTO 的主要思想是使用增量更新的動(dòng)態(tài)決策樹算法識(shí)別攻擊者的多樣化探測(cè)行為,在此基礎(chǔ)上根據(jù)測(cè)量方法類型和網(wǎng)絡(luò)負(fù)載情況判斷攻擊者進(jìn)行網(wǎng)絡(luò)層析成像拓?fù)渫茢嗍褂玫木W(wǎng)絡(luò)性能參數(shù),再對(duì)探測(cè)包進(jìn)行相應(yīng)的混淆操作,從而使攻擊者得到錯(cuò)誤的測(cè)量結(jié)果,推斷出虛假的網(wǎng)絡(luò)拓?fù)洹W詈?,利用SDN 技術(shù)實(shí)現(xiàn)了M2NTO 的原型系統(tǒng),并在幾種不同規(guī)模的網(wǎng)絡(luò)中進(jìn)行了仿真實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果顯示,M2NTO 能夠以較高的準(zhǔn)確率和實(shí)時(shí)性識(shí)別網(wǎng)絡(luò)層析成像探測(cè)包和探測(cè)模式,在不同網(wǎng)絡(luò)負(fù)載情況下也能達(dá)到較好的混淆效果。在下一步的工作中,作者將進(jìn)一步優(yōu)化探測(cè)流量檢測(cè)算法,并結(jié)合多源混淆拓?fù)渖伤惴ɡ^續(xù)擴(kuò)展M2NTO,提升混淆效果。