馮松松,王斌君
(中國人民公安大學信息網(wǎng)絡安全學院,北京 100038)
近年來,以Tor(the onion routing)為代表的匿名網(wǎng)絡因其出色的隱蔽性、安全性得到眾多用戶的青睞,除Tor外,I2P(invisible internet project)、Freenet、Tribler等匿名網(wǎng)絡也得到廣泛使用。匿名網(wǎng)絡旨在通過隱藏IP、隱藏瀏覽器指紋、最小化使用cookie、數(shù)據(jù)加密等技術來匿名化用戶身份,從而實現(xiàn)保護網(wǎng)絡安全和個人隱私的目的。匿名網(wǎng)絡是把“雙刃劍”,在帶來更高安全性的同時,也滋生了一系列重大犯罪,如毒品交易、個人信息買賣、洗錢等非法行為,給社會造成巨大危害。當前,如何準確檢測識別匿名網(wǎng)絡流量和其對應的應用程序對網(wǎng)絡運營商加強網(wǎng)絡環(huán)境監(jiān)管、打擊非法行為具有重大實際意義。
匿名網(wǎng)絡,即第二代洋蔥路由系統(tǒng)(the second generation onion router,Tor)[1],其核心技術為洋蔥路由,最早由美國海軍研究實驗室成員研發(fā),旨在保護美國情報通信。使用洋蔥網(wǎng)絡進行通信時,路由節(jié)點會對數(shù)據(jù)進行多層加密,并且通信電路是不固定的,數(shù)據(jù)包會在不同路由節(jié)點間隨機跳轉,以此確保中繼間的前向安全性。正因洋蔥網(wǎng)絡復雜的路由結構、高度的數(shù)據(jù)加密,導致通過端口號分析、特征字段匹配識別其流量見效甚微。
隨著學者的深入研究,SVM(support vector machine)、KNN(K-nearest neighbor)、Logistic Regression等機器學習算法已被應用于對以Tor為代表的匿名網(wǎng)絡流量進行特征提取和識別,取得了不錯的效果。2006年,Hinton等[2]正式提出深度學習(deep learning)概念,掀起深度學習研究熱潮,VGG[3]、ResNet[4]等卷積神經(jīng)網(wǎng)絡模型取得重大成功,將卷積神經(jīng)網(wǎng)絡等深度學習方法用在網(wǎng)絡流量識別上也取得了一定進展,本文按照時間線對與匿名網(wǎng)絡流量識別相關的文章進行梳理。
2008年,Bai等[5]通過采用提取網(wǎng)絡流量的特定字符串、數(shù)據(jù)包長度、發(fā)送時間頻率等指紋特征的方式,實現(xiàn)對匿名工具Tor和Web-Mix流量的識別。Turkett等[6]提出將支持向量機SVM與網(wǎng)絡流量包的頻譜表示相結合,用于對暗網(wǎng)流量進行識別。2012年,AlSabah等[7]提出基于機器學習的DiffTor,用于對實時的Tor加密流量分類。2014年,Ling等[8]設計了一個用于發(fā)現(xiàn)和分類Tor上惡意流量的系統(tǒng):TorWard,可以實現(xiàn)對P2P、惡意軟件、DoS(拒絕服務)攻擊、垃圾郵件等200種已知惡意軟件流量的識別。He等[9]提出根據(jù)Tor加密流量推斷具體應用程序類型的方法。Patel等[10]提出根據(jù)第一、第二數(shù)字證書分別包含第一網(wǎng)絡設備的身份信息和分類信息的特性,對虛擬專用網(wǎng)絡流量進行分類識別。
2016年,Draper-Gil等[11]提出使用基于流的流量分類方法,僅使用與時間相關的特征來表征加密流量和VPN流量。Al-Naami等[12]利用數(shù)據(jù)包序列的依賴性來提取適合分類的特征,用于端節(jié)點加密網(wǎng)絡流量的識別。2017年,Lashkari等[13]提出了一種通過時間分析來檢測和表征Tor流量的方法。Wang等[14]將特征提取、特征選擇等集成在一個框架中,并使用一維卷積神經(jīng)網(wǎng)絡端到端對加密流量進行識別。2018年,Saleh等[15]對Tor的去匿名化、路徑選擇、分析和性能改進等研究方向進行了總結、分析、分類和量化。2019年,Sonntag等[16]對Tor網(wǎng)絡中的惡意DNS流量進行了檢測分析,提出限制或延遲Tor電路上對IP和域名的查詢,減少通過Tor網(wǎng)絡的惡意流量。Montieri等[17]用分層的方法實現(xiàn)對Tor、I2P等匿名流量的識別。2020年,Lotfollahi等[18]提出深度包框架(deep packet),將網(wǎng)絡數(shù)據(jù)的特征提取和分類過程進行集成,使用堆疊自動編碼器(SAE)和卷積神經(jīng)網(wǎng)絡(CNN)進行分類。Habibi等[19]提出使用二維卷積神經(jīng)網(wǎng)絡檢測、識別暗網(wǎng)流量,取得了86%的準確率。2021年,梁曉萌等[20]提出一種基于人工蜂群算法的Tor流量在線識別方法,準確率為93%。
隨著技術的進步,對匿名網(wǎng)絡流量的識別取得了一定成功,但仍存在識別準確率低、實時性差、關鍵流量漏報率高等問題,尚未滿足實際使用需求。為此,本文根據(jù)匿名網(wǎng)絡數(shù)據(jù)各特征間相互獨立,無內(nèi)在關聯(lián)的特性,采用一維卷積神經(jīng)網(wǎng)絡設計了一個全新的匿名網(wǎng)絡流量識別模型1D-ResVGG,進一步提升了匿名網(wǎng)絡流量識別準確率,滿足了實際使用要求。
卷積神經(jīng)網(wǎng)絡CNN(convolutional neural networks)的初步實現(xiàn)最早可追溯到1980年Fukushima模擬生物視覺皮層機制提出的“neocognitron”深度神經(jīng)網(wǎng)絡[21],可對輸入信息按設計的階層進行平移不變分類。當前,二維卷積神經(jīng)網(wǎng)絡(2D-CNN)已在圖像識別、分類中取得較高準確率,鑒于圖像數(shù)據(jù)是二維或三維數(shù)據(jù),而本文處理的流量數(shù)據(jù)是一維數(shù)據(jù),相鄰數(shù)據(jù)點的數(shù)值并沒有如圖像數(shù)據(jù)那樣表示著邊緣、背景等特征的變化,故采用一維卷積神經(jīng)網(wǎng)絡(1D-CNN)進行模型設計。
一維VGG16卷積神經(jīng)網(wǎng)絡(1D-VGG16)是根據(jù)VGG網(wǎng)絡設計的,VGG網(wǎng)絡是由Karen等[3]提出的深度卷積神經(jīng)網(wǎng)絡,獲得了2014年ILSVRC競賽的第二名,VGG網(wǎng)絡結構對后續(xù)深度卷積神經(jīng)網(wǎng)絡的設計具有啟發(fā)性意義,由于本文處理的是一維數(shù)據(jù),故將VGG16網(wǎng)絡中的卷積層、池化層替換成一維卷積和一維池化,詳細如圖1所示。
在1D-VGG16網(wǎng)絡結構中,卷積操作主要用來進行特征提取,并不改變特征維度,引入最大池化對卷積、激活后的特征進行篩選,保留關鍵特征的同時,降低了特征維度,該模型結構有利于對數(shù)據(jù)進行特征提取,但隨著網(wǎng)絡結構的加深,會增加訓練難度,出現(xiàn)梯度消失、梯度爆炸等問題。
一維殘差卷積神經(jīng)網(wǎng)絡(1D-ResNet)是根據(jù)殘差網(wǎng)絡設計的,ResNet由何愷明等人[4]設計,奪得了2015年ILSVRC競賽冠軍,作者在網(wǎng)絡結構中引入了跳躍連接(skip connection),用以解決神經(jīng)網(wǎng)絡中的退化問題,同時也解決了層次過深,難以訓練的問題。ResNet網(wǎng)絡結構對后續(xù)深度卷積神經(jīng)網(wǎng)絡結構上的設計具有啟發(fā)性意義。鑒于本文處理的不是圖像數(shù)據(jù),而是一維網(wǎng)絡流量特征數(shù)據(jù),故對原始ResNet網(wǎng)絡中的卷積層、批歸一化層、池化層進行替換,使之適應處理流量數(shù)據(jù),詳細模型結構如圖2所示。
在1D-ResNet34網(wǎng)絡中,殘差模塊計算過程可用式(1)表示:
其中,xl表示輸入數(shù)據(jù),xl+1表示輸出結果,wl表示與該層殘差單元相關的權重和偏差,f()表示激活函數(shù)。對于快捷連接h(x),當x與F(x)維度一樣,即圖2中加粗字體的參數(shù)s=1時,采用恒等映射,即h(x)=xl,這種快捷連接通過F(x)與x相加,并沒有引入額外參數(shù),可操作性強。當x與F(x)維度不一樣,即圖2中加粗字體的參數(shù)s=2時,可通過參數(shù)矩陣Ws執(zhí)行線性投影匹配維度,此時h(x)=Ws·xl,在模型中通過采用卷積核為1、步長為2的一維卷積和一維批歸一化實現(xiàn)。
ResNet與VGG網(wǎng)絡結構已被廣泛應用在圖像識別、圖像分割、目標檢測等計算機視覺任務中,取得了較好的效果,在VGG網(wǎng)絡中,通過卷積、池化的多層堆疊進行特征提取、篩選,加深了網(wǎng)絡結構,提升了模型性能。在ResNet網(wǎng)絡中,引入跳躍連接解決深層網(wǎng)絡存在的退化問題,降低了訓練難度,使得模型可進一步加深,提高了準確率。為提升對Tor匿名流量識別的準確率,本文借鑒了ResNet網(wǎng)絡與VGG網(wǎng)絡的優(yōu)點,設計了1D-ResVGG網(wǎng)絡。
圖3(a)展示了1D-ResVGG網(wǎng)絡中組成模塊(Block)的詳細結構,其計算過程見式(2):
其中xl表示輸入Block的數(shù)據(jù),xl+1表示Block的輸出結果,wl表示與該層殘差單元相關的權重和偏差。在Block中使用了一維卷積、一維批歸一化、ReLU激活函數(shù)和一維最大池化,與圖2 1D-ResNet34網(wǎng)絡中使用核為1、步長為2的卷積實現(xiàn)線性投影匹配維度不同,在1D-ResVGG的跳躍連接中,使用了核為2、步長為2的非重疊卷積,在考慮更多特征的同時,能進一步解決因網(wǎng)絡結構加深而引起的退化問題,穩(wěn)定提高模型性能。此外,也沒有使用核為3、步長為2的卷積將特征圖大小壓縮為原來的二分之一,而是采用核為2、步長為2的最大池化對卷積激活后的特征圖進行篩選,有利于去除無關特征,保留關鍵特征,便于后續(xù)識別,提高模型準確率。
為驗證設計的1D-ResVGG模型是否能夠提升對Tor匿名流量以及具體應用程序流量的識別準確率,便于進一步加強網(wǎng)絡監(jiān)管、打擊網(wǎng)絡犯罪、凈化網(wǎng)絡環(huán)境,本文設計了實驗。
文中所有模型均是基于Pytorch 1.11.0+cu113框架和Scikit-learn 1.0.2機器學習庫實現(xiàn)的,實驗時,取數(shù)據(jù)集中70%的數(shù)據(jù)作為訓練集,余下30%的數(shù)據(jù)作為測試集,Batch設置為64,使用隨機梯度下降優(yōu)化器(SGD),學習率(lr)設置為0.001,動量(momentum)為0.9,使用交叉熵損失函數(shù)(CrossEntropy Loss),訓練過程中,當測試集的準確率在某個Epoch達到最高,且此后連續(xù)50個Epoch測試集上的準確率都不再增加時,采用該Epoch在測試集上的準確率、精確率、召回率、F1分數(shù)等作為評價指標。
數(shù)據(jù)集的選擇對匿名網(wǎng)絡流量識別至關重要,本 文 選 擇Habibi等[19]所 提 的CICDarknet2020數(shù)據(jù)集,它是將ISCXVPN2016[22]和ISCXTor2017[13]兩個數(shù)據(jù)集進行組合得到的全新Tor匿名網(wǎng)絡數(shù)據(jù)集,包含音頻、視頻、電子郵件、瀏覽器等八種類型,超二十種應用程序產(chǎn)生的流量,基本涵蓋了互聯(lián)網(wǎng)上的常用應用程序流量,多樣性強、真實性高,滿足實驗要求。
本文對CIC-Darknet2020原始數(shù)據(jù)進行清洗,將存在空值的流量數(shù)據(jù)包刪除,最終得到135141條可用流量數(shù)據(jù),整體上可分為兩類:一類是常規(guī)網(wǎng)絡流量,具體由93310條Non-Tor流量和23861條Non-VPN流量組成;另一類是與匿名網(wǎng)絡應用服務相關的目標流量,它由1392條Tor流量和16578條VPN流量組成。其中17970條匿名網(wǎng)絡流量中又可細分為P2P、Chat、VOIP等八種類型、二十余種應用程序產(chǎn)生的流量,詳細組成見圖4。
在CIC-Darknet2020數(shù)據(jù)集中,作者提出了83個流量特征。根據(jù)實驗需要,本文對原文所提的83個特征進行篩選,首先將Flow ID、Src IP、Dst IP等特征刪除,這類特征大多為非數(shù)值特征,無法將其編碼轉換成數(shù)值,且與流量所屬類別無直接關聯(lián)。接著對余下特征的重要性進行排序,將Bwd PSH Flags、Active Mean、Active Std等數(shù)值一樣、不具有區(qū)分度以及區(qū)分度低的特征刪除,最后得到64個目標特征。
在本節(jié)實驗中,為驗證設計的1D-ResVGG模型是否能夠準確識別匿名流量與非匿名流量,滿足實際應用需要,將數(shù)據(jù)集整體分為兩類:一類是正常的網(wǎng)絡流量,另一類是與Tor匿名網(wǎng)絡服務相關的網(wǎng)絡流量。實驗中除1D-VGG16、1D-ResNet34模型外,還選擇了流量識別中常用的支持向量機(SVM)[23]、最鄰近算法(KNN)[24]、邏輯回歸(LR)[25]等機器學習算法作為對比。此外,因本文所使用的流量數(shù)據(jù)與文本數(shù)據(jù)具有一定相似性,故還選擇了文本分類中常用的循環(huán)神經(jīng)網(wǎng)絡(RNN)[26]、長短期記憶網(wǎng)絡(LSTM)[27]、深度金字塔卷積神經(jīng)網(wǎng)絡(DPCNN)[28]作為對比模型。
在流量識別領域中,還有學者將流量特征數(shù)據(jù)轉換為灰度圖像,并采用二維卷積神經(jīng)網(wǎng)絡對其進行識別,本文也嘗試將流量特征數(shù)據(jù)轉換成灰度圖像,將64個特征轉換成分辨率為8×8的灰度圖像,采用VGG、ResNet34兩個經(jīng)典圖像分類網(wǎng)絡進行分類識別。
實驗一共選擇了十二種模型,使用同一數(shù)據(jù)集,為降低訓練中出現(xiàn)梯度消失、梯度爆炸的風險,提升識別準確率,對每個特征的所有數(shù)據(jù)進行歸一化預處理,采用測試集上的準確率、精確率、召回率、F1-Score的宏平均值,以及非匿名流量、匿名流量的F1-Score值作為評價指標,具體實驗結果見表1。

