張曉航,李 政, 朱曉明,張海鋒,趙博宇
(1.中國(guó)電科網(wǎng)絡(luò)通信研究院,河北 石家莊 050081; 2.天津工業(yè)大學(xué)電氣與電子工程學(xué)院,天津 300387; 3.天津大學(xué)智能與計(jì)算學(xué)部,天津 300072)
網(wǎng)絡(luò)流量分類(lèi)是指對(duì)收集到的各種應(yīng)用的網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行分類(lèi)識(shí)別,分類(lèi)識(shí)別的結(jié)果是某種應(yīng)用程序或者是根據(jù)服務(wù)質(zhì)量(QoS)要求劃分的某種業(yè)務(wù)類(lèi)型[1]。網(wǎng)絡(luò)流量分類(lèi)是網(wǎng)絡(luò)通信質(zhì)量和網(wǎng)絡(luò)安全等重要任務(wù)的基礎(chǔ)。由于網(wǎng)絡(luò)流量日益劇增,網(wǎng)絡(luò)攻擊手段層出不窮,網(wǎng)絡(luò)安全問(wèn)題日益嚴(yán)重,因此正確管理網(wǎng)絡(luò)資源、分類(lèi)識(shí)別不同類(lèi)型的應(yīng)用程序至關(guān)重要[2]。準(zhǔn)確的流量分類(lèi)方法也已經(jīng)成為網(wǎng)絡(luò)管理任務(wù)的先決條件之一,并且由于其重要性,多年來(lái)開(kāi)發(fā)了許多不同的流量分類(lèi)方法并廣泛應(yīng)用于網(wǎng)絡(luò)安全相關(guān)應(yīng)用研究領(lǐng)域,如服務(wù)質(zhì)量控制、惡意軟件檢測(cè)和入侵檢測(cè)等[3]。
近年來(lái),網(wǎng)絡(luò)安全領(lǐng)域的研究人員開(kāi)發(fā)了許多不同的流量分類(lèi)方法,以適應(yīng)不同的應(yīng)用類(lèi)型和不斷變化的網(wǎng)絡(luò)場(chǎng)景。第一種是傳統(tǒng)的流量分類(lèi)方法,該方法可以歸納為2類(lèi):基于端口的方法[4]和基于有效負(fù)載檢查的方法[5]。然而,大量的網(wǎng)絡(luò)流量數(shù)據(jù)是加密的,這使得這些方法無(wú)法輕松處理加密的網(wǎng)絡(luò)流量。下一代流量分類(lèi)器依賴(lài)于統(tǒng)計(jì)和機(jī)器學(xué)習(xí)方法[6]。這類(lèi)方法基于一些流量統(tǒng)計(jì)特征或時(shí)間序列特征(例如流的持續(xù)時(shí)間、前向到達(dá)間隔時(shí)間)進(jìn)行流量分類(lèi),這使得這類(lèi)方法既能夠分類(lèi)加密流量又能夠分類(lèi)未加密的流量。雖然這類(lèi)方法解決了傳統(tǒng)流量分類(lèi)方法無(wú)法處理的流量加密和分類(lèi)精度降低的問(wèn)題,但它們?cè)谠O(shè)計(jì)合適的特征時(shí)面臨新的挑戰(zhàn)。最新的流量分類(lèi)器是基于深度學(xué)習(xí)的方法。最近,有一些研究通過(guò)深度學(xué)習(xí)方法來(lái)進(jìn)行加密流量分類(lèi)[7],并取得了較高的性能。這些深度學(xué)習(xí)方法可以自動(dòng)提取結(jié)構(gòu)化和復(fù)雜的特征表示,直接從輸入數(shù)據(jù)中訓(xùn)練分類(lèi)器。它們?cè)谝欢ǔ潭壬辖鉀Q了手工設(shè)計(jì)特征的問(wèn)題[8]。此外,基于深度學(xué)習(xí)的方法已經(jīng)應(yīng)用于安全關(guān)鍵領(lǐng)域,如醫(yī)療保健、金融和自動(dòng)駕駛。這些算法可以通過(guò)數(shù)學(xué)變換將高維數(shù)據(jù)映射到低維數(shù)組,但這些映射經(jīng)常被盲目使用,很多例子表明這些映射不一定是正確的[9-10]。
隨著神經(jīng)網(wǎng)絡(luò)分類(lèi)器在現(xiàn)實(shí)應(yīng)用中的部署,它們的預(yù)測(cè)不僅要準(zhǔn)確,而且要可信,這一點(diǎn)至關(guān)重要。然而,在實(shí)際應(yīng)用中部署神經(jīng)網(wǎng)絡(luò)時(shí),對(duì)測(cè)試數(shù)據(jù)的分布往往沒(méi)有過(guò)多控制,對(duì)于完全無(wú)法識(shí)別的或不相關(guān)的輸入也會(huì)傾向于做出高自信的預(yù)測(cè),這就意味著模型出錯(cuò)了,其預(yù)測(cè)是不可信的。因此,一個(gè)可信的模型應(yīng)該可以有效檢測(cè)出無(wú)法識(shí)別或者分布外的數(shù)據(jù)。
本文提出一種基于RBF神經(jīng)網(wǎng)絡(luò)的可信加密流量分類(lèi)方法。該模型基于預(yù)測(cè)的不確定性可以檢測(cè)出分布外的流量數(shù)據(jù),從而有效提高分類(lèi)模型的可信性。具體來(lái)說(shuō),該方法由一個(gè)深度神經(jīng)網(wǎng)絡(luò)模型和一組對(duì)應(yīng)于不同類(lèi)別的質(zhì)心組成。通過(guò)計(jì)算由模型輸出的特征向量和質(zhì)心之間的核函數(shù)來(lái)進(jìn)行預(yù)測(cè),這種類(lèi)型的模型稱(chēng)為RBF網(wǎng)絡(luò)[11]。預(yù)測(cè)的不確定性是用模型輸出到最近質(zhì)心之間的距離來(lái)度量的,特征向量遠(yuǎn)離所有質(zhì)心的數(shù)據(jù)點(diǎn)不屬于任何類(lèi),可以認(rèn)為是分布外的流量數(shù)據(jù)。該方法通過(guò)最小化到正確質(zhì)心的距離,同時(shí)最大化與其他質(zhì)心的距離來(lái)訓(xùn)練模型,從而促使模型將訓(xùn)練數(shù)據(jù)的特征放在一個(gè)特定的質(zhì)心附近。因此,通過(guò)采取梯度懲罰方法來(lái)強(qiáng)制執(zhí)行模型對(duì)輸入的變化敏感,以此可靠地檢測(cè)出分布外的流量數(shù)據(jù)。由于質(zhì)心的不穩(wěn)定性和飽和損耗,RBF網(wǎng)絡(luò)難以?xún)?yōu)化,本文使用分配給質(zhì)心的數(shù)據(jù)點(diǎn)的特征向量的指數(shù)平均移動(dòng)來(lái)更新質(zhì)心,從而使訓(xùn)練穩(wěn)定。
本文的主要工作如下:
1)研究如何將可信性估計(jì)應(yīng)用到加密網(wǎng)絡(luò)流量分類(lèi)領(lǐng)域,有效地提高分類(lèi)模型的可信性,有效檢測(cè)出分布外的流量數(shù)據(jù)。
2)本文所提模型建立在RBF網(wǎng)絡(luò)的思想上,采用一種新的損失函數(shù)和質(zhì)心更新方案來(lái)進(jìn)行訓(xùn)練,并通過(guò)使用梯度懲罰來(lái)加強(qiáng)輸入變化的可檢測(cè)性。
3)在2個(gè)公共加密流量數(shù)據(jù)集上進(jìn)行廣泛的實(shí)驗(yàn),并通過(guò)與現(xiàn)有模型的比較,驗(yàn)證所提算法的有效性。
近年來(lái),網(wǎng)絡(luò)流量的分類(lèi)備受關(guān)注。在本章中,本文概述2種最重要的網(wǎng)絡(luò)流量分類(lèi)方法:1)傳統(tǒng)的機(jī)器學(xué)習(xí)方法;2)基于深度學(xué)習(xí)的方法。以下是對(duì)這些方法的概述。
傳統(tǒng)的機(jī)器學(xué)習(xí)方法通過(guò)選擇一組流量統(tǒng)計(jì)特征對(duì)網(wǎng)絡(luò)流量進(jìn)行分類(lèi)。一些經(jīng)典的機(jī)器學(xué)習(xí)方法已經(jīng)廣泛應(yīng)用于網(wǎng)絡(luò)流量分類(lèi)領(lǐng)域,如支持向量機(jī)(SVM)[13]、樸素貝葉斯[14]、K近鄰(KNN)[15]、C4.5[16]和隨機(jī)森林(RF)[6]。這些研究中最常用的2個(gè)主要統(tǒng)計(jì)特征是:流量統(tǒng)計(jì)特征(例如每個(gè)流的持續(xù)時(shí)間)和數(shù)據(jù)包報(bào)頭統(tǒng)計(jì)特征(例如分組大小、前Np數(shù)據(jù)包間持續(xù)時(shí)間)。
傳統(tǒng)機(jī)器學(xué)習(xí)方法中的一個(gè)常見(jiàn)問(wèn)題是,面對(duì)不斷更新的網(wǎng)絡(luò)應(yīng)用程序,如何設(shè)計(jì)新的有效特征。Draper-Gil等人[17]僅使用與時(shí)間相關(guān)的流量特征(例如流的持續(xù)時(shí)間、流的每秒字節(jié)數(shù)、到達(dá)之間的前向和后向時(shí)間)來(lái)對(duì)傳統(tǒng)加密流量和協(xié)議封裝流量的網(wǎng)絡(luò)流量進(jìn)行分類(lèi),并且發(fā)布了一個(gè)有價(jià)值的數(shù)據(jù)集ISCX VPN-nonVPN。Crotti等人[18]提出了一種基于捕獲的IP數(shù)據(jù)包的3個(gè)簡(jiǎn)單屬性(數(shù)據(jù)包大小、到達(dá)時(shí)間和到達(dá)順序)的流量分類(lèi)方法。通過(guò)對(duì)3種典型應(yīng)用程序(HTTP、SMTP和POP3)產(chǎn)生的流量進(jìn)行分類(lèi),準(zhǔn)確率達(dá)到了91%。Yamansavascilar等人[19]選擇了111個(gè)流量特征,并評(píng)估了4種分類(lèi)算法,即J48、Random Forest、KNN和Bayesian網(wǎng)絡(luò),其中KNN算法對(duì)14種類(lèi)型的應(yīng)用準(zhǔn)確率達(dá)到了94%。隨著網(wǎng)絡(luò)應(yīng)用的不斷更新,這些統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法的主要缺點(diǎn)是特征提取和特征選擇階段耗時(shí)費(fèi)力,并且由于這些方法缺乏學(xué)習(xí)更復(fù)雜模式的能力,準(zhǔn)確性也在下降。
近年來(lái),隨著深度學(xué)習(xí)模型在圖像分類(lèi)、語(yǔ)音識(shí)別等領(lǐng)域的成功應(yīng)用,網(wǎng)絡(luò)安全研究人員最近將這些方法應(yīng)用于流量分類(lèi)[20]。Wang等人[21]討論了基于深度神經(jīng)網(wǎng)絡(luò)的可堆疊自動(dòng)編碼器(SAE)在網(wǎng)絡(luò)流量識(shí)別領(lǐng)域的應(yīng)用,并與標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)進(jìn)行了比較。結(jié)果表明,SAE在58種不同類(lèi)型的協(xié)議識(shí)別中取得了較高的性能。Wang等人[22]提出了一種基于二維卷積神經(jīng)網(wǎng)絡(luò)(2D-CNN)的惡意軟件流量分類(lèi)器,為了解決公共數(shù)據(jù)集包含足夠多的正常和惡意流量數(shù)據(jù)的問(wèn)題,提出了USTC-TFC2016數(shù)據(jù)集。文獻(xiàn)[7]提出了一種基于一維卷積神經(jīng)網(wǎng)絡(luò)(1D-CNN)的端到端加密流量分類(lèi)方法。該方法將特征提取、特征選擇和分類(lèi)器集成到一個(gè)統(tǒng)一的端到端框架中,結(jié)果表明,提取的所有層(all)的會(huì)話和數(shù)據(jù)包含最豐富的特征信息,其分類(lèi)精度始終優(yōu)于Draper-Gil等人[17]設(shè)計(jì)的C4.5分類(lèi)器。
最近一些研究者提出了混合深度學(xué)習(xí)架構(gòu)用于加密流量分類(lèi)。在文獻(xiàn)[23]中提出了基于長(zhǎng)短期記憶(LSTM)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)。根據(jù)真實(shí)的網(wǎng)絡(luò)流量(來(lái)自西班牙學(xué)術(shù)研究骨干網(wǎng),未開(kāi)放),提取與每個(gè)流量相關(guān)的時(shí)間序列作為特征向量,研究分組數(shù)量和特征使用的影響。該框架驗(yàn)證了CNN可以成功應(yīng)用于網(wǎng)絡(luò)流量分類(lèi),并取得了良好的效果(準(zhǔn)確率高達(dá)96.32%,F(xiàn)1值高達(dá)95.74%)。Lotfollahi等人[24]提出了一種稱(chēng)為Deep Packet的加密流量分類(lèi)方法。在最初的數(shù)據(jù)預(yù)處理階段之后,數(shù)據(jù)包被發(fā)送到Deep Packet的SAE和CNN算法中,以對(duì)網(wǎng)絡(luò)流量進(jìn)行分類(lèi)。CNN深度學(xué)習(xí)分類(lèi)模型在應(yīng)用識(shí)別任務(wù)中獲得95%的F1值,在業(yè)務(wù)識(shí)別任務(wù)中獲得97%的F1值。此外,一些研究人員設(shè)計(jì)了一種基于多任務(wù)學(xué)習(xí)框架的網(wǎng)絡(luò)流量分類(lèi)模型。Rezaei等人[25]提出了一種多任務(wù)流量分類(lèi)方法,可以執(zhí)行帶寬、持續(xù)時(shí)間和流量類(lèi)別預(yù)測(cè)任務(wù)。該方法證明,對(duì)于帶寬和持續(xù)時(shí)間預(yù)測(cè)任務(wù),可使用大量容易獲得的數(shù)據(jù)樣本,而對(duì)于流量分類(lèi)任務(wù),僅使用少量數(shù)據(jù)樣本,就可以實(shí)現(xiàn)高精度。Huang等[26]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的多任務(wù)學(xué)習(xí)系統(tǒng)。該系統(tǒng)可以解決惡意軟件流量檢測(cè)、 VPN封裝服務(wù)識(shí)別以及木馬分類(lèi)等問(wèn)題。提出的深度學(xué)習(xí)算法是2D-CNN,在一組CTU-13(惡意軟件)和ISCX VPN-nonVPN流量數(shù)據(jù)集上進(jìn)行了測(cè)試,證明了組合相關(guān)學(xué)習(xí)任務(wù)可以提高每個(gè)任務(wù)的性能。
雖然這些網(wǎng)絡(luò)流量分類(lèi)方法取得了良好的效果,但是分類(lèi)器的可信性卻一直未得到關(guān)注。當(dāng)訓(xùn)練和測(cè)試數(shù)據(jù)采用相同的分布采樣時(shí),神經(jīng)網(wǎng)絡(luò)具有很好的泛化能力。然而,在實(shí)際應(yīng)用中部署神經(jīng)網(wǎng)絡(luò)時(shí),對(duì)測(cè)試數(shù)據(jù)的分布往往沒(méi)有過(guò)多控制,對(duì)于完全無(wú)法識(shí)別的或不相關(guān)的輸入也會(huì)傾向于做出高度自信的預(yù)測(cè)。如果分類(lèi)器不能指出它們可能出錯(cuò)的時(shí)間,就會(huì)限制它們的使用,或?qū)е聡?yán)重的事故。當(dāng)顯示新的、未見(jiàn)過(guò)的流量類(lèi)型時(shí),分類(lèi)器應(yīng)當(dāng)有效檢測(cè)出這部分流量,并且為這些新的網(wǎng)絡(luò)流量做出一個(gè)高度不可信的預(yù)測(cè)。因此,能夠準(zhǔn)確地檢測(cè)出分布外的流量數(shù)據(jù),對(duì)于網(wǎng)絡(luò)安全和網(wǎng)絡(luò)監(jiān)管領(lǐng)域至關(guān)重要。
(4)解決。檢驗(yàn)人員每月都要進(jìn)行檢驗(yàn)工作總結(jié),歸納已經(jīng)完成工作情況以及未完成的工作,總結(jié)每月工作中存在的問(wèn)題以及提出相應(yīng)的改進(jìn)措施,實(shí)現(xiàn)整體工作質(zhì)量目標(biāo)落實(shí)[3] 。
本文提出一種可信的深度學(xué)習(xí)模型來(lái)對(duì)加密網(wǎng)絡(luò)流量進(jìn)行分類(lèi)的方法。所提算法建立在RBF網(wǎng)絡(luò)的思想上并采用一種新的損失函數(shù)和質(zhì)心更新方案來(lái)進(jìn)行訓(xùn)練,通過(guò)使用梯度懲罰強(qiáng)制檢測(cè)輸入的變化,并有效地檢測(cè)出分布外的數(shù)據(jù)。
本文研究通過(guò)一個(gè)可信的深度學(xué)習(xí)模型進(jìn)行加密流量分類(lèi)的方法。如圖1所示,模型主要由2個(gè)部分組成。在數(shù)據(jù)預(yù)處理階段,首先對(duì)原始網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行流量分割和包層選擇,并轉(zhuǎn)換成卷積神經(jīng)網(wǎng)絡(luò)能夠識(shí)別的圖像。接下來(lái)通過(guò)深度學(xué)習(xí)模型進(jìn)行流量分類(lèi)階段,將通過(guò)數(shù)據(jù)預(yù)處理后的原始流量通過(guò)卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行特征提取,對(duì)于每一類(lèi)流量c都包含一個(gè)可學(xué)習(xí)權(quán)重矩陣Wc。通過(guò)使用輸出和類(lèi)質(zhì)心,本文計(jì)算模型輸出和質(zhì)心之間的指數(shù)距離:
圖1 算法模型圖
(1)
公式(1)中,fθ:m→d表示本文所采取的模型映射,m為輸入維度,d為輸出維度,θ為參數(shù),ec為類(lèi)c的類(lèi)質(zhì)心,一個(gè)長(zhǎng)度為n的向量。Wc是一個(gè)n×d的權(quán)重矩陣,其中n為質(zhì)心大小,d為特征提取器輸出大小,σ是一個(gè)超參數(shù)。這個(gè)函數(shù)也被稱(chēng)為徑向基函數(shù)(RBF)核。模型通過(guò)計(jì)算數(shù)據(jù)點(diǎn)x和類(lèi)質(zhì)心E={e1,…,ec}的最大相關(guān)度(即最小距離)來(lái)對(duì)流量進(jìn)行分類(lèi)預(yù)測(cè):
(2)
本文定義模型中的不確定性為模型輸出到最近類(lèi)質(zhì)心之間的距離,特征向量遠(yuǎn)離所有質(zhì)心的數(shù)據(jù)點(diǎn)不屬于任何類(lèi),可以認(rèn)為是分布外的流量數(shù)據(jù)。
maxKc(fθ(x),ec)
(3)
損失函數(shù)是每個(gè)類(lèi)的核值Kc(·,ec)與標(biāo)簽的獨(dú)熱編碼之間的二元交叉熵之和。對(duì)于本文所使用的流量數(shù)據(jù)集{X,Y}中某一數(shù)據(jù)點(diǎn){x,y}有:
(4)
其中,本文把K(fθ(x),ec)縮短為Kc。在訓(xùn)練過(guò)程中,本文對(duì)小批次數(shù)據(jù)點(diǎn)的損失進(jìn)行平均取值,并對(duì)θ和w={W1,…,Wc}執(zhí)行隨機(jī)梯度下降。類(lèi)質(zhì)心E使用屬于該類(lèi)的數(shù)據(jù)點(diǎn)的特征向量的指數(shù)平均移動(dòng)值進(jìn)行更新。如果模型參數(shù)θ和W保持不變,則此更新規(guī)則會(huì)導(dǎo)致質(zhì)心的閉合解,從而使損失最小化:
(5)
其中,nc,t是在小批次t中分配給c類(lèi)數(shù)據(jù)點(diǎn)的數(shù)量;xc,t,i表示小批次在t時(shí)刻c類(lèi)別中的元素i;γ是動(dòng)量,通常設(shè)置為[0.99,0.999],高動(dòng)量導(dǎo)致穩(wěn)定的優(yōu)化。這種更新質(zhì)心的方法在文獻(xiàn)[12]的附錄中有介紹,用于更新量化的潛變量。所提出的設(shè)置導(dǎo)致質(zhì)心在每個(gè)小批次上被推得更遠(yuǎn),而沒(méi)有收斂到一個(gè)穩(wěn)定點(diǎn),本文通過(guò)調(diào)整θ的l2范數(shù)來(lái)避免這種情況,這將有助于模型的優(yōu)化。
深度神經(jīng)網(wǎng)絡(luò)很容易出現(xiàn)特征崩潰,本文通過(guò)使用梯度懲罰正則化表示映射來(lái)避免這種情況。文獻(xiàn)[27]首次引入梯度懲罰來(lái)幫助泛化,將其命名為“雙重反向傳播”。最近,這種類(lèi)型的懲罰已成功用于訓(xùn)練Wasserstein GANs[28]以正則化Lipschitz常數(shù)。在本文的設(shè)置中,考慮以下雙邊懲罰:
(6)
其中,‖·‖2是l2范式,Lipschitz常數(shù)為1。
本文使用的第一個(gè)數(shù)據(jù)集是ISCX VPN-nonVPN[17],該數(shù)據(jù)集包括7種常規(guī)加密流量類(lèi)型和7種協(xié)議封裝流量類(lèi)型;第二個(gè)數(shù)據(jù)集是USTC-TFC2016[7],該數(shù)據(jù)集包括從真實(shí)網(wǎng)絡(luò)環(huán)境中收集的10種公共網(wǎng)站的惡意軟件流量和使用Ixia BPS專(zhuān)業(yè)網(wǎng)絡(luò)流量模擬設(shè)備采集的10種正常流量。
對(duì)于ISCX VPN-nonVPN數(shù)據(jù)集,根據(jù)所從事的應(yīng)用和活動(dòng)進(jìn)行標(biāo)記??紤]到VPN或nonVPN的情況,本文將涉及相同活動(dòng)的不同應(yīng)用程序捕獲的流量聚合到同一個(gè)PCAP文件中,最后標(biāo)注了12類(lèi)流量,如表1所示。對(duì)于USTC-TFC2016數(shù)據(jù)集,本文根據(jù)不同的PCAP文件名進(jìn)行標(biāo)記,共標(biāo)記了20類(lèi)流量。
表1 標(biāo)記ISCX VPN-nonVPN數(shù)據(jù)集
對(duì)加密網(wǎng)絡(luò)流量進(jìn)行分類(lèi)的第一步是根據(jù)不同的劃分粒度將原始網(wǎng)絡(luò)流量劃分為不同的流量單元。同時(shí),每個(gè)數(shù)據(jù)包中可以選擇不同的OSI或TCP/IP層。網(wǎng)絡(luò)流量的分割粒度包括TCP連接、會(huì)話和流量。流被定義為具有相同5元組的所有分組,即源IP、源端口、目的IP、目的端口和傳輸級(jí)協(xié)議。會(huì)話被定義為雙向流。本文分別采用會(huì)話和流的形式來(lái)驗(yàn)證模型的可信性,這也是大多數(shù)研究者采用的流量單位形式。
其次,分析包層的選擇。TCP/IP模型的應(yīng)用層或現(xiàn)場(chǎng)視察模型的第7層應(yīng)該最好地反映流量的固有特征。基于這一假設(shè),Wang等人[21]只選擇了應(yīng)用層,稱(chēng)之為T(mén)CP會(huì)話有效載荷。但是,其他層的數(shù)據(jù)也包含一些流量特征。因此本文選擇了所有協(xié)議層。
由于會(huì)話或流中的IP和MAC信息會(huì)擾亂特征提取過(guò)程,本文分別在數(shù)據(jù)鏈路層和IP層隨機(jī)化MAC地址和IP地址,并將所有文件修剪為統(tǒng)一的長(zhǎng)度。由于流或會(huì)話的前端通常連接數(shù)據(jù)和一些內(nèi)容數(shù)據(jù),它們能最好地反映網(wǎng)絡(luò)流量的相干特性,所以實(shí)驗(yàn)中選擇本文中每個(gè)流或會(huì)話的前784 Byte,文件大則截?cái)?,小則添加0x00將其加到784 Byte,最終提取數(shù)據(jù)生成圖像。分別處理完工作數(shù)據(jù)集后,依據(jù)表2統(tǒng)計(jì)出每種數(shù)據(jù)的樣本數(shù)。另外,實(shí)驗(yàn)將類(lèi)似圖像的28×28字節(jié)流量轉(zhuǎn)換為IDX格式文件,圖2和圖3顯示了USTC-TFC2016和ISCX VPN-nonVPN數(shù)據(jù)集預(yù)處理結(jié)果的可視化展示。
表2 2個(gè)數(shù)據(jù)集的詳細(xì)信息
圖2 USTC-TFC2016數(shù)據(jù)集中所有類(lèi)的可視化
圖3 ISCX VPN-nonVPN數(shù)據(jù)集中所有類(lèi)的可視化
實(shí)驗(yàn)在2個(gè)數(shù)據(jù)集(ISCX VPN-nonVPN和USTC-TFC2016)上評(píng)估了所提出的方法。為了驗(yàn)證提出的方法對(duì)于分布外數(shù)據(jù)檢測(cè)的有效性,對(duì)比了置信度估計(jì)和最新的不確定性估計(jì)方法,包括最大類(lèi)的概率(MCP)[29]、Monte Carlo Dropout(MCDropout)[30]和Deep Ensemble[31],其中基準(zhǔn)方法最大類(lèi)的概率以神經(jīng)網(wǎng)絡(luò)softmax分類(lèi)器輸出的最大分類(lèi)概率作為置信度估計(jì)。通過(guò)使用AUROC(AUROC是接收器工作特性曲線下的區(qū)域,它是一個(gè)與閾值無(wú)關(guān)的度量)來(lái)衡量所提出的方法對(duì)于分布外流量數(shù)據(jù)檢測(cè)方法的有效性。
為了評(píng)估所提出的模型在加密流量分類(lèi)中的準(zhǔn)確性,本文分別與經(jīng)典的機(jī)器學(xué)習(xí)模型SVM[13]、KNN[15]、多層感知機(jī)(MLP)[32]以及卷積神經(jīng)網(wǎng)絡(luò)(CNN)[33]進(jìn)行對(duì)比,其中本文所使用的多層感知機(jī)(MLP)由3層全連接層所構(gòu)成。本文采用了以下評(píng)估指標(biāo):準(zhǔn)確性、精確率、召回率和F1。其中,F(xiàn)1是精確率和召回率的調(diào)和平均值,其最佳值為1,最差值為0。上述指標(biāo)的數(shù)學(xué)描述如下:
(7)
(8)
(9)
(10)
其中,TP、TN、FP和FN分別代表真陽(yáng)性、真陰性、假陽(yáng)性和假陰性。
在實(shí)驗(yàn)中,當(dāng)訓(xùn)練ISCX VPN-nonVPN數(shù)據(jù)時(shí),將小批量設(shè)置為50,并使用SGD優(yōu)化器;學(xué)習(xí)率設(shè)置為0.001,訓(xùn)練時(shí)間設(shè)置為100個(gè)紀(jì)元。在訓(xùn)練USTC-TFC2016數(shù)據(jù)時(shí),使用SGD優(yōu)化器將小批量設(shè)置為128;學(xué)習(xí)率設(shè)置為0.001,訓(xùn)練時(shí)間設(shè)置為50個(gè)紀(jì)元。為了避免測(cè)試的偶然性,本文使用10倍交叉驗(yàn)證來(lái)測(cè)試算法的性能。將數(shù)據(jù)集分為10個(gè)部分,其中9個(gè)部分作為訓(xùn)練數(shù)據(jù),其余部分作為測(cè)試數(shù)據(jù)進(jìn)行測(cè)試。在每次測(cè)試結(jié)束時(shí),模型給出相應(yīng)的結(jié)果,然后用10次測(cè)試的平均結(jié)果作為算法的精度。本文采用Pytorch框架提供的深度學(xué)習(xí)模型來(lái)測(cè)試本文描述的算法。此外,通過(guò)使用Numpy庫(kù)和USTC-TL2016工具對(duì)原始交通數(shù)據(jù)進(jìn)行預(yù)處理,并使用Matplotlib和Seaborn庫(kù)用于可視化實(shí)驗(yàn)結(jié)果。
在評(píng)估過(guò)程中,首先選取了λ的一系列閾值并使用ISCX VPN-nonVPN和USTC-TFC2016這2個(gè)數(shù)據(jù)集輪流作為訓(xùn)練集和測(cè)試集來(lái)計(jì)算不確定性得分。本實(shí)驗(yàn)分別將原始流量以會(huì)話和流為單元進(jìn)行實(shí)驗(yàn)并報(bào)告了AUROC度量,其中值越高越好。在實(shí)驗(yàn)中將ISCX VPN-nonVPN數(shù)據(jù)集中的流量視為分布內(nèi)數(shù)據(jù),將USTC-TFC2016數(shù)據(jù)集中的流量視為分布外數(shù)據(jù)。在ISCX VPN-nonVPN上訓(xùn)練本文提出的模型,并希望它為ISCX VPN-nonVPN測(cè)試集分配低不確定性值;為USTC-TFC2016測(cè)試集分配高不確定性值,因?yàn)樵撃P椭皬奈匆?jiàn)過(guò)該數(shù)據(jù)集,并且它與ISCX VPN-nonVPN數(shù)據(jù)集非常不同。實(shí)驗(yàn)結(jié)果如表3所示,為通過(guò)5次運(yùn)行后的平均結(jié)果,λ=0.1時(shí)產(chǎn)生最佳的AUROC值,此時(shí)分類(lèi)精度也達(dá)到最高?;诖耍疚暮罄m(xù)的實(shí)驗(yàn)選擇λ=0.1。
表3 不同閾值選擇下5次實(shí)驗(yàn)的平均ACC和平均AUROC
為了表明本文所提的方法對(duì)于分布外流量數(shù)據(jù)檢測(cè)的可信性,在圖4中展示了本文方法與基準(zhǔn)方法完整ROC曲線。為了公平比較,本文對(duì)所有分類(lèi)器使用統(tǒng)一的網(wǎng)絡(luò)結(jié)構(gòu),并將原始流量以流的形式進(jìn)行實(shí)驗(yàn),所有的方法都是在ISCX VPN-nonVPN數(shù)據(jù)集上進(jìn)行訓(xùn)練,在USTC-TFC2016數(shù)據(jù)集上進(jìn)行評(píng)估,任務(wù)是根據(jù)預(yù)測(cè)的不確定性得分來(lái)分離這些數(shù)據(jù)集。通過(guò)對(duì)比可以發(fā)現(xiàn)在選定的所有指標(biāo)中,本文方法都優(yōu)于其他方法。
圖4 ROC曲線
此外,本文還分析了所提出的流量分類(lèi)模型的分類(lèi)精度,這是評(píng)估網(wǎng)絡(luò)流量分類(lèi)的基本方面。表4顯示了所有方法的總體分類(lèi)精度。該方法在2個(gè)數(shù)據(jù)集上的2種流量表示下的分類(lèi)準(zhǔn)確率均高于90%。結(jié)果表明,該模型能夠從訓(xùn)練集中提取和學(xué)習(xí)區(qū)分特征,能夠更好地區(qū)分各種流量類(lèi)型。在基于USTC-TFC2016數(shù)據(jù)集提取的“流”形式的數(shù)據(jù)中,本文提出的方法F1值為99.82%,比MLP的平均F1值高出11.88個(gè)百分點(diǎn)。
表4 分類(lèi)精度結(jié)果/%
為了評(píng)估模型的可信性,根據(jù)模型輸出的可信性得到分可視化分布內(nèi)/外流量的分布。ISCX vs USTC表示將ISCX VPN-nonVPN數(shù)據(jù)集中的流量視為分布內(nèi)數(shù)據(jù),而將USTC-TFC2016數(shù)據(jù)集中的流量視為分布外數(shù)據(jù),USTC vs ISCX表示將ISCX VPN-non VPN數(shù)據(jù)集中的流量視為分布外數(shù)據(jù),而將USTC-TFC2016數(shù)據(jù)集中的流量視為分布內(nèi)數(shù)據(jù),并分別將原始流量以會(huì)話和流為單元進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖5所示。其中圖5(a)~圖5(d)為本文所提出的方法的實(shí)驗(yàn)結(jié)果,圖5(e)~圖5(h)為基準(zhǔn)方法MCP的實(shí)驗(yàn)結(jié)果。圖中“Certainty”表示預(yù)測(cè)結(jié)果的可信性得分,“Density”表示相對(duì)樣本的分布密度。從圖中可觀察到,本文方法可以有效區(qū)分分布內(nèi)的流量數(shù)據(jù)(in-distribution)和分布外的流量數(shù)據(jù)(out-of-distribution),給分部?jī)?nèi)的流量數(shù)據(jù)分配一個(gè)較高的確可信度值,而分布外的流量數(shù)據(jù)分配較低的可信度值。而MCP導(dǎo)致分布內(nèi)的流量數(shù)據(jù)和分布外的流量數(shù)據(jù)之間的可信度值重疊,難以區(qū)分。
圖5 對(duì)比實(shí)驗(yàn)結(jié)果
本文提出了一種可信的深度學(xué)習(xí)模型來(lái)對(duì)加密網(wǎng)絡(luò)流量進(jìn)行分類(lèi)的方法,這是第一次嘗試將不確定性估計(jì)應(yīng)用于網(wǎng)絡(luò)流量分類(lèi)領(lǐng)域的方法。一方面,該方法可以自動(dòng)從原始網(wǎng)絡(luò)流量中提取特征以對(duì)流量進(jìn)行分類(lèi);另一方面,可以有效檢測(cè)出分布外的流量數(shù)據(jù)。在2個(gè)公共的ISCX VPN-nonVPN和USTC-TFC2016流量數(shù)據(jù)集上,所提算法在AUROC指標(biāo)上達(dá)到了98.55%,與同類(lèi)算法相比取得了更好的分布外檢測(cè)效果;在分類(lèi)精度方面,所提算法在2種數(shù)據(jù)集中的2種流量表示下的分類(lèi)準(zhǔn)確率均高于90%,結(jié)果表明,所提模型能夠較好地區(qū)分各種流量類(lèi)型,并且可以有效檢測(cè)分布外的數(shù)據(jù),提高模型的可信性。