王天棋,丁要軍
(甘肅政法大學,甘肅 蘭州 730070)
中國互聯(lián)網(wǎng)信息中心發(fā)布的第49次《中國互聯(lián)網(wǎng)發(fā)展狀況統(tǒng)計報告》顯示,截至2021年12月,中國互聯(lián)網(wǎng)普及率達73.0%[1]?;ヂ?lián)網(wǎng)中采用加密的流量呈逐年攀升的趨勢。在全球主要國家與地區(qū),這一數(shù)據(jù)更是已經(jīng)超過了90%。由數(shù)據(jù)統(tǒng)計機構Netmarketshare發(fā)布的統(tǒng)計數(shù)據(jù)可知,截至2019年10月2日,超文本傳輸安全協(xié)議(Hyper Text Transfer Protocol over Secure Sockets Layer,HTTPS)加密萬維網(wǎng)(World Wide Web,WWW)流量在全球范圍內(nèi)被使用的比例已經(jīng)超過90%[2];2019年12月,谷歌宣稱80%的Android應用程序默認使用傳輸層安全協(xié)議(Transport Layer Security,TLS)加密所有流量,且這一比例還會隨著時間的推移而繼續(xù)增大[3]。越來越多的惡意軟件隱匿在加密TLS流量中來傳輸惡意信息,對用戶、企業(yè)和國家的通信安全造成威脅。因此,對TLS惡意加密流量進行高效識別對網(wǎng)絡監(jiān)管和打擊犯罪有著重要意義。
目前,已經(jīng)有國內(nèi)外研究人員對網(wǎng)絡惡意加密流量進行研究,并且取得了一定的成就。Canard等人[4]提出對加密流量進行深度包檢測(Deep Packet Inspection,DPI)而無需解密的技術,但在設置階段需要大量的計算和較長的檢測時間。Anderson等人[5]提出了一種TLS指紋識別系統(tǒng),該系統(tǒng)利用目標地址、端口和服務器名精心構造的指紋串。近年來,半監(jiān)督學習在圖像識別、自然語言處理等領域也取得了顯著成績。Rezaei等人[6]提出了一種半監(jiān)督檢測模型,首先在大型未標記數(shù)據(jù)集上訓練,然后使用少量標記數(shù)據(jù)集重新訓練模型。谷歌的研發(fā)隊伍提出了MixMatch[7]和FixMatch[8]技術,利用集成方法,提高了模型準確率。
為解決網(wǎng)絡惡意加密流量識別方法中大量標記樣本獲取困難問題,本文提出一種基于FixMatch的網(wǎng)絡惡意加密流量識別方法。通過借助網(wǎng)絡流量圖片化方法將PCAP格式的原始流量數(shù)據(jù)以流為單位進行切分、填充、映射到灰度圖片中,構建FixMatch模型并對惡意加密流量進行分類,在公開數(shù)據(jù)集上進行驗證,實驗證明識別效果優(yōu)于現(xiàn)有方法。
卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)是一種人工神經(jīng)網(wǎng)絡,目前已成為語音分析和圖像識別領域的研究熱點,廣泛應用于人臉識別、疾病分析、圖像處理等領域。CNN一般由輸入層、卷積層、池化層、全連接層以及輸出層構成[9]。其中卷積層可從輸入數(shù)據(jù)中快速精準地提取樣本特征。池化層有2個典型特性:一是可以大幅度加快模型的訓練速度,對提取的特征信息進行降維處理,降低訓練量。二是防止模型訓練結(jié)果過擬合[10]。實際的操作中,常在兩個相鄰的卷積層之間加入一層池化層。全連接層的特性之一是能將當前訓練所提取的特征和保留的樣本特征進行組合。正是由于CNN擁有局部連接和權值共享的特性,使得CNN可以精準高效地從輸入數(shù)據(jù)中挖掘潛在的特征。
一致性正則化是當前最先進的半監(jiān)督學習算法的一個重要組成部分。一致性正則化利用未標記的數(shù)據(jù),它依賴于這樣一個假設:當輸入相同圖像的擾動版本時,模型應該輸出相似的預測。該想法首次在Learning with Pseudo-Ensembles[11]中提出,其中模型通過標準監(jiān)督分類損失和損失函數(shù)對未標記數(shù)據(jù)進行訓練。
式中:設X={(xb,pb):b∈(1,…,B)}為一批標記的樣本,xb為訓練樣本,pb為one-hot標簽。設U={ub:b∈(1,…,uB)}為一批未標記的樣本,其中u是確定X和U相對大小的超參數(shù)。設pm(y|x)為模型對輸入X產(chǎn)生的預測類分布。
1.3.1 偽標簽(PseudoLabel)
偽標簽是一種簡單有效的深度神經(jīng)網(wǎng)絡半監(jiān)督方法。其在監(jiān)督的方式下訓練有標簽的樣本,對于無標記樣本通過偽標簽的方法選擇出該數(shù)據(jù)具有的最大概率預測類,把這個預測出的標簽作為實際標簽使用。偽標簽利用模型本身的思想為未標記的數(shù)據(jù)獲取人工標簽。具體來說,這指的是用“硬”標簽(即模型輸出的參數(shù)最大值),并且只保留最大類概率高于預定義閾值的人工標簽[12]。令qb=pm(y|ub),偽標記使用以下?lián)p失函數(shù):
式中:qb=argmax(qb),τ為閾值,兩個概率分布p和q之間的交叉熵為H(p,q)。
1.3.2 MixMatch
MixMatch是一種整體方法,它結(jié)合了半監(jiān)督學習主流范例中的思想。給定一組標注實例X及其對應的one-hot目標(代表L個可能標簽中的一個)和一批大小相同的未標記示例U,MixMatch將生成一批經(jīng)過處理的增強標記示例X'和一批猜測標簽U'的增強未標記示例。然后分別使用U'和X'計算單獨的標記和未標記損失項。半監(jiān)督學習的組合損失L如下:
式中:H(p,q)為分布p與分布q間的交叉熵;T,K,α,λu為超參數(shù)。模型pmodel(y|x;θ)對參數(shù)為θ的輸入x產(chǎn)生類標簽y上的分布。
1.3.3 ICT
插值一致性訓練[13](Interpolation Consistency Training,ICT)鼓勵對于無標記樣本點的插值的預測和這些樣本的預測的插值保持一致。ICT可以將決策邊界移動到數(shù)據(jù)分布的低密度區(qū)域,如果兩個樣本在輸入分布中屬于同一個聚類或簇,它們很可能屬于同一個類別,這被稱為聚類假設,這也表明好的決策邊界應當位于數(shù)據(jù)分布的低密度區(qū)域。不同的一致性正則化技術的區(qū)別在于如何選擇對未標記數(shù)據(jù)的擾動,常規(guī)的做法是使用隨機擾動,但是在高維情況下只有很小比例的隨機擾動能夠?qū)Q策邊界推到低密度區(qū)域,對此,ICT提出了一種簡單但是有效的基于插值一致性的方法:
式中:fθ為ICT的訓練分類器,θ'為θ的滑動平均。Mixλ(·,·)為參數(shù)為λ的線性插值函數(shù):Mixλ(a,b)=λ·a+(1-λ)·b。
1.3.4 FixMatch
在一致性正則化和偽標記方法基礎上,將它們相結(jié)合,提出了新的一些具有更高準確率的方法。Sohn等[8]在2020年提出了FixMatch,該方法結(jié)合了偽標簽和一致性正則化的思想,盡管FixMatch的整個環(huán)節(jié)較簡單,但其在多個標準數(shù)據(jù)集上都得到了目前的最好結(jié)果。
FixMatch利用了兩種增強:“弱”和“強”。FixMatch中使用的弱增強分為平移和翻轉(zhuǎn)兩類,數(shù)據(jù)增強前后,圖片變化不大。平移是基于空間上的變換,表現(xiàn)為上、下、左、右的平行移動[14]。翻轉(zhuǎn)表現(xiàn)為對圖片進行水平、垂直翻轉(zhuǎn)。FixMatch中使用的強增強包含Cutout[15]、CTAugment[16]和RandAugment[17]。Cutout是一種模擬遮擋的方法,表現(xiàn)為對圖像的部分區(qū)域進行遮擋。AutoAugment[18]是一種能夠利用搜索算法,自動檢索合適的數(shù)據(jù)增強策略的方法。RandAugment是AutoAugment的變體,它給定了一個可以選擇的數(shù)據(jù)增強方法的列表,并給定了一些可能的數(shù)據(jù)增強幅度??梢詮倪@幾個列表中選擇N個增強方法,然后隨機選擇一個數(shù)據(jù)增強幅度上限M,使得這N個數(shù)據(jù)增強方法的幅度不能超過給定的幅度上限M,然后將這一系列增強方法用于圖片。CTAugment通過控制理論的思想解決了RandAugment中對于數(shù)據(jù)增強策略的學習需求,動態(tài)學習了每個變換的幅度。
對于每一個有標簽樣本,用交叉熵損失訓練一個有監(jiān)督模型。對于每一個無標簽樣本,采用弱增強得到一幅圖像,將該圖像傳遞給模型,得到一個預測結(jié)果,該模型會設定一個閾值,如果這個預測結(jié)果最高的類別的置信度高于閾值,那么,該類別就會作為這張圖片的標簽。此時,運用了自訓練的思想,即偽標簽。然后,強增強后的圖片通過模型進行一個分類的預測,此時會得到另一個預測結(jié)果,對模型的輸出施加交叉熵損失。根據(jù)一致性正則化的思想,模型希望弱增強和強增強這兩種數(shù)據(jù)增強方法后的圖片的預測結(jié)果盡可能一致。最后,有標簽樣本損失和無標簽樣本損失的加權當作模型總損失,以總損失最小為目標優(yōu)化模型。FixMatch的處理流程如圖1所示。
圖1 FixMatch的處理流程
基于文獻[19]對數(shù)據(jù)處理的經(jīng)驗,本節(jié)的網(wǎng)絡流量圖片化主要是使用工具集USTCTK2016將原始流量數(shù)據(jù)(PCAP)處理成cifar10數(shù)據(jù)集格式(便于更好地遷移到多數(shù)模型)。
(1)流量切分:按照流量表示形式將原始PCAP文件按照數(shù)據(jù)流形式切分為多個PCAP文件,本數(shù)據(jù)流是具有相同五元組信息的數(shù)據(jù)包的時間排序集合。
(2)圖片生成:將處理過的文件按照784字節(jié)進行統(tǒng)一長度處理,即保留文件前784字節(jié)數(shù)據(jù),舍棄文件785字節(jié)及以后的所有信息,如果長度少于784字節(jié),則在文件后面補充0x00;統(tǒng)一長度后的文件按照二進制形式轉(zhuǎn)換為灰度圖片,即一個字節(jié)對應灰度像素值,如0x00對應黑色,0xff對應白色,輸出格式為PNG。在公開數(shù)據(jù)集上對網(wǎng)絡流量進行圖片化處理后的效果如圖2、圖3所示。
圖2 CTU-Malware-Capture數(shù)據(jù)集下流量圖片化展示
圖3 USTC-TFC2016數(shù)據(jù)集下流量圖片化展示
2.2.1 數(shù)據(jù)增強
根據(jù)FixMatch模型中的弱增強和強增強方法對轉(zhuǎn)換成圖片的數(shù)據(jù)進行數(shù)據(jù)增強處理。本文采用的弱增強為50%的概率對圖片進行水平翻轉(zhuǎn),利用reflect的方式進行填充,然后進行隨機裁剪和數(shù)據(jù)歸一化處理;本文采用RandAugment方法進行數(shù)據(jù)強增強,規(guī)定從RandAugment給定的數(shù)據(jù)增強方法列表N中隨機選擇增強方法,從1到10之間隨機選擇一個數(shù)據(jù)增強幅度上限M,使得這N個數(shù)據(jù)增強方法的幅度不能超過給定的幅度上限M。
2.2.2 FixMatch模型構建
FixMatch結(jié)合了偽標簽和一致性正則化的思想,其損失函數(shù)由兩個交叉熵損失項組成:應用于標記數(shù)據(jù)的監(jiān)督損失ls和非監(jiān)督損失lu。
針對有標簽樣本:使用交叉熵損失訓練一個有監(jiān)督模型,得到有監(jiān)督樣本的損失函數(shù)ls:
針對無標簽樣本:首先,在給定的無標簽圖像的弱增強版本下計算模型的預測類分布qb=pm(y|α(ub)),如果得到的類別預測結(jié)果的最高值大于預先給定的閾值,則該類別就是這個圖片的標簽。其次,使用q^b=argmax(qb)作為偽標簽,該圖片再經(jīng)過強增強,得到強增強后的分類預測結(jié)果。這個結(jié)果與新生成的標簽信息做交叉熵損失,得到無標簽樣本的損失lu:
式中:τ為一個標量超參數(shù),表示閾值以上保留一個偽標簽。有標簽樣本損失和無標簽樣本損失的加權當作模型總損失,以總損失最小為目標優(yōu)化模型,F(xiàn)ixMatch最小的損失函數(shù)為ls+λulu,其中λu為一個固定的標量超參數(shù),表示未標記損失的相對權重。FixMatch算法偽代碼如算法1所示。
算法1:FixMatch算法Input: Labeled batch X={(xb,pb):b∈(1,…,B)}, unlabeled batch U={ub:b∈(1,…,uB)}, confidence threshold τ, unlabeled data ratio μ, unlabeled loss weight λu 11(,())B s bb b=1 lHpx Bα=∑{Cross-entropy loss for labeled data}2 for b=1 to μB do 3 qb=pm(y|α(ub);θ){Compute prediction after applying weak data augmentation of ub}4 end for 5l 11{max()}(argmax(),(|()))u b bmb b qHqpyAu BμBμ=1=∑>τ{Cross-entropy loss with pseudo-label and confidence for unlabeled data}6 return ls+λulu
FixMatch模型的訓練流程:對于每一個有標簽的樣本,用交叉熵損失訓練一個有監(jiān)督模型,得到一個有標簽樣本的損失;對于每一個沒有標簽的樣本,采用弱增強得到一幅圖像,將該圖像傳遞給模型,得到一個預測結(jié)果。比較模型與預先設定的閾值,如果這個預測結(jié)果最高的類別的置信度高于閾值,該類別就會作為這張圖片的標簽,即偽標簽。然后,強增強后的圖片也會通過模型進行一個分類的預測,此時會得到另一個預測結(jié)果,對模型的輸出施加交叉熵損失?;贔ixMatch的網(wǎng)絡惡意加密流量檢測系統(tǒng)架構如圖4所示。
本文實驗在Windows 10環(huán)境下運行,處理器為AMD Ryzen 7 4800H,GPU為RTX 2060,內(nèi)存為16 GB。采用Pytorch1.8.0軟件框架實現(xiàn)基于FixMatch的網(wǎng)絡惡意加密流量識別。
圖4 基于FixMatch的網(wǎng)絡惡意加密流量檢測系統(tǒng)架構
本實驗選用的是開放數(shù)據(jù)集CTU-Malware-Capture[20]和USTC-TFC2016[19]中的部分數(shù)據(jù),數(shù)據(jù)由原始的PCAP文件組成。從CTU-Malware-Capture中選擇了Dridex,Dynamer,HTBot,Miuref,Zbot和Cerber 6類使用TLS進行加密通信的惡意應用流量;從USTC-TFC2016中選擇了Neris,Shifu,Zeus,Virut和Htbot 5類使用TLS進行加密通信的惡意應用流量。數(shù)據(jù)集構成如表1和表2所示。
表1 CTU-Malware-Capture惡意家族樣本
表2 USTC-TFC2016數(shù)據(jù)集樣本
本文采用查準率(Precision)、召回率(Recall)、F1值(F1-score)和準確率(Accuary)作為評價指標來估計方法的分類效果,其定義如下:
查準率(Pre):
召回率(Rec):
F1-score(F1):
準確率(Acc):
式中:TP,TN,F(xiàn)P和FN分別為正確識別的目標流量數(shù)、正確識別的其他流量數(shù)、錯誤識別的目標流量數(shù)和錯誤識別為其他流量數(shù)的目標流量數(shù)。
FixMatch模型訓練時,選擇帶動量的隨機梯度下降算法(Stochastic Gradient Descent,SGD)作為優(yōu)化器,且動量的大小設置為0.9。批量大?。˙atch Size)設置為100。本文參照FixMatch原論文的設定,將無監(jiān)督部分損失的系數(shù)λu設置為1,無標簽數(shù)據(jù)批量倍數(shù)u設置為7。過濾低置信度的無標簽樣本閾值τ設為0.95,學習率(Learning Rate)設置為0.01,并且使用帶熱啟動(Warm Up)的余弦學習率衰減(Cosine Decay Schedule)。本文使用的網(wǎng)絡惡意加密流量分類模型的骨干網(wǎng)絡是CNN,批量大小設置為50。將數(shù)據(jù)集打亂后,設定0.2為拆分閾值,選取20%做測試集,剩下的為訓練集。
本文將提出的基于FixMatch的TLS網(wǎng)絡惡意流量識別方法分別與近年來提出的半監(jiān)督學習方法MixMatch、ICT以及經(jīng)典半監(jiān)督學習方法PseudoLabel進行對比。在進行實驗前,對上述3種模型的超參數(shù)進行設置,根據(jù)此前研究者們提供的參考值并結(jié)合實驗結(jié)果,對實驗參數(shù)進行多次調(diào)整,設置參數(shù)值如表3所示。
表3 半監(jiān)督模型超參數(shù)
3.4.1 不同標記樣本占比的結(jié)果對比
將本文構建的FixMatch模型與其他3種半監(jiān)督模型在不同少標記樣本下進行實驗,在數(shù)據(jù)集CTU-Malware-Capture和USTC-TFC2016下多分類結(jié)果如圖5、圖6所示。
圖5 CTU-Malware-Capture在不同標記樣本占比下的多分類結(jié)果對比
由圖5、圖6可知,在20%標記樣本下,本文使用的所有半監(jiān)督模型F1都達到0.9以上的水平,這說明使用20%的標記數(shù)據(jù)集,大部分模型都可以準確識別惡意流量類型。隨著標記樣本量的減少和未標記樣本占比的上升,F(xiàn)ixMatch模型逐漸顯示出更好的分類效果。當標記樣本占比下降到10%時,除FixMatch模型各項指標依然保持較高水平外,其他模型指標都有明顯下降,說明FixMatch模型整體效果要優(yōu)于其他半監(jiān)督模型。在CTU-Malware-Capture數(shù)據(jù)集下,當標記樣本占比下降到0.3%時,與PseudoLabe算法相比,F(xiàn)ixMatch模型的查準率、召回率、F1值分別提高了4.56%,3.26%和3.93%。在USTC-TFC2016數(shù)據(jù)集下,當標記樣本占比下降到0.5%時,與ICT相比,F(xiàn)ixMatch模型的查準率、召回率、F1值分別提高了3.11%,3.47%和3.29%。該實驗說明,標記樣本占比逐漸減少對FixMatch模型造成的影響相對較小,尤其是標記樣本占比極小時,F(xiàn)ixMatch模型的優(yōu)勢更加明顯。
3.4.2 不同算法性能對比
隨著樣本數(shù)量的增加,F(xiàn)ixMatch的準確率有穩(wěn)定上升的趨勢,在相同的樣本總數(shù)下,只需要少量標記樣本就能達到其他半監(jiān)督學習模型的識別效果,這大大減少了在網(wǎng)絡流量識別中需要準確標記所有訓練樣本的人力、物力和時間成本。同時,在樣本數(shù)量不斷增加時,模型的準確率、查準率、召回率和F1值逐漸趨于穩(wěn)定。
圖6 USTC-TFC2016在不同標記樣本占比下的多分類結(jié)果對比
通過上述實驗可以看到,在CTU-Malware-Capture和USTC-TFC2016數(shù)據(jù)集下,F(xiàn)ixMatch在20%的標記樣本數(shù)時,能達到很好的識別效果。表4詳細記錄了FixMatch模型與MixMatch、ICT和PseudoLabel 3種半監(jiān)督模型的對比結(jié)果。
從表4可以看出,在CTU-Malware-Capture數(shù)據(jù)集下,F(xiàn)ixMatch模型的準確率、查準率、召回率和F1值均高于其他半監(jiān)督模型,與MixMatch相比,這4個指標分別提高了2.25%,1.75%,2.94%和2.36%;與ICT相比,分別提高了0.88%,1.18%,0.78%和0.98%;與PseudoLabel相比,分別提高了0.73%,2.07%,4.83%和3.48%。在USTC-TFC2016數(shù)據(jù)集下,F(xiàn)ixMatch模型與MixMatch相比,分別提高了3.41%,0.92%,0.96%和0.94%;與ICT相比,分別提高了2.75%,0.07%,1.03%和0.55%;與PseudoLabel相比,分別提高了3.65%,1.15%,1.23%和1.19%。這也驗證了本文提出的基于FixMatch的網(wǎng)絡惡意加密流量識別方法的可行性。
表4 FixMatch模型與其他半監(jiān)督模型對比結(jié)果
針對網(wǎng)絡流量數(shù)據(jù)量大且未標記數(shù)據(jù)易獲取等特點,本文提出了基于FixMatch的TLS網(wǎng)絡惡意流量識別模型,保證了在少量標記樣本和大量未標記樣本下,該模型對惡意流量識別仍具有良好的效果。實驗表明,在USTCTFC2016和CTU-Malware-Capture數(shù)據(jù)集下,本文FixMatch模型的效果比近年來提出的半監(jiān)督方法MixMatch、ICT以及PseudoLabel的效果均有所提升,尤其在少量標記樣本上表現(xiàn)突出。然而,文章還存在一些不足之處,例如,在FixMatch訓練模型使用的基分類器選擇上,可以嘗試更多種的組合和更優(yōu)的分類器。下一步工作將在基分類器選擇上做出更優(yōu)的調(diào)整,以及在網(wǎng)絡流量的特征工程上開展更深層次的研究。