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