朱曉慧 錢麗萍 傅 偉
(北京建筑大學電氣與信息工程學院 北京 100044)(建筑大數據智能處理方法研究北京市重點實驗室 北京 100044)
基于深度學習的人工智能技術蓬勃發展,在分類、識別、檢測等領域都已取得顯著進展。但多數研究均從網絡結構、訓練策略進行,忽視了數據本身的重要性。現存眾多數據集都存在以下3個突出問題:
(1) 數據集規模小且數據相似度高,用于深度學習訓練模型過程中易出現過擬合現象。
(2) 數據分布不均衡,正數據樣本數量遠大于負數據樣本數量,不利于深度學習模型學習數據特征。
(3) 數據再采集和人工標注過程耗費大量人力、物力和財力。
針對數據集存在問題,國內外研究者加強對數據增強技術的關注。文獻[1]對基于深度神經網絡的少樣本學習方法進行全面總結,將其分為數據增強、遷移學習[2]、度量學習、元學習[3]四類,通過對各類方法進行比較分析,闡明各方法對少樣本學習的優劣之處和特點,但文中只將數據增強作為解決少樣本學習困難問題的方法之一,沒有詳細闡釋其對小樣本數據集擴充的具體應用及意義。文獻[4]對基于生成對抗網絡的數據增強方法進行介紹,針對網絡攻擊檢測數據綜述其具體應用,只涉及部分網絡攻擊樣本擴增實例介紹。本文將立足于生成對抗網絡數據增強技術,對其在網絡安全小樣本數據增強上的應用全面調研分析,探究其可提升之處。
深度學習是一種基于大數據的方法,數據規模越大、質量越高,訓練所得模型性能和泛化能力越好。然而在實際采集數據過程中往往很難覆蓋全部場景,且數據獲取需要大量成本。若能夠自動化生成各種訓練數據,就能更好地開源節流。所以對多數小樣本數據集而言,數據增強是不可缺少的部分。
數據增強(Data Augmentation)也稱數據擴增,是一種擴充數據規模的有效方法[5]。按照對數據集處理的不同階段可分為離線增強和在線增強,離線增強直接對數據集進行處理,適用于較小數據集;在線增強先獲取批量數據,然后再進行增強,適用于較大數據集。按照增強方式不同又可分為有監督增強和無監督增強,其中有監督增強指按照早已設定好的數據變換規則,在原數據基礎上進行變換,有單樣本數據增強和多樣本數據增強;無監督增強可分為生成新數據和學習增強策略兩個方向,前者通過模型學習原數據的數據分布,生成分布一致的新數據,以GAN[6]為代表,后者通過模型學習出適當的數據增強方法,以AutoAugment[7]為代表。分類架構如圖1所示。

圖1 數據增強分類
傳統數據增強方法大多采用有監督形式,常用的包括旋轉、裁剪、噪聲、顏色變換、填充等操作。這些方法都是由使用者完全定義,并不適用于所有任務。因此為處理更多類型小規模數據集,使擴增數據更具多樣性、合理性,許多研究者轉向運用無監督的方式,提出多種生成式模型。近幾年較主流的生成式模型有自動編碼器、自回歸模型、生成對抗網絡,其中基于生成對抗網絡的數據增強方法表現尤為突出。
生成對抗網絡(GAN)由Goodfellow等[6]提出,是一種無監督學習的生成式模型。GAN思想的誕生啟發于博弈論中二人零和博弈,由兩個參與者對抗互相提升,所以相較于自動編碼器[8]和變分自編碼器[9]等傳統生成模型,GAN中有兩個模型:生成模型G和判別模型D。
這兩個模型都可以被看作為黑匣子,是一種輸入輸出映射。原始GAN表示G和D只要是能夠擬合相應生成和判別的函數即可,而在實際應用中二者多采用神經網絡。其中G是一個樣本生成器,用來擬合數據分布,目的是生成與真實數據極相似的數據以欺騙判別模型D。而D相當于一個二分類器,用來判別輸入數據是否真實,目的是盡可能區分真實樣本和生成樣本。在訓練過程中G和D單獨交替迭代訓練,在相互對抗中不斷提高自身性能,構成動態的博弈過程。具體模型結構如圖2所示,其中:x表示真實數據集中數據;z表示隨機噪聲。