表1 各模型對匿名流量與非匿名流量二分類識別結果 %
分析實驗結果可得,1D-ResVGG模型在各個評價指標上均優(yōu)于其他模型,取得了98.55%的準確率。此外,還可以發(fā)現(xiàn)1D-VGG16、1DResNet34模型的準確率略低于1D-ResVGG,但都高于2D-VGG、2D-ResNet34模型。用于文本分類的RNN、LSTM、DPCNN模型也取得了較好的結果,但都低于一維和二維卷積神經(jīng)網(wǎng)絡。SVM、KNN、LR、MLP模型之間的性能差異較大,整體上低于深度學習模型。除上述的準確率、F1-Score等評價指標之外,還采用了二分類任務中常用的Roc值、Roc曲線來證實采用一維卷積神經(jīng)網(wǎng)絡識別網(wǎng)絡流量數(shù)據(jù)的可行性,對所用十二種流量分類模型繪制了Roc曲線,具體見圖5。
從圖5可以看出,采用一維卷積神經(jīng)網(wǎng)絡設計 的1D-VGG16、1D-ResNet34、1D-ResVGG模型的Auc值接近,整體上優(yōu)于其余模型,進一步證實了采用一維卷積神經(jīng)網(wǎng)絡處理流量數(shù)據(jù)的可行性。
進入匿名網(wǎng)絡的方式整體上可分為兩種:一是通過VPN代理,使用Tor等專用瀏覽器間接訪問匿名網(wǎng)絡;二是主機作為匿名網(wǎng)絡中的路由、中繼等與匿名網(wǎng)絡直接相連。本文使用的CIC-Darknet2020數(shù)據(jù)集中包含這兩種流量,其整體可分為匿名流量與非匿名流量,詳細又可分為與匿名網(wǎng)絡服務相關的Tor流量、VPN流量,以及常規(guī)的Non-Tor、Non-VPN流量。本實驗嘗試對Tor、Non-Tor、VPN、Non-VPN四種流量進行分類,采用的實驗模型為支持向量機、最鄰近等12個模型,采用準確率、F1-Score宏平均和Tor、Non-Tor、VPN、Non-VPN四個類別的F1-Score作為評價指標,具體實驗結果參照表2和圖6。

