崔見泉,周延森,劉博宇,郝嘉琪
(1.國際關系學院研究生部;2.國際關系學院 網絡空間安全學院,北京 100091)
隨著網絡技術的高速發展,人們的信息保護意識逐漸增強,匿名通信系統使得網絡中的加密流量快速增長。然而,匿名通信系統在保護用戶隱私的同時,也帶來了新的安全隱患。一些不法分子基于洋蔥路由(The Onion Router,Tor)、虛擬專用網(Virtual Private Network,VPN)等匿名通信技術,架設需要通過特殊軟件才能訪問的網絡服務,形成了無法用常用搜索引擎直接檢索的暗網。暗網中充斥著各種非法活動,給社會帶來了巨大危害[1]。因此,分析暗網流量有助于針對性地監視惡意軟件,及時檢測攻擊行為,對于維護網絡安全有著重要意義。
國內外學者對暗網流量檢測進行了不少研究。如文獻[2]提出基于決策樹的Tor 流量檢測方法與基于Tri-Training的分類方法,能夠較準確地對Tor 流量進行識別與分類;文獻[3]利用現有的入侵檢測系統,針對暗網流量中的探測活動(probing activities)制定檢測策略。隨著深度學習的迅速發展,一些學者將深度學習算法應用于加密流量檢測中[4]。如文獻[5]提出一種基于人工蜂群算法的Tor 流量識別方法,該方法通過搭建深度神經網絡,使用人工蜂群機制代替常見的迭代算法,提高了識別準確率;文獻[6-7]通過分析基于時序的特征,提出基于神經網絡的分類模型對不同類別的加密網絡流量進行識別與分類;文獻[8]提出一種基于卷積神經網絡、長短期記憶人工神經網絡與注意力機制的分類模型,綜合考慮了加密流量的空間與時序特征,提高了對VPN 流量與非VPN 流量的分類準確率。然而,大多數研究僅對使用單一加密技術的流量進行分類[9-13],而暗網中存在多種類型的加密流量,現有方法在復雜環境下的分類準確率與效率有待驗證。
近年來,大型深層卷積神經網絡在圖像領域的分類準確率不斷提升,將其拓展應用于其他領域具有一定研究價值。因此,本文使用較為成熟的Resnet、Densenet 與Xception 卷積神經網絡模型,分別應用于暗網流量檢測中,對Tor 流量與非Tor(Non-Tor)流量、VPN 流量與非VPN(Non-VPN)流量進行分類,并對不同網絡模型的實驗結果進行對比分析,選擇分類效果最優的模型進行改進,加入GRU 網絡提取時序特征,從而提升了大型深層卷積神經網絡模型對暗網流量分類檢測的準確率。
Resnet 網絡的全稱是殘差網絡(Residual Network),由He 等[14]提出。通過引入殘差塊(residual block),Resnet 網絡解決了網絡層數過高后誤差反而增大的問題。其主要思想是在標準的前饋卷積網絡上加上一個跳躍層,以繞過一些層的連接[15]。殘差塊結構如圖1 所示。

Fig.1 Structure of residual block圖1 殘差塊結構
Residual block 結構實現了將輸入信息直接傳到輸出的功能,降低了學習難度,解決了增加網絡深度時導致的退化問題。Resnet 網絡根據殘差塊與網絡層數的不同衍生為多種模型,本文使用ResNet-50 網絡模型進行實驗。
Densenet 網絡由Huang 等[16]提出,通過稠密塊(dense block)結構高效地利用特征(feature),在使用較少參數的情況下取得了更好效果。在dense block 結構中,每一層的輸入來自前面所有層的輸出。稠密塊結構如圖2 所示。

Fig.2 Structure of dense block圖2 稠密塊結構
該結構能夠減輕梯度消失現象,并加強特征傳遞,使每個層的特征都能被高效利用,提升了信息與梯度在網絡中的傳輸效率,減少了參數數量[17]。本文選取Densenet-
Xception 網絡由Chollet[18]提出,該網絡是對Inception網絡的一種改進。Chollet 認為,通道之間的相關性與空間相關性需要分開處理,因此采用深度可分離卷積(Depthwise Separable Convolution)的思路替換Inception-v3 中的卷積操作。Xception 中的卷積操作分為兩步,先進行普通1×1卷積,再對1×1 卷積結果的每個channel 分別進行3×3 卷積操作,如圖3 所示。

Fig.3 Convolution operation of Xception圖3 Xception 卷積操作
該操作中3×3的卷積用于學習空間相關性,1×1的卷積用于學習通道間的相關性,最終使Xception 模型收斂速度更快,準確率更高。
在進行分類實驗時,設備配置如下:中央處理器(CPU)為Inter Core i5-6400,4 核,主頻為2.7GHz;內存為8GB;圖形處理器(GPU)為NVIDIA GeForce GTX 960M;深度學習框架使用TensorFlow,版本為2.1.0;編程語言使用Python,版本為3.7.3。
本文采用文獻[19]中的CICDarknet2020 數據集,該數據集覆蓋了多種應用中的Tor 與VPN 加密流量,包括瀏覽器、音視頻、聊天及電子郵件等,較為真實地體現了暗網流量特征。
原始數據集中包含少量不可用的數據,經篩選后共得到Non-Tor 數據93 303 條,Non-VPN 數據23 861 條,Tor 數據1 392 條,VPN 數據22 919 條。原數據集共有85 維特征,在實驗中刪除了流量序號、源IP 地址、目的IP 地址、時間戳及屬性值全部為0的特征后,得到的數據含標簽在內共65維。抽取數據集中80%的數據作為訓練集,剩余20%的數據作為測試集。
由于數據集中不同特征的取值范圍差別很大,為避免影響模型的收斂速度及訓練效果,需要對數據進行歸一化處理。本文使用MinMaxScaler 函數對原始數據作線性變換,歸一化到[0,1]區間,轉換函數如式(1)所示。歸一化后的數據可便于后續轉換為圖像數據。

