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