王正文 王俊峰
摘 要 ???:未知惡意流量是網(wǎng)絡(luò)安全的重大安全挑戰(zhàn),對未知惡意流量的分類能夠增強網(wǎng)絡(luò)威脅識別能力,指導網(wǎng)絡(luò)防御策略.未知惡意流量由于缺乏樣本,無法滿足現(xiàn)有的深度學習方法對大量數(shù)據(jù)的需要.本文提出了一種基于生成式零樣本學習的未知惡意流量分類方法.從原始的網(wǎng)絡(luò)流量中提取出關(guān)鍵的惡意流量信息并轉(zhuǎn)化為二維圖像,提出將惡意流量的屬性信息作為輔助語義信息,利用條件生成對抗網(wǎng)絡(luò)生成類別樣本.同時,本文還添加了類級別的對比學習網(wǎng)絡(luò),使得生成的類別樣本質(zhì)量更高并且更具有類間區(qū)分度.實驗結(jié)果表明,該方法在未知惡意流量分類問題上平均準確率能夠達到90%以上,具有較高的應(yīng)用價值.
關(guān)鍵詞 :?零樣本學習; 未知惡意流量; 生成對抗網(wǎng)絡(luò); 對比學習
中圖分類號 :TP39308 文獻標識碼 :A DOI : ?10.19907/j.0490-6756.2023.042003
Unknown malicious traffic classification method ?based on generative Zero-shot learning
WANG Zheng-Wen, WANG Jun-Feng
(College of Computer Science, Sichuan University, Chengdu 610065, China)
Unknown malicious traffic is a major security challenge for network security, and the classification of unknown malicious traffic can enhance network threat identification and guide network defense strategies. the lack of unknown malicious samples cannot meet the need of existing deep learning methods for large amount of data. To address this problem, we propose a generative zero-shot learning based method for classifying unknown malicious traffic. The key malicious traffic information is extracted from the original network traffic and transformed into two-dimensional images, and the attribute information of malicious traffic is proposed as auxiliary semantic information to generate class samples using conditional adversarial networks. In this paper, we also add a class-level comparative learning network to generate class samples with higher quality and more differentiation between classes. The experimental results show that the average accuracy of this method can reach more than 90% in the classification problem of unknown malicious traffic. It has high application value.
Zero-shot learning; Unknown malicious traffic; Generative adversarial network; Contrastive ?learning
1 引 言
近年來,計算機網(wǎng)絡(luò)技術(shù)給人們的生活帶來了巨大便利,同時,也產(chǎn)生了一系列的安全威脅.現(xiàn)有的入侵檢測方法大多依賴于歷史的流量數(shù)據(jù)集,通過提取歷史流量的特征作為惡意流量的檢測指導.在實際檢測中,如果惡意流量的種類曾經(jīng)出現(xiàn)在歷史流量數(shù)據(jù)集中,那么通過先前所獲得的流量特征,對后續(xù)的流量可以獲得很好的檢測結(jié)果.例如Gu等人 ?[1]通過統(tǒng)計包的大小、協(xié)議處理時間和到達時間三種數(shù)據(jù),來對數(shù)據(jù)包進行快速分類.Alshammari等人 ?[2]從加密流量中提取了20種流統(tǒng)計特征,然后利用機器學習算法來進行流量的檢測識別,獲得了不錯的結(jié)果.Wang ?[3]把二進制的網(wǎng)絡(luò)流看作是圖片的像素組成,然后用在圖像上分類檢測的方法來進行流量分類檢測.Wang等人 ?[4]提出基于流特征和圖神經(jīng)網(wǎng)絡(luò)特征的方法來解決僵尸網(wǎng)絡(luò)的檢測問題,可以達到99%的準確率.上述方法都是基于過去已有的歷史數(shù)據(jù)集對在歷史數(shù)據(jù)集中出現(xiàn)過的惡意流量進行檢測,取得了比較好的結(jié)果.但是攻擊者為了成功進行攻擊,不斷地改變他們的攻擊行為,更改攻擊工具,這就導致了新類型的攻擊流量不斷產(chǎn)生.這些新的流量類型在歷史流量數(shù)據(jù)集中并未出現(xiàn)過,導致現(xiàn)有的入侵檢測方法準確性下降甚至無法檢測出新出現(xiàn)的攻擊流量.這使得個人或者企業(yè)面臨著嚴重的網(wǎng)絡(luò)安全威脅.
未知攻擊因其未知性非常容易突破入侵檢測系統(tǒng),從而造成較大的威脅 ?[5],所以對于未知的攻擊識別檢測逐漸成為網(wǎng)絡(luò)安全領(lǐng)域的重點研究內(nèi)容 ?[6-7].按照是否對未知的類別進行分類,對未知惡意流量的檢測可以分成基于開集識別 ?[8,9]和基于零樣本學習 ?[10]兩類.基于開集識別的方法可以檢測到未知攻擊,但是不能判斷未知的具體類別,不能為后續(xù)措施提供更多的信息.基于零樣本學習的方法利用語義信息,可以實現(xiàn)未知惡意流量的類別分類檢測.但是在未知惡意流量領(lǐng)域,對于語義信息,大部分的研究者通過相關(guān)威脅情報網(wǎng)站搜集到的對于未知攻擊的描述作為語義信息,搜集到的語義信息的好壞和處理方式也會影響到檢測的結(jié)果,導致沒有統(tǒng)一的標準和對比指標.同時,零樣本學習利用語義信息作為輔助信息去檢測未知的惡意流量類別,也存在準確率低的問題.
因此,本文提出了一種基于生成式零樣本學習的未知惡意流量分類方法.該方法通過從原始的網(wǎng)絡(luò)流中提取流量特征,并轉(zhuǎn)化為二維灰度圖像.把惡意流量屬性信息作為語義信息,利用深度卷積生成對抗網(wǎng)絡(luò)結(jié)合對比學習方法,生成高質(zhì)量的未知惡意流量特征,再利用生成的未知惡意流量特征來作為未知惡意流量的特征表示,使得該方法能夠?qū)φ鎸嵉奈粗獝阂饬髁窟M行分類識別,是一種解決網(wǎng)絡(luò)流量中的未知惡意流量分類難題的方法.
2 相關(guān)工作
2.1 未知惡意流量攻擊檢測
在真實網(wǎng)絡(luò)環(huán)境中,新出現(xiàn)的未知惡意流量樣本往往難以收集,并且隨著時間推移,不斷有新類型的未知惡意流量出現(xiàn).如果新類型的未知惡意流量突然出現(xiàn)在當前系統(tǒng)中,一般情況下,由于當前系統(tǒng)之前沒有獲得相關(guān)的類型樣本實例,也就沒有對新類型惡意流量采取相關(guān)的防護措施,就會導致惡意流量成功入侵系統(tǒng).許多學者也意識到了這個問題,并開展了相關(guān)的研究.Saied等人 ?[11]提出了一種采用人工神經(jīng)網(wǎng)絡(luò)(ANN)的方法,在該方法中,把已知的DDOS攻擊作為訓練集;然后對未知的DDOS攻擊進行檢測;最后可以達到98%的靈敏度.但是這個方法的缺點在于它只能識別單一的DDOS流量攻擊,對于其他類型的流量攻擊,它無能為力.Sun等人 ?[12]提出基于攻擊路徑的概率方法并實現(xiàn)了一個名為ZePro的原型系統(tǒng).該方法可以檢測到未知攻擊,但是該方法需要大量的攻擊信息,如果惡意流量是加密流量,那么僅包含少量信息,無法獲得好的效果.Duessel等人 ?[13]提出在統(tǒng)一的特征空間中整合有效載荷的句法和順序特征,為網(wǎng)絡(luò)入侵的上下文感知檢測提供了很好的解決方案.但是該方法沒有考慮到現(xiàn)有的小樣本學習的遷移過程去實現(xiàn)更高的準確性.Zhang等人 ?[14]通過組合受監(jiān)督和無監(jiān)督的機器學習提出了一種新的魯棒統(tǒng)計流量分類(RTC)方案.RTC方案具有對未知網(wǎng)絡(luò)流量分類的能力.但是該方法存在較大的假陽率.Rivero等人 ?[15]提出推理階段算法,首先利用決策樹來提取生成屬性的規(guī)則,然后將不可見類作為格拉斯曼流形的一個點,最后通過計算已知類和未知類之間的距離來檢測未知類,這是零樣本學習概念在未知攻擊檢測的早期應(yīng)用.Zhang等人 ?[16]通過收集的攻擊描述信息,利用自然語言處理方法,作為惡意流量的語義屬性,然后基于零樣本學習方法提出將已知惡意流量特征空間映射到語義屬性空間,進行特征空間關(guān)聯(lián),建立特征空間到語義空間的映射,以此來分類檢測未知的惡意流量.但該方法的效果比較依賴于人工收集到相關(guān)惡意流量攻擊的語義描述的質(zhì)量,以及對相應(yīng)語料的處理方法.
2.2 零樣本學習
在監(jiān)督分類中,每類都需要足夠數(shù)量的含有標簽的樣本,并且學習好的分類器只能分類在訓練集當中出現(xiàn)過的類別.在實際應(yīng)用中,有些類別可能并沒有足夠多的訓練實例,甚至可能出現(xiàn)訓練集中沒有出現(xiàn)的類別實例卻在測試集中出現(xiàn)的情況.面對這種情況,普通的監(jiān)督分類學習無法取得良好的結(jié)果.為了解決這類問題,提出了零樣本學習 ?[17]的概念.零樣本學習的目標是對沒有標記的真實類別實例進行正確分類.零樣本學習自從提出以來 ?[ 18,19],在機器學習領(lǐng)域快速發(fā)展,已經(jīng)在機器視 ?覺,自然語言處理方面得到廣泛應(yīng)用.網(wǎng)絡(luò)安全領(lǐng)域中的未知類別問題,是為了對未知的類別進行檢測并進行正確歸類,可以通過零樣本來研究相關(guān)問題,因此,本文所研究內(nèi)容在零樣本的概念下進行研究.
在零樣本學習中,定義 S={ c ?s ?i|i=1,..., N ?s} 作為已知類別集合, ?c ?s ?i 表示已知類別.定義 U= ?c ?u ?j|j=1,..., N ?u ?作為未知類別集合, ?c ?u ?j 表示未知類別.那么 S∩U= .定義 ?D ?tr={( x ?tr ?i, y ?tr ?i)∈X×S} ??N ?tr ?i=1 作為含有標簽的已知類訓練集合. ?x ?tr ?i 為表示樣本特征空間的樣本實例, ?y ?tr ?i 為對應(yīng)所屬已知類別標簽.定義 ??X ?te= ??x ?te ?i∈X ???N ?te ?i=1 為測試樣本實例集合, ?x ?te ?i 為表示樣本特征空間的樣本實例.定義 ?Y ?te= ??y ?te ?i∈U ???N ?te ?i=1 作為 ?x ?te ?i 對應(yīng)的未知類別標簽.在給定 ?D ?tr 屬于集合 S 的條件下,零樣本的任務(wù)就是學習一個分類器 ?f ?u(·):X→U ,該分類函數(shù)可以正確的分類 ?X ?te 到類別 U 中.
在未知惡意流量分類檢測問題中,未知類別的真實流量樣本無法參與訓練,在分類檢測階段,卻會面臨真實的未知惡意流量.這種情況與零樣本的定義相對應(yīng),某些類別在訓練集中不存在,在測試集中卻出現(xiàn)相應(yīng)類別.因此,使用零樣本的相應(yīng)概念來劃分未知惡意流量分類問題是可行的.
3 未知惡意流量分類方法
本節(jié)介紹基于生成式零樣本學習的未知惡意流量分類方法.該方法通過從原始流量中提取出流量樣本圖像特征,利用樣本圖像特征和流量屬性,結(jié)合對比學習的生成對抗方法以及使用生成網(wǎng)絡(luò)生成的未知惡意流量特征,以實現(xiàn)對于未知網(wǎng)絡(luò)惡意流量的準確分類.
3.1 方法概述
原始網(wǎng)絡(luò)流量數(shù)據(jù)中包含著大量的載荷數(shù)據(jù),為了能夠高效地抽取網(wǎng)絡(luò)流量的特征,本文提出從網(wǎng)絡(luò)流中截取網(wǎng)絡(luò)流量特征的關(guān)鍵表示部分.為了更高效地進行特征表示,將抽取出來的原始網(wǎng)絡(luò)流量轉(zhuǎn)換為二維灰度圖像作為網(wǎng)絡(luò)流的特征表示.結(jié)合惡意流量的屬性特征,利用生成對抗網(wǎng)絡(luò)生成惡意流量的流量特征表示.同時,為了使得生成對抗網(wǎng)絡(luò)生成的不同種類之間的惡意流量區(qū)分度更高,本文提出在生成對抗網(wǎng)絡(luò)中結(jié)合對比學習方法,來提高生成的惡意流量特征的質(zhì)量.然后利用未知惡意流量的屬性特征,結(jié)合在上一階段訓練完成的生成對抗網(wǎng)絡(luò)模型生成各個類別的未知惡意流量的流量特征.最后利用生成的未知惡意流量特征來訓練惡意流量分類器,使得對于未知惡意流量的分類難題變成一個普通的監(jiān)督學習問題.最終使得惡意流量分類器能夠?qū)ξ粗獝阂饬髁窟M行分類檢測.整體流程如圖1所示.
3.2 原始流量數(shù)據(jù)處理
以源IP地址,源端口,目的IP地址,目的端口和傳輸層協(xié)議這五個信息可以唯一的確定一個網(wǎng)絡(luò)流.一個網(wǎng)絡(luò)流中往往包含多個數(shù)據(jù)包,一次攻擊行為通常由多個數(shù)據(jù)包完成.一個數(shù)據(jù)包中包含多個層次的頭部和載荷數(shù)據(jù).數(shù)據(jù)鏈路層(MAC)通常包含14字節(jié)頭部,網(wǎng)絡(luò)層(IP)通常包含20字節(jié)頭部.網(wǎng)絡(luò)傳輸層(TCP)包含20字節(jié)頭部.而關(guān)于應(yīng)用層,不同協(xié)議頭部長度不是固定的.因此,每個包可通過截取一定長度獲得包的頭部字段,為了便于后續(xù)處理,本文每個包截取前64字節(jié)內(nèi)容.在一個網(wǎng)絡(luò)會話流中,通常包含多個數(shù)據(jù)包,會話流中的前幾個數(shù)據(jù)包中通常包含了整個流的特征.因此,在本文提出的方法中,對惡意網(wǎng)絡(luò)流量的檢測以網(wǎng)絡(luò)會話流作為基本單位.綜上所述,在規(guī)范輸入的維度同時獲取網(wǎng)絡(luò)會話流中的關(guān)鍵特征表示,我們截取了一個網(wǎng)絡(luò)會話流中的固定個數(shù)網(wǎng)絡(luò)數(shù)據(jù)包中的關(guān)鍵數(shù)據(jù)部分作為當前網(wǎng)絡(luò)會話流的表示.在本文提出的方法中,對一個網(wǎng)絡(luò)會話流中包含的多個數(shù)據(jù)包,選取網(wǎng)絡(luò)會話流中的前8個數(shù)據(jù)包,每個數(shù)據(jù)包截取前64個字節(jié)的數(shù)據(jù)內(nèi)容.最后每個網(wǎng)絡(luò)會話流當中獲得512字節(jié)的數(shù)據(jù)內(nèi)容,每一個字節(jié)的取值范圍為0到255.為了使得特征表示更加高效,將這512字節(jié)的數(shù)據(jù)內(nèi)容轉(zhuǎn)化為二維灰度圖像.將生成的二維灰度圖像作為當前網(wǎng)絡(luò)流的特征表示.如圖1a所示.
3.3 未知惡意流量生成
在本方法中,定義 ?Y ?s 為已知惡意流量類別集合.定義 ?Y ?u 為未知類別集合,滿足 ?Y ?s∩ Y ?u= .定義 ?D ?tr= ??x ?1, y ?1 ,..., ?x ?N, y ?N ??, ?x ?i∈X 為惡意流量樣本實例, ?y ?i∈ Y ?s 為已知樣本標簽.定義測試集為 ??D ?te= ?x ?N+1,..., x ?N+M ?為沒有標簽的惡意流量樣本實例,在零樣本條件下,測試集合 ?D ?te 只包含未知惡意流量樣本實例,在廣義零樣本條件下,測試集合 ?D ?te 即包含已知類別惡意流量樣本,又包含未知類別惡意流量樣本.定義 ?A={ a ?1,..., a ?s, a ?s+1,..., a ?s+u} ?為描述惡意流量的屬性, ?a,..., a ?s ?為與 ?Y ?s 相對應(yīng)的已知類別屬性, ??a ?s+1,..., a ?s+u ?為與 ?Y ?u 對應(yīng)的未知類別屬性.
為了將未知惡意流量分類檢測的難題轉(zhuǎn)化為普通的監(jiān)督分類學習問題,本文提出基于生成式的零樣本學習方法.即結(jié)合現(xiàn)有的惡意流量屬性和已知類別的惡意流量,生成未知惡意流量特征.因此在具體結(jié)構(gòu)中,本文使用生成對抗學習的方法.同時在生成對抗學習方法中,為了構(gòu)建流量屬性空間和流量特征空間的對應(yīng)關(guān)系,我們使用條件生成對抗網(wǎng)絡(luò)(CGAN) ?[20].將流量屬性特征作為條件信息形成訓練過程中的條件約束.在流量屬性和高斯噪聲 ∈~瘙 綃
(0,1) 的聯(lián)合條件下,流量特征生成方法學習一個條件生成網(wǎng)絡(luò),用來在屬性條件 a 的條件下生成對應(yīng)類別的樣本特征 ?x =G(a,∈) .而鑒別網(wǎng)絡(luò)則用于判斷 (x,a) 和 ( x ,a) 為生成的樣本特征還是真實的樣本特征.因此生成網(wǎng)絡(luò)希望根據(jù) a 生成盡可能接近真實的 ?x ?使得鑒別網(wǎng)絡(luò)對 ??x ,a ?判斷為真,而鑒別網(wǎng)絡(luò)則希望能夠鑒別出 ?x,a ?為真,而 ??x ,a ?為假.最終希望生成的 ?x ?與真實的 x 分布一致.因此,生成對抗網(wǎng)絡(luò)的損失函數(shù)可表示為:
(1)
其中, p(x,a) 為真實流量樣本特征和對應(yīng)類別的流量屬性特征的聯(lián)合分布; pG( x ,a) 為生成的流量樣本特征和對應(yīng)類別的流量屬性聯(lián)合分布; D 為生成網(wǎng)絡(luò); G 為鑒別網(wǎng)絡(luò); D(x,a) 為真實流量判斷結(jié)果; D( x ,a) 為生成流量的判斷結(jié)果.
在本文提出的方法中,為了提高生成的流量特征的質(zhì)量,增加不同類別流量特征之間的區(qū)分度,我們在條件生成對抗網(wǎng)絡(luò)的基礎(chǔ)上結(jié)合對比學習方法 ?[21].為了增加類別之間的距離,加入類級別的對比學習方法,我們定義了一個比較網(wǎng)絡(luò) C ( x , a )來表示真實樣本 x 或生成樣本 ?x ?與所屬類別的屬性 a 之間的相似度.在訓練階段,由零樣本的定義可知,訓練集中只有已知類別.因此,對任一樣本 x ,有唯一對應(yīng)類別屬性 a ,也就是說 (x,a) 可以作為對比學習中的正樣本對.而已知類別 S 類中,剩下的 S-1 類對應(yīng)的屬性 a 與樣本 x 構(gòu)成對比學習當中的負樣本對.因此,該對比方法的交叉熵損失如下.
l x, a ?+ =- log ?exp C x, a ?+ /τ ?∑ ??S ?s=1exp C x, a ??s /τ ???(2)
其中, S 為已知類別數(shù)量; C 為對比網(wǎng)絡(luò); ?a ?+ 為與 x 對應(yīng)的屬性; ?a ?s 為包含對應(yīng)屬性在內(nèi)的所有類別屬性; τ 是溫度系數(shù),并且 τ>0 ,溫度系數(shù)用于決定對比損失中對困難負樣本的關(guān)注程度.損失函數(shù)中,分子為正樣本,分母為對所有樣本求和,所有樣本包含正樣本和負樣本.通過對比學習方法,將正樣本的距離拉近,正樣本和負樣本的距離拉遠.增大類別流量之間的區(qū)分度.對比學習的期望損失函數(shù)如下.
(3)
綜上,本文中所提出方法的最終損失函數(shù)如下.
min ??G,C ???max ??D V(G,D)+L(G,C) ?(4)
本文提出網(wǎng)絡(luò)結(jié)構(gòu)如圖1b所示,以條件生成對抗網(wǎng)絡(luò)為基礎(chǔ),在此基礎(chǔ)上,定義了對比學習網(wǎng)絡(luò),以生成對抗網(wǎng)絡(luò)損失和對比學習損失作為整個學習過程的損失.使用惡意流量屬性和惡意流量特征,來構(gòu)建之間的對應(yīng)關(guān)系.最后利用條件生成網(wǎng)絡(luò)在不同類別的屬性條件下生成未知惡意流量特征表示.
3.4 未知惡意流量檢測
在上文中,我們提出以條件生成網(wǎng)絡(luò)為基礎(chǔ)結(jié)合對比學習的網(wǎng)絡(luò)結(jié)構(gòu),用來建立惡意流量屬性空間和惡意流量特征空間的關(guān)系.在此基礎(chǔ)上,我們可以利用未知惡意流量屬性結(jié)合條件生成網(wǎng)絡(luò)生成未知惡意流量特征表示.在得到未知惡意流量的特征表示過后,對于未知惡意流量的分類檢測難題則變成了普通的監(jiān)督分類問題.我們只需要構(gòu)建惡意流量分類器即可對真實的未知惡意流量進行分類檢測.為了充分利用在上一節(jié)網(wǎng)絡(luò)中蘊含的信息,我們將對比網(wǎng)絡(luò)部分的嵌入網(wǎng)絡(luò)作為惡意流量分類網(wǎng)絡(luò)的部分網(wǎng)絡(luò)結(jié)構(gòu).最后,利用這些生成的未知惡意流量特征訓練分類器,即可對真實的未知惡意流量進行分類檢測.最終,對于未知惡意流量分類的難題變?yōu)槠胀ǖ姆诸悊栴}.
4 實 驗
4.1 實 驗
4.1.1數(shù)據(jù)集 ?為了驗證本文方法的有效性,我們選擇CICIDS2017數(shù)據(jù)集對本文提出的方法進行實驗驗證.該數(shù)據(jù)集的流量數(shù)據(jù)采集于真實環(huán)境,并且來自不同的時間段,主要包括FTP,SSH,DoS,HeartBleed,WebAttack,Infiltration,Bot,Portscan和DDos這幾類惡意流量.與NSL_KDD等傳統(tǒng)的數(shù)據(jù)集相比,CICIDS2017數(shù)據(jù)集包含原始惡意流量數(shù)據(jù),同時,CICIDS2017數(shù)據(jù)集中包含最新的常見攻擊類型,更符合真實的網(wǎng)絡(luò)環(huán)境.由于HeartBleed和Infiltration在其中數(shù)量很少,屬于小樣本,為了實驗設(shè)置樣本數(shù)量的平衡性,去除HeartBleed,Infiltration這兩種樣本量比較少的類別,剩下的7個惡意流量類別作為實驗類別.與一般的零樣本學習采用自然語言描述中提取的向量作為輔助屬性特征不同,本文方法采用自動化工具生成的統(tǒng)計特征作為輔助屬性,使得方法效果不會因為自然語言描述內(nèi)容和信息提取方法的不同而受到影響.
零樣本學習分為傳統(tǒng)零樣本學習和廣義零樣本學習 ?[22].在傳統(tǒng)零樣本學習中,測試集合中的測試類別只包含在訓練集中未出現(xiàn)過的類別.在廣義零樣本學習中,測試集合中除了在訓練集合中未出現(xiàn)的類別外,還有在訓練集合中出現(xiàn)過的類別.因此,在本文的實驗中,在零樣本的實驗條件下,數(shù)據(jù)集的劃分如表1所示.訓練集和測試集的類別沒有交集.在廣義零樣本的實驗條件下,數(shù)據(jù)集的劃分如表2所示,在訓練集中存在的類別同時在測試集中也存在.
4.1.2 評價指標與對比方法 ?本文采用精確率( Precision )、召回率( Recall )、 F 1分類( F1-score )、準確率( Accuracy )來評估方法的有效性,計算公式為
Precision= TP TP+FP ??(5)
Recall= TP TP+FN ??(6)
F1-score=2× Precision×Recall Precision+Recall ??(7)
Accuracy= TC TC+FC ??(8)
其中, TP 表示當前類的預測類別與真實類別一致; FP 表示預測類別為當前類別,但是真實類別為其他類別; FN 預測類別為其他類別; TC 表示整體分類中,正確分類數(shù); FC 表示整體分類中,錯誤分類數(shù)目.
本文方法基于零樣本學習,為了與本文方法進行對比,我們將經(jīng)典的零樣本學習方法(Label-Embedding for Attribute-Base,ALE) ?[23]作為對比方法.此外,我們還將SAE(Semantic Autoencoder) ?[24]方法用于對比,在該方法基礎(chǔ)之上,有許多研究者使用該方法變形結(jié)構(gòu)用于未知攻擊分類檢測 ?[25].
4.2 惡意流量分類實驗
4.2.1 傳統(tǒng)零樣本未知惡意流量分類 ?在傳統(tǒng)零樣本條件下,訓練集中只有已知類別的惡意流量樣本與對應(yīng)標簽,在測試集中只有未知類別的惡意流量樣本,對原始網(wǎng)絡(luò)流量處理后進行劃分,流量劃分情況如表1所示.七類流量中,F(xiàn)TP、SSH、DOS和WebAttack作為已知惡意流量.Bot、PortScan和DDoS作為未知惡意流量類別,各類樣本具體數(shù)量如表1所示.
在該數(shù)據(jù)集劃分情況下,我們進行了傳統(tǒng)零樣本條件下的未知惡意流量分類檢測實驗.在訓練階段,使用訓練集數(shù)據(jù)去訓練網(wǎng)絡(luò)模型.在生成階段,利用訓練好的生成器結(jié)合未知類別的語義屬性來生成未知類別的惡意流量樣本.然后利用生成的未知惡意流量樣本訓練檢測器.在測試階段,在如表1劃分的測試集上進行測試.
實驗結(jié)果如表3所示.在精準率上,我們提出的方法在三種未知類別上都超過了95%,SAE方法在PortScan和DDoS上超過了95%,但是在Bot上精準率只有55%.而ALE在PortScan和DDoS上精準率不超過85%.在召回率上,我們提出的方法在三個未知類別都超過了95%.ALE方法在PortScan和DDoS上超過了95%,但是在Bot類別上召回率只有0.03%.SAE方法在Bot和PortScan上超過了95%,在DDoS上只有69%.從 F 1分數(shù)上來看,本文提出的方法在三類未知樣本上都取得最好的結(jié)果,優(yōu)于另外兩種方法.在準確率上,我們提出的方法比ALE方法高15%,比SAE方法高12%.在傳統(tǒng)零樣本條件下,我們的方法比另外兩種方法表現(xiàn)更好.因此,我們提出的方法能夠很好地解決傳統(tǒng)零樣本條件下未知惡意流量分類檢測問題.
4.2.2 廣義零樣本未知惡意流量分類 ?在傳統(tǒng)零樣本條件下,測試數(shù)據(jù)集中只包含未知的惡意流量類別.在真實的網(wǎng)絡(luò)環(huán)境中,通常已知惡意流量伴隨著未知惡意流量一起出現(xiàn).因此,在分類檢測未知惡意流量的同時,對已知惡意流量進行分類同樣也很重要.所以除了進行傳統(tǒng)零樣本實驗以外,我們同樣進行了廣義零樣本實驗.在廣義零樣本實驗中,訓練集類別與傳統(tǒng)零樣本實驗中設(shè)置一樣,只包含已知惡意流量類別.但是在測試集中,除了包含未知惡意流量類別樣本外,還包含了已知惡意流量類別樣本.在廣義零樣本實驗條件下,數(shù)據(jù)集的劃分情況如表2所示.七類流量中,F(xiàn)TP、SSH、DOS和WebAttack作為已知惡意流量.Bot、PortScan和DDoS作為未知惡意流量類別.
同樣,在廣義零樣本實驗中,在訓練階段,利用已知流量類別樣本和惡意流量屬性結(jié)合生成對抗網(wǎng)絡(luò)和比較網(wǎng)絡(luò)進行學習.在生成階段,使用生成對抗網(wǎng)絡(luò)中的生成器結(jié)合未知惡意流量類別的屬性特征,生成對應(yīng)類別的未知惡意流量特征,然后用生成的未知惡意流量特征與真實的已知惡意流量特征一起訓練惡意流量分類檢測器.在測試階段,測試數(shù)據(jù)劃分如表2所示.使用真實的已知惡意流量和真實的未知惡意流量檢驗方法效果,實驗結(jié)果如表4所示.
表4中,在精準率上,ALE方法只有FTP超過了90%,在Bot和DDoS上精準率為0.SAE方法中,有4類的精準率超過了95%,但是有3類的精準率接近0.而我們提出的方法除了DDoS的精準率為76%,其余各類精準率都在90%以上.在召回率上,ALE方法有4類超過了95%,而有3類召回率接近0.SAE方法中,有3類召回率超過85%,3類接近0.而我們提出的方法中有5類超過90%,2類超過80%.在 F 1分類中,ALE方法中僅有1類超過了90%,SAE方法也只有1類超過了90%,而我們提出的方法中有4類超過了90%,3類超過了85%.而在準確率上,ALE的平均準確率降為53%,SAE的平均準確率只有24%,而我們提出的方法仍然能夠保持93%的準確率.在更接近真實環(huán)境的廣義零樣本條件下,相比與零樣本條件下的實驗, ALE方法和SAE方法對已知類別的惡意流量分類檢測效果都下降嚴重,而我們提出的方法仍然能夠保持良好的效果.由此可見,我們提出的方法能夠解決未知惡意流量的分類檢測問題.
5 結(jié) 論
在本文中,我們提出了一種基于生成式零樣本學習未知惡意流量分類方法.為了更好地抽取惡意流量的特征,我們提出以數(shù)據(jù)流為單位,抽取固定長度的數(shù)據(jù)并轉(zhuǎn)化為二維灰度圖像作為數(shù)據(jù)流的流量特征表示.通過條件生成對抗網(wǎng)絡(luò)結(jié)合流量屬性特征生成未知惡意流量特征,同時為了提高生成質(zhì)量,在生成網(wǎng)路中加入對比網(wǎng)絡(luò),最終利用生成的未知惡意流量特征將未知惡意流量檢測問題變成了普通的分類問題.實驗結(jié)果表明,本文提出的方法對于未知惡意流量的分類具有良好的表現(xiàn).
參考文獻:
[1] ??Gu R, Wang H, Sun Y, ?et al . Fast traffic classification using joint distribution of packet size and estimated protocol processing time[J]. IEICE T Inf Syst, 2010, 93: 2944.
[2] ?Alshammari R, Zincir-Heywood A N. Machine learning ?based encrypted traffic classification: Identifying ssh and skype [C]//Proceedings of the 2009 IEEE Symposium on Computational Intelligence for Security and Defense Applications. Ottawa: IEEE, 2009: 1.
[3] ?Wang Z. The applications of deep learning on traffic identification [J]. BlackHat USA, 2015, 24: 1.
[4] ?Wang W, Shang Y, He Y, ?et al . BotMark: automated botnet detection with hybrid analysis of flow-based and graph-based traffic behaviors [J]. Inform Sci, 2020, 511: 284.
[5] ?Akshaya S, Padmavathi G. A study on zero-day attacks [J]. SSRN Electron J, 2019, 5: 1.
[6] ?Wu Y, Wei D, Feng J. Network attacks detection methods based on deep learning techniques: a survey[J]. Secur Commun Netw, 2020, 2020: 1.
[7] ?Liu A, Wang Y, Li T. SFE-GACN: a novel unknown attack detection under insufficient data via intra categories generation in embedding space [J]. Comput Secur, 2021, 105: 102262.
[8] ?Zhang Y, Niu J, Guo D, ?et al . Unknown network attack detection based on open set recognition [J]. Procedia Comput Sci, 2020, 174: 387.
[9] ?Wang C, Wang B, Sun Y, ?et al . Intrusion detection for industrial control systems based on open set artificial neural network[J]. Secur Commun Netw, 2021, 2021: 1.
[10] ?Sarhan M, Layeghy S, Gallagher M, ?et al . From zero-shot machine learning to zero-day attack detection [EB/OL]. [2022-06-28].https://arxiv.org/abs/2109.14868.
[11] Saied A, Overill R E, Radzik T. Detection of known and unknown DDoS attacks usingartificial neural networks[J]. Neurocomputing, 2016, 172: 385.
[12] Sun X, Dai J, Liu P, ?et al . Using bayesian networks for probabilistic identification of zero-day attack paths[J]. IEEE T Inf Foren Sec, 2018, 13: 2506.
[13] Duessel P, Gehl C, Flegel U, ?et al . Detecting zero-day attacks using context-aware anomaly detection at the application-layer [J]. Int J Inf Secur, 2017, 16: 475.
[14] Zhang J, Chen X, Xiang Y, ?et al . Robust network traffic classification[J]. IEEE ACM T Network, 2014, 23: 1257.
[15] Rivero J, Ribeiro B, Chen N, ?et al . A grassmannian approach to zero-shot learning for network intrusion detection [C]// Proceedings of the International Conference on Neural Information Processing. Guangzhou: Springer, Cham, 2017: 565.
[16] Zhang Z , Liu Q, Qiu S, ?et al . Unknown attack detection based on zero-shot learning[J].IEEE Access, 2020, 8: 193981.
[17] Lampert C H, Nickisch H, Harmeling S. Learning to detect unseen object classes by between-class attribute transfer [C]//Proceedings of the 2009 IEEE Conference on Computer Vision and Pattern Recognition. Miami: IEEE, 2009: 951.
[18] Larochelle H, Erhan D, Bengio Y. Zero-data learning of new tasks [J]. AAAI, 2008, 1: 3.
[19] Sun X, Gu J, Sun H. Research progress of zero-shot learning [J]. Appl Intel, 2021, 51: 3600.
[20] Mirza M, Osindero S. Conditional generative adversarial nets [J]. Comput Sci, 2014, 2014: 2672.
[21] Chen T, Kornblith S, Norouzi M, ?et al . A simple framework for contrastive learning of visual representations[C]//Proceedings of the International Conference on Machine Learning. Vienna: PMLR, 2020: 1597.
[22] Wang W, Zheng V W, Yu H, ?et al . A survey of zero-shot learning: Settings, methods, and applications [J]. ACM T Intell Syst Tec, 2019, 10: 1.
[23] Akata Z, Perronnin F, Harchaoui Z, ?et al . Label-embedding for attribute-based classification[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Portland: IEEE, 2013: 819.
[24] Kodirov E, Xiang T, Gong S. Semantic autoencoder for zero-shot learning [C]//Proceedings of the IEEE Conference on Computer Vision and Pattern ?Recognition.Hawaii: IEEE, 2017: 3174.
[25] Zhang Z, Liu Q, Qiu S, ?et al . Unknown attack detection based on zero-shot learning [J]. IEEE Access, 2020, 8: 193981.