本文采用卷積神經網絡的輸入為三維圖像,因此需要對實驗數據進行格式調整,使其能適用于神經網絡訓練。將實驗數據標簽取出后得到64 維的一維數據,之后將其轉換成8×8的二維數據。由于Resnet-50 網絡與Densenet-201 網絡的最小長寬輸入是32×32,Xception 網絡的最小輸入是72×72,所以將其統一復制填充為72×72的二維數據。最后復制為3 個圖層,得到72×72×3的三維圖像數據作為3種神經網絡的輸入。
在訓練參數設置中,訓練批次大小為200,訓練總輪數為10,驗證集比例為20%。優化器選擇Adam,該優化器具有自動調整學習率、內存占用較小等優點,適用于較大規模的數據處理。
在模型訓練中共有Resnet 參數2 380 萬個、Densenet 參數1 852 萬個、Xception 參數2 107 萬個。由于需要訓練的參數過多,訓練集數據遠小于參數數量,直接進行訓練難以取得滿意的效果,因此使用上述模型的預訓練參數,并對模型頂部作適當修改,使其適用于暗網流量分類檢測。經過調整后,Resnet 需要訓練的參數約為21 萬個,Xception約為21 萬個,Densenet 約為20 萬個,測試集中每輪用于訓練的樣本約為24 萬個。此時需要訓練的參數與樣本數較為接近,能夠避免過擬合現象,有利于模型快速收斂,取得較好的訓練效果。
經過10 輪訓練,得到3 種模型的損失值(loss)比較曲線如圖4 所示,準確率(accuracy)對比曲線如圖5 所示(彩圖掃OSID 碼可見)。

Fig.4 Comparison of the loss values of three models圖4 3 種模型損失值比較

Fig.5 Comparison of the accuracy of three models圖5 3 種模型準確率比較
觀察圖4、圖5 可知,3 種模型的損失值起初呈快速下降趨勢,之后逐漸趨于平穩,準確率總體呈上升趨勢,說明模型能夠快速收斂,沒有出現梯度消失等異常現象。Resnet 網絡與Densenet 網絡在損失值及準確率方面的性能類似,最終損失值穩定在0.662,準確率穩定在0.736,兩個模型的性能均優于Xception 網絡。
測試集評價指標選取精確率(precision)、召回率(recall)和F1 值。3種模型對Tor、VPN、Non-Tor 與Non-VPN流量的檢測性能對比如表1 所示。

Table 1 Comparison of classification evaluation indicators of three models表1 3種模型分類評價指標比較
由表1可知,3 種卷積神經網絡對Tor 與Non-Tor 流量的分類性能均較好,但對VPN 與Non-VPN 流量的分類效果有待提高。模型在測試集上的結果與其在訓練集中損失值及準確率的表現較為一致。其中,Densenet 模型對4 種流量的分類性能均優于其他兩種模型,總體精確率為83.0%,召回率為81.5%。Resnet 模型的分類性能略差,而Xception 模型的分類性能最不理想。
由于Densenet 網絡模型在上述3 種模型中分類效果最佳,因此選擇其作進一步改進。卷積神經網絡善于提取數據空間特征,但忽略了時序特征。將循環神經網絡與卷積神經網絡相融合,可同時學習數據的時空特征,從而建立更高效的檢測模型[20]。
循環神經網絡選擇GRU 網絡,該網絡對傳統循環神經網絡的門機制作出改進,引入更新門和重置門替換了傳統網絡的遺忘門、輸入門及輸出門。兩種網絡在學習效果相當時,GRU 網絡具有訓練參數少、速度快等優勢[21]。加入GRU 網絡對Densenet 網絡進行改進,使該模型可全面學習暗網流量的空間與時間特征,提高了分類效果。
加入GRU 網絡后,模型的待訓練參數約為24.15 萬個,與訓練樣本數量大致相同,能避免訓練不充分或過擬合現象。經過10 輪迭代,訓練集的損失值收斂于0.628,準確率為80.2%。在測試集上分類結果的混淆矩陣如表2 所示。實驗結果表明,改進模型總體具有較高的分類準確率,其中Tor 與Non-Tor的分類精確率均超過90%,F1 值分別為0.91 和0.89,但VPN 與Non-VPN的分類效果 欠佳,F1 值分別為0.63 和0.65。

Table 2 Confusion matrix of the improved model on the test set表2 改進模型在測試集上的混淆矩陣
改進模型與其他模型的性能比較如表3 所示。由于現有研究大多針對單一類型的加密流量,因此將模型對應的流量加密類型標注在模型后。經過對比,改進模型的分類評價指標均高于Densenet 原始模型,精確率提高了0.4%,召回率提高了0.7%。相比其他模型,改進模型的分類任務更加復雜,導致精確率略低于SVM,但召回率仍優于其他模型,總體分類性能較好[13]。

Table 3 Performance comparison of improved model and other models表3 改進模型與其他模型性能比較 單位:%
暗網流量檢測研究對于預防與發現網絡攻擊具有重要意義。本文選取3 種典型的大型深層卷積神經網絡Resnet、Densenet 與Xception 模型,對較為真實的暗網流量數據集進行分類對比。實驗結果表明,Resnet 與Densenet更適合對暗網流量進行分類檢測。之后選擇分類效果最好的Densenet 進行改進,加入GRU 網絡學習時序特征后,改進模型的分類性能進一步提高。改進模型總體精確率與召回率分別為83.4%和82.2%,其中Tor 與Non-Tor的分類精確率均超過90%,但VPN 與Non-VPN的分類效果仍具有提升空間。