圖2 GAN模型
自GAN問世以來,用于數據增強的生成對抗網絡架構在繼承原始GAN優點的同時不斷克服其在理論與實踐中的問題,相繼出現CGAN[10]、DCGAN[11]、WGAN[12]、CycleGAN[13]等模型架構,為GAN更好用于小樣本數據增強提供堅實的理論基礎。
1.3.1CGAN
GAN的優勢在于不需要預先假設數據分布而可以直接對數據分布進行采樣,在理論上能夠完全擬合真實數據,但在實踐中發現該方式因沒有任何限制而過于自由,對于較大圖片和復雜數據,基礎GAN將變得難以控制,于是Mirza等[10]提出條件生成式對抗網絡理論(CGAN)。該模型對原始GAN附加約束,在生成模型和判別模型中引入條件變量y,理論上條件變量y可以采用各種有意義的信息,將無監督學習的GAN轉變為弱監督或有監督的方式。條件生成對抗網絡(CGAN)的提出一定程度上解決原始GAN因輸入為沒有限制的隨機噪聲而導致在訓練過程中容易造成模型崩潰的問題,目前CGAN在MNIST和MIR Flickr25000數據集都取得不錯的效果。
1.3.2DCGAN
深度卷積生成對抗網絡(DCGAN)由Radford等[11]提出。通過對GAN網絡結構的改進,首次將卷積神經網絡運用到GAN中。在DCGAN中完全使用卷積層替代全連接層,整個網絡結構中沒有pooling層和上采樣層,生成器和判別器總體呈對稱分布,在實際運用中采用帶步長的卷積層替代上采樣過程,通過引入架構變化來解決訓練不穩定、模式崩潰和內部協變量轉換等問題,DCGAN的出現是GAN研究史上一個重要里程碑。Radford使用DCGAN在LSUN數據集上進行無監督學習,獲得較高質量的生成樣本。此后,在DCGAN結構基礎上引入了大量GAN衍生結構。
1.3.3WGAN
然而DCGAN沒有從根本上解決問題,且訓練時仍需要小心平衡G、D的訓練進程,往往采用交替迭代的方式訓練。與DCGAN不同,WGAN主要從損失函數角度對GAN改進,研究者通過研究分析得出交叉熵不適合用來衡量不相交數據之間分布距離是造成原始GAN訓練不穩定的主要原因,提出使用wassertein距離來衡量生成數據與真實數據分布之間的距離[12]。此模型架構不僅提高訓練穩定性,還為類別數據的處理提供有效方法。在Kaggle競賽中的Sberbank Russian Housing Market數據集上運用WGAN成功生成數據樣本,擴展了包含連續數據和類別數據的數據集,獲得了穩定且收斂的損失函數曲線。
1.3.4CycleGAN
利用原始GAN和已有衍生GAN模型直接生成風格相同的數據擴充數據集已經得到很好應用,然而由不成對數據集通過風格遷移來增強數據卻沒有較好的實現方法。基于此,CycleGAN[13]模型架構應運而生,其創新點在于能夠通過沒有成對的訓練數據將圖片內容從源域遷移到目標域。CycleGAN有別于傳統的單向GAN,由兩個生成網絡和兩個判別網絡組成,整個網絡是一個對偶的環形結構,可以將某一類圖片轉化成另一類圖片,提高圖片數據增強的多樣性。
鑒于網絡數據的特殊性,現存數據集規模普遍較小。為發揮深度學習優勢,自動生成符合真實數據分布的可用攻擊數據,研究者加強對GAN用于數據增強的探究。本節將先對網絡安全常用數據集進行介紹,然后選取部分已采用GAN進行增強的數據集展開闡述。
目前網絡安全數據集已有很多,常見的有:AWID[14]、Booters[15]、CIC DoS[16]、CICIDS 2017[17]、CIDDS-001[18]、CIDDS-002[19]、CTU-13[20]、DARPA[21-22]、DDoS 2016[23]、IRSC[24]、ISCX 2012[25]、ISOT[26]、KDD CUP99[27]、PUF[28]、UNSW-NB15[29]、Botnet(僵尸網絡)[30]、Malicious-URLs等。本節將對這些數據集進行介紹、分析與比較,具體如表1所示。

表1 網絡安全常用數據集

