鄒樂述,翟江濤
(1.江蘇科技大學 電子信息學院,江蘇 鎮(zhèn)江 212003;2.南京信息工程大學 電子與信息工程學院,南京 210044)
據(jù)CNNIC(China internet network information center)2019年8月30日發(fā)布的第44次《中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告》顯示,截至2019年上半年,我國互聯(lián)網(wǎng)普及率已超過6成。截至2019年6月,我國網(wǎng)民規(guī)模達8.54億。人們在享受互聯(lián)網(wǎng)技術(shù)帶來便利的同時也產(chǎn)生了一些新的問題,近年來互聯(lián)網(wǎng)安全[1]事件頻發(fā),僵尸網(wǎng)絡[2-3]、APT(advanced persistent threat)[4-5]、木馬[6-7]等為主要形式的網(wǎng)絡攻擊事件愈演愈烈。2018年就有勒索病毒GlobeImposter、Facebook用戶數(shù)據(jù)泄露、前程無憂195萬條個人求職簡歷泄露等事件。隨著人們的安全意識的增強,對數(shù)據(jù)保護意識也越來越強烈,為提升網(wǎng)絡服務質(zhì)量,流量加密技術(shù)成為保護數(shù)據(jù)的重要手段,當前加密流量已經(jīng)成為當前主要的流量之一。流量加密在保護數(shù)據(jù)的同時也給網(wǎng)絡安全帶來了新的問題,在保護數(shù)據(jù)安全的同時也隱藏了惡意流量,因此加密流量分類成為當前研究的熱點問題之一。隨著加密技術(shù)、端口偽裝技術(shù)、端口隨機分配等方法的使用,使得現(xiàn)有的特征失效,很多傳統(tǒng)的網(wǎng)絡流量分類技術(shù)分類效果往往不佳,如普遍使用的DPI(deep packet inspection)、基于端口識別技術(shù)等。
目前,在非加密流量分類方面已有眾多相關(guān)文獻給出了諸多較好的方法,國內(nèi)外學者取得了較多成果,Ruixi等[8]采用一種基于SVM(support vector machine)的方式可實現(xiàn)高精確度流量分類。在2018的互聯(lián)網(wǎng)報告中,加密流量占比已經(jīng)超過一半,而且還在急速增長之中,相信不久互聯(lián)網(wǎng)流量將會基本以加密流量為主。將識別非加密流量的方法和特征直接應用于加密流量將不再適用。現(xiàn)有對加密流量分類相關(guān)文獻也已取得十分不錯的成果[9-11],Grimaudo等[12]提出自學習分類器也取得了不錯的效果。Shen等[13]引入了Certificate報文大小增加Markov鏈的狀態(tài)多樣性,并建立二階Markov鏈模型對HTTPS(hyper text transfer protocol over securesocket layer)應用進行分類。Lotfollahi等[14]采用CNN(convolutional neural networks)建立模型對流量進行分類。趙博等[15]提出了一種基于加權(quán)累積和檢驗的時延自適應加密流量盲識別算法,通過實驗表明該方法能有效區(qū)別加密流量。當前,在不同方向都已取得了一些不錯的研究成果,如加密協(xié)議的識別[16-18]、加密應用的識別[19-20]等,但上述方法大都存在分類顆粒度較粗的問題,在針對具體某一應用下流量精細化分類問題,國內(nèi)相關(guān)文獻較少。很多特征在具體的某一應用下的精細化識別實驗效果往往不理想。加密流量之下特征的轉(zhuǎn)變,不僅使得傳統(tǒng)常用的特征失效,而且也使加密之后流量的精細化識別難度加大,在某一個應用之下,流量的相似性更大,很難尋找到有效的特征。加密流量之中視頻流量所占比例較高,為提升網(wǎng)絡服務質(zhì)量,實現(xiàn)流量更精細化可管可控,本文提出一種基于集成分類器的加密YouTube視頻流量精細化標題分類方法。實驗表明,本文中所提方法較現(xiàn)有模型對加密應用下流量分類效果提升3%左右。
本文的識別目標為加密YouTube視頻流量精細化分類,針對傳統(tǒng)特征失效問題,采用一種快捷且有效的特征提取方法。
1.1.1 數(shù)據(jù)集的獲取及預處理
本研究所做實驗采用的數(shù)據(jù)集來源是Ran等[21]所公開的數(shù)據(jù)集,如表1所示。
表1 實驗數(shù)據(jù)集
該數(shù)據(jù)集是一個擁有10 000個YouTube視頻流的大數(shù)據(jù)集,所使用的視頻標題是來自不同類別的熱門YouTube視頻,比如體育、新聞、自然以及視頻動作預告片和GoPro視頻等。因為Chrome瀏覽器在市場上是最受歡迎的瀏覽器,并且其受歡迎程度正在不斷增長,所以YouTube視頻集采集瀏覽是通過Chrome瀏覽器,使用的播放模式是YouTube的默認的自動播放模式(播放器會根據(jù)客戶端網(wǎng)絡狀況的估計決定下載哪種質(zhì)量)。所使用的是Selenium網(wǎng)絡自動化工具和ChromeDriver作為爬蟲,因此它將模擬完全相同的普通用戶視頻下載行為方式。為此,在數(shù)據(jù)集中,其中包含10 000個YouTube流(通過真實世界的互聯(lián)網(wǎng)連接在一個月內(nèi)通過不同的真實網(wǎng)絡條件下載)。
在獲取數(shù)據(jù)集后,首先根據(jù)流量的五元組將流量進行劃分(protocol、src IP、dst IP、src port、dst port),決定每個流是否為YouTube流,過濾掉其他存在的干擾流,先可基于客戶端消息SNI(Server Name Indication)中的服務名稱中的字段完成,如在(SNI)中找“googlevideos.com”的字段則將其留下。同時,去除其音頻包,相比于視頻包,音頻包對識別分類的影響是有限的。本次預處理還可通過wireshark進行IP過濾篩選,wireshark分析數(shù)據(jù)樣本如表2所示,同時將其中的重傳包進行過濾(重傳一般都是由于網(wǎng)絡原因所造成的)。
表2 數(shù)據(jù)集樣本分析
1.1.2 特征提取
通過分析流量的傳輸,提取傳輸過程的時間戳及對應時間傳輸?shù)陌L,如表2所示Time、Length。選取Time前T時間內(nèi)傳輸?shù)臄?shù)據(jù)包長Length,根據(jù)時間T將它平均切分成n份,將每段時間傳輸數(shù)據(jù)包長之和作為特征,n段即可得n個特征,如上表取T、n分別為0.1、2,即可得2個特征,特征1為前Time0.05時間Length長度之和為2 918(285 +285+1 414+934),特征2為1 503(1 308+195)。
1.1.3 流量特征對比
當T取20、n為20,如圖1所示,隨機在某一類中選取10個樣本,通過對比同類別之間的特征區(qū)別,可以從同類特征表現(xiàn)圖中發(fā)現(xiàn)樣本之間同類特征表現(xiàn)具有極大的相似性。如圖2所示,隨機選取其中4類中各一個樣本,通過對比非同類樣本之間的特征表現(xiàn),可以發(fā)現(xiàn)不同類之間總存在某一特征時刻與其他樣本之間差別較大。且本方法提取的特征經(jīng)實驗部分驗證具有較強的可行性。
圖1 同類特征對比曲線
圖2 非同類特征對比曲線
經(jīng)特征提取后分別標上對應的類別標簽,如表3所示,隨機抽取了7個樣本,為方便展示,表中數(shù)據(jù)集樣本為T為20、n為5的數(shù)據(jù),同時通過實驗發(fā)現(xiàn),T取不同值時,對分類精確度存在一定的影響,將在實驗部分對比T和n取不同值時對分類的影響。
表3 數(shù)據(jù)集特征樣本
1.2.1 現(xiàn)有典型分類器
隨機森林主要是以bagging算法為基礎(chǔ),也是一種集成學習的算法,由多棵決策樹構(gòu)成,且具有隨機性,從總體的特征之中隨機選取特征,就可以很好地降低過擬合的現(xiàn)象,使其具有比較好的泛化能力,這是比較常用的算法,但在數(shù)據(jù)集樣本噪聲干擾比較大時,隨機森林所訓練的模型容易陷入過擬合。同時,當存在取值劃分特征較多時就很容易對隨機森林所訓練的模型產(chǎn)生更大的影響,最終對模型的評估產(chǎn)生影響。
KNN(k-nearest neighbor)是一種常見的算法,因為它非常有效,所以經(jīng)常在實驗當中使用。它的原理也非常的簡單,主要包括3個要素:K值的選擇、距離的度量以及決策的規(guī)則。對于K值的選擇通常采用交叉驗證的方式選取最優(yōu)K值,常使用的距離的度量方式是歐氏距離,分類決策規(guī)則往往是多數(shù)表決的方式?,F(xiàn)將已有的帶標簽的數(shù)據(jù)集分布在空間當中。當需要預測新的數(shù)據(jù)時,將找到它在空間坐標之中對應的位置,并選取計算距離它最近的K個點,并且找到這K個點對應的類別,最終將預測的數(shù)據(jù)類別劃歸為這K個點種類別最多的一類。KNN雖然原理非常簡單,但是存在一些缺點,當類別不平衡時對數(shù)據(jù)量稀少的類別預測準確率極低。所以相對來說僅僅使用某一種算法來分類,雖然能取得的效果還算不錯,但是分類評估手段比較單一,如K近鄰算法僅采用計算距離的方式來評估所屬類別,決策樹通過信息增益來進行分類。這種依靠單一度量屬性的方法相對集成多種方法的方式來說魯棒性較差,分類效果也不如集成之后的方法。
1.2.2 本文方法
主要思想是基于特征維度和模型集成2個部分去提升分類效果,①通過改變特征的輸入組合以及數(shù)量,使得分類器輸入不同的特征維度;②通過集成不同模型分類結(jié)果進行最終分類。集成分類方法如圖3所示。
圖3 集成分類方法框圖
1.2.3 數(shù)據(jù)處理及特征選擇
由于不同的基分類器對于特征要求不同,本文對于同樣的數(shù)據(jù)特征根據(jù)不同的基分類器進行相應的特征處理,針對KNN基分類器對數(shù)據(jù)進行了歸一化數(shù)據(jù)處理。
特征選擇對分類器的結(jié)果起著至關(guān)重要的作用,對于每一份數(shù)據(jù)來說都擁有不止一個屬性特征,但是部分特征對分類識別比較重要,同時也存在某些特征對分類有反作用影響。同時特征選擇可以規(guī)避維數(shù)災難,當對分類器性能要求較高時,選取其中比較重要的特征,可提高運行性能,簡化分析。比較常見的特征選擇方法分為3類,過濾式、包裹式、嵌入式。過濾式方法是先對數(shù)據(jù)進行處理,而不管后續(xù)使用的是什么分類器。包裹式方法是直接將學習器的性能作為特征的評價指標,但是當然它的開銷也比過濾式的大。嵌入式方法是直接將特征選擇與學習器結(jié)為一體,即在學習的過程之中自動進行特征選擇,比如決策樹等。
采用GBDT(gradient boosting decision tree)嵌入式的特征選擇模塊,綜合考慮選擇不同維度特征,從低維到高維,當n取20時,通過GBDT分類器的獲取各特征在分類器中的重要程度,選擇特征數(shù)量為11~20,共10種特征組合。
1.2.4 基分類器、權(quán)重選擇以及集成決策
為克服單個分類算法度量單一,如KNN僅通過單一的距離度量手段,決策樹通過信息增益或信息增益比的方式來度量。本文提出采用集成多分類器的方法,由于本文實驗是針對YouTube視頻流量具體精細化分類,通過選取其中一些針對YouTube視頻流量具體精細化分類效果較好的分類算法,如KNN、隨機森林、貝葉斯算法、決策樹算法、GBDT(梯度提升樹),將其作為基分類器,且從機器學習框架sklearn的model_selection模塊中使用GridSearchCV調(diào)參算法選擇出每個基分類器相對最優(yōu)參數(shù)。選擇KNN、隨機森林、貝葉斯算法、決策樹算法分類模型每種模型10個,4種算法分類模型總共40個模型分類器。將特征選擇模塊獲得的10種特征組合輸入各分類器,如分類器KNN1輸入特征數(shù)11、分類器KNN2輸入特征數(shù)12…分類器KNN10輸入特征數(shù)20,隨機森林、貝葉斯算法、決策樹算法分類模型也類似。由于GBDT分類效果相對更好,將其單獨拿出直接輸入所有特征,并在之后權(quán)值模塊將其權(quán)值設置為1 100 。
將數(shù)據(jù)集按0.7、0.1、0.2的比例切分為訓練集、驗證集、測試集。在權(quán)重選擇模塊上,設置閾值X,將分類效果相對較差的模型剔除不參與最終決策。將閾值X設置為80%,它最終決定有多少基分類器能參與決策,分類能力比較低的基分類器模型將會被剔除不能參與集成決策,否則將影響最終的集成分類效果。同時還為每個分類器在最終決策時設置權(quán)重,權(quán)值決策分類如圖4所示。
圖4 集成權(quán)值分類決策流程框圖
例如基分類器1驗證精確度91%分類樣本1的所屬各類概率(0.1,0.15,0.6,0,0,0,0,0,0.15,0),權(quán)值為(91%~80%)×100等于11,基分類器1分類結(jié)果為(0.1,0.15,0.6,0,0,0,0,0,0.15,0)×11等于(1.1,1.65,6.6,0,0,0,0,0,1.65,0)。將所有基分類器分類結(jié)果相加求和,將該樣本分類為其中的最大值的類別。由于在分類實驗中分類器GBDT明顯效果好于其他分類器,且GBDT分類器只有一個,所以將權(quán)值部分的100加大為1 100。為了拉開基分類器之間的權(quán)值差距,權(quán)值計算部分使用了驗證集精確度減去0.8,如直接使用驗證精確度×100作為權(quán)值則各基分類器對最終決策影響幾乎一樣。為減少切分的偶然性,采用k折交驗證進行權(quán)值更新,選擇k次驗證權(quán)值的平均為最終權(quán)值。
通過k折交叉驗證根據(jù)分類精確度調(diào)整更新分類權(quán)值,分類效果相對較好的基分類器將在最終的分類決策時所占權(quán)值高一些。對于分類效果高于閾值,但相比對其他基分類器來說,它的效果較低時,將它的權(quán)值設置較低。總之,每個對于基分類器在總決策分類時所占的比重與它分類的準確度是成正相關(guān)的。本文設置k折交叉驗證在每次驗證之后,模型將對每個基分類器分類的驗證后的效果進行權(quán)值反饋更新。在最終的決策預測時,將每個基分類器對于每個樣本分類概率乘權(quán)值求和,概率最高則將其分為該類。本方法存在較好的可擴展性,即存在其他分類器模型在所分類的數(shù)據(jù)集取得較好的效果時,本方法可將它加入其中擴充基分類器。由于每個基分類器都參與決策,而不由某一分類器或者某一類分類器單獨決定,最終分類效果一般比較理想。同時,基分類器間相互獨立且輸入特征互異,可高度并行訓練,所以在訓練時間上與訓練單個分類器基本相同。
實驗采用的設備:Windows10,處理器:4核Intel(R)Core(TM)i3-4170 CPU@3.70GHz,RAM:8.00GB,系統(tǒng)類型:64位,基于x64的處理器。同時還有其他的一些第三方軟件:Wireshark、Python、pycharm、anaconda、Google瀏覽器、機器學習sklearn框架等。
2.2.1 評價指標
為了公正的判斷本實驗方法的有效性,采用準確率(accuracy)、召回率(recall)、精確率(Precision)、F1-score作為評價指標,可以通過混淆矩陣來進行計算準確率。準確率是被分類的樣本的正確率,當正確率越高,一般來說就分類器越好,它主要反應分類器將正判別為正、負判別為負的能力。召回率主要是指某一類正確被分為該類的所占的比例。精確率表示正確預測為正的占全部預測為正的比例。F1-score它同時兼顧了分類模型的精確率和召回率。F1-score可以看作是模型精確率和召回率的一種調(diào)和平均,它的最大值是1,最小值是0。
式中:TP(true positive)是將正類預測為正類的數(shù)目;FP(false positive)是將負類預測為正類的數(shù)目;TN(true negative)是將負類預測為負類的數(shù)目;FN(false negative)是將正類預測為負類的數(shù)目。
2.2.2 時間T取值長度不同之間的對比
實驗通過選取n為20,分別選擇時間長度T分別為5、10、20進行對比,圖5為實驗對比圖,橫軸為實驗次數(shù),縱軸為分類準確度,從圖中可以看出,當時間T取值越大分類效果越好,且對分類準確度影響較大。同時從實驗中可看出,如存在實時檢測性能的要求,可將T設置為更小,當然分類精確度也相對較低。
圖5 T取不同值時分類效果對比曲線
2.2.3 提取特征數(shù)n不同之間的對比
實驗在相同的流時間間隔內(nèi),通過提取流量特征n為不同數(shù)目,相互之間對比,得到適合的特征數(shù)目。主要設置特征數(shù)n分別為15、20、25。圖6為不同特征數(shù)量之間的分類效果對比圖,可以看出,當取不同的特征數(shù)目對分類效果的影響。15、20、25分別對應黃、藍、灰線,經(jīng)過20次實驗分類效果的平均值分別為97.532 5、98.028 5、97.921,所以通過對比本文最終選取特征數(shù)n為20。
圖6 不同特征數(shù)分類效果對比曲線
基分類器模型在驗證集分類準確度刪選閾值X選取實驗對比如表4所示。主要參數(shù)如表5所示。
表4 不同閾值分類效果對比
表5 主要參數(shù)
其余非主要參數(shù)主要通過GridSearchCV調(diào)參算法自動選出,如KNN算法中的K的取值,給定GridSearchCV算法1~10的范圍,步長為1,Grid-SearchCV算法最終通過范圍搜索得到使KNN分類器分類效果最好的K值,如圖7所示。
圖7 模型流程框圖
2.2.4 與其他分類模型對比
當前,由于在某一應用下加密流量再精細化分類的相關(guān)研究成果較為有限,據(jù)Ran等[21]的研究,本文將與其提出的方法進行對比實驗。
從圖8中可以看出,經(jīng)過20次實驗對比,本方法的準確率平均為98.01%,最高時可超過99%。而文獻[21]中方法的平均準確率為95.26%,平均提升了2.75%。同時本實驗還對召回率進行了對比,可通過圖9發(fā)現(xiàn)本方法的召回率平均為98.092 5%也是優(yōu)于文獻[21]中的95.353 5%,平均提升2.739%。從圖10的精確率對比實驗中得到本文方法的平均精確率為98.672 5%,文獻[21]的平均精確度為95.486 0%,本方法精確率明顯高于文獻[21],提升了3.186 5%。最后,對2個方法的F1-score進行對比,如圖11所示,本文方法的平均F1-score為98.380 5%,文獻[21]的平均F1-score為95.417 8%,本方法F1-score上也是高于文獻[21],提升了2.962 7%。綜合4項指標對比實驗可以看出本模型基本優(yōu)于文獻[21]中的方法。
圖8 不同模型準確度對比曲線
圖9 不同模型召回率對比曲線
圖10 不同模型精確率對比曲線
圖11 不同模型F1比對曲線
針對加密的YouTube視頻流量進行精細化分類算法研究,主要有2個方面。特征方面:提出一種快捷且有效的特征提取方法,模型方面:通過改變特征維度以及集成不同模型的方式,最終實現(xiàn)在公開數(shù)據(jù)集上最高識別率可達99%的良好效果。本文特征提取可將時間T設置相對更大,取得相對更好的分類效果。同時,本方法存在的一些不足之處也會在后續(xù)的研究中去改進,通過實驗發(fā)現(xiàn)將文中提取出來的特征用較深層的深度學習模型進行分類識別,也能取得非常好的分類效果。