表2 各模型對Tor、VPN、Non-Tor、Non-VPN流量四分類準確率
分析實驗結果可得,1D-ResVGG模型對Tor、VPN等流量的識別準確率為98.87%,優(yōu)于圖中的常用經(jīng)典模型,在Tor、VPN、Non-Tor、Non-VPN四個類別上的精確率、召回率、F1-Score值也均優(yōu)于其余所有模型。
在實際網(wǎng)絡監(jiān)管、預防犯罪等任務中,僅識別該數(shù)據(jù)包是否為匿名流量并不能滿足實際需要,還需對具體應用類型進行精準識別,如通常被非法分子用來傳輸重要信息的網(wǎng)絡電話、電子郵件等應用程序,這類應用流量中通常包含用戶身份等重要信息,準確識別該類流量,對預防犯罪、加強網(wǎng)絡監(jiān)管等有重大實際意義。本實驗仍采用3.2節(jié)實驗中所用到的12種模型,對Tor匿名網(wǎng)絡流量中八種應用類型的流量數(shù)據(jù)進行識別,采用識別的準確率、以及P2P、Browsing、Chat等八種應用類型的F1分數(shù)作為評價指標,實驗結果見表3和圖7。

表3 各模型對匿名流量中八種應用類型識別準確率
圖7中橫坐標表示實驗中采用的十二種模型,縱坐標表示F1分數(shù)、Accuracy值,從表3可以看出,所有模型中1D-ResVGG模型取得的最高識別準確率為96.14%,其余8條折線為十二種模型對八種應用程序流量分類的F1-Score值。分析可得,1D-ResVGG模型對八種應用程序流量分類的效果均優(yōu)于其余十一種模型,其中對Audio、P2P、Chat的分類效果最好。
為進一步分析1D-ResVGG模型對每種應用程序的分類效果,繪制了該模型對八種應用類型分類的混淆矩陣,結果見圖8。根據(jù)混淆矩陣分析可得,1D-ResVGG對P2P、Chat、Audio、Email四種類型應用的分類效果較好,滿足實際應用需求;對Video、Browsing兩種應用類型識別效果較差,還有較大提升空間。
匿名網(wǎng)絡的出現(xiàn)旨在造福互聯(lián)網(wǎng)用戶,保護個人隱私,但隨著時代的進步,匿名網(wǎng)絡在向萬千網(wǎng)民提供安全性服務的同時,也成為了非法分子逃避罪責的幫兇,憑借著匿名網(wǎng)絡的隱蔽性、安全性,犯罪分子在這里肆意進行著毒品、槍支、個人信息買賣等眾多犯罪行為。本文設計了一種全新的基于一維殘差卷積神經(jīng)網(wǎng)絡的匿名網(wǎng)絡流量識別模型:1D-ResVGG,實驗表明,該模型對匿名網(wǎng)絡流量識別的準確率達到了98.87%,對匿名網(wǎng)絡上的具體應用程序識別準確率達到了96.14%,優(yōu)于現(xiàn)有匿名網(wǎng)絡流量識別模型,達到了實際使用標準,滿足使用需求。