黃嶼璁 張 潮 呂 鑫,3 曾 濤 王鑫元 丁辰龍
1(河海大學(xué)計算機與信息學(xué)院 南京 211100)2(水利部信息中心 北京 100053)3(河海大學(xué)水利部水利大數(shù)據(jù)技術(shù)重點實驗室 南京 211100)(huangyc89757@163.com)
互聯(lián)網(wǎng)在政治、金融、文化、通信等領(lǐng)域起著至關(guān)重要的作用,是我國關(guān)鍵信息基礎(chǔ)設(shè)施之一.隨著智能終端設(shè)備的普及與互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)逐漸成為人們工作與日常生活不可缺失的一種工具.然而,在當(dāng)前日益復(fù)雜的網(wǎng)絡(luò)環(huán)境下,網(wǎng)絡(luò)攻擊事件出現(xiàn)的頻率逐年增加.根據(jù)相關(guān)報告顯示,僅2021年1月我國境內(nèi)感染木馬或僵尸網(wǎng)絡(luò)惡意程序的終端就有119萬余個,遭到篡改、植入后門、仿冒的網(wǎng)站數(shù)量在22 000個以上.國家信息安全漏洞共享平臺(CNVD)收集整理的信息系統(tǒng)安全漏洞高達1 660個,其中570個為高危漏洞.我國網(wǎng)絡(luò)安全形勢日益嚴峻,如何采取有效措施來應(yīng)對層出不窮的網(wǎng)絡(luò)攻擊是我國互聯(lián)網(wǎng)發(fā)展過程中必須解決的問題.
入侵檢測系統(tǒng)(intrusion detection system, IDS)最早于1980年提出,是一種網(wǎng)絡(luò)安全防護技術(shù),主要通過實時監(jiān)視系統(tǒng)在網(wǎng)絡(luò)傳輸過程中識別入侵者的異常行為與企圖,并采取相應(yīng)安全措施進行防護.根據(jù)信息來源不同可分為基于主機的與基于網(wǎng)絡(luò)的入侵檢測系統(tǒng),后者為本文主要研究對象.
傳統(tǒng)入侵檢測系統(tǒng)通常將數(shù)學(xué)統(tǒng)計方法與機器學(xué)習(xí)相結(jié)合來檢測異常數(shù)據(jù).機器學(xué)習(xí)能夠從大量數(shù)據(jù)集中自動獲取有用信息,與入侵檢測系統(tǒng)結(jié)合能大大提升檢測效率,因此在機器學(xué)習(xí)快速發(fā)展時期大量研究將該技術(shù)用于入侵檢測[1],如k近鄰、支持向量機、樸素貝葉斯等有監(jiān)督機器學(xué)習(xí)方法以及k-means、DBSCAN、主成分分析等無監(jiān)督機器學(xué)習(xí)方法.這些方法有效降低了入侵檢測系統(tǒng)的異常數(shù)據(jù)誤報率,提升了檢測精度.
隨著網(wǎng)絡(luò)數(shù)據(jù)量的急劇增加與攻擊手段的不斷升級,在應(yīng)對零日漏洞、加密攻擊、內(nèi)部威脅等新型攻擊行為時單靠機器學(xué)習(xí)技術(shù)并不能達到理想效果.機器學(xué)習(xí)中數(shù)據(jù)僅需通過1個隱藏層進行訓(xùn)練,因此機器學(xué)習(xí)模型也被稱為淺層模型[2].淺層模型的搭建相對比較簡單,在處理大量無標(biāo)簽數(shù)據(jù)時往往出現(xiàn)精度低甚至無法正常檢測的情況.為了解決這些問題,研究人員開始將研究重心轉(zhuǎn)移至深度學(xué)習(xí),使用含有多個隱藏層的深度模型對入侵檢測系統(tǒng)進行優(yōu)化.
深度學(xué)習(xí)是機器學(xué)習(xí)領(lǐng)域的一個分支.與傳統(tǒng)機器學(xué)習(xí)技術(shù)相比,深度學(xué)習(xí)的主要目標(biāo)是學(xué)習(xí)樣本數(shù)據(jù)的內(nèi)在規(guī)律,在模型構(gòu)建與特征提取方面效率更高,在處理大規(guī)模數(shù)據(jù)時有更高的準(zhǔn)確率.近年來,隨著深度學(xué)習(xí)技術(shù)的成熟與火熱,越來越多的學(xué)者將深度學(xué)習(xí)應(yīng)用在網(wǎng)絡(luò)異常流量檢測中,開發(fā)出各種與CNN,RNN,AE,DBN等深度學(xué)習(xí)模型相結(jié)合的網(wǎng)絡(luò)入侵檢測系統(tǒng),在檢測海量異常數(shù)據(jù)與新型網(wǎng)絡(luò)攻擊等方面給出了不俗的表現(xiàn)[3].
本文首先介紹網(wǎng)絡(luò)入侵檢測系統(tǒng)中常用的幾種深度學(xué)習(xí)模型,然后對深度學(xué)習(xí)模型中使用的數(shù)據(jù)預(yù)處理技術(shù)、數(shù)據(jù)集及評價指標(biāo)進行介紹,接著從實際應(yīng)用的角度介紹深度學(xué)習(xí)模型在網(wǎng)絡(luò)入侵檢測系統(tǒng)中的具體應(yīng)用,再討論當(dāng)前所面臨的問題及未來發(fā)展,最后總結(jié)全文.
本節(jié)對當(dāng)前網(wǎng)絡(luò)入侵檢測系統(tǒng)中常用的幾種深度學(xué)習(xí)模型進行詳細闡述,表1列舉了各深度學(xué)習(xí)模型的特點及常用領(lǐng)域.
表1 深度學(xué)習(xí)模型特點及常用領(lǐng)域
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)由多層感知機變化而來,是一種包含卷積計算的深度前饋神經(jīng)網(wǎng)絡(luò).結(jié)構(gòu)靈感來自人類大腦中的神經(jīng)元,主要包括卷積層、池化層、全連接層等,其中卷積層與池化層為核心模塊.卷積層的作用是通過卷積操作提取輸入數(shù)據(jù)中更高層次的特征,池化層的作用則是對卷積層輸出的圖數(shù)據(jù)進行特征選擇與信息過濾,從而減少數(shù)據(jù)處理量.不同結(jié)構(gòu)的CNN通過卷積層與池化層的差異來區(qū)分.CNN結(jié)構(gòu)如圖1所示:
圖1 CNN結(jié)構(gòu)示例
CNN具有參數(shù)共享、稀疏交互與等效表示等優(yōu)點.與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)不同的是,CNN在網(wǎng)絡(luò)中使用的是局部連接,且相鄰神經(jīng)元之間進行權(quán)重共享.這一特點使得CNN的結(jié)構(gòu)比全連接神經(jīng)網(wǎng)絡(luò)簡單很多,整個計算過程所產(chǎn)生的參數(shù)也大大減少,從而大幅降低計算復(fù)雜度與訓(xùn)練時間.此外, CNN有著很強的泛用性,能夠用于多種分類任務(wù),特別在自然語言處理[4]、模式識別、目標(biāo)檢測等方面具有良好的效果.利用CNN建立模式分類器能夠?qū)叶葓D像進行識別與分類.在入侵檢測過程中需要先將流量數(shù)據(jù)轉(zhuǎn)換為灰度圖的形式,再使用CNN提取圖片數(shù)據(jù)的空間特征.
循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)是一種遞歸式的神經(jīng)網(wǎng)絡(luò),其輸入值為序列數(shù)據(jù).RNN在每條序列的演進方向上進行遞歸操作,且所有節(jié)點均以鏈?zhǔn)浇Y(jié)構(gòu)進行連接,如圖2所示.與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)相比,RNN在隱藏層的神經(jīng)元中添加了自連接的權(quán)重值,從而將每次訓(xùn)練輸出值的狀態(tài)信息發(fā)送至下一次訓(xùn)練,實現(xiàn)了保存前一序列信息的功能,有效解決了序列數(shù)據(jù)預(yù)測等一般神經(jīng)網(wǎng)絡(luò)無法處理的問題[5].
圖2 RNN結(jié)構(gòu)示例
由于RNN具有在隱藏層的節(jié)點間進行信息傳遞的特性,因此在自然語言處理、語音處理、上下文感知等需要處理序列信息的領(lǐng)域有著廣泛的應(yīng)用.網(wǎng)絡(luò)流量數(shù)據(jù)中也包含許多與時間序列相關(guān)的特征,因此也有大量研究將RNN與入侵檢測系統(tǒng)相結(jié)合.
然而,RNN在解決一些長時間依賴問題時往往會遇到梯度消失、梯度爆炸等情況,為避免這些情況,有學(xué)者提出了長短期記憶網(wǎng)絡(luò)(long short-term memory network, LSTM).LSTM是一種基于RNN的人工神經(jīng)網(wǎng)絡(luò),具有更深層次的隱藏神經(jīng)元結(jié)構(gòu),并通過設(shè)計“門”結(jié)構(gòu)實現(xiàn)信息的保留和選擇功能,且能夠在任意時間間隔內(nèi)對先前的輸入進行保留.因此,LSTM對時間序列中間隔和延遲長的事件有較強的處理能力.LSTM主要用于文本生成、機器翻譯、語音識別等領(lǐng)域.
自動編碼器(auto-encoder, AE)是一類用于學(xué)習(xí)與重構(gòu)輸入數(shù)據(jù)的無監(jiān)督神經(jīng)網(wǎng)絡(luò)模型,由編碼器與解碼器組成,包含輸入層、編碼層與解碼層.編碼器以非線性方式將輸入數(shù)據(jù)映射到隱藏空間,學(xué)習(xí)輸入數(shù)據(jù)的隱含特征;解碼器將編碼數(shù)據(jù)映射回原始輸入空間,用學(xué)習(xí)到的新特征重構(gòu)出原始輸入數(shù)據(jù).AE通過編碼與解碼過程,使得高維度的輸入層神經(jīng)元能夠被較低維度的神經(jīng)元所替代,從而達到特征降維與提取的目的.
AE具有高效的數(shù)據(jù)編碼與解碼能力,通常用于數(shù)據(jù)降維、壓縮、融合等工作,在生物信息學(xué)與網(wǎng)絡(luò)安全領(lǐng)域應(yīng)用較多.但隨著隱藏層的增加,AE會出現(xiàn)梯度消失問題.后續(xù)提出的稀疏自編碼器(sparse auto-encoder, SAE),變分自編碼器(variational auto-encoder, VAE)[6]等高級AE模型對這一問題進行了改善.此外,AE沒有分類功能,通常需要與其他分類模型(如CNN)結(jié)合使用.
在當(dāng)今網(wǎng)絡(luò)環(huán)境中,每日產(chǎn)生的數(shù)據(jù)量飛速增長,對大規(guī)模流量數(shù)據(jù)的處理成為網(wǎng)絡(luò)入侵檢測系統(tǒng)面臨的挑戰(zhàn)之一.在基于深度學(xué)習(xí)的入侵檢測領(lǐng)域中,由于AE能夠從輸入數(shù)據(jù)中提取出緊湊且區(qū)分度較高的低維表示,因此AE被廣泛用于入侵檢測數(shù)據(jù)預(yù)處理過程中的降維任務(wù).
受限玻爾茲曼機(restricted Boltzmann machine, RBM)是一類具有2層結(jié)構(gòu)(分別為可視層與隱藏層)的隨機生成神經(jīng)網(wǎng)絡(luò)模型.可視層和隱藏層采用對稱的全連接,層內(nèi)的神經(jīng)元之間沒有連接.RBM能夠在無監(jiān)督條件下從原始數(shù)據(jù)中學(xué)習(xí)到特征更深層次、更復(fù)雜的信息,主要用于特征提取與去噪.深度玻爾茲曼機(deep Boltzmann machine, DBM)是一種由多個RBM串聯(lián)堆疊而成的深度神經(jīng)網(wǎng)絡(luò),與單個RBM相比能夠從大量無標(biāo)簽數(shù)據(jù)中學(xué)習(xí)出高階特征,且魯棒性也得到增強.
RBM具有很強的無監(jiān)督學(xué)習(xí)能力,主要應(yīng)用領(lǐng)域為數(shù)據(jù)編碼、新聞聚類、圖像分割等[7],在入侵檢測中通常出現(xiàn)在深度信念網(wǎng)絡(luò)中.
深度信念網(wǎng)絡(luò)(deep belief network, DBN)也是一種由多層RBM組成的深度神經(jīng)網(wǎng)絡(luò),包含1個可見層與1個隱藏層,可以從復(fù)雜的高維數(shù)據(jù)中學(xué)習(xí)特征.與DBM不同的是,DBN是一種有向圖結(jié)構(gòu),在通過疊加RBM進行逐層預(yù)訓(xùn)練時,某層的分布只由其上一層決定.DBM是一種無向圖結(jié)構(gòu),某層的分布由其上下2層共同決定.2種模型的結(jié)構(gòu)對比如圖3所示:
圖3 DBN與DBM結(jié)構(gòu)對比
DBN使用逐層貪婪學(xué)習(xí)算法優(yōu)化網(wǎng)絡(luò)各層的連接權(quán)重,具有快速學(xué)習(xí)的優(yōu)點,并利用RBM對深層網(wǎng)絡(luò)作逐層無監(jiān)督訓(xùn)練,能有效避免陷入局部最優(yōu)[8].此外,DBN既可以作為一個分類模型用于監(jiān)督學(xué)習(xí),又可以作為一個生成模型用于無監(jiān)督學(xué)習(xí),靈活的特點使其具有很強的可擴展性,能與各種深度模型及算法進行結(jié)合.DBN主要用在語音識別、自然語言處理、網(wǎng)絡(luò)安全等領(lǐng)域.
與上述幾種深度學(xué)習(xí)模型不同,生成對抗網(wǎng)絡(luò)(generative adversarial network, GAN)作為一種混合式深度學(xué)習(xí)模型,兼顧了數(shù)據(jù)的生成與判別功能.GAN借鑒了博弈論中的二人零和博弈思想,結(jié)構(gòu)上包含生成器與判別器2個神經(jīng)網(wǎng)絡(luò).生成器不斷生成接近真實結(jié)果的樣本用以欺騙判別器,判別器判斷樣本是真實樣本還是由生成器偽造的假樣本.二者在對抗過程中不斷優(yōu)化,最終達到均衡生成最優(yōu)結(jié)果.GAN的模型結(jié)構(gòu)如圖4所示:
圖4 GAN結(jié)構(gòu)示例
GAN相較于其他深度學(xué)習(xí)生成模型結(jié)構(gòu)要簡單很多,且具有強大的預(yù)測能力,可對數(shù)據(jù)進行直接采樣和推斷,不需要對數(shù)據(jù)預(yù)設(shè)分布.此外,GAN通過生成器與判別器的對抗訓(xùn)練方法以及誤差反傳算法等機制大大提升訓(xùn)練效率.然而,由于GAN未對數(shù)據(jù)進行預(yù)設(shè)分布,很容易產(chǎn)生訓(xùn)練過程不穩(wěn)定、模型崩潰等問題.后續(xù)提出的條件對抗生成網(wǎng)絡(luò)(conditional GAN, CGAN),深度卷積對抗生成網(wǎng)絡(luò)(deep convolutional GAN, DCGAN)等基于GAN的模型有效改善了這些問題[9].
GAN主要應(yīng)用領(lǐng)域為圖像處理,具體任務(wù)包括超分辨率圖像重建、圖像生成、圖像翻譯等.由于GAN能解決數(shù)據(jù)集中帶標(biāo)簽樣本數(shù)量較少的問題,不少學(xué)者將此模型用在入侵檢測任務(wù)中.
用于入侵檢測的流量數(shù)據(jù)通常包含基本特征、內(nèi)容特征和流量特征,不同特征的數(shù)據(jù)類型不一定相同,數(shù)量級也可能相差較大.因此數(shù)據(jù)預(yù)處理是網(wǎng)絡(luò)入侵檢測系統(tǒng)使用深度學(xué)習(xí)技術(shù)對數(shù)據(jù)進行檢測之前必不可少的一項工作.本節(jié)從數(shù)據(jù)收集、特征轉(zhuǎn)化、數(shù)據(jù)降維3個角度介紹網(wǎng)絡(luò)入侵檢測系統(tǒng)中常用的數(shù)據(jù)預(yù)處理技術(shù).
網(wǎng)絡(luò)入侵檢測系統(tǒng)中的數(shù)據(jù)通常以網(wǎng)絡(luò)流量形式進行傳輸.在對數(shù)據(jù)進行處理前需要使用有效手段從網(wǎng)絡(luò)流量包與使用TCP/IP通信堆棧的應(yīng)用程序中收集網(wǎng)絡(luò)流量數(shù)據(jù),收集方式包括完整數(shù)據(jù)包捕獲(full packet CAPture, PCAP)與NetFlow協(xié)議2種[10]:
1) PCAP.PCAP允許收集完整的網(wǎng)絡(luò)流量數(shù)據(jù),包括數(shù)據(jù)包大小、協(xié)議類型、源IP與目標(biāo)IP、源端口號與目標(biāo)端口號等信息.其中一些信息可能涉及個人信息、瀏覽記錄、消息會話等隱私而被刪除或匿名化處理,從而對系統(tǒng)檢測造成一定影響.PCAP包括數(shù)據(jù)捕獲和預(yù)處理2個階段,捕獲階段通常使用winPCAP,libPCAP,SNORT等應(yīng)用程序,預(yù)處理階段則使用Wireshark,tcpdump,scapy等程序.
2) NetFlow協(xié)議.Netflow協(xié)議是Cisco公司開發(fā)的一套協(xié)議,主要用來對流量數(shù)據(jù)進行采樣與分析.Netflow協(xié)議主要收集數(shù)據(jù)相關(guān)的摘要信息或某些預(yù)定義屬性,包括源地址、目的地址、源端口、目的端口、數(shù)據(jù)流大小、數(shù)據(jù)流經(jīng)過的接口等.與PCAP相比,Netflow協(xié)議更加節(jié)省內(nèi)存,適用于大規(guī)模數(shù)據(jù)的收集,但由于收集到的內(nèi)容簡略很多,無法像PCAP那樣獲取用戶搜索關(guān)鍵字之類的詳細信息.
網(wǎng)絡(luò)流量數(shù)據(jù)通常由多個數(shù)值型與非數(shù)值型特征組成,在訓(xùn)練之前對不同類型的特征數(shù)據(jù)進行轉(zhuǎn)化可有效提高模型訓(xùn)練的效率與精度.針對數(shù)值型數(shù)據(jù)采用的是歸一化或標(biāo)準(zhǔn)化,針對非數(shù)值型數(shù)據(jù)則采用Ont-Hot編碼.
2.2.1 歸一化與標(biāo)準(zhǔn)化
針對數(shù)值型特征通過線性變換的方式消除由于特征量綱不同所帶來的影響,可在一定程度上提高深度學(xué)習(xí)模型的精度,也能在梯度下降過程中提高模型收斂的速度.主要有Min-Max歸一化與Z-score標(biāo)準(zhǔn)化2種方法.
Min-Max歸一化基于數(shù)據(jù)集合中的最大值與最小值,通過線性變換把原始數(shù)據(jù)映射到區(qū)間[0,1]內(nèi),計算公式如下:
(1)
其中,x是原始數(shù)據(jù),y是變換后的數(shù)據(jù),xmin是所有數(shù)據(jù)中的最小值,xmax是所有數(shù)據(jù)中的最大值.
Z-score標(biāo)準(zhǔn)化是使用所有數(shù)據(jù)的均值與標(biāo)準(zhǔn)差對原始數(shù)據(jù)進行轉(zhuǎn)換,計算公式如下:
(2)
其中,x是原始數(shù)據(jù),y是變換后的數(shù)據(jù),μ為所有數(shù)據(jù)的均值,σ為所有數(shù)據(jù)的標(biāo)準(zhǔn)差.
2.2.2 One-Hot編碼
對于非數(shù)值型特征,如會話狀態(tài)、IP地址、設(shè)備名稱等,通常采用One-Hot編碼的方式進行處理[11].One-Hot編碼也稱為“1位有效編碼”,原理是通過長度為N的狀態(tài)寄存器對N個狀態(tài)進行編碼,每個狀態(tài)都由1個數(shù)字表示在對應(yīng)的寄存器位上,通常使用0或1來表示.在任意時刻僅有1位有效,即寄存器中該位的值為1,其余為0.
以流量數(shù)據(jù)中的“會話狀態(tài)”為例.假設(shè)會話狀態(tài)共有3種,One-Hot編碼首先將3種狀態(tài)映射為整數(shù)值1,2,3,再用3位的二進制向量來存儲每種狀態(tài),因此3種狀態(tài)可分別表示為001,010,100.One-Hot編碼解決了模型處理非數(shù)值型數(shù)據(jù)的問題,在一定程度上也起到了擴充特征的作用.
入侵檢測數(shù)據(jù)集中存在大量冗余、噪聲數(shù)據(jù)以及不相關(guān)的數(shù)據(jù), 因此在使用深度學(xué)習(xí)模型進行檢測之前需要對數(shù)據(jù)進行降維,從而減小計算開銷, 提升模型分類器的檢測性能與效率[12].數(shù)據(jù)降維方法主要分為特征選擇與特征提取[13].
1) 特征選擇.特征選擇是指在指定的特征集合中挑選出適用于模型訓(xùn)練的特征構(gòu)成特征子集.在入侵檢測領(lǐng)域,特征選擇通常包括3種方案:過濾法、包裹法與嵌入法.過濾法是按照發(fā)散性或相關(guān)性對各個特征進行評分,并與設(shè)定的閾值進行比較以完成特征選擇,常用的過濾法有方差法、互信息法等;包裹法就是選定某種算法,根據(jù)算法效果來選擇特征集合,常用的包裹法有遺傳算法等;嵌入法是利用正則化的思想,將部分特征屬性的權(quán)重調(diào)整到0,常用的嵌入法有LASSO回歸等.
2) 特征提取.與直接從所有特征中選出子集不同,特征提取主要通過屬性間的關(guān)系對不同屬性進行組合得到新的屬性.入侵檢測領(lǐng)域常用的特征提取方法為主成分分析(principal component analysis, PCA)[14].PCA使用一種線性投影的方式,將維度較高的數(shù)據(jù)映射到低維空間,在降低數(shù)據(jù)維度的同時盡可能地保留較多原始數(shù)據(jù)的特征.此外還有線性鑒別分析(LDA)方法與獨立成分分析(ICA)方法等也可用來對流量數(shù)據(jù)進行特征提取.
入侵檢測系統(tǒng)需要通過網(wǎng)絡(luò)流量數(shù)據(jù)集與特定評價指標(biāo)對系統(tǒng)性能進行評估.本節(jié)對基于深度學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測系統(tǒng)中常用的數(shù)據(jù)集與評價指標(biāo)進行介紹.
隨著入侵檢測技術(shù)的不斷發(fā)展,越來越多的相關(guān)數(shù)據(jù)集出現(xiàn)供研究人員使用,常用的主要有KDD99,NSL-KDD,CIC-IDS-2017,UNSW-NB15等,大多數(shù)基于深度學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測系統(tǒng)使用上述數(shù)據(jù)集進行測試.
KDD99主要包括4類網(wǎng)絡(luò)攻擊,分別為拒絕服務(wù)(DoS)攻擊、遠程到本地(R2L)攻擊、端口掃描(Probe)攻擊和用戶提權(quán)(U2R)攻擊.KDD99是最早用于入侵檢測模型訓(xùn)練與測試的公共數(shù)據(jù)集之一,也是目前入侵檢測領(lǐng)域使用最廣泛的數(shù)據(jù)集之一.然而該數(shù)據(jù)集存在許多缺陷,如部分記錄重復(fù)等,因此KDD99不能完全反映出當(dāng)前網(wǎng)絡(luò)攻擊的特征.
NSL-KDD包含39種攻擊類型.該數(shù)據(jù)集在KDD99的基礎(chǔ)上進行研發(fā),通過刪除KDD99中重復(fù)出現(xiàn)的記錄與部分較難分類的數(shù)據(jù)來解決KDD99存在的問題.雖然NSL-KDD有很多方面的改進,可幫助研究人員更好地測試入侵檢測模型的性能,但該數(shù)據(jù)集仍然具有一定的局限性,無法反映當(dāng)前真實網(wǎng)絡(luò)環(huán)境中的流量數(shù)據(jù).
為了解決KDD99與NSL-KDD不能反映真實網(wǎng)絡(luò)流量數(shù)據(jù)和攻擊的問題,有學(xué)者設(shè)計了UNSW-NB15.該數(shù)據(jù)集由基于數(shù)據(jù)包格式的網(wǎng)絡(luò)流量組成,包括超過250萬條記錄與49個特征,涉及模糊攻擊、后門攻擊、拒絕服務(wù)攻擊、蠕蟲攻擊等9種攻擊類型,適合用于訓(xùn)練和測試.
CIC-IDS-2017包含81個網(wǎng)絡(luò)流特征與7種網(wǎng)絡(luò)攻擊,分別為DoS攻擊、SSH暴力攻擊、僵尸網(wǎng)絡(luò)攻擊、DDoS攻擊、Web攻擊、心血漏洞及滲透攻擊.該數(shù)據(jù)集中的數(shù)據(jù)采集自模擬正常流量的小型網(wǎng)絡(luò)環(huán)境,與真實網(wǎng)絡(luò)數(shù)據(jù)較為接近.
基于深度學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測系統(tǒng)主要采用以下指標(biāo)評價系統(tǒng)性能:
1)TPR(真陽性率).被正確判斷為惡意樣本的數(shù)據(jù)與所有實際惡意樣本數(shù)據(jù)的比率,值越高表明系統(tǒng)性能越好.
2)FPR(假陽性率).被錯誤判斷為惡意樣本的數(shù)據(jù)與所有實際良性樣本數(shù)據(jù)的比率,值越高表明系統(tǒng)性能越差.
3)Recall(召回率).被正確預(yù)測為良性樣本的數(shù)據(jù)與所有良性樣本數(shù)據(jù)的比率,值越高表明系統(tǒng)性能越好.
4)Accuracy(準(zhǔn)確率).被正確預(yù)測為惡意樣本的數(shù)據(jù)與所有樣本數(shù)據(jù)的比率, 值越高表明系統(tǒng)性能越好.
5)Precision(精確率).被正確預(yù)測為惡意樣本的數(shù)據(jù)與所有預(yù)測為惡意樣本數(shù)據(jù)的比率, 值越高表明系統(tǒng)性能越好.
6)F-measure(F1值).又稱F1分數(shù),Precision與Recall的加權(quán)調(diào)和平均,值越高表明系統(tǒng)性能越好.
本節(jié)從惡意軟件識別、網(wǎng)絡(luò)流量檢測、攻擊行為分類等角度,介紹不同深度學(xué)習(xí)模型在入侵檢測系統(tǒng)中的實際應(yīng)用情況,并分析各模型所達到的實驗效果與存在的問題.
惡意軟件是信息安全中常見的攻擊方式.隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的惡意軟件被制作出來,并使用加密、偽裝、匿名等方式混在正常數(shù)據(jù)中,通過網(wǎng)絡(luò)傳輸?shù)男问角秩胗脩糁鳈C,若不采取有效措施進行識別,很難在軟件造成危害前將其找出.深度學(xué)習(xí)為惡意軟件識別提供了極大便利,特別是面對一些新出現(xiàn)的惡意軟件時依然能保持較高的識別率.
Shibahara等人[15]提出一種根據(jù)軟件的網(wǎng)絡(luò)行為判斷惡意軟件的方法.該方法的判斷關(guān)鍵集中在惡意軟件通信的2個特征上:通信目的的變化和常見的潛在功能.該方法應(yīng)用遞歸張量神經(jīng)網(wǎng)絡(luò),通過使用張量計算輸入特征的高階成分來提高RNN的分類能力.在對29 562個惡意軟件樣本的評估中,該方法精確度為97.6%,召回率為96.2%,F(xiàn)1分數(shù)為96.9%.然而當(dāng)惡意軟件在分析過程中進入長時間的休眠狀態(tài)時,該方法將不再適用,且該方法還受到樣本標(biāo)記的限制,存在一定的局限性.
David等人[16]使用在未標(biāo)記數(shù)據(jù)上訓(xùn)練的DBN生成惡意軟件特征碼,然后使用DBN和去噪自動編碼器(DAE)對惡意軟件進行識別與分類.使用傳統(tǒng)方法生成惡意軟件特征碼是利用惡意軟件的特定內(nèi)容,很容易因為惡意軟件代碼的修改而檢測失敗.文獻[16]通過沙箱獲取日志,使用n-gram模型對日志進行處理,獲取僅出現(xiàn)在惡意軟件中的最常見的2萬個一元語言模型(unigram),并創(chuàng)建1個2萬維特征向量來識別是否出現(xiàn)了給定的一元語言模型.然后,利用這些識別后的一元語言模型對1個帶有DAE的8層DBN進行預(yù)訓(xùn)練.最終的惡意軟件特征碼是1個由30個數(shù)字組成的向量.實驗表明所訓(xùn)練的模型準(zhǔn)確率為98.6%.
基于API調(diào)用序列可以構(gòu)建基于語義感知和機器學(xué)習(xí)的惡意軟件分類器,用于惡意軟件檢測或分類.然而目前基于API調(diào)用序列的相關(guān)工作涉及太多特征工程,無法提供可解釋性.針對這一問題,Wang等人[17]使用RNN與AE將API調(diào)用序列轉(zhuǎn)換為低維特征向量,通過分類層確定惡意軟件家族類型,實現(xiàn)了99.1%的分類準(zhǔn)確率.該方法解決了傳統(tǒng)分類模型無法對新出現(xiàn)的惡意軟件進行分類以及標(biāo)簽解釋性差的問題,但只使用了API調(diào)用序列進行學(xué)習(xí),沒有將一些附加信息,如API調(diào)用的參數(shù)、可執(zhí)行文件結(jié)構(gòu)等,與模型進行結(jié)合.此外該方法還缺乏監(jiān)督數(shù)據(jù),在解碼器的訓(xùn)練上存在一定的局限性.類似地,Yousefi-Azar等人[18]使用API調(diào)用序列構(gòu)建了一個基于AE的多任務(wù)惡意軟件分類模型,并測試了各種分類工具,發(fā)現(xiàn)最好的是SVM分類器,達到96.3%的精確率.該模型與其他基于API調(diào)用序列方法中的模型相比使用了特殊的訓(xùn)練方式與拓撲結(jié)構(gòu),不需要通過預(yù)處理來選擇特征,且能通過更少的特征數(shù)量達到相同的檢測精度,使得模型的計算效率顯著提高.此外該模型還可用于網(wǎng)絡(luò)異常流量的檢測,能使用較少的特征數(shù)量達到較好的檢測效果.
域生成算法(domain generation algorithm, DGA)是一種常見的惡意軟件工具,可以為僵尸網(wǎng)絡(luò)生成大量與C&C(command and control)服務(wù)器進行通信的域名,這類域名可以逃避域名黑名單的檢測.DGA常用于垃圾郵件、數(shù)據(jù)竊取、分布式拒絕服務(wù)(DDoS)等網(wǎng)絡(luò)攻擊.Anderson等人[19]使用GAN生成當(dāng)前DGA軟件分類器難以識別的域名,并利用生成器創(chuàng)建合成數(shù)據(jù).文獻[19]對訓(xùn)練模型進行改進,使用LSTM層作為自動編碼器,重新調(diào)整其用途,將編碼器作為鑒別器(將語言轉(zhuǎn)換為數(shù)字格式),解碼器作為生成器(接收數(shù)據(jù)并輸出域名);正則化層被添加為生成器的第1層,邏輯回歸層被添加到鑒別器的最后一層.實驗結(jié)果顯示,該檢測模型的TPR從68%提高到70%.相較于文獻中用來對比的其他方法,文獻[19]提出的方法能有效檢測DGA的變體,且檢測更加簡單與靈活,但在GAN模型的訓(xùn)練策略上還存在改進空間,且FPR值容易受到數(shù)據(jù)實際分布的影響.
Woodbridge等人[20]開發(fā)了一種利用LSTM網(wǎng)絡(luò)識別DGA所生成的惡意域名的方法.DGA檢測方面的很多工作都無法用于實時檢測和預(yù)防,其中大部分還使用上下文信息,甚至通過人工創(chuàng)建特征,耗費了大量的時間與成本.Woodbridge等人僅使用RNN中的域名和GRU(gate recurrent unit)節(jié)點對域名進行分類,將域名中的每個字符視為特征,并將其依次輸入嵌入層、GRU層、分類層.該模型適用性極強,可部署在幾乎任何環(huán)境中,檢測率高達90%,F(xiàn)PR僅為0.1%,是文獻中用來對比的次優(yōu)方法的1/20.但與文獻中列舉的其他方法一樣,該方法對類不平衡的情況非常敏感,使得其在檢測一些冷門域名時存在限制.與Woodbridge等人提出的方法類似,Zeng等人[21]試圖僅使用域名來檢測和識別DGA生成的域名,通過基于ImageNet數(shù)據(jù)的多個預(yù)先訓(xùn)練的CNN對DGA與非DGA進行識別與分類.該方法在嵌入層之后對數(shù)據(jù)進行重塑,并將圖像分類器的輸出視為要輸入決策樹分類器的特征.與文獻中列舉的其他方法相比能處理大規(guī)模數(shù)據(jù),且計算速度更快,實現(xiàn)了99.86%的TPR和1.13%的FPR.Mac等人[22]采用了和文獻[21]類似的方法,但使用了結(jié)合遞歸SVM的LSTM(LSTM-SVM)和雙向LSTM,在相關(guān)數(shù)據(jù)集上分別實現(xiàn)了0.996 9和0.996 4的AUC,均優(yōu)于原始LSTM.除了LSTM-SVM和雙向LSTM,Mac等人還將CNN層置于LSTM層之前,并在類似數(shù)據(jù)集上實現(xiàn)了0.995 9的AUC.但這些改進的LSTM計算成本要高于原始LSTM,計算時間更慢,雙向LSTM甚至達到原始模型的3倍.
網(wǎng)絡(luò)流量檢測是網(wǎng)絡(luò)入侵檢測系統(tǒng)的關(guān)鍵應(yīng)用,也是網(wǎng)絡(luò)入侵檢測領(lǐng)域的研究重點.網(wǎng)絡(luò)流量檢測重點在于對大量通過網(wǎng)絡(luò)傳輸?shù)街鳈C的流量數(shù)據(jù)進行實時檢測,及時發(fā)現(xiàn)網(wǎng)絡(luò)攻擊行為并采取相應(yīng)措施進行防御.
Nasr等人[23]提出一種基于CNN的入侵檢測系統(tǒng)DeepCorr.與傳統(tǒng)入侵檢測系統(tǒng)相比,該系統(tǒng)將通用的統(tǒng)計相關(guān)算法轉(zhuǎn)換成深度學(xué)習(xí)算法,能捕捉到噪聲動態(tài)變化的復(fù)雜性質(zhì),實現(xiàn)更高的檢測準(zhǔn)確率.DeepCorr由2層卷積層與3層全連接神經(jīng)網(wǎng)絡(luò)組成.實驗表明,DeepCorr在學(xué)習(xí)率為0.000 1的條件下可實現(xiàn)0.8的TPR,相較于文獻中用來對比的其他系統(tǒng)有很大的改進.此外,DeepCorr對于長度較短的流量數(shù)據(jù)有很強的檢測能力,實驗中僅使用了900個數(shù)據(jù)包就達到96%的準(zhǔn)確率,遠遠高于文獻中用來對比的其他系統(tǒng),但計算復(fù)雜度相應(yīng)也有所增高,檢測所需時間是其他對比系統(tǒng)的2倍以上.Jiang等人[24]提出一種基于特征級深度神經(jīng)網(wǎng)絡(luò)的在線檢測方法,用來檢測惡意URL與DNS.該方法首先將URL與DNS字符串映射為向量形式,然后通過CNN提取出惡意特征并對分類模型進行訓(xùn)練,是一種針對短文本檢測的通用檢測方法,適用于多種場合,具有很強的可擴展性.此外,該方法可對模型定期進行更新,用以檢測新出現(xiàn)的惡意URL或DNS.目前該方法僅在虛擬環(huán)境中進行測試,未來還需部署到現(xiàn)實場景中進一步評估與微調(diào).Khan等人[25]將CNN與softmax算法相結(jié)合,通過改變CNN中卷積層內(nèi)核的數(shù)量增強模型學(xué)習(xí)特征的能力,有效提高了檢測準(zhǔn)確率.該方法選取KDD99的10%的數(shù)據(jù)進行實驗,改進后的CNN的準(zhǔn)確率高達99.23%.然而該方法的實驗對比對象只有原始的SVM與DBN模型,沒有與其他改進后的模型進行對比,并且只在準(zhǔn)確率方面比另外2種模型高1%左右,其他方面的指標(biāo)沒有進行對照.Andresini等人[26]基于CNN提出一種入侵檢測模型,解決了傳統(tǒng)機器學(xué)習(xí)方法不能有效檢測不可預(yù)見攻擊的問題.該模型首先使用自編碼器提取數(shù)據(jù)特征,然后對提取特征執(zhí)行最近鄰搜索與聚類算法導(dǎo)出適用于CNN的灰度圖像,再利用該圖像對CNN進行訓(xùn)練.文獻[26]提出的數(shù)據(jù)映射方法能很好地幫助構(gòu)建圖像數(shù)據(jù),從而發(fā)現(xiàn)相鄰流量數(shù)據(jù)中產(chǎn)生的潛在數(shù)據(jù)模式.實驗證明,該模型在KDD99,USW-NB15和CICIDS2017等上均有較高的準(zhǔn)確率.未來可探索將RGB映射與相鄰搜索結(jié)合以增強網(wǎng)絡(luò)流量的成像表示,并研究在數(shù)據(jù)集不平衡的情況下聚類算法的參數(shù)設(shè)置.Shibahara等人[27]提出一種從代理日志中檢測惡意URL的系統(tǒng),并提出一種改進的CNN——事件去噪卷積神經(jīng)網(wǎng)絡(luò)(EDCNN).EDCNN對原始的CNN結(jié)構(gòu)進行了擴展,主要功能是減少良性URL所受到的負面影響.文獻[27]將2種現(xiàn)有方法與EDCNN進行了比較,并使用2種類型的特征提高EDCNN的檢測性能.實驗結(jié)果顯示,在特定情況下EDCNN相較CNN降低了47%的錯誤警報,從而降低了惡意軟件感染的檢測成本(從27.6%降低至14.8%).但是EDCNN在進行分類時沒有考慮URL對應(yīng)的內(nèi)容,如果網(wǎng)站中的惡意內(nèi)容被人刪除,EDCNN依然會將該URL識別為惡意網(wǎng)站,從而必須通過手動檢查的方式才能避免這類誤報情況.
Suda等人[28]針對車載網(wǎng)絡(luò)提出一種入侵檢測方法,該方法利用RNN可對數(shù)據(jù)包的時間序列特征進行提取.該方法能夠檢測各種類型的攻擊,如ID修改攻擊、數(shù)據(jù)字段修改攻擊以及洪水攻擊等.此外,與傳統(tǒng)基于閾值的方法相比,該方法可在不需要閾值的情況下檢測各種網(wǎng)絡(luò)攻擊,且能獲得更高的檢測精度.未來可考慮更多不同的攻擊模式和硬件配置進行性能評估,并可對RNN模型本身結(jié)構(gòu)進行優(yōu)化.燕昺昊等人[29]為了解決傳統(tǒng)入侵檢測模型只檢測網(wǎng)絡(luò)入侵行為的靜態(tài)特征、無法有效檢測低頻攻擊樣本的問題,提出一種深度循環(huán)神經(jīng)網(wǎng)絡(luò)(DRNN)和區(qū)域自適應(yīng)合成過采樣算法(RA-SMOTE)相結(jié)合的入侵檢測模型DRRS.文獻[29]首先利用RA-SMOTE算法優(yōu)化了數(shù)據(jù)集中數(shù)據(jù)分布不平衡的狀況,再利用DRNN完成對新樣本集的學(xué)習(xí)與檢測,除了提升低頻攻擊的檢測率外,還依靠RNN的結(jié)構(gòu)特性充分挖掘并利用了樣本之間的時序相關(guān)性,提升了模型的檢測性能與數(shù)據(jù)刻畫能力.在NSL-KDD上,DRRS的各項指標(biāo)均優(yōu)于已有的入侵檢測模型.Hou等人[30]構(gòu)建了一種基于分層LSTM的入侵檢測系統(tǒng)HLSTM,能夠跨越多個時間層次在復(fù)雜網(wǎng)絡(luò)流量序列上進行學(xué)習(xí).在KDDTest+與KDDTest-21上,HLSTM的檢測準(zhǔn)確率分別為83.85%與69.73%,均高于用來比對的其他方法.此外,HLSTM對于低頻率的網(wǎng)絡(luò)攻擊具有較高的分類精度與較低的誤報率.然而HLSTM在檢測R2L與U2R攻擊時表現(xiàn)不是很好,使用的數(shù)據(jù)集中這2類攻擊的樣本數(shù)量也較少.針對物聯(lián)網(wǎng)中的網(wǎng)絡(luò)攻擊,Roy等人[31]提出一種使用雙向長短時記憶遞歸神經(jīng)網(wǎng)絡(luò)(BLSTM RNN)的入侵檢測方法,主要研究了該方法在物聯(lián)網(wǎng)正常模式與攻擊模式二分類問題中的性能.該方法能夠在訓(xùn)練階段從數(shù)據(jù)集中學(xué)習(xí)詳細的特征,從而達到較高的攻擊流量檢測準(zhǔn)確率.實驗使用UNSW-NB15的簡化版本進行訓(xùn)練,檢測準(zhǔn)確率超過95%,精確率甚至達到100%,并且召回率、F1分數(shù)與FAR等評價指標(biāo)均表現(xiàn)良好.該方法在檢測參數(shù)方面還存在改進空間,需要更多的大型數(shù)據(jù)集來幫助進行模型參數(shù)調(diào)整,以平衡檢測精度與參數(shù)之間的關(guān)系.Alkadi等人[32]將入侵檢測系統(tǒng)與區(qū)塊鏈技術(shù)相結(jié)合,提出一種深度區(qū)塊鏈框架DBF,旨在提供物聯(lián)網(wǎng)網(wǎng)絡(luò)中基于安全的分布式入侵檢測和基于隱私的智能合約區(qū)塊鏈,在保護數(shù)據(jù)隱私的同時對惡意攻擊進行識別.該框架也使用雙向LSTM方法對網(wǎng)絡(luò)數(shù)據(jù)進行檢測,并通過UNSW-NB15與BoT-IoT對模型性能進行評估.結(jié)果表明,使用雙向LSTM的DBF在準(zhǔn)確性和安全性上優(yōu)于文獻中用來對比的其他框架,并且在該框架中的數(shù)據(jù)交換變得簡單、透明,能顯著降低日常開支.然而深度學(xué)習(xí)與區(qū)塊鏈技術(shù)的結(jié)合可能會受到通信復(fù)雜度、流量開銷等因素的限制,一定程度上導(dǎo)致傳輸過程中存在丟包問題,對結(jié)果精度造成影響.未來還需要在更多數(shù)據(jù)集上進行測試,以評估框架的可擴展性與實用性.Mahdavisharif等人[33]采用大數(shù)據(jù)感知的深度學(xué)習(xí)方法設(shè)計高效的入侵檢測系統(tǒng),以檢測大規(guī)模的網(wǎng)絡(luò)流量數(shù)據(jù).該系統(tǒng)使用一種特定的LSTM結(jié)構(gòu),能夠檢測傳入流量數(shù)據(jù)包之間的復(fù)雜關(guān)系與長期依賴關(guān)系,從而減少誤報數(shù)量,提高入侵檢測系統(tǒng)的檢測準(zhǔn)確性.此外,該系統(tǒng)還使用了大數(shù)據(jù)技術(shù)中的并行與分布式計算方法,有效提高了系統(tǒng)運行速度.實驗在NSL-KDD上進行測試,結(jié)果表明該系統(tǒng)在檢測率、準(zhǔn)確率和訓(xùn)練時間等評價指標(biāo)上均優(yōu)于實驗中用來對比的其他方法.為了進一步降低計算復(fù)雜度,Mahdavisharif等人打算使用GRU算法代替LSTM,并收集真實的網(wǎng)絡(luò)流量數(shù)據(jù)進行訓(xùn)練,使得實驗結(jié)果更加準(zhǔn)確與可靠.
在深度學(xué)習(xí)模型中,AE非常適合從高維數(shù)據(jù)中提取特征,因此在入侵檢測系統(tǒng)中有著廣泛的應(yīng)用.Farahnakian等人[34]將4個AE進行連接,將當(dāng)前層AE的輸出作為下一層AE的輸入,并在輸入前對當(dāng)前層的AE進行訓(xùn)練,以此建立了一個深度AE的入侵檢測模型.為了避免過度擬合和局部最優(yōu)的情況,文獻[34]使用貪婪的無監(jiān)督分層方式對模型進行訓(xùn)練.實驗結(jié)果表明,該模型在10%的KDD99上實現(xiàn)了94.71%的檢測準(zhǔn)確率.未來可在該方法的基礎(chǔ)上進一步探討如何對AE添加稀疏約束,以及如何設(shè)計稀疏AE來進一步提高入侵檢測的有效性.為了解決傳統(tǒng)入侵檢測技術(shù)中存在的缺乏標(biāo)記數(shù)據(jù)集、開銷大及準(zhǔn)確率低等問題,Li等人[35]提出一種基于隨機森林算法的AE入侵檢測系統(tǒng).該系統(tǒng)通過特征選擇和特征分組構(gòu)造訓(xùn)練集,使用淺層AE神經(jīng)網(wǎng)絡(luò)進行攻擊檢測,降低了計算復(fù)雜度,并且借助AE特性解決了傳統(tǒng)方法中存在的樣本不均衡問題,有效提高了檢測精度.實驗結(jié)果表明,該系統(tǒng)能在較短時間內(nèi)準(zhǔn)確檢測出大部分攻擊.隨著網(wǎng)絡(luò)攻擊的隱蔽性越來越強,惡意流量加密為入侵檢測帶來不少困難.該系統(tǒng)存在的問題是提取的特征數(shù)量不足,在面對加密后的惡意攻擊時無法保證相同精度.Zavrak等人[36]提出一種使用變分編碼器(VAE)的入侵檢測模型,用來處理小規(guī)模的流量數(shù)據(jù)與識別未知攻擊.該模型采用半監(jiān)督的學(xué)習(xí)策略,對比模型有原始的AE以及OCSVM.實驗證明該模型檢測率在大多數(shù)情況下比AE和OCSVM高,但誤報率較高,需要有監(jiān)督學(xué)習(xí)方法的支撐.為了提高檢測率,可以考慮在特定時間間隔對流量數(shù)據(jù)進行收集,從而更好地模擬出某些攻擊特征.Yu等人[37]開發(fā)了一種網(wǎng)絡(luò)入侵檢測方法,從大量未標(biāo)記的原始網(wǎng)絡(luò)流量數(shù)據(jù)中自動有效地學(xué)習(xí)有用特征.該方法使用空洞卷積自動編碼器(DCAE)識別正常和惡意流量,首先使用數(shù)據(jù)預(yù)處理模塊將原始網(wǎng)絡(luò)流量數(shù)據(jù)轉(zhuǎn)換為二維數(shù)字向量,然后使用未標(biāo)記的數(shù)據(jù)訓(xùn)練DCAE.在分類任務(wù)實驗中,文獻[37]所提出的方法在二分類任務(wù)中表現(xiàn)最好,準(zhǔn)確率高達99.59%,在六分類任務(wù)中也高于文獻中列舉的其他基于深度學(xué)習(xí)的方法.實驗還表明,添加多個隱藏層并不能顯著提高性能,在1個卷積層、1個全連接層(帶有ReLU)以及1個分類層的情況下,模型性能最好,這可能是因為第1個卷積層的隱藏單元數(shù)足以學(xué)習(xí)全部有用特征.模型的局限性在于訓(xùn)練過程需要較長時間,這可通過深度學(xué)習(xí)領(lǐng)域廣泛使用的GPU并行化技術(shù)來解決.
Gao等人[38]首次將DBN用于入侵檢測,提出一種基于DBN的入侵檢測模型.為了證明DBN在網(wǎng)絡(luò)攻擊檢測中的適用性,實驗選用KDD99,對比模型有基于機器學(xué)習(xí)的人工神經(jīng)網(wǎng)絡(luò)(ANN)與SVM.實驗表明,DBN在不同隱藏層的情況下檢測率均高于SVM與ANN,且具有4個隱藏層的DBN表現(xiàn)最好,準(zhǔn)確率為93.49%,TPR為92.33%.由于文章發(fā)表時間較早,實驗僅僅對比了基于機器學(xué)習(xí)的經(jīng)典模型.Alrawashdeh等人[39]也對1個四隱藏層DBN進行了類似實驗,并使用softmax邏輯回歸模型對深度網(wǎng)絡(luò)進行微調(diào),在10%的KDD99上實現(xiàn)了97.9%的準(zhǔn)確率,無論是檢測速度還是檢測精度都優(yōu)于文獻中用來對比的幾種基于深度學(xué)習(xí)的方法.通過對訓(xùn)練過程進行改進,該模型的FN值降到2.47%.然而該模型的訓(xùn)練與測試時間較長,計算過程相對復(fù)雜,且實驗用的數(shù)據(jù)集較小,所包含的攻擊類別有限.Chawla[40]專門針對物聯(lián)網(wǎng)中存在的安全問題提出一種入侵檢測系統(tǒng).該系統(tǒng)使用含有3個隱藏層的DBN作為入侵檢測模型,降低了物聯(lián)網(wǎng)網(wǎng)絡(luò)的異質(zhì)性與動態(tài)性所導(dǎo)致的安全風(fēng)險,大大減少了所需的計算資源.該系統(tǒng)在1次實驗中收集了所有需要用到的數(shù)據(jù),包含來自IPv6報頭的信息以及有關(guān)數(shù)據(jù)包的元數(shù)據(jù),其中惡意數(shù)據(jù)由12種不同的攻擊類型表示.實驗結(jié)果表明,該系統(tǒng)檢測模型的TPR為95.4%,準(zhǔn)確率為95.03%.
深度學(xué)習(xí)分類模型的訓(xùn)練需要大量標(biāo)記數(shù)據(jù),收集這些數(shù)據(jù)通常需要耗費大量時間與金錢.針對該問題,Singla等人[41]基于GAN提出一種使用對抗域自適應(yīng)方法進行訓(xùn)練的入侵檢測模型.該模型通過將域自適應(yīng)學(xué)習(xí)和GAN相結(jié)合,降低了模型訓(xùn)練所需的數(shù)據(jù)量,使得模型可以通過少量樣本數(shù)據(jù)訓(xùn)練達到較高精度,同時減少了訓(xùn)練時間.無論原數(shù)據(jù)集與目標(biāo)數(shù)據(jù)集特征相似與否,使用文獻[41]所提出的方法訓(xùn)練的模型均優(yōu)于文獻中列舉的結(jié)合其他方法的模型.通過實驗可以看出,在目標(biāo)數(shù)據(jù)集與原數(shù)據(jù)集特征相似的情況下,該方法的準(zhǔn)確率分別比文獻中用來對比的2種方法高7.66%和6.73%,在特征不相似的情況下則分別高17.9%和5.78%.未來還需要對該方法在多類別分類及隱私保護等問題上的適用性作進一步研究.Liu等人[42]針對入侵檢測數(shù)據(jù)集的不平衡性和高維性特點提出了一種基于GAN和特征選擇的過采樣技術(shù),用來對數(shù)據(jù)集進行處理:一方面采用基于梯度懲罰的Wasserstein-GAN對高維攻擊分別進行建模,以生成額外的樣本數(shù)據(jù);另一方面使用方差分析法選擇代表整個數(shù)據(jù)集的特征子集,從而得到低維且平衡的數(shù)據(jù)集,放入模型進行訓(xùn)練.實驗分別在NSL-KDD,UNSW-NB15,CICIDS-2017上進行,驗證了該技術(shù)能夠使入侵檢測模型的檢測性能顯著提升,但文獻[42]沒有對不同特征所分配的權(quán)重進行研究,沒有反映出每個特征在分類中的重要性.
在網(wǎng)絡(luò)流量檢測的基礎(chǔ)上,對各種攻擊行為進行分類能有效提升入侵檢測系統(tǒng)的檢測精度與效率.常見的網(wǎng)絡(luò)攻擊包括拒絕服務(wù)(DoS)、分布式拒絕服務(wù)(DDoS)、用戶提權(quán)(U2R)、遠程用戶(R2L)、注入(injection)及探針(probe)攻擊等[43].使用深度學(xué)習(xí)模型能夠在對現(xiàn)有網(wǎng)絡(luò)攻擊精準(zhǔn)分類的同時發(fā)現(xiàn)新的攻擊類型,與其他攻擊行為進行細致區(qū)分.
機器學(xué)習(xí)方法在處理海量、不具備獨立同分布的流量數(shù)據(jù)時開銷大、精度低.為了解決這些問題,張小莉等人[44]將PCA算法與改進的深度卷積神經(jīng)網(wǎng)絡(luò)分類模型(LCNN)相結(jié)合,提出一種流量分類模型.其中,PCA算法用來對數(shù)據(jù)進行降維分析,發(fā)現(xiàn)關(guān)鍵特征;LCNN則采用自主特征學(xué)習(xí)方式提升分類精度.實驗使用3種帶標(biāo)簽的數(shù)據(jù)集對模型進行測試,檢測精度最高可達96.58%,比實驗中列舉的其他模型提升了5%~8%.此外,該模型還具有很強的泛化能力,可與其他算法結(jié)合進一步提升模型性能.該模型存在的主要問題是特征屬性較少,在處理一些復(fù)雜數(shù)據(jù)時不太適用.Yin等人[45]將RNN與入侵檢測系統(tǒng)相結(jié)合,提出RNN-IDS模型,并通過多個數(shù)據(jù)集進行實驗.RNN-IDS模型不僅具有很強的入侵檢測建模能力,而且在多類別分類中也具有較高的準(zhǔn)確性,特別是在NSL-KDD的多分類任務(wù)中具有較低的FPR與較高的檢測率.該模型與傳統(tǒng)機器學(xué)習(xí)模型相比能實現(xiàn)更高的精度,但訓(xùn)練時間更長,且由于RNN存在梯度爆炸與梯度消失的問題,可以考慮使用GPU加速來減少訓(xùn)練時間.為了充分提取用戶行為的特征信息,Xiao等人[46]提出一種基于AE與CNN的網(wǎng)絡(luò)入侵檢測模型.該模型通過AE對處理后的數(shù)據(jù)集進行降維,將降維后的數(shù)據(jù)轉(zhuǎn)換為灰度圖像輸入CNN,通過CNN提取和分析數(shù)據(jù)特征進行分類.實驗結(jié)果表明,模型的準(zhǔn)確率、檢測率與FAR分別可達94.0%,93.0%及0.5%,比大部分機器學(xué)習(xí)模型以及DNN,RNN等基礎(chǔ)深度學(xué)習(xí)模型性能更好.但該模型在處理少數(shù)攻擊類別(如U2L,R2L)時檢測率較低,且特征學(xué)習(xí)較為困難,未來使用GAN生成新的樣本數(shù)據(jù)能有效幫助識別更多攻擊類別的特征.Kannari等人[47]針對網(wǎng)絡(luò)流量數(shù)據(jù)維度高和數(shù)據(jù)不均衡的問題,提出一種基于swish-PReLU激活函數(shù)的稀疏AE,對NSL-KDD,CIC-IDS2017和AWID中的正常流量和攻擊流量進行分類,其中在NSL-KDD中的準(zhǔn)確率可達99.95%,檢測率可達99.82%.在與文獻[47]中列舉的幾個改進模型的對比實驗中,該模型在分類精度與檢測率等方面也有不錯的表現(xiàn).然而該模型并沒有解決AE中過度擬合與數(shù)據(jù)稀疏的問題.
Aldwairi等人[48]考慮到建立一種能夠?qū)W習(xí)和適應(yīng)新型網(wǎng)絡(luò)攻擊的入侵檢測系統(tǒng)的重要性,嘗試使用RBM來區(qū)分正常和異常網(wǎng)絡(luò)流量數(shù)據(jù).實驗使用訓(xùn)練算法CD與PCD對RBM性能進行評估,準(zhǔn)確率分別為88.6%與89.0%,TPR分別為88.4%與84.2%.實驗結(jié)果表明,RBM經(jīng)過訓(xùn)練后能夠正確區(qū)分正常和異常網(wǎng)絡(luò)流量數(shù)據(jù),并且可以識別新的攻擊行為,但計算復(fù)雜度較高,準(zhǔn)確率還有待提高,且文中只探討了雙層RBM,沒有進行更深入的研究.Elsaeidy等人[49]對RBM的改進模型DRBM進行研究,提出一種基于DRBM的智能城市入侵檢測框架.該框架使用經(jīng)過訓(xùn)練的DRBM模型從網(wǎng)絡(luò)流量中提取高層特征,結(jié)合前饋神經(jīng)網(wǎng)絡(luò)、隨機森林等模型利用提取到的特征檢測不同類型的DDoS攻擊.實驗結(jié)果表明,該框架中的DRBM具有高精度的跟蹤檢測能力,性能優(yōu)于傳統(tǒng)前饋神經(jīng)網(wǎng)絡(luò)、隨機森林、SVM等模型.DRBM存在的問題是檢測結(jié)果會受到RBM層數(shù)以及集群數(shù)量的影響,當(dāng)RBM層數(shù)與集群數(shù)量增加時,模型的攻擊檢測性能會降低.Thamilarasu等人[50]開發(fā)了一種適合物聯(lián)網(wǎng)環(huán)境的智能入侵檢測系統(tǒng),提出用DBN構(gòu)建用于網(wǎng)絡(luò)攻擊檢測與分類的前饋深度神經(jīng)網(wǎng)絡(luò),并對蟲洞攻擊、黑洞攻擊、DDoS攻擊等攻擊類型進行測試,其中DDoS攻擊的檢測準(zhǔn)確率高達96%、召回率高達98.7%.此外,所有攻擊場景的F1分數(shù)都較高,表明系統(tǒng)具有較好的整體檢測性能.但是該實驗的對比方法只有1個,不能很好地體現(xiàn)該方法的優(yōu)勢,并且也沒有針對物聯(lián)網(wǎng)中一些特有的攻擊類型進行檢測.
Lin等人[51]認為現(xiàn)有入侵檢測系統(tǒng)的魯棒性不強,提出一種基于Wasserstein-GAN的入侵檢測系統(tǒng).該系統(tǒng)中生成器的作用是將惡意樣本轉(zhuǎn)換為對抗性惡意樣本,判別器對所有流量樣本進行分類.為了保證入侵的有效性,實驗只對樣本的部分非功能性特征進行了更改.在NSL-KDD上,該系統(tǒng)能對多種類型攻擊進行檢測與分類,檢測率高于對比的系統(tǒng).此外,通過改變未修改特征的數(shù)量,驗證了該系統(tǒng)具有很強的魯棒性.未來可對系統(tǒng)進行改進,加入更多新類型的攻擊數(shù)據(jù),進一步提高系統(tǒng)魯棒性.Liao等人[52]針對現(xiàn)有入侵檢測方法缺少用于訓(xùn)練的標(biāo)記數(shù)據(jù)以及檢測精度低的問題,提出一種基于GAN的網(wǎng)絡(luò)入侵檢測方法,分別選用LSTM網(wǎng)絡(luò)和ANN作為生成器和判別器,將GAN標(biāo)準(zhǔn)模型進一步轉(zhuǎn)化為監(jiān)督學(xué)習(xí)模型.在相同的測試集樣本下,采用該方法的分類模型相較文獻中的對比方法有更好的網(wǎng)絡(luò)入侵檢測性能,精確度達到82.3%.但由于對比方法的分類模型基本都來自于機器學(xué)習(xí),該方法在部分評價指標(biāo)上的值要低于對比方法.
近年來,基于深度學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測系統(tǒng)研究取得了不少成果,從實驗結(jié)果來看,相較傳統(tǒng)機器學(xué)習(xí)方法有更好的性能表現(xiàn).然而深度學(xué)習(xí)技術(shù)目前仍處于實驗階段,沒有廣泛應(yīng)用于商用入侵檢測系統(tǒng).本節(jié)著眼于當(dāng)前基于深度學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測系統(tǒng)所存在的缺陷,介紹網(wǎng)絡(luò)入侵檢測系統(tǒng)需要解決的若干主要問題,并對未來發(fā)展趨勢進行展望.
深度學(xué)習(xí)中數(shù)據(jù)集的好壞會直接影響模型的訓(xùn)練過程與檢測結(jié)果.在對模型進行訓(xùn)練時,往往需要足夠多的樣本來調(diào)整神經(jīng)網(wǎng)絡(luò)的各個參數(shù).當(dāng)前用于入侵檢測的訓(xùn)練集中通常包含大量正常流量樣本,惡意流量樣本數(shù)量則較少.訓(xùn)練數(shù)據(jù)不平衡會導(dǎo)致訓(xùn)練后的模型存在嚴重的偏向性,即模型會將注意力過多地集中于正常流量數(shù)據(jù)上,使得異常流量數(shù)據(jù)的識別率大大下降.目前有關(guān)入侵檢測數(shù)據(jù)不平衡問題的研究工作還較少,未來可以考慮將AE,CNN等多種深度學(xué)習(xí)模型相結(jié)合,利用模型各自的優(yōu)勢彌補數(shù)據(jù)不平衡所帶來的影響.
目前大部分入侵檢測系統(tǒng)都是使用已有的公開數(shù)據(jù)集,在離線狀態(tài)下進行研究,沒有在真實的網(wǎng)絡(luò)環(huán)境中進行實際應(yīng)用[53].然而網(wǎng)絡(luò)流量數(shù)據(jù)的行為特征會隨著時間和空間的改變而發(fā)生改變,特別是在網(wǎng)絡(luò)安全形勢日益嚴峻的今天,各種新的網(wǎng)絡(luò)攻擊行為不斷出現(xiàn),惡意網(wǎng)絡(luò)流量檢測變得尤為重要.如何將訓(xùn)練的模型應(yīng)用于實時檢測以應(yīng)對各種新型網(wǎng)絡(luò)攻擊是入侵檢測系統(tǒng)未來研究的重點,如何對各深度模型結(jié)構(gòu)進行優(yōu)化和改進以適應(yīng)日新月異的網(wǎng)絡(luò)環(huán)境是未來發(fā)展的關(guān)鍵.
在處理海量高維數(shù)據(jù)時深度學(xué)習(xí)能實現(xiàn)較高的準(zhǔn)確率,但目前大多數(shù)深度學(xué)習(xí)模型涉及深層次的結(jié)構(gòu),訓(xùn)練所需的參數(shù)較多,從而導(dǎo)致訓(xùn)練時間過長,嚴重影響模型的檢測效率.當(dāng)前大多數(shù)研究都將重心放在系統(tǒng)檢測的準(zhǔn)確性上,很少將訓(xùn)練時間作為考慮因素及評價指標(biāo),導(dǎo)致很多模型僅存在于理論中,無法付諸實踐.如何在有限的訓(xùn)練時間內(nèi)保證較高的準(zhǔn)確率,是基于深度學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測系統(tǒng)模型優(yōu)化的重要方向之一,也是網(wǎng)絡(luò)入侵檢測系統(tǒng)能否用于實際的關(guān)鍵.
目前較為主流的深度學(xué)習(xí)框架有PaddlePaddle,TensorFlow,Keras,Caffe,PyTorch,CNTK等,這些深度學(xué)習(xí)框架為用戶提供了大量可重復(fù)使用的算法與模塊,有效提高了開發(fā)效率,但也存在一些安全漏洞,容易遭受網(wǎng)絡(luò)攻擊[54].例如,TensorFlow所依賴的1個用于科學(xué)計算的python庫Numpy出現(xiàn)DoS攻擊漏洞,攻擊者可利用這個漏洞對系統(tǒng)進行干擾.深度學(xué)習(xí)框架以及它所依賴的組件中的任何安全問題都會威脅框架之上的應(yīng)用系統(tǒng),進行基于深度學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測系統(tǒng)研究時需要格外注意這一問題.
深度學(xué)習(xí)技術(shù)有效提高了網(wǎng)絡(luò)入侵檢測系統(tǒng)的性能,在處理大規(guī)模流量數(shù)據(jù)時能實現(xiàn)較高的準(zhǔn)確率.本文從深度學(xué)習(xí)模型、數(shù)據(jù)預(yù)處理技術(shù)、數(shù)據(jù)集與評價指標(biāo)、入侵檢測應(yīng)用以及問題與展望等方面描述了基于深度學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測系統(tǒng)的研究現(xiàn)狀,希望能為相關(guān)領(lǐng)域的研究提供借鑒和思路.