續表1
通過表1發現:(1) 現存常用的網絡安全數據集規模普遍較小;(2) 數據采集大多通過模擬網絡環境獲得;(3) 部分在真實環境中創建的數據集因其隱私性而不能公開使用。
2.2.1惡意軟件生成
惡意軟件檢測是網絡入侵檢測的重要部分之一,近年來深度學習技術已被用于檢測新的惡意軟件。為獲得大量合乎要求的惡意軟件數據用于訓練,提高檢測率,許多研究者投入到對生成模型的探究中。文獻[31]提出一種基于生成對抗網絡的算法-MalGAN,用來生成對抗惡意軟件示例。該模型由神經網絡結構的生成器和替代判別器構成,先將噪聲和原始惡意軟件樣本作為輸入放進生成器;然后將生成的惡意樣本與原始良性樣本一起送入黑盒進行分類識別并打上標簽;最后將分類結果作為替代判別器的輸入,用來訓練判別器。以此迭代訓練,調整參數直至整個過程結束。由此生成的惡意軟件能夠躲避檢測器檢測,甚至可以使檢測率降低至零,豐富了現有惡意軟件數據集。
Hu等[32]針對基于機器學習的惡意軟件檢測算法在對抗性示例攻擊下很脆弱問題提出一種新穎的生成算法,生成順序對抗性示例。該算法采用循環神經網絡(RNN)結構的生成器和判別器,將惡意軟件的API序列作為輸入,經過生成器生成對抗性API序列,再用良性序列和生成序列訓練判別器,最終生成的示例無法被基于RNN的惡意軟件檢測算法檢測出來。該對抗性樣本生成算法既可以應用在現有惡意軟件,也可以用在看不見的惡意軟件。
文獻[33]實施一種新穎的端到端黑盒方法,針對許多先進機器學習惡意軟件分類生成對抗性示例樣本。文獻[34]為可靠地檢測包括零日時差攻擊在內的惡意軟件,提出一種轉移深度卷積生成對抗網絡方法-tDCGAN。該方法生成偽造惡意軟件,并將其與真實數據分開。其架構包括生成器、判別器和深度自編碼器,在訓練GAN之前運用深度自編碼器學習惡意軟件特征,然后更加穩定地訓練生成器和判別器。實驗結果證明將tDCGAN生成數據用于訓練分類器,能夠有效提高平均分類精度,增加學習穩定性。文獻[35]采用文獻[34]所用數據集,提出一種轉移生成的對抗網絡方法-tGAN,基于轉移學習對GAN生成器進行預訓練,并通過GAN鑒別器對惡意軟件檢測器進行預訓練,包括預訓練模塊、生成模塊和檢測模塊。實驗結果表明該模型具有很好的檢測性能,但其惡意軟件生成性能的優劣還有待測試。
文獻[36]為檢測帶有混淆的惡意軟件,提出一種潛在語義控制生成對抗網絡(LSC-GAN)方法。該方法先由可變自動編碼器投影數據提取特征,再將帶有i特征的特定高斯分布經生成器學習生成具有i特征的惡意軟件,生成數據帶有經過修改的特征。實驗結果顯示,LSC-GAN模型生成數據與真實數據相似,且經由此訓練的檢測器平均檢測精度高于其他常規模型。
文獻[37]以MalGAN研究為基石,深入研究提出一種雙目標GAN方法(E-MalGAN)。該方法能夠生成信息不完整的對抗性示例,采用兩個目標不同的判別器來擴展傳統GAN,由其生成的惡意軟件樣本具備攻擊性,能夠突破配備防火墻的檢測系統,有效增強惡意軟件數據量。同樣針對MalGAN存在的現實問題,文獻[38]對其生成器模型和替代檢測器模型進行改進,從多個正常和惡意軟件中創建API列表。實驗結果顯示改進MalGAN可以生成特征量,獲得更好性能。
文獻[39]是一項比較研究,將目前兩種最受歡迎且最有前途的生成模型-生成對抗網絡(GAN)和變異自動編碼器(VAE)進行比較,闡述二者對惡意軟件數據的生成,討論其優劣之處。在分析性能和結果后可知使用GAN模型生成惡意軟件數據比VAE更加有效,更有利于提高檢測準確性。為生成攜帶PE文件的惡意軟件,更有效地進行對抗學習,文獻[40]設計使用GAN通過注入字節級擾動來生成惡意軟件對抗性示例的方法。該方法能夠擴展先前檢測到的PE惡意軟件攻擊向量,生成的對抗性示例能夠成功繞過靜態惡意軟件分類器。文獻[41]針對真實網絡攻擊數據不平衡問題,提出一種使用GAN創建相似攻擊流量的方法,通過增強數據集來提高攻擊流量數據檢測的準確率。運用該方法對入侵檢測學習常用數據集如NSL-KDD、ISCX 2012和USTC_TFC 2016數據集進行擴增,實驗結果表明每個數據集中的不平衡問題都得以緩解,分類準確率提高10~12%。
與其他GAN變體不同,文獻[42]將視角放在鑒別器上,提出一種基于GAN的僵尸網絡檢測增強框架,該網絡通過生成器連續生成“假”樣本,并擴展標記的數量,幫助原始模型進行僵尸網絡檢測和分類。
2.2.2惡意域名生成
目前針對網絡惡意攻擊的主流檢測方法包括基于人工規則的檢測算法和基于機器學習的檢測算法,然而它們分別存在無法及時識別檢測快速更新的DGA域名和缺乏訓練數據的問題。為解決這些問題,研究者嘗試采用GAN對域名數據進行增強,但由于樸素GAN在處理如序列這種離散數據時,存在生成器難以傳遞梯度更新和判別器難以評估完整序列問題,所以利用GAN生成具有序列性域名數據的研究較少。文獻[43]提出一種基于GAN的域名生成算法,構建一個基于字符的生成器,模仿Alexa域名分布。其框架包含自編碼器、生成器和判別器,自編碼器是一個數據壓縮算法,用于對放入訓練的數據進行預先處理和轉換,生成器和判別器進行迭代訓練達到平衡,最終生成符合字符分布、無法被分類器識別的域名。
在文獻[43]基礎上,袁辰等[44]改進域名編解碼器構造和復雜的數據處理變換,更有針對性地提出一種結合編、解碼器和GAN的方法,用于生成符合真實惡意域名分布的域名變體樣本。文獻[44]對離散數據進行處理,加入編、解碼器設計,將數據放入GAN中訓練之前先通過設置的編碼器對樣本數據進行分析變換。具體模型結構如圖3所示。

