肖建平,龍春*,趙靜,魏金俠,胡安磊,杜冠瑤
1.中國科學院計算機網(wǎng)絡(luò)信息中心,北京 100190
2.中國科學院大學,計算機科學與技術(shù)學院,北京 101408
3.中國互聯(lián)網(wǎng)絡(luò)信息中心,北京 100190
隨著信息技術(shù)的發(fā)展,互聯(lián)網(wǎng)已在多個領(lǐng)域發(fā)揮著重要的作用。與此同時,網(wǎng)絡(luò)空間面臨的安全威脅也在急劇增加,根據(jù)CNCERT發(fā)布的《2020 年上半年我國互聯(lián)網(wǎng)網(wǎng)絡(luò)安全監(jiān)測數(shù)據(jù)分析報告》:(1)在惡意程序方面,我國有超過300萬臺主機感染了計算機惡意程序,同比增長25.7%,這些惡意程序造成了僵尸網(wǎng)絡(luò)的泛濫,此外,移動互聯(lián)網(wǎng)惡意程序的數(shù)量也大幅增加。(2)在安全漏洞方面,2020年上半年國家信息安全漏洞共享平臺(CNVD)共發(fā)現(xiàn)通用安全漏洞 11073個,同比增長89.0%。(3)在拒絕服務(wù)攻擊方面,分布式拒絕服務(wù)攻擊(DDoS)依然是最常見的網(wǎng)絡(luò)安全威脅之一,大流量DDoS攻擊事件對互聯(lián)網(wǎng)用戶造成了較大的影響。(4)在網(wǎng)站安全方面,主要存在網(wǎng)頁仿冒、網(wǎng)站后門和網(wǎng)頁篡改等問題,其中我國境內(nèi)約3.59萬個網(wǎng)站被植入后門,數(shù)量較2019年上半年增長 36.9%。(5)在云平臺安全方面,云平臺上網(wǎng)絡(luò)安全威脅形勢依然很嚴峻,我國主要云平臺上發(fā)生了較多的各類網(wǎng)絡(luò)安全事件。(6)在工業(yè)控制系統(tǒng)安全方面,暴露在互聯(lián)網(wǎng)上的工業(yè)設(shè)備達 4630 臺,這些系統(tǒng)一旦被攻擊,將嚴重威脅生產(chǎn)系統(tǒng)的安全,我國有大量關(guān)鍵信息基礎(chǔ)設(shè)施及其聯(lián)網(wǎng)控制系統(tǒng)的網(wǎng)絡(luò)資產(chǎn)信息被境外嗅探,這無疑會帶來安全隱患[1]。隨著互聯(lián)網(wǎng)的發(fā)展,新型攻擊層出不窮,互聯(lián)網(wǎng)面臨的安全形勢不樂觀,因此,網(wǎng)絡(luò)安全正逐漸成為人們關(guān)注的焦點,必須采取有效的措施來防護這些攻擊行為。
入侵檢測系統(tǒng)(Intrusion Detection System, IDS)起源于Anderson等人[2]在1980年提出的用來處理用戶審計數(shù)據(jù)的“計算機安全威脅監(jiān)測和監(jiān)視系統(tǒng)”?;谕瑯拥脑瓌t,Denning[3]提出使用由審計數(shù)據(jù)生成的用戶特征來識別入侵,即從審計記錄中獲取主體相對于客體的行為的知識和檢測異常行為的規(guī)則。這些開創(chuàng)性的工作定義了入侵檢測的相關(guān)概念,IDS作為一種網(wǎng)絡(luò)安全防護技術(shù),能充分利用軟件和硬件,通過對網(wǎng)絡(luò)或系統(tǒng)進行監(jiān)控,以感知惡意活動并及時發(fā)出警報,為管理人員提供響應(yīng)決策,從而確保網(wǎng)絡(luò)資源的機密性、完整性和可用性。
入侵檢測技術(shù)已在網(wǎng)絡(luò)安全防護的任務(wù)中發(fā)揮了重要作用,隨著機器學習的發(fā)展,已有很多研究工作將相關(guān)技術(shù)用于入侵檢測。但是,隨著攻擊行為的不斷升級和網(wǎng)絡(luò)數(shù)據(jù)量的快速增長,再加上近年來內(nèi)部威脅、零日漏洞、加密攻擊等行為的出現(xiàn),基于傳統(tǒng)機器學習方法的IDS已經(jīng)難以應(yīng)對這些新挑戰(zhàn)。深度學習是機器學習的一種,可以學習樣本數(shù)據(jù)的內(nèi)在規(guī)律,在特征提取和模型建立方面效率更高,非常適合用于當前的網(wǎng)絡(luò)攻擊檢測。
本文通過對入侵檢測的相關(guān)工作進行梳理,首先簡要介紹了利用機器學習方法進行入侵檢測的最新研究,然后詳細論述了基于深度學習的入侵檢測技術(shù),最后對存在的問題和未來發(fā)展方向進行了探討。
本文的內(nèi)容安排如下:第1節(jié)給出入侵檢測系統(tǒng)的分類;第2節(jié)介紹了入侵檢測數(shù)據(jù)集和評估方法;第3節(jié)簡要分析了基于傳統(tǒng)機器學習的入侵檢測方法;第4節(jié)總結(jié)基于深度學習的入侵檢測技術(shù);第5節(jié)對入侵檢測系統(tǒng)未來的研究方向進行討論;第6節(jié)總結(jié)全文。
通??筛鶕?jù)數(shù)據(jù)來源和檢測技術(shù)對入侵檢測進行分類,具體分類框架如圖1所示。
圖1 入侵檢測系統(tǒng)的分類框架Fig.1 Classification framework of intrusion detection system
根據(jù)所檢測數(shù)據(jù)來源的不同,可以將入侵檢測分為基于主機的入侵檢測和基于網(wǎng)絡(luò)的入侵檢測。
基于主機(Host)的入侵檢測(HIDS)[4]從其監(jiān)視的主機收集輸入數(shù)據(jù),HIDS一般使用日志文件作為其主要信息來源,通過對日志文件進行解碼、分析來有效識別各種入侵。HIDS的優(yōu)點是性價比較高,誤報率比較低,缺點是只能監(jiān)視主機上的特定程序,且需要安裝到每個主機上,檢測范圍有限。
基于網(wǎng)絡(luò)(Network)的入侵檢測(NIDS)[5]檢測網(wǎng)絡(luò)數(shù)據(jù)包,通過解析數(shù)據(jù)包的內(nèi)容來判斷網(wǎng)絡(luò)中是否有攻擊行為。隨著互聯(lián)網(wǎng)的廣泛應(yīng)用,IDS已將重點放在對網(wǎng)絡(luò)本身的攻擊上。NIDS的優(yōu)點是可以通過一個系統(tǒng)對整個網(wǎng)絡(luò)進行監(jiān)視,不需要在每臺主機上安裝軟件,缺點是其檢測范圍一般只限于傳輸中的非加密信息,很難實現(xiàn)需要較大計算量和較長分析時間的檢測。
具體到所使用的檢測方法,入侵檢測領(lǐng)域主要有基于誤用的入侵檢測和基于異常的入侵檢測。
基于誤用(Misuse)的入侵檢測(MIDS)通過將網(wǎng)絡(luò)流量與已有的攻擊特征庫進行匹配,根據(jù)匹配情況判斷入侵行為。其前提是存在表示攻擊的方法,例如以模式或簽名的形式來表示。
基于異常(Anomaly)的入侵檢測(AIDS)通常情況下需要對系統(tǒng)中的正?;顒舆M行記錄,確定這些活動的特征,并進行定量描述,當用戶行為偏離正常記錄時,就將這些行為活動定義為攻擊?;诋惓5腎DS可以檢測未知攻擊,因此目前是學者們研究的重點。
需要通過數(shù)據(jù)集對入侵檢測系統(tǒng)的性能進行評估,隨著IDS的發(fā)展,出現(xiàn)了許多優(yōu)秀的數(shù)據(jù)集。目前基于網(wǎng)絡(luò)的入侵檢測數(shù)據(jù)集主要有DARPA 98、KDD 99、NSL-KDD、UNB ISCX2012、UNSWNB15和CICIDS2017等。
DARPA 98[6]由林肯實驗室(1998和1999)創(chuàng)建,用于網(wǎng)絡(luò)安全分析。它通過人工注入攻擊和正常流量,并因此受到了研究人員的廣泛批評,這些攻擊和正常流量造成了冗余,以及其他違規(guī)行為。
KDD 99[7]是在DARPA98數(shù)據(jù)集的基礎(chǔ)上,通過一個模擬的美國空軍局域網(wǎng)產(chǎn)生的,并加入了很多模擬的攻擊,它是到目前為止使用最多的數(shù)據(jù)集。其中的流量分為五類:正常、Probe、R2L、U2R和DoS攻擊,每條記錄都是一個包含41維特征和1個標簽的連接向量,NSL-KDD數(shù)據(jù)集[8]是KDD 99數(shù)據(jù)集的改進版本,是為了解決KDD 99數(shù)據(jù)集中存在的問題。NSL-KDD中刪除了KDD 99中訓練和測試集中的冗余記錄,共有39種攻擊類型,其中訓練數(shù)據(jù)中有22種,測試數(shù)據(jù)包含另外17種。
UNB ISCX2012數(shù)據(jù)集[9]是通過配置文件動態(tài)生成的數(shù)據(jù)集,包含七天的原始網(wǎng)絡(luò)數(shù)據(jù)流量,它不僅能反映當時的流量組成和入侵,還可以修改、擴展和重現(xiàn)。和KDD 99數(shù)據(jù)集相比,UNB ISCX2012數(shù)據(jù)集的攻擊類型更接近于真實攻擊。
為了解決KDD 99和NSL-KDD等數(shù)據(jù)集不能全面反映網(wǎng)絡(luò)流量和現(xiàn)代低占用空間攻擊的問題,Moustafa等人[10]創(chuàng)建了UNSW-NB15數(shù)據(jù)集??紤]到以往的數(shù)據(jù)集流量多樣性不足,覆蓋的攻擊種類不全面,匿名的數(shù)據(jù)包信息和有效載荷不能反映當前的趨勢或者缺乏特征集和元數(shù)據(jù),加拿大網(wǎng)絡(luò)安全研究所為入侵檢測提供了許多相關(guān)的特定數(shù)據(jù)集,如CICIDS2017數(shù)據(jù)集[11]和CSE-CIC-IDS2018數(shù)據(jù)集,這兩種數(shù)據(jù)集中包含良性網(wǎng)絡(luò)流和七種常見攻擊網(wǎng)絡(luò)流,和真實網(wǎng)絡(luò)數(shù)據(jù)很接近。
當前,入侵檢測系統(tǒng)的評估主要利用二分類算法的評估方法說明系統(tǒng)的性能,主要采用以下指標。
(1)TPR:真陽性率,在所有實際為惡意樣本的數(shù)據(jù)中,被正確地判斷為惡意樣本的比率,該指標越高越好;
(2)FPR:假陽性率,在所有實際為良性樣本的數(shù)據(jù)中,被錯誤地判斷為惡意樣本的比率,該指標越低越好;
(3)DR:檢測率,表示該方法在檢測惡意樣本的能力方面的性能,該指標越高越好;
(4)Precision:原本為惡意樣本的數(shù)據(jù)占預(yù)測為惡意樣本數(shù)據(jù)的比率,該指標越高越好;
(5)ACC:將實例正確地分為良性樣本和惡意樣本的比率;
(6)AUC:ROC 曲線下的面積即為AUC指標的值,ROC 曲線由TPR 和FPR 計算得到,該指標越高越好。
傳統(tǒng)機器學習方法已經(jīng)在基于異常的入侵檢測中得到廣泛應(yīng)用。通??梢詫C器學習分為監(jiān)督學習、無監(jiān)督學習和半監(jiān)督學習,本節(jié)根據(jù)這個分類標準從三個方面進行介紹,最后進行了總結(jié),并分析了基于傳統(tǒng)機器學習方法的入侵檢測存在的不足。
(1)隱馬爾可夫模型
隱馬爾可夫模型(Hidden Markov Models,HMM)是關(guān)于時序的概率模型,它可以被應(yīng)用于入侵檢測的序列相關(guān)問題。針對Web應(yīng)用程序的安全,Ariu等人[12]將有效載荷表示為一個字節(jié)序列,并使用隱馬爾可夫模型(HMM)進行分析,經(jīng)實驗評估,該方法對最常見的Web應(yīng)用攻擊(如XSS和SQL注入)特別有效,但該方法沒有考慮有效載荷的長度,有進一步提高總體準確性的空間。Xiao等人[13]將HMM應(yīng)用于基于異常流量的網(wǎng)絡(luò)入侵檢測,將基于主成分分析方法(PCA)提取到的流量特征作為HMM的輸入值,根據(jù)輸出的概率來判斷流量的類型。針對車載自組網(wǎng)中的入侵檢測系統(tǒng)檢測開銷大、檢測時間長的問題,Liang等人[14]提出了一種基于HMM的過濾模型用于入侵檢測系統(tǒng),該方法將自組網(wǎng)中每輛車的狀態(tài)模式建模為HMM,以實現(xiàn)快速過濾來自車輛的消息,實驗表明,該入侵檢測系統(tǒng)在檢測率、檢測時間和檢測開銷方面都有較好的性能。
(2)K近鄰算法
K近鄰算法(K-Nearest Neighbor, KNN)精度高、理論成熟,能夠解決入侵檢測中的多分類問題。隨著網(wǎng)絡(luò)數(shù)據(jù)特征維度的增加,K近鄰算法的分類性能會顯著降低,為解決這個問題,Chen等人[15]利用樹種子算法(TSA)對原始數(shù)據(jù)進行處理,在提取到有效特征后,使用KNN進行分類,實驗結(jié)果表明這種組合模型能夠有效地去除冗余特征,提高網(wǎng)絡(luò)入侵檢測的準確性和效率。PKNN是經(jīng)典KNN的改進版本,適合解決多標簽分類問題,它優(yōu)先考慮樣本和待分類輸入項更接近的類,Saleh等人[16]設(shè)計了一種能實時應(yīng)用并適合于解決多分類問題的混合入侵檢測系統(tǒng),首先通過一種樸素的基特征選擇(NBFS)技術(shù)降低樣本數(shù)據(jù)的維度,然后通過優(yōu)化后的支持向量機(OSVM)來剔除離群點,最后利用PKNN來檢測攻擊,在KDD 99、NSL-KDD和Kyoto2006+數(shù)據(jù)集上的實驗結(jié)果表明,該系統(tǒng)能較快地檢測攻擊并能用于實時入侵檢測。
(3)支持向量機
支持向量機(Support Vector Machine, SVM)通常用于解決小樣本、非線性、高維度等問題,泛化能力強,在入侵檢測領(lǐng)域被廣泛應(yīng)用。在數(shù)據(jù)采樣階段對數(shù)據(jù)進行降維,可以大大提高檢測效率,Chen等人[17]提出了一種基于壓縮采樣的SVM入侵檢測模型,利用壓縮感知理論中的壓縮采樣方法對網(wǎng)絡(luò)數(shù)據(jù)流進行特征壓縮,然后利用SVM對壓縮結(jié)果進行分類,所提方法大大減少了訓練時間和檢測時間。戚等人[18]提出一種基于主成分分析的SVM攻擊檢測方法,通過主成分分析法對原始數(shù)據(jù)集進行降維,得到能提升分類效果的主成分屬性集,然后利用該屬性集訓練SVM分類器,在KDD 99數(shù)據(jù)集上的實驗表明,該方法大大縮短了檢測時間,提高了檢測效率。Wang等人[19]為改善特征的質(zhì)量,通過對數(shù)邊際密度比(logarithms of the marginal density ratios, LMDRT)方法對原始特征進行處理,然后構(gòu)建基于SVM的IDS,在NSL-KDD數(shù)據(jù)集上的實驗結(jié)果表明該方法在準確率、檢測率、誤報率和訓練速度等方面有更好的性能和更強的穩(wěn)健性。
無監(jiān)督學習主要處理先驗知識缺乏、難以人工標注類別或通過人工標注成本太高這些場景下的問題,在入侵檢測領(lǐng)域,無監(jiān)督學習技術(shù)不需要對數(shù)據(jù)進行類別標注,能直接對網(wǎng)絡(luò)數(shù)據(jù)進行分類,此外,用于降維的無監(jiān)督方法可以有效解決數(shù)據(jù)集的冗余和不相關(guān)問題,降低計算開銷。常用的無監(jiān)督機器學習方法有:k-means、高斯混合模型和主成分分析法。
(1)k-means
k-means是經(jīng)典的無監(jiān)督聚類(Unsupervised Clustering)算法,被廣泛應(yīng)用于入侵檢測領(lǐng)域。k-means可通過與其他方法結(jié)合進一步提升性能,也有不少研究對傳統(tǒng)k-means進行改進。Aung等人[20]將k-means和分類回歸樹(CART)算法相結(jié)合來構(gòu)建入侵檢測模型,研究混合方法的性能。Al-Yaseen等人[21]為減小分類器的訓練時間,提高分類器性能,提出了一種多層次的入侵檢測模型,首先通過改進k-means算法對原始訓練數(shù)據(jù)集進行優(yōu)化,減少了分類器的訓練時間,然后使用支持向量機和極限學習機進行多層次分類,在KDD 99數(shù)據(jù)集上進行評估,該模型的ACC指標達到了95.75%。
(2)高斯混合模型
高斯混合模型(Gaussian Mixture Model,GMM)對特征的概率分布進行建模,因此可以識別網(wǎng)絡(luò)流量中的惡意數(shù)據(jù)樣本。當攻擊樣本和正常樣本的分布類似時,可以使用高斯混合模型在特征層面建模,對兩類樣本進行區(qū)分[22]。為了解決訓練數(shù)據(jù)不平衡、誤報率高以及無法檢測到未知攻擊等問題,Chapaneri等人[23]使用高斯混合模型方法來學習每個流量類別的統(tǒng)計特征,并使用基于四分位數(shù)間距的自適應(yīng)閾值技術(shù)來識別異常值。在CICIDS2017數(shù)據(jù)集上的評估結(jié)果表明該方法能有效檢測出未知攻擊。
(3)主成分分析法
主成分分析(PCA)是一種常用的特征提取方法,可以對高維數(shù)據(jù)進行降維,縮短模型的訓練時間,因此被廣泛用在入侵檢測中。文獻[24]使用PCA和Fisher判別比(FDR)進行特征選擇和去噪,然后用概率自組織映射(Probabilistic Self-Organizing Maps,PSOM)對特征空間進行建模,能有效區(qū)分正常和異常連接。
隨著網(wǎng)絡(luò)數(shù)據(jù)流量的增大,僅依賴專家知識進行人工標記很難得到大量準確標記的數(shù)據(jù),造成訓練數(shù)據(jù)集規(guī)模很有限,這使得模型無法準確檢測出攻擊。半監(jiān)督機器學習方法將監(jiān)督學習與無監(jiān)督學習相結(jié)合,不過度依賴標簽數(shù)據(jù),同時也充分利用已有數(shù)據(jù)的類別信息,因此被廣泛用于入侵檢測中。
現(xiàn)有未知攻擊檢測方法選取的特征不具有代表性,導致檢測精度較低,許等人[25]使用改進的k-means半監(jiān)督學習算法,實現(xiàn)對歷史數(shù)據(jù)的自動標記,并獲得了大量準確標記的訓練數(shù)據(jù),引入信息增益的概念并用信息增益率來選取更具有代表性的特征,以提高模型對未知攻擊的檢測性能,實驗結(jié)果表明,該方法對不同目標網(wǎng)絡(luò)中未知攻擊檢測的準確率均達到90%以上。針對網(wǎng)絡(luò)流量在不同類別間的嚴重不平衡,訓練集和測試集在特征空間中的分布不一致這兩個問題,Yao等人[26]提出了一種多層半監(jiān)督入侵檢測模型框架,使用一種層次化的半監(jiān)督k-means聚類算法來緩解類不平衡問題,通過一種區(qū)分測試集中已知和未知模式樣本的方法來解決分布不同的問題,實驗結(jié)果表明,該模型在總體準確率、F1-Score、未知模式識別能力等方面均優(yōu)于現(xiàn)有的入侵檢測模型。
傳統(tǒng)機器學習方法在入侵檢測領(lǐng)域得到了廣泛應(yīng)用,表1總結(jié)了利用傳統(tǒng)機器學習方法進行入侵檢測的部分工作,其中給出了所使用的技術(shù)、數(shù)據(jù)預(yù)處理方式、特征處理方法、評估數(shù)據(jù)集、任務(wù)類型和評價指標。
表1 基于傳統(tǒng)機器學習的入侵檢測Table 1 Intrusion detection based on traditional machine learning
通過對引用論文的分析,多數(shù)研究工作在解決目前入侵檢測面臨的問題時,會將多種機器學習算法混合使用,首先通過特征提取或特征選擇算法對原始數(shù)據(jù)進行處理,然后構(gòu)建基于分類器的檢測模型。在分類器的選取方面,通常可以對基本模型進行改進,也可以利用集成學習的思想,集成不同的分類器來提升檢測性能。然而隨著攻擊行為的進一步多樣化和流量數(shù)據(jù)持續(xù)增加、維度進一步增大,正常樣本和攻擊樣本的嚴重不平衡,利用傳統(tǒng)機器學習方法進行入侵檢測也存在很多不足,主要體現(xiàn)在過度依賴人工提取特征,難以深入挖掘樣本數(shù)據(jù)的內(nèi)在規(guī)律,特別是未能考慮網(wǎng)絡(luò)流量的時間、空間等特征,沒有分析數(shù)據(jù)在不同維度上的相關(guān)性,從而難以做到對潛在威脅的預(yù)測。因此,基于傳統(tǒng)機器學習方法的入侵檢測技術(shù)面臨著巨大的挑戰(zhàn)。
傳統(tǒng)機器學習方法是較為淺層的學習方法,隨著網(wǎng)絡(luò)中數(shù)據(jù)量的增加,數(shù)據(jù)維度的進一步增大,這類方法往往難以達到預(yù)期的效果。在這樣的背景下,深度學習(Deep Learning)應(yīng)運而生[27],深度學習的理論和相關(guān)技術(shù)在機器學習的應(yīng)用領(lǐng)域得到了迅速的發(fā)展。近年來,深度學習促進了人工智能技術(shù)及相關(guān)產(chǎn)業(yè)的蓬勃發(fā)展。深度學習方法可分為生成式無監(jiān)督學習、判別式有監(jiān)督學習和混合深度學習三大類[28]。基于深度學習的網(wǎng)絡(luò)入侵檢測系統(tǒng)的結(jié)構(gòu)如圖2所示,深度學習模型主要用于特征處理和分類。根據(jù)深度學習的分類方法,本節(jié)將對基于深度學習的入侵檢測技術(shù)進行詳細介紹。
圖2 基于深度學習的NIDS結(jié)構(gòu)Fig.2 The NIDS structure based on deep learning
生成式方法以及由此產(chǎn)生的生成模型使用無標記數(shù)據(jù),可用于模式分析或合成,也可以描述數(shù)據(jù)的聯(lián)合分布統(tǒng)計[28]。
(1)循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)
循環(huán)神經(jīng)網(wǎng)絡(luò)[29]基于常規(guī)前饋神經(jīng)網(wǎng)絡(luò),RNN之所以被稱為遞歸,是因為它們對序列的每個元素執(zhí)行相同的任務(wù),其輸出取決于先前的計算,RNN可以利用數(shù)據(jù)的序列信息,提取時序特征,非常適合應(yīng)用于與序列相關(guān)的入侵檢測問題。Suda等人[30]針對車載網(wǎng)絡(luò)的入侵檢測,提出了一種時間序列特征提取的入侵檢測算法,利用RNN實現(xiàn)有效提取數(shù)據(jù)包的時間序列特征。燕昺昊等人[31]提出了一種基于深度循環(huán)神經(jīng)網(wǎng)絡(luò)(DRNN)和區(qū)域自適應(yīng)合成過采樣算法(RA-SMOTE)的組合式入侵檢測模型,不僅提升了低頻攻擊的檢測率,同時依靠RNN的時序循環(huán)結(jié)構(gòu)充分挖掘并利用了樣本之間的時序相關(guān)性,提升了模型刻畫數(shù)據(jù)的能力和檢測性能。
然而,在一些長時間依賴問題中,傳統(tǒng)的RNN因為自身結(jié)構(gòu)的特點在訓練過程會出現(xiàn)問題,例如梯度消失、爆炸問題。為了解決這個問題,人們提出了長短期記憶(Long Short-Term Memory networks,LSTM)網(wǎng)絡(luò)和門控循環(huán)單元(Gated Recurrent Unit,GRU)[29]。長短期記憶網(wǎng)絡(luò)[32]對時間序列中間隔和延遲長的事件有較強的處理能力。由于使用單一的RNN層作為分類器難以在網(wǎng)絡(luò)攻擊檢測中獲得顯著的性能提升,為了進一步提高性能,Hou等人[33]構(gòu)建了一種基于分層LSTM的IDS,該系統(tǒng)可以在復雜的網(wǎng)絡(luò)流量序列上跨越多個層次的時間層次進行學習,在NSL-KDD數(shù)據(jù)集上的實驗結(jié)果表明,該方法對各種網(wǎng)絡(luò)攻擊,特別是低頻網(wǎng)絡(luò)攻擊具有較好的檢測性能。針對物聯(lián)網(wǎng)網(wǎng)絡(luò)中的攻擊檢測,Roy等人[34]提出了一種使用雙向LSTM的入侵檢測方法,雙向LSTM能在訓練階段從數(shù)據(jù)集中學習更為詳細的特征,主要研究了在二分類中的性能,能達到較高的攻擊流量檢測準確率。門控循環(huán)單元是LSTM的一種變體,在保證性能的同時進一步簡化了結(jié)構(gòu),較少的參數(shù)也讓訓練更容易。Xu等人[35]針對時間相關(guān)入侵的特點,用GRU作為主要存儲單元,并與多層感知器(MLP)結(jié)合以識別網(wǎng)絡(luò)入侵,實驗結(jié)果表明該方法對于時序特征明顯的DOS和PROBING攻擊有較高的檢測率。
(2)自動編碼器(Auto-Encoder, AE)
自動編碼器[36]對高維數(shù)據(jù)進行特征提取,在訓練過程中通過盡可能讓輸出接近于輸入數(shù)據(jù)來確定最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),它具有強大的非線性泛化能力。自動編碼器主要用于數(shù)據(jù)的降維。
隨著入侵檢測系統(tǒng)需要處理的復雜數(shù)據(jù)的迅速增長,對大規(guī)模數(shù)據(jù)的處理成為入侵檢測系統(tǒng)面臨的挑戰(zhàn)之一,自動編碼器被廣泛地用于入侵檢測中的降維任務(wù)。Shone 等人[36]在自動編碼器的基礎(chǔ)上,在輸出端也使用了和編碼層類似的函數(shù),并提出了堆疊非對稱深度自動編碼器(NDAE),之后使用NDAE進行特征提取,并選取了隨機森林作為分類器,與之前的研究工作相比,NDAE顯著提升了檢測性能。Li等人[37]提出了一種基于隨機森林算法的自動編碼器入侵檢測系統(tǒng),使用淺層自動編碼器神經(jīng)網(wǎng)絡(luò),降低了計算復雜度,大大縮短了檢測時間,有效提高了預(yù)測精度。為改善檢測Web攻擊的精度,Vartouni等人[38]提出了一種基于稀疏自動編碼器的異常檢測方法,主要利用稀疏自動編碼器進行特征處理,與不進行特征提取的方法相比,該方法具有更高的精度。
深度自動編碼器(DAE)有著更多的隱藏層,通過對每一層進行預(yù)訓練可以增強模型的學習能力。Farahnakian等人[39]利用DAE構(gòu)建了入侵檢測系統(tǒng),為避免過擬合和局部最優(yōu),對模型采取逐層貪婪的方式進行訓練,在KDD 99上進行評估,該方法有較高的準確率、檢測率。為了提高對未知攻擊和低頻攻擊的檢測能力,Yang等人[40]構(gòu)建了一種基于正則化對抗式變分自動編碼器的入侵檢測模型,在基準數(shù)據(jù)集上的評估結(jié)果表明,該模型表現(xiàn)出了良好的檢測性能。
(3)深度玻爾茲曼機(Deep Boltzmann Machine,DBM)
深度玻爾茲曼機是一種以受限玻爾茲曼機(Restricted Boltzmann Machine, RBM)為基礎(chǔ)的深度學習模型,由多層RBM疊加而成。RBM能從原始數(shù)據(jù)中學習特征的深層次信息,因此在入侵檢測任務(wù)中被廣泛應(yīng)用。隨著攻擊技術(shù)和方式的變化,以前獲得的有關(guān)如何區(qū)別正常流量的信息可能不再有效,因此需要一個自學習系統(tǒng),以便可以動態(tài)地構(gòu)造和發(fā)展有關(guān)異常行為的知識,F(xiàn)iore等人[41]使用了判別受限玻爾茲曼機,該模型可以組合生成模型,捕獲正常流量的固有屬性并且分類準確性較高,通過將訓練數(shù)據(jù)與測試網(wǎng)絡(luò)場景分離,以評估神經(jīng)網(wǎng)絡(luò)的泛化能力,實驗證實,當在與獲取訓練數(shù)據(jù)的網(wǎng)絡(luò)截然不同的網(wǎng)絡(luò)中測試分類器時,性能會受到影響。這表明需要對異常流量的性質(zhì)以及與正常流量的內(nèi)在差異做進一步調(diào)查。Aldwairi等人[42]嘗試使用受限玻爾茲曼機來區(qū)分正常和異常的NetFlow流量,在信息安全中心(ISCX)數(shù)據(jù)集上進行評估,結(jié)果表明RBM可以對正常和異常的NetFlow流量進行分類,但存在的不足是只對兩層RBM進行了研究。Elsaeidy等人[43]對多層RBM進行了研究,使用經(jīng)過訓練的深度玻爾茲曼機模型從網(wǎng)絡(luò)流量中提取高層特征,然后結(jié)合前饋神經(jīng)網(wǎng)絡(luò)(Feed-Forward Neural Network, FFNN)、隨機森林(Random Forest, RF)等模型利用提取到的特征來檢測不同類型的DDoS攻擊。
(4)深度信念網(wǎng)絡(luò)(Deep Belief Network, DBN)
深度信念網(wǎng)絡(luò)[44]是一種具有深層架構(gòu)的神經(jīng)網(wǎng)絡(luò),它通過無監(jiān)督算法對每一層受限玻爾茲曼機進行訓練,它是一個特征學習的過程,可以解決涉及高維數(shù)據(jù)的問題,已經(jīng)被應(yīng)用于入侵檢測領(lǐng)域。Gao等人[44]證明了深度信念網(wǎng)絡(luò)方法可以成功地應(yīng)用于入侵檢測領(lǐng)域,在KDD 99數(shù)據(jù)集上對DBN模型進行評估,實驗結(jié)果DBN模型的性能優(yōu)于SVM和人工神經(jīng)網(wǎng)絡(luò)(ANN)。為適應(yīng)不同的攻擊類型并降低神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的復雜度,Zhang等人[45]將改進的遺傳算法與深度信念網(wǎng)絡(luò)相結(jié)合,遺傳算法進行多次迭代來產(chǎn)生最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),然后構(gòu)建最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)的DBN作為入侵檢測模型對攻擊進行分類。面對不同類型的攻擊,該方法解決了在使用深度學習方法進行入侵檢測時如何選擇合適的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的問題,從而提高了模型的分類精度和泛化能力,降低了網(wǎng)絡(luò)結(jié)構(gòu)的復雜性,在性能方面,針對具體攻擊類型生成特定的網(wǎng)絡(luò)結(jié)構(gòu),其分類精度高于其他網(wǎng)絡(luò)結(jié)構(gòu),可以達到99%以上的檢測率。
判別式有監(jiān)督方法以及由此產(chǎn)生的判別方法旨在通過表征以可見數(shù)據(jù)為條件的類的后驗分布來直接提供用于模式分類的判別能力,可區(qū)分部分帶標記數(shù)據(jù)的模式分類數(shù)據(jù)[28]。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是典型的判別式有監(jiān)督方法[28],它由輸入層、卷積層、池化層、完全連接層和輸出層組成,具有準確且高效地提取特征的能力,不同結(jié)構(gòu)的CNN具有不同數(shù)量的卷積層和池化層[46]。在入侵檢測領(lǐng)域應(yīng)用CNN時,主要是通過將流量分類問題轉(zhuǎn)換為圖片分類問題,即首先要將流量數(shù)據(jù)進行圖片化,然后得到灰度圖,利用CNN還可以提取網(wǎng)絡(luò)流量的空間特征。
Xiao等人[46]應(yīng)用數(shù)據(jù)預(yù)處理方法來消除網(wǎng)絡(luò)流量數(shù)據(jù)中的冗余和不相關(guān)特征,然后將流量轉(zhuǎn)換為二維矩陣形式,再使用CNN提取特征, 這種方法解決了傳統(tǒng)機器學習模型無法確定數(shù)據(jù)特征之間關(guān)系的問題。Naseer等人[47]使用CNN、AE和RNN等深度神經(jīng)網(wǎng)絡(luò),來構(gòu)建入侵檢測系統(tǒng),在NSL-KDD上進行訓練和測試,CNN和LSTM模型都表現(xiàn)出了優(yōu)異性能。Wu等人[48]利用CNN從原始數(shù)據(jù)集中自動提取流量特征,并根據(jù)其個數(shù)設(shè)定每類的成本函數(shù)權(quán)重系數(shù),來解決數(shù)據(jù)集不平衡的問題。Blanco等人[49]使用遺傳算法(Genetic Algorithm,GA)優(yōu)化CNN分類器,以找到輸入特征的更好布局,能改善多分類器的性能。
混合式深度網(wǎng)絡(luò)方法結(jié)合了生成式無監(jiān)督方法和判別式有監(jiān)督方法[28,50],主要有深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)和生成對抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)[51]。DNN是一種具有多個隱含層的多層感知器,是一種混合結(jié)構(gòu),其權(quán)值是完全連通的。GAN是一種混合深層架構(gòu),包含兩個神經(jīng)網(wǎng)絡(luò),即生成器和判別器。根據(jù)提供的輸入樣本,生成器嘗試根據(jù)理想的數(shù)據(jù)分布生成偽造的數(shù)據(jù),這些數(shù)據(jù)會和原始數(shù)據(jù)一起輸入到判別器中,判別器會學習區(qū)別原始數(shù)據(jù)和由生成器構(gòu)造的樣本,并反饋到生成器,這個學習過程被稱為生成器和判別器之間的博弈。通常情況下,網(wǎng)絡(luò)中的異常流量遠少于正常流量,GAN能生成新數(shù)據(jù),因此能用來解決入侵檢測中數(shù)據(jù)類別不平衡的問題。Salem等人[52]首先將數(shù)據(jù)轉(zhuǎn)換成圖像,然后利用Cycle-GAN生成新的數(shù)據(jù),最后將生成的數(shù)據(jù)融入原始數(shù)據(jù)集中,之后將這些數(shù)據(jù)用于訓練模型,并檢測異常,實驗結(jié)果表明,分類結(jié)果得到了改善,AUC從0.55上升到0.71,異常檢測率從17.07%上升到80.49%。與SMOTE方法相比,分類結(jié)果得到顯著改善,展現(xiàn)了GAN強大的異常數(shù)據(jù)生成能力。
基于機器學習的IDS在面對對抗性攻擊時健壯性容易受到影響,為了解決這一問題,Lin等人[53]提出了一種基于GAN的入侵檢測框架(IDSGAN),IDSGAN利用生成器將原始惡意流量轉(zhuǎn)換為對抗性惡意流量,然后判別器對流量樣本進行分類,并模擬黑匣子檢測系統(tǒng)。實驗中僅對攻擊流量的部分非功能性特征進行了修改,從而保證了入侵的有效性。Usama等人[54]提出了一種使用GAN的對抗式機器學習攻擊,該攻擊可以成功規(guī)避基于機器學習的IDS,實驗結(jié)果表明,基于GAN的防御提高了IDS面對對抗性擾動的魯棒性。
隨著深度學習技術(shù)的應(yīng)用,入侵檢測系統(tǒng)進入了一個新的發(fā)展階段。深度學習可以用于入侵檢測的特征處理過程和分類過程。面對海量高維度網(wǎng)絡(luò)流量數(shù)據(jù),和傳統(tǒng)機器學習方法相比,深度學習方法具有更高的效率和檢測準確率。表2對部分基于深度學習的入侵檢測工作進行了總結(jié),不涉及不同方法間的比較。
表2 基于深度學習的入侵檢測Table 2 Intrusion detection based on deep learning
盡管深度學習方法相比于傳統(tǒng)機器學習具有優(yōu)勢,但深度學習技術(shù)仍然沒有在商用入侵檢測系統(tǒng)中大規(guī)模應(yīng)用。目前比較有代表性的應(yīng)用產(chǎn)品有騰訊的T-Sec主機安全和東軟NetEye入侵檢測系統(tǒng)(IDS)。T-Sec主機安全(Cloud Workload Protection,CWP)基于騰訊安全積累的海量威脅數(shù)據(jù),利用機器學習和深度學習為用戶提供資產(chǎn)管理、木馬文件查殺、黑客入侵檢測、漏洞風險預(yù)警等安全防護服務(wù),可以對網(wǎng)絡(luò)數(shù)據(jù)進行多維度分析?;谏疃葘W習的入侵檢測系統(tǒng)仍面臨一些挑戰(zhàn):(1)訓練耗時較長。深度學習模型通常都具有很多隱藏層,為保證模型的效果需要逐層訓練,這導致訓練速度較慢,所要求的計算量大,通過需要GPU并行來完成大規(guī)模的計算任務(wù);(2)模型網(wǎng)絡(luò)結(jié)構(gòu)的選擇及優(yōu)化。深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)對最終的分類結(jié)果有很大的影響,因此針對不同的檢測任務(wù),需要確定最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu);(3)實時檢測問題。實時檢測是IDS所追求的目標之一,然而網(wǎng)絡(luò)中海量高維度數(shù)據(jù)的不斷增加,給基于深度學習的入侵檢測技術(shù)帶來一定的挑戰(zhàn);(4)數(shù)據(jù)不平衡問題。網(wǎng)絡(luò)中異常流量遠少于正常流量,這導致訓練出的模型具有明顯的偏向性,在多數(shù)情況下會偏向于正常流量,從而嚴重影響檢測準確率。
有學者嘗試將新的深度學習方法應(yīng)用于入侵檢測。Javaid等人[55]基于自學習(Self-taught Learning)方法構(gòu)建入侵檢測系統(tǒng),自學習是一種深度學習方法,分為兩個階段。首先,從大量的未標記數(shù)據(jù)中學習一個好的特征表示,稱為無監(jiān)督特征學習。在第二階段,將學習到的表示應(yīng)用于標記數(shù)據(jù),并用于分類任務(wù)??梢詫⒉煌姆椒ㄓ糜跓o監(jiān)督特征學習階段。Cordero等人[56]使用復制神經(jīng)網(wǎng)絡(luò)(Replicator Neural Networks)檢測大規(guī)模網(wǎng)絡(luò)攻擊,復制神經(jīng)網(wǎng)絡(luò)經(jīng)過訓練,可以將給定的輸入復制為輸出。在熵提取的過程中,首先將包聚合,然后將流分割成時間窗口,最后從流中選擇特定的特征。未來深度學習理論的突破不僅會緩解當前方法面臨的問題,還會在其他方面產(chǎn)生影響:(1)減少訓練時長和計算量,以更低的開銷將深度學習應(yīng)用于工業(yè)界的產(chǎn)品和系統(tǒng)中;(2)模型參數(shù)的確定更便捷,可以學習不同任務(wù)的參數(shù)優(yōu)化過程;(3)能高效處理海量高維度數(shù)據(jù),實現(xiàn)實時檢測;(4)在一些任務(wù)中,未標記數(shù)據(jù)和標記數(shù)據(jù)可能來自不同的分布,挖掘它們之間的相關(guān)性有助于了解數(shù)據(jù)的內(nèi)在屬性、特征之間的關(guān)系。
隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)攻擊也會不斷變化、不斷增加。入侵檢測作為一種保障網(wǎng)絡(luò)安全的重要手段,將會發(fā)揮著關(guān)鍵作用。通過對所調(diào)研文獻的分析總結(jié),本文對入侵檢測系統(tǒng)未來的研究方向進行如下討論:
(1)入侵檢測的數(shù)據(jù)。目前廣泛使用的數(shù)據(jù)集主要是KDD 99、NSL-KDD等,但這些數(shù)據(jù)集的產(chǎn)生時間較為久遠,很多數(shù)據(jù)與真實網(wǎng)絡(luò)數(shù)據(jù)不符合,用這些數(shù)據(jù)集評估入侵檢測模型得到的結(jié)果不具有代表性。因此,在未來的研究中,應(yīng)隨著網(wǎng)絡(luò)環(huán)境的發(fā)展變化,生成較新的數(shù)據(jù)集,這樣才能更好地評估入侵檢測模型。
(2)未來入侵檢測仍面臨的問題也正如上一節(jié)中深度學習方法面臨的挑戰(zhàn)一樣,主要是高維數(shù)據(jù)的處理、實時檢測、數(shù)據(jù)不平衡等問題,這些是未來研究中面臨的難點問題。
(3)在檢測技術(shù)方面,相比傳統(tǒng)機器學習方法,深度學習方法有著更好的效果,因此,未來在入侵檢測領(lǐng)域,深度學習會有更廣泛的應(yīng)用。然而,深度學習方法通常依賴于各自領(lǐng)域的訓練樣本來建立該領(lǐng)域的分類模型,面對復雜多變的網(wǎng)絡(luò)攻擊,入侵檢測系統(tǒng)也應(yīng)該自主進化,不斷提升自身的適應(yīng)能力。近年來,遷移學習在多個領(lǐng)域得到了廣泛應(yīng)用。對于一個特定領(lǐng)域,遷移學習是基于對其他領(lǐng)域的訓練樣本的研究,并提取用于該領(lǐng)域?qū)W習的相關(guān)知識。深度遷移學習更像人類學習,它可以用自動化模塊代替參數(shù)系統(tǒng)和模型生成方法[57]。遷移學習可以實現(xiàn)不同域或多個任務(wù)之間的學習,具體到入侵檢測中,面對不同的網(wǎng)絡(luò)攻擊,根據(jù)知識遷移對象的不同,可以使用樣本遷移算法、特征表示遷移算法、參數(shù)遷移算法和相關(guān)知識遷移算法。在實體與動態(tài)環(huán)境的交互過程中,強化學習通過對策略的學習,可以達到回報最大化。有研究利用分布式強化學習技術(shù)檢測新的和復雜的分布式攻擊,但精準率波動較大,有待提升[58]。因此,將深度遷移學習、強化學習用于入侵檢測領(lǐng)域具有研究意義。
深度學習方法在入侵檢測領(lǐng)域受到了廣泛的關(guān)注,本文對最新的研究進展進行了總結(jié),介紹了入侵檢測的基本概念、數(shù)據(jù)集和評估方法,然后簡要介紹了基于傳統(tǒng)機器學習方法的入侵檢測系統(tǒng),最后重點闡述了基于深度學習的入侵檢測技術(shù)。本文旨在對入侵檢測相關(guān)研究提供框架和總結(jié),分析深度學習方法相比傳統(tǒng)機器學習方法在入侵檢測中的優(yōu)勢,以及未來有待解決的問題,從而為以后開展研究工作帶來幫助。
利益沖突聲明
所有作者聲明不存在利益沖突關(guān)系。