丁要軍,王安宙
(甘肅政法大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 蘭州 730070)
在機器學(xué)習(xí)和數(shù)據(jù)挖掘領(lǐng)域,惡意流量不平衡是一種普遍存在的現(xiàn)象。目前對惡意流量不平衡數(shù)據(jù)分類的研究主要涉及兩種方法[1]:一是對分類算法進行新的設(shè)計或改進;二是在數(shù)據(jù)級別上進行操作,主要通過過采樣、欠采樣或混合采樣來達到數(shù)據(jù)集的平衡?,F(xiàn)有的過采樣方法主要分為傳統(tǒng)方法和基于生成對抗網(wǎng)絡(luò)的方法。大多數(shù)傳統(tǒng)的過采樣方法都基于SMOTE 技術(shù)[2],由于這些方法更關(guān)注局部數(shù)據(jù)信息,生成的數(shù)據(jù)不夠真實;另一種是基于生成性對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)[3],它可以捕捉數(shù)據(jù)的真實分布并直接生成合成數(shù)據(jù),用于無監(jiān)督學(xué)習(xí)。隨后,文獻[4]提出了一種基于條件生成對抗網(wǎng)絡(luò)(conditional generative adversarial networks, CGAN)的模型,該模型在GAN的基礎(chǔ)上加入了條件信息生成特定的類別。然而,GAN 與CGAN 都會受到不穩(wěn)定訓(xùn)練(梯度消失)和模式崩潰的影響。為解決這些問題,WGAN(Wasserstein generative adversarial networks)[5]隨 即被提出,該模型使用EM 距離(也稱為Wasserstein)而不是JS 散度來度量真實數(shù)據(jù)分布和生成數(shù)據(jù)分布之間的距離,從理論上解決了梯度消失的問題,可有效緩解模式崩潰問題。但CGAN 與WGAN 依然存在著訓(xùn)練只生成質(zhì)量不高的樣本或模型無法收斂。在使用GAN 模型解決網(wǎng)絡(luò)惡意數(shù)據(jù)分類問題中,文獻[6]提出了GAN 模型生成具備可執(zhí)行性和攻擊性的惡意網(wǎng)絡(luò)流樣本,但它只針對緩沖區(qū)溢出漏洞攻擊進行了研究,模型的泛化性有待進一步研究。文獻[7]提出了Attack-GAN 模型,用于生成能夠敝開入侵檢測系統(tǒng)的數(shù)據(jù)包級別對抗網(wǎng)絡(luò)流量。文獻[8]提出將WGAN-GP 與CGAN 優(yōu)勢融合的CWGAN-GP(conditional Wasserstein generative adversarial network-gradient penalty)方法,該方法不僅生成更真實多樣的數(shù)據(jù),而且克服了模式崩潰和訓(xùn)練不穩(wěn)定的問題。
本文將WGAN-GP 與輔助條件信息相結(jié)合,作為一種新的過采樣方法,為網(wǎng)絡(luò)流量圖片不平衡數(shù)據(jù)集中的少數(shù)類生成合成樣本。
與其他GAN 模型及其衍生版本類似,CWGANGP 也是由鑒別器(discriminator)和生成器(generator)組成,它們以相反的方式訓(xùn)練,通過博弈使得生成的樣本與真實數(shù)據(jù)無法區(qū)分。CGAN 模型在原始GAN 模型上添加輔助條件信息,WGAN-GP 模型以同樣的方式擴展到CWGAN-GP。CWGANGP 采用EM 距離來評估真實樣本和模擬樣本之間的分布,且加入了條件信息。Wasserstein 距離為:
CWGAN-GP 是通過懲罰鑒別器相對于其輸入梯度的范數(shù)來替代WGAN 削減權(quán)重,有效克服了WGAN 模型難以收斂的問題。
為限制生成器生成方向,使生成器能夠生成特定類別數(shù)據(jù),與CGAN 類似,CWGAN-GP 模型向生成器和鑒別器添加了附加信息y,y可以是類別標(biāo)簽或任何其他類型的輔助信息。本文中條件信息是類別標(biāo)簽。在鑒別器中,將Pdata、Pg和y以聯(lián)合隱藏表達的形式結(jié)合;在生成器中,以相同的形式將條件y與生成數(shù)據(jù)分布pg連接。函數(shù)形式為:
CWGAN-GP 的目標(biāo)是使L最小化[9],從而實現(xiàn)生成數(shù)據(jù)與真實數(shù)據(jù)之間的分布距離更小。與傳統(tǒng)的過采樣方法相比,CWGAN-GP 直接生成數(shù)據(jù),而不只是關(guān)注局部信息。
由于深度學(xué)習(xí)模型對輸入數(shù)據(jù)格式有具體要求,本節(jié)介紹數(shù)據(jù)集的預(yù)處理方法,將原始流量數(shù)據(jù)進行圖片化處理,在此基礎(chǔ)上對數(shù)據(jù)擴充平衡。
基于文獻[10]對數(shù)據(jù)處理的經(jīng)驗,本節(jié)的網(wǎng)絡(luò)流量圖片化主要是使用工具集USTC-TK2016 將原始流量數(shù)據(jù)(PCAP 或PCAPNG 格式)處理成IDX數(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é)對應(yīng)灰度像素值,如0x00 對應(yīng)黑色,0xff 對應(yīng)白色,輸出格式為PNG。
3) 數(shù)據(jù)集格式轉(zhuǎn)換:將生成的多類別圖像轉(zhuǎn)換為包含圖像像素信息和統(tǒng)計信息的IDX 格式,方便后續(xù)數(shù)據(jù)擴展和分類模型輸入。
完成以上處理操作后,每張圖片都是28*28 的灰度圖片,這些圖片類別之間有良好的區(qū)分度,保證了深度學(xué)習(xí)模型分類有很好的效果。
將預(yù)處理完成的數(shù)據(jù)放入CWGAN-GP 圖像生成器中,利用CWGAN-GP 能穩(wěn)定地生成多樣樣本的特點產(chǎn)生新的少數(shù)類別流量圖片。生成數(shù)據(jù)是具有真實圖像特征且多樣性較強的擴充數(shù)據(jù),利用這些數(shù)據(jù)對原始不平衡數(shù)據(jù)集進行數(shù)據(jù)擴充,不僅能有效平衡數(shù)據(jù)集,還能防止像傳統(tǒng)上采樣技術(shù)擴充數(shù)據(jù)集所造成的數(shù)據(jù)樣本單一、訓(xùn)練模型容易過擬合的問題。CWGAN-GP 網(wǎng)絡(luò)的鑒別器損失是與生成圖片質(zhì)量高度相關(guān)的參數(shù),在生成階段加入一個判別函數(shù),在鑒別器、生成器損失小于某閾值時輸出生成圖像,保證生成的圖像與原始真實圖像的高度相關(guān)性。平衡方法如圖1 所示。
圖1 基于CWGAN-GP 數(shù)據(jù)平衡方法
1) 將需要擴充的少數(shù)類真實流量圖制作成IDX數(shù)據(jù)集格式,輸入進CWGAN-GP 模型中進行訓(xùn)練。
2) 在生成器損失小于C1且鑒別器損失小于C2時,將生成器騙過鑒別器的圖像按類別輸出。本文的C1、C2絕對值大小分別為1.0 和0.2,在大量訓(xùn)練情況下記錄生成器、鑒別器損失大小變化,如圖2 所示,C1、C2是在考慮時間效率下相對收斂的損失值大小。
圖2 生成器、鑒別器損失變化
3) 將生成的流量圖片與原始流量圖片進行合,完成原始數(shù)據(jù)集的平衡。
平衡完成的數(shù)據(jù)是和原始流量圖片高度相關(guān)且具有多樣性,如圖3 所示,可以看出利用此方法可以生成人眼均可明確分辨的相關(guān)圖像,且具有一定的多樣性。生成數(shù)據(jù)相關(guān)程度在實驗結(jié)果中得到驗證。
圖3 生成流量圖與真實流量圖對比
實驗使用的是公共數(shù)據(jù)集USTC-TFC2016 和CIC-IDS2017[11]中的部分?jǐn)?shù)據(jù),數(shù)據(jù)集由原始PCAP文件組成。從USTC-TFC2016 中選擇了9 類應(yīng)用程序,其中包括6 類正常應(yīng)用流量和3 類異常應(yīng)用流量;從CIC-IDS2017 選擇10 類應(yīng)用程序,9 類異常應(yīng)用流量和1 類正常流量,數(shù)據(jù)集均有較大的不平衡。使用不同方法使數(shù)據(jù)集實現(xiàn)平衡,將數(shù)據(jù)樣本隨機劃分成90%的訓(xùn)練集和10%的測試集。數(shù)據(jù)集平衡前后分布如表1 和表2 所示。為保證實驗有效性,數(shù)據(jù)集的測試集部分均為真實數(shù)據(jù),生成數(shù)據(jù)只對訓(xùn)練集部分進行平衡。
表1 USTC-TFC2016 數(shù)據(jù)集平衡前后分布
表2 CIC-IDS2017 數(shù)據(jù)集平衡前后分布
對于相同的超參數(shù),設(shè)置均保持相同;對于不同的超參數(shù),單獨設(shè)置。GAN、WGAN 和CWGANGP 均為4 層神經(jīng)網(wǎng)絡(luò),噪聲空間的維數(shù)設(shè)置為100,batch_size 設(shè)置為64。WGAN 和CWGAN-GP將α、β1、和β2 分別設(shè)置為0.002、0.5 和0.999;clip_value 均為0.01;critic 設(shè)置為5,即當(dāng)生成器訓(xùn)練1 個batch 時,判別器要接著訓(xùn)練5 次;梯度懲罰系數(shù)λ 在CWGAN-GP 中設(shè)置為10,訓(xùn)練批次均為在滿足2.2 節(jié)條件下且生成數(shù)據(jù)數(shù)量足夠時停止;SMOTE 方法的k_neighbors 為5。
本文使用的分類模型是經(jīng)典LeNet-5[12]的CNN結(jié)構(gòu),CNN 模型使用交叉熵?fù)p失,batch_size 設(shè)置為50,訓(xùn)練輪次均為2 000。
本文使用評價網(wǎng)絡(luò)流量分類器的性能指標(biāo)有精確度(precision)、召回率(recall)和F1-score。
實驗在一臺配置了Intel(R)Core(TM) i7-7700HQ CPU @2.80 GHz 處理器、16 GB 內(nèi)存、GPU(GeForce GTX1050)、Win10 系統(tǒng)的筆記本電腦上運行。使用TensorFlow 1.15.0+Keras 2.3.1 深度學(xué)習(xí)平臺實現(xiàn)分類操作,基于GAN 及其衍生版本的數(shù)據(jù)生成方法使用torch1.3.1+GPU 實現(xiàn)。
使用CNN 模型對5 種平衡方法和原始數(shù)據(jù)進行實驗測試。只對訓(xùn)練集進行處理,測試集全部為原始數(shù)據(jù)。隨機選取10%的樣本集作為測試集,并對剩余90%的數(shù)據(jù)集進行平衡化作為訓(xùn)練集。為消除隨機劃分?jǐn)?shù)據(jù)集對結(jié)果的影響,將實驗重復(fù)5 次取平均值作為最終結(jié)果,結(jié)果如圖4、圖5所示。
圖4 CIC-IDS2017 分類結(jié)果對比
圖5 USTC-TFC2016 分類結(jié)果對比
經(jīng)過對比得到在相同訓(xùn)練參數(shù)下,使用CWGAN-GP 方法進行流量圖片平衡后的數(shù)據(jù)集相較于其他分類方法識別效果提升明顯,且在多數(shù)類別上識別均值高于使用其他平衡方法。CWGANGP 方法的最終效果優(yōu)于其他方法,F(xiàn)1 值在IDS2017上相較于原始數(shù)據(jù)提高近3%,較于SMOTE 方法提高近2%;在TFC2016 上較原始提高近4%,較SMOTE 提高近1.3%;在兩個數(shù)據(jù)集上均有識別率較低的流量類別,這些流量類別具有一定隱蔽性,不易被識別出來,但本方法對識別率有較大提高,驗證了本方法具有一定的魯棒性,且不易出現(xiàn)模式崩潰和收斂困難的問題。由于相較于WGAN-GP添加了輔助信息,在生成效率上也有很大提高。均值結(jié)果統(tǒng)計如表3、表4 所示。
表3 CIC-IDS2017 分類結(jié)果均值統(tǒng)計
表4 USTC-TFC2016 分類結(jié)果均值統(tǒng)計
本文提出了利用流量圖片化結(jié)合CWGANGP 來處理惡意流量識別領(lǐng)域的不平衡問題,此方法通過學(xué)習(xí)原始數(shù)據(jù)的真實分布來生成新的數(shù)據(jù)。
在兩個不同的惡意流量不平衡數(shù)據(jù)集上,通過使用深度學(xué)習(xí)分類算法CNN 對基于CWGAN-GP方法進行了評估。實驗結(jié)果表明,CWGAN-GP 在所有指標(biāo)下均優(yōu)于其他過采樣方法,但需要更多的時間進行訓(xùn)練。在未來的研究中,將對CWGANGP 進行更加深入的理論研究,加速其訓(xùn)練和收斂過程;并探索更加合理的生成數(shù)據(jù)評價指標(biāo)。