圖3 基于GAN的DGA域名字符生成網絡模型
該惡意域名生成模型主要由域名編碼器、生成網絡、判別網絡、域名解碼器組成。其中:編碼器是基于字符的ASCII碼規則進行編碼;生成網絡和判別網絡均采用四層神經網絡結構,在Alexa數據集和100萬條DGA惡意域名樣本上進行實驗,從能否作為域名、域名字符頻率和由生成域名訓練分類器的分類結果三方面做出分析。結果表明,生成的惡意域名從外形結構到各字符分布都與真實樣本差別不大,分類各指標與基準值保持同一性能狀態,生成數據具備有效性。
文獻[45]利用GAN生成域名對抗樣本,由實驗驗證生成的對抗樣本在充當惡意域名數據和預測未知DGA時均有良好表現。由于GAN在處理離散序列數據上的局限性,文獻[46]提出SeqGAN進行改進,對未來基于GAN生成更高質量的域名對抗樣本拓展思路。
2.2.3惡意網絡流生成
在網絡安全防護中除對惡意域名的檢測外,惡意網絡流的檢測也是不可忽視的一部分。相較于域名,網絡流中所包含的信息量更多,各屬性之間的關聯度更密切,因此想要通過算法自主學習特征并生成惡意網絡流數據面臨著巨大的考驗,并且網絡流數據不同于圖像樣本,新生成的樣本數據不僅需要滿足視覺角度上整體結構的相似性,還需要保證樣本具備有效的可執行性和攻擊性,這一特殊性無疑也成為惡意網絡流樣本增強的嚴苛條件。基于對上述問題的考慮,潘一鳴等[47]提出一種基于GAN的新模型MNF-GAN,首次將惡意網絡流作為原始樣本進行擴展生成。文獻[47]采用UNSW-NB15數據集,先對網絡流樣本通過預處理轉化為合理的特征向量形式,然后放入由生成網絡、判別網絡和驗證網絡組成的對抗模型結構中,生成符合原惡意網絡流分布的數據。
文獻[47]中還提出弱相關位的概念,其目的是保證生成樣本在形式上滿足網絡流的基礎上,依然能夠具有有效的可執行性和攻擊性。通過直接修改惡意網絡流樣本弱相關位的方法生成對抗樣本,在實際應用中更有意義。由對生成樣本檢出率和攻擊性的驗證實驗表明,惡意網絡流可以直接作為深度學習模型的初始樣本,用于增強數據。
2.2.4惡意代碼生成
惡意用戶通過瀏覽器端腳本語言JavaScript攻擊其他用戶客戶端瀏覽器,實施破壞盜取信息。為提供更加安全的網絡環境,在惡意代碼執行之前高效地將其檢測出來,研究者在傳統的靜態檢測和動態檢測方法基礎上將機器學習技術運用于惡意代碼識別。然而惡意JavaScript代碼難以收集且難以進行人工標記,所以使用現有小規模惡意代碼庫進行機器學習的訓練無法發揮其優勢。為對惡意代碼數據進行增強,曹啟云等[48]提出基于GAN的惡意代碼生成方法。該方法將有監督學習和無監督學習相結合,通過最小化損失使GAN生成的樣本既能擬合有標簽數據,又能由無標簽數據學習特征。
模型框架包含生成模型和判別模型,二者均采用有多個隱含層的神經網絡,具體如圖4-圖5所示,其中W表示各層各輸入分量對應的權重參數。

圖4 生成網絡模型

圖5 判別網絡模型
按照上述模型框架,文獻[48]設計方法選擇API作為特征,先將收集的JavaScript代碼以選取的225個API進行數據預處理,處理為225維的二進制向量;然后將一個滿足高斯正態分布的隨機噪聲放入生成器,經過多層隱含層后生成225維的樣本數據;再將真實樣本和生成樣本輸入判別器,經多層隱藏層后給出真假樣本以及真實樣本良惡性的判斷。通過兩個模型的交叉訓練,達到納什平衡。最后由在RF、LR、DT、SVM、KNN五種分類器上的分類效果來驗證生成樣本的有效性,實驗結果表明,文獻[48]所提方法有效生成大量接近真實樣本且無須人工標記的數據,對于傳統分類器提升近5%的識別效果。
2.2.5小 結
本節對上述網絡惡意數據樣本生成方法進行總結,表2從模型結構、創新之處、數據集、生成樣本效果、實際應用價值等方面展示。

表2 網絡數據增強模型總結

續表2
本節介紹目前GAN在網絡安全小樣本數據增強上的發展與應用。通過探究發現,運用GAN對網絡安全數據集主要從兩方面進行增強,(1) 轉化為圖像,先將網絡安全數據進行簡單圖像轉換再學習特征,生成樣本數據;(2) 從文本角度,分析找尋網絡安全數據本身內容和結構形式存在的聯系和特點,生成具有序列關系或分布特點的樣本數據。
基于GAN的數據增強技術在圖像數據增強方面應用已經相當成熟,通過其擴增的數據不僅達到數量上的需求,還具備較高的質量,部分研究者將GAN對網絡安全數據增強與圖像處理相結合,推動網絡安全領域理論和應用的發展。也有部分研究者堅持從文本角度深入研究,探究更好處理離散數據的GAN衍生模型。
從圖像角度,經研究發現圖像數據和網絡惡意代碼指令二者形式雖不同但存有相通之處,可以將惡意代碼先轉化為圖像圖再處理。此想法在惡意代碼分類方向已經得到初步應用,在Kaggle平臺上發起的惡意代碼分類競賽中,冠軍參賽者通過將惡意代碼轉換為圖像并將其選作特征進行學習,獲得了理想分類效果;同樣文獻[49]訓練惡意代碼分類檢測系統也將該思想運用其中。由此看出將惡意代碼作為圖像處理能夠有效學習到特征。基于該思想提出兩個未來研究方向:
1) 與GAN結合應用于數據增強方向。此前將網絡安全數據轉換為圖像處理多用于檢測或分類,目前還沒有系統將其應用于數據增強且具備較好通用性的研究。如何將基于GAN的圖像數據增強方法應用于惡意網絡代碼數據集的增強,促進網絡安全領域的發展值得探討。
2) 優化或尋找合適的轉化方法。通過二進制值-灰度值映射能夠實現圖像轉換,但由于其簡潔的過程會導致有效信息丟失且轉換效率不高,因此亟須從多方面探究能夠保全信息、表現內部特征、突出不同家族惡意代碼差異并且提高效率的轉換方法。
從文本角度,由研究發現在改良原始GAN模型基礎上,能夠避開生成器離散數據采樣的問題,生成離散文本數據。但目前運用GAN生成網絡安全數據方法只是選取某個具體特征,如字符特征或API序列等,涉及范圍和包含信息較少。鑒于此后續可以從以下兩個方向加強研究:
1) 探究覆蓋信息更多的文本數據編碼方式,使處理后放入GAN中訓練的數據包含更多網絡記錄信息,并能夠處理長文本數據。
2) 尋找能夠挖掘網絡安全數據之間深層關聯的方法,與GAN結合,使生成數據在滿足基礎字符或數據特征基礎上,能夠體現如上下文關系之類的深層特征,更好地具備真實數據特點。
本文綜述生成對抗網絡對網絡安全小樣本數據集進行數據增強的方法,首先介紹數據增強技術研究的必要性以及GAN思想應用于數據增強上的充分性;然后具體探究GAN對惡意網絡數據集的增強應用,展現其在網絡安全領域極大的潛在價值和可能;最后在現有研究基礎上從兩方面提出展望,將GAN對圖像數據成熟的增強技術運用于網絡安全數據的擴展,另外加強從文本處理角度生成網絡安全數據方法的探究。GAN作為一種無監督的深度生成式模型,其強大的生成能力還有待人們研究挖掘,融會貫通增強各種形式小樣本數據集,推動多領域發展。