薛秋爽 湯艷君 王世航 中國刑事警察學院
隨著網(wǎng)絡隱私安全事件頻發(fā),公眾越來越關(guān)注數(shù)據(jù)傳輸?shù)谋C苄院桶踩?,加密流量傳輸方式相較于非加密流量傳輸方式更傾向于被采用[1]。通過對端口協(xié)議、字段特征等方法將流量進行加密,對保護國家和公眾的隱私起到了至關(guān)重要的作用[2],但同時攻擊者也可使用加密流量繞過現(xiàn)有的網(wǎng)絡安全產(chǎn)品來傳輸信息,逃避檢測,為從事違法犯罪活動提供了便利,其使得惡意流量因加密而不容易被檢測。在計算機中傳播惡意流量觸犯非法侵入計算機信息系統(tǒng)罪和破壞計算機信息系統(tǒng)罪等《刑法》條文。因此,如何在加密流量中關(guān)注流量的圖像特征,快速檢測未知威脅并做出響應,是網(wǎng)絡安全態(tài)勢感知中的關(guān)鍵問題,此問題的解決同時也為公安部門辦理網(wǎng)絡犯罪案件中鑒別是否屬于惡意流量、屬于哪種惡意流量提供依據(jù),進一步為定罪量刑打下了基礎。
目前對惡意加密流量的檢測方法可分為以下四種方式:基于端口號的方法、基于深度包檢測的方法、基于機器學習的方法和基于深度學習的方法[3]?;诙丝谔柕姆椒ㄍㄟ^識別協(xié)議類別來檢測流量。然而此方法只適用于檢測協(xié)議類別,動態(tài)端口號的普及和隧道技術(shù)以及專有的加密方法可以將協(xié)議進行隱藏?;谏疃劝鼨z測的方法以應用層的有效載荷為檢測對象,對字段特征進行分析,以此來實現(xiàn)對流量的具體分析。此方法通過流量協(xié)議知悉其協(xié)議和字段含義,但是需要頻繁維護特征庫,僅適用于未加密的流量,且具有較高的計算開銷。新一代基于機器學習的方法依賴于統(tǒng)計或時間序列特征,通常采用經(jīng)典的機器學習算法,如隨機森林和k近鄰算法。然而,此方法的性能很大程度上取決于人工設計的特性,這大大限制了它的通用性。基于深度學習的方法消除了人工選擇特征的過程,通過訓練來自動選擇特征,這使得當新的惡意流量出現(xiàn)并且舊的惡意流量逐漸升級時此方法依舊適用;同時,基于深度學習的方法具有相當好的學習能力,可以學習高度復雜的模式。因此,深度學習方法作為一種端到端的方法,能夠?qū)W習原始輸入和相應輸出之間的非線性關(guān)系,而無需將過程分解出特征選擇的步驟。但是不同模型結(jié)構(gòu)的性能以及構(gòu)建方法仍有差異,如何合理運用和搭建不同的深度學習模型,使其學習不同的表征,提高惡意加密流量的檢測率,仍然是一個需要研究的問題。
國內(nèi)外學者基于深度學習的方法進行惡意加密流量檢測的相關(guān)研究中,提出了包括以文本序列形式檢測和將流量轉(zhuǎn)化為圖像的方式進行檢測方法。Wei W等人[4]提出一維卷積神經(jīng)網(wǎng)絡(One-Dimensional Convolutional Neural Network,1D-CNN)更適用于提取作為一維的序列數(shù)據(jù)的流量特征,并創(chuàng)建了USFC-TFC數(shù)據(jù)集并針對該數(shù)據(jù)集開發(fā)了預處理工具;Zhuang Z等人[5]提出采用CNN和LSTM分別進行分組特征提取和流級別的時序特征提取的方法進行加密流量分類;Yu T等人[6]提出一種基于多自動編碼器的加密惡意流量檢測方法,使用惡意沙盒收集流量數(shù)據(jù),再使用AE的多層網(wǎng)絡進行特征提取和訓練分類器模型。上述研究均取得了不錯的結(jié)果,雖多關(guān)注流量本身的特征,但忽略了將其進行數(shù)據(jù)處理轉(zhuǎn)換后針對數(shù)據(jù)形式對模型的選擇和改進,同時目前惡意流量檢測研究領域的實驗多在未加密流量和虛擬數(shù)據(jù)集上開展,與公安實際較不符合。
為了解決上述問題,本文采用將流量數(shù)據(jù)轉(zhuǎn)換為圖像的方法,以公開數(shù)據(jù)集USTC-TFC作為實驗數(shù)據(jù)集,針對圖像引入基于視覺注意力網(wǎng)絡(Visual Attention Network,VAN)[7]的惡意加密流量檢測模型,VAN模型中的大核注意力(Large Kernal Attention,LKA)是最關(guān)鍵的部分,其將大卷積核分解成深度卷積、深度擴張卷積和通道上的卷積,再結(jié)合注意力機制根據(jù)不同的權(quán)重生成注意力圖,突出重要特征,以此生成更有效的表征提高模型的檢測率。最后設置消融實驗與變體模型和常見其他模型進行對比,來驗證模型的有效性[8]。
基于深度學習使用端到端的方式進行惡意加密流量檢測。首先,對USTC-TFC數(shù)據(jù)集進行預處理,將原始流量轉(zhuǎn)換為灰度圖。此過程經(jīng)歷流量切分、流量清洗、流量匿名化、統(tǒng)一大小、圖片生成、標記數(shù)據(jù)。其次,將處理好的圖片輸入到VAN模塊中,首先利用LKA模塊提取流量圖像的特征,再根據(jù)注意力機制計算每個特征圖的權(quán)重值生成注意力圖,然后將其輸入多層感知機(Multilayer Perceptron,MLP)中,使用多層非線性變換將輸入數(shù)據(jù)映射到高維度的特征空間中,經(jīng)歷多個階段后,將最終提取到的特征通過線性函數(shù)得到流量分類的結(jié)果。模型總體架構(gòu)如圖1所示。
使用的數(shù)據(jù)集是來自文獻[4]所創(chuàng)建的USTC-TFC的一部分。USTC-TFC數(shù)據(jù)集為少有的來源于真實環(huán)境,同時流量種類較多且為加密流量的數(shù)據(jù)集,在惡意加密流量研究領域較為廣泛的被使用。其數(shù)據(jù)格式為PCAP,實驗僅將其應用層的會話數(shù)據(jù)作為研究對象。表1為使用數(shù)據(jù)集的具體情況,左邊為正常流量,右邊為惡意流量,數(shù)據(jù)列為預處理后生成的樣本數(shù)量。
數(shù)據(jù)預處理模塊的主要功能是將原始PCAP文件中的數(shù)據(jù)包按照會話的方式進行劃分,并提取有用的信息,具體的處理過程如上述圖1所示,此模塊使用文獻[4]開發(fā)的工具集USTC-TK,在處理過程中,需要識別數(shù)據(jù)包中的五元組信息。通過這些信息,可以將流量分配到相應的會話中,從而實現(xiàn)會話的劃分。
(1)流量切分:將數(shù)據(jù)集中的原始PCAP流量文件通過使用SplitCap[9]工具進行切分,以流量的五元組信息為唯一標識,本文只對數(shù)據(jù)集中的應用層數(shù)據(jù)進行研究,將其以會話為單位切分為小單元。
(2)流量清洗:將流量切分后生成的重復文件以及沒有應用層數(shù)據(jù)的流量單元進行清洗,只保留存在完整的通信會話標志的流量小單元,將信息完整的流量小單元保存,以便后續(xù)模型對表征進行學習以區(qū)分惡意流量和非惡意流量。
(3)地址混淆:使用USTC-TK工具對數(shù)據(jù)鏈路層的Mac地址和IP層的IP地址進行處理,這些帶有特定環(huán)境標識的信息可能對流量檢測造成干擾,導致結(jié)果過擬合,失去檢測的真實性,因此統(tǒng)一刪除IP地址并使用隨機生成的IP地址進行隨機混淆,使其地址不對檢測結(jié)果造成影響。
(4)統(tǒng)一大小:切分過的流量由于交互的為不同的信息和數(shù)據(jù),數(shù)據(jù)包的數(shù)量和大小各不相同,由于深度學習模型要求輸入的數(shù)據(jù)大小為固定長度,因此將流量切割或者填充為相同長度才可進行后續(xù)處理。參考USTCTFC數(shù)據(jù)集的原始論文數(shù)據(jù)預處理方式,使用USTC-TK工具將流量切分為784字節(jié)大小。對于大于784字節(jié)的流量進行截斷,對于小于784字節(jié)的后續(xù)填充0x00,使流量都滿足784字節(jié)長度。
(5)圖片生成:將統(tǒng)一大小后的流量轉(zhuǎn)化為28×28的灰度圖進行存儲,以便后續(xù)進行可視化分析。隨機抽取各類灰度圖如圖2所示。
(6)標記數(shù)據(jù):將20類灰度圖存放到各類標簽文件夾下。
VAN是基于LKA構(gòu)造的神經(jīng)網(wǎng)絡。VAN的每一個階段有兩個子層,分別是注意力機制(Attention)和前饋神經(jīng)網(wǎng)絡(Feed-Forward Network,F(xiàn)FN)。其中注意力層包括了LKA模塊,每個子層前使用批標準化(Batch Normalization,BN),每個子層后使用加法殘差連接(Residual Connection,)。VAN每個階段結(jié)構(gòu)如圖3所示。
LKA基于CNN(Convolutional Nerual Network,卷積神經(jīng)網(wǎng)絡)和視覺注意力方法進行實現(xiàn)。CNN的主要目的是特征提取,選擇適當大小的卷積核對流量圖像各部分的特征進行提取,不同大小的卷積核提取的特征重點不相同,根據(jù)提取的各部分流量特征以及參數(shù)設置生成對應的特征圖。CNN可以減少特征維度,并找出圖像最明顯的特征。同時,卷積核越大意味著參數(shù)量越多,運算量也越大,所以為了達到輕量化的目的,LKA對大卷積核分成三個部分,分別是空間局部卷積(深度卷積)、空間長距離卷積(深度擴張卷積)和通道上的卷積(1×1卷積)。具體來說,即將K×K卷積分解為 的深度擴張卷積,擴張度為d,(2d-1)×(2d-1)的深度卷積和1×1的卷積。VAN模塊中默認采用K=21,當K=21時,根據(jù)公式(2)d=3時取得最小值。這相當于將大卷積分解成5×5的深度卷積和7×7的深度卷積,擴張率為3的小卷積。
使用上述方式將大核分解后,加入視覺注意力的方法,將提取的流量圖像特征根據(jù)每個部分的注意力權(quán)重進行加權(quán)求和,來計算一個點的重要性并生成注意力圖,越明顯的特征的比重更大從而得到更好的特征表示。LKA模塊可寫為(1)(2):
其中,F(xiàn)∈RC×H×W是輸入特征,注意力圖中的值表示每個特征的重要性[10],是張量積運算。
每個階段如上述圖3所示,首先對輸入進行下采樣,并使用跨度數(shù)來控制將采樣率。下采樣后,一個階段的所有其他層保持相同的輸出大小,即空間分辨率和通道數(shù)量。然后,L組進行批量歸一化、1×1卷積、GELU激活函數(shù)、LKA和前饋神經(jīng)網(wǎng)絡(FFN),這些操作被依次堆疊以提取特征,L的取值分別為3、3、5、2。
本文實驗訓練環(huán)境調(diào)用GPU在Pytorch上進行訓練,實驗環(huán)境如表2所示。
VAN模型參數(shù)設置如下:圖片輸入大小為28X28,經(jīng)歷四個階段,每個階段的注意力機制中嵌入的向量維度分別是[64,128,160,256],每個階段的空間維度與嵌入向量維度之間的比率分別為[8,8,4,4],每個階段的網(wǎng)絡深度分別為[3,3,5,2]。模型選擇交叉熵作為損失函數(shù)、AdamW優(yōu)化算法,批大小為50,學習率為1×10-4。為防止訓練結(jié)果過擬合,實驗設置一個早停機制,當驗證集的loss比上一個epoch的驗證集的loss小的時候,保存這一個epoch的預訓練模型;如果連續(xù)10個epoch的驗證集的loss都沒有比目前保存的預訓練模型小,那么訓練結(jié)束。
本文通過多種常見評價指標平均準確率(Average Accuracy,AA)、平均精確率(Average Precision,AP)、平均召回率(Average Recall,AR)、平均F1值(Average F1_Score,AF)對模型的檢測效果進行評估[11]。其中,準確率為正例和負例中預測正確數(shù)量占總數(shù)量的比例;精確率為預測為正例的樣本中預測正確的比例;召回率為實際為正例的樣本中,被預測為正確的正例占實際正例樣本的比例;F1值為精確率和召回率乘積的二倍除以精確率和召回率的和。
1.消融實驗
VAN網(wǎng)絡中最重要的部分為LKA模塊,LKA分解為三個卷積分別是:空間上的局部卷積和長距離卷積以及通道上的卷積,同時又加上了注意力機制。過多或過少的分解均有可能造成模型性能的下降,導致流量圖像特征提取不全面。因此本文設置了消融實驗,分別去掉深度卷積(DW-Conv)、深度擴張卷積(DW-D-Conv)、通道上的卷積(1×1Conv)以及注意力機制,并在LKA的基礎上加上sigmoid函數(shù),在公開數(shù)據(jù)集USTC-TFC上進行六組實驗。使用平均精確率(AP)和平均F1值(AF)作為評價指標,除改動上述模塊之外其他參數(shù)保持一致,來評估VAN模型的有效性。實驗結(jié)果表明原始LKA的性能最好,說明LKA中的所有部分對于提高性能都是必不可少的,使得模型分類更為準確。對比增加sigmoid函數(shù),證明歸一化對LKA模塊來說是沒有必要的。VAN模型與其消融實驗模型的對比結(jié)果如圖4所示。
2.基準模型對比實驗
為驗證基于上述LKA模塊的VAN模型的有效性,在設置了早停機制的訓練中,本文選取了5種模型(ResNet[12]、GoogLeNet[13]、DPN[14]、VGG[15]、1DCNN)做為基準模型進行對比。
根據(jù)表3數(shù)據(jù),VAN模型的表現(xiàn)最好,它在AA、AP、AR、AF指標上分別達到了95.53%、96.27%、95.56%和95.65%。相比其他基準模型,在AA指標上分別提升了0.74%、3.01%、2.66%、2.98%、3.88%,在AP指標上分別提升了0.71%、2.03%、2.23%、2.41%、4.49%,在AR指標上分別提升了0.81%、3.45%、3.02%、3.31%、4.15%,在AF指標上分別提升了0.8%、3.51%、3.07%、3.48%、4.2%。
為驗證所提VAN模型在加密流量檢測上的區(qū)分度,發(fā)現(xiàn)多數(shù)模型在Neris和Virut兩類上存在一定混淆。與此同時,VAN模型預測為Neris類樣本中有63個屬于Virut類,預測為Virut類樣本中有52個屬于Neris類,而基準模型中表現(xiàn)最好的ResNet模型,預測為Neris類樣本中有51個屬于Virut類,預測為Virut類樣本中有114個屬于Neris類,減少了50個樣本混淆。各模型的混淆矩陣如圖5所示。
此外,VAN模型在Neris和Virut兩類的F1指標上值最高,相較于基準模型中性能最好的ResNet模型分別提升了3.77%和6.07%,相較于在基準模型中Neris和Virut區(qū)分度最好的VGG模型分別提升了0.27%和0.97%。由圖5混淆矩陣的預測標簽與真實標簽的歸類可以看出,其他模型在對惡意加密流量Tinba類進行預測時,將該類的多個樣本錯誤地預測為其他種類的流量,而VAN模型在該類別上沒有錯誤地將樣本進行分類;基準模型中表現(xiàn)最好的ResNet模型在對Miuref類進行預測時,將其錯誤地預測為了四類,而VAN模型僅將2個樣本錯誤預測為Htbot類,對惡意加密流量檢測類的區(qū)分度更強。各模型在Neris和Virut兩類的F1值評價指標結(jié)果如圖6所示。
本文基于VAN模型對惡意加密流量進行檢測,將VAN結(jié)構(gòu)應用于惡意加密流量檢測領域,更關(guān)注將流量轉(zhuǎn)為圖片后的特征,實現(xiàn)高性能的分類。實驗結(jié)果有效證明,將該模型應用于惡意加密流量圖像識別中,四大指標相比其他模型均有一定程度的提升,同時對不同種類的惡意加密流量上的細粒度區(qū)分明顯增強。該模型對于流量轉(zhuǎn)換為圖片后的形式提取了更有效的惡意加密流量特征,提升了對惡意加密流量檢測的各方面指標。
但本文的實驗僅僅使用了單一數(shù)據(jù)集,且僅選擇應用層會話的流量作為研究對象,沒有對別的計算機網(wǎng)絡層以及單向流進行實驗檢測惡意加密流量的效果。因此,為了獲得更好的表示性能以及對比差異,后續(xù)研究將考慮在多種數(shù)據(jù)集上對多層的流量以及單向流進行實驗,以進一步打擊新型黑客類網(wǎng)絡犯罪活動,提升公安領域?qū)阂饧用芰髁繖z測的預期效果,為涉及惡意加密流量的犯罪認定以及量刑提供普適性依據(jù)。