陳紅松 陳京九



摘? ?要:為提高物聯網入侵檢測模型的綜合性能,將殘差神經網絡(Residual Networks,ResNet)與雙向長短時記憶(Long-Short Term Memory,LSTM)網絡融合,構建物聯網入侵檢測分類模型.針對大規模物聯網流量快速批量處理問題,在對原始數據進行清洗、轉換等預處理基礎上,提出將多條流量樣本轉換為灰度圖,并利用基于ResNet和雙向LSTM融合的深度學習方法構建物聯網入侵檢測分類模型.對分類模型的網絡結構、可復用性進行綜合優化實驗,得到最終優化模型,分類準確率達到96.77%,綜合優化后的模型構建時間為39.85 s.與其他機器學習算法結果相比,該優化方法在分類準確率和效率兩個方面取得了很好的效果,綜合性能優于傳統的入侵檢測分類模型.
關鍵詞:入侵檢測;殘差網絡;雙向LSTM網絡;圖像分類;物聯網
中圖分類號:TP183? ? ? ? ? ? ? ? ? ? ? 文獻標志碼:A? ? ? ? ?文章編號:1674—2974(2020)08—0001—08
Abstract:In order to improve the performance of the Internet of Things (IOT) network intrusion detection model, Residual Networks (ResNet) and bidirectional Long-Short Term Memory (LSTM) networks were combined,and an IOT intrusion detection classification model was constructed. For the rapid and batch processing problem of large-scale IOT traffic, multiple traffic samples were converted into grayscale images. Then,the grayscale images were used to construct IOT intrusion detection and classification model which combined with ResNet and bidirectional LSTM network. The network structure and re-usability of the classification model were optimized experimentally,so the optimization model was obtained finally. The classification accuracy of the optimization model is 96.77%, and the running time after the model reuse optimization is 39.85 s. Compared with other machine learning algorithms, the proposed approach achieves good results in both classification accuracy and efficiency. The performance of the proposed model is better than that of traditional intrusion detection model.
Key words:intrusion detection;Residual Networks(ResNet);bidirectional Long-Short Term Memory(LSTM) networks;image classification;IOT(Internet of Things)
隨著網絡的不斷發展,人們對互聯網的依賴也與日俱增.互聯網為人們的生產生活提供方便的同時,也滋生了越來越多的安全問題.尤其是在當前物與物相連的物聯網時代,如何快速識別物聯網中的入侵,成為網絡安全領域亟待解決的問題之一.入侵檢測系統(Intrusion Detection System,IDS)可對流經網絡中的流量進行判別,以檢測是否有入侵情況的發生.入侵檢測的實質是一個分類問題,即判定當前流量記錄正常與否,或判定流量所屬攻擊類別.
Sharafaldin等[1]研發的CICIDS2017入侵檢測數據集是一個公開數據集,該數據集基于真實環境采集得到.數據集包含正常流量和最新的常見攻擊流量,目前國內外有公司、研究機構與學校共計196所正在使用該數據集. Gharib等[2]利用B-Profile系統基于HTTP、HTTPS、FTP、SSH和電子郵件協議構建了25個人類交互的抽象行為,用以生成正常背景流量.實施的攻擊包括暴力FTP、暴力SSH、DoS、Heartbleed、Web攻擊、滲透、僵尸網絡和DDoS等.
孔令爽[3]利用將流量數據轉換為圖像的方法,把數據以灰度圖的形式表示出來,使用圖像中的紋理表征對入侵方式進行歸類.徐溫雅[4]提出利用改進的K-means算法對訓練集中的樣本進行數據篩選與預處理,通過基于SVM與神經網絡的混合網絡入侵檢測模型對數據集進行分類. Vinayakumar等[5]利用CNN-RNN網絡構建入侵檢測模型對KDD CUP99數據集進行建模測試,準確率達到98.7%,證明CNN在提取圖片高維特征時具有一定優勢. Zhang等[6]提出融合LeNet5和LSTM的方法構建入侵檢測模型對CICIDS2017數據集進行建模測試,準確率達到99.91%.Ustebay等[7]提出深度多層感知機方法構建入侵檢測模型,最終達到91%的準確率. Dutta等[8]利用CNN-RNN 網絡進行手寫詞語識別. Jain等[9]利用CNN-RNN進行印度語單詞識別,驗證了CNN-RNN網絡可以在提取圖像特征的同時,學習時序相關特征.
通過對現狀分析可知,深度學習構建入侵檢測系統可以從原始數據中提取更高維度的特征,從而獲得更加良好的分類模型.本文提出一種基于ResNet與雙向LSTM融合的網絡入侵檢測分類模型,并通過實驗進行驗證與優化.
1? ?物聯網入侵檢測數據預處理
本文提出基于ResNet和雙向LSTM融合的物聯網入侵檢測分類模型構建與優化流程如圖1所示.
由于流量數據具有時間相關性,為對大規模物聯網流量進行批量、快速處理,提出將窗口內多條連續流量記錄轉換合成為圖片并利用基于ResNet和雙向LSTM融合的計算機視覺處理技術進行分類的方法.本文采用CICIDS2017數據集,對其進行數據清洗、數據抽取和數據映射等操作,將其轉換為圖像數據集.
1.1? ?數據清洗
通過對CICIDS2017數據集分析,發現該數據集存在缺失、亂碼等問題,無法直接用于物聯網入侵檢測模型的構建.為構建基于ResNet和雙向LSTM融合的物聯網入侵檢測分類模型,利用數據清洗、數據變換等步驟需對原始數據集進行預處理.
“臟數據”是指不完整、含有噪聲、不一致的數據,破壞了原始數據信息中的內部規律,導致數據分析和處理的運行效果不佳.因此需要利用自定義的清洗規則,對“臟數據”進行數據清洗,手工或自動地將“臟數據”轉換成滿足數據質量要求的數據.
數據清洗面對的主要問題是空缺值、錯誤數據、孤立點和噪聲,解決方案是利用相同的常數填補數據集缺失,將存在的特殊符號及亂碼進行清空或替換處理.由于CICIDS2017數據集存在的78個特征中,既有數值數據,又有字符數據,而深度神經網絡的輸入值應該是一個數值化矩陣,所以需要將數據標準化,數據變換時,對非數值化特征如“infinite”等轉化為數值形式.
1.2? ?數據抽取
本文選用CICIDS2017中的DDoS和Portscan數據集,包含225 255條正常樣本、128 027條DDoS攻擊樣本和158 930條Portscan攻擊樣本.為增加不同類別樣本之間的差異性,提高模型分類效果,本文提出數據抽取算法SamExtract對原始數據集進行預處理.設樣本空間T = {T1,T2,…,Tn},當前樣本為Tt,樣本類別i = {0,1,2}分別代表正常、DDoS攻擊和Portscan攻擊,SamExtract算法偽代碼如圖2所示.
本文設定窗口大小w=10,抽取閾值α=0.9,抽取后得到的數據集DB與數據集DA對比如表1所示.
由表1可知抽取后得到的數據集DB中正常樣本、DDoS攻擊樣本和Portscan攻擊樣本損失率分別為1.63%、0.11%和0.82%.由此可知,根據該方法抽取的數據集DB僅損失了少量特征不明顯的樣本,保留了原始數據集DA中的大部分樣本,可證明該提取規則有效.
1.3? ?數據映射
經過上述操作后,繼續將數據集DB中的數據映射為圖像數據集.由于本文設置窗口大小w=10,CICIDS2017數據集中特征數為78個,所以將數據集DB中尺寸為10×78的矩陣W映射為10×78大小的灰度圖像.圖像中每一個像素對應矩陣中相應位置的數值.
但由于灰度圖數值范圍為[0,255],而原始矩陣W中數據區間較大,為保留更多特征細節,映射時需要對原始矩陣W進行歸一化處理.目前常用的歸一化方法有均值方差歸一化和最大最小歸一化,均值方差歸一化處理后的數據符合標準正太分布,常用在一些通過距離得出相似度的聚類算法中,計算公式為:
最大最小歸一化的手段是一種線性的歸一化方法,它的特點是不會對數據分布產生影響,但結果穩定性取決于數據集最大值、最小值的穩定性,常用于圖像處理領域,計算公式為:
通過歸一化處理后的數值矩陣再次放縮到[0,255]區間,并將該值作為圖像對應像素的灰度值,生成的局部流量圖像如圖3所示.
由圖3可以看出,圖3(a)顏色區分更加鮮明,圖3(b)顏色區分不太明顯,但是圖3(b)可以保留更多的信息.其原因是均值方差歸一化方法對數據的處理方式是把特征的樣本均值變成0,標準差變成1,因此保留了更多特征,而最大最小歸一化方法對數據的處理方式是將樣本數據根據最大值和最小值調整到一個區間內,這樣會丟失更多的信息.因此本文圖像映射采用均值方差歸一化方法進行處理.
均值方差歸一化處理后的正常流量、DDoS攻擊流量和Portscan攻擊流量圖像分別如圖4、圖5、圖6所示.
由圖4、圖5、圖6可以看出,3種不同類別流量映射圖像差異較大,可證明該圖像映射方法有效.因此本文后續根據該數據集進行建模與評估.
2? ?基于ResNet和雙向LSTM融合的物聯網入侵檢測分類模型構建
本文提出的ResNet+雙向LSTM總體結構圖如圖7所示.
圖7中第一個卷積層中文字表示卷積核大小為3×3,卷積核個數為16個,移動步長為[1,1],分別代表縱向移動1步以及橫向移動1步,V代表無填充,S代表0填充,第一個箭頭下方數字代表當前張量高度為10,寬度為78,通道數為1.其中輸入層的結構圖如圖8所示.
2.1? ?ResNet-Inception層
圖7中ResNet-Inception層是Szegedy等[10]基于He等[11] ResNet融合了GoogLeNet中的inception-v4提出創新型結構. 具體結構如圖9所示.
由圖9可以看出,ResNet-Inception結構不僅在深度上進行擴展,還增加了網絡的寬度. 在最右側卷積層前有一個連接層,把3個通道生成的不同類型但大小相同的特征圖并排連接起來,形成新的特征響應圖. 數據在輸出層之前經過了兩條路線,一條是常規路線,另一條是捷徑,直接實現單位映射的直接連接的路線.兩條路線得到的張量在輸出層前進行了點加操作,最后將張量繼續向網絡下層傳遞.
2.2? ?雙向LSTM層
長短時記憶網絡(Long-Short Term Memory,LSTM)[12]是一種特殊的RNN類型,其區別于普通RNN的地方,主要在于它在算法中放置了3扇門,分別叫做輸入門(input gates)、遺忘門(forget gates)和輸出門(output gates),通過門結構的設計來避免梯度消失問題. 門結構的存在可以讓LSTM單元保存和獲取長時間周期的上下文信息,LSTM單元內部結構如圖10所示.
式中:σ表示sigmoid函數;Wf、Wi、Wc、Wo分別為遺忘門、輸入門、tanh函數和輸出門的權重矩陣;ht-1為隱藏層前一時刻輸出;Ct為當前t時刻LSTM單元的輸出;ot為當前t時刻輸出門的輸出;ht為當前t時刻隱藏層的輸出;xt為輸入向量;bf、bi、bc、bo分別為遺忘門、輸入門、tanh函數和輸出門的偏置值.
雙向LSTM網絡中的每一個訓練序列均由前向傳播LSTM網絡和反向傳播LSTM網絡組成,這兩個LSTM網絡同時連接一個輸出層,為輸出層中的每一個神經元提供完整的上下文信息. 具體雙向LSTM網絡結構如圖11所示.
由圖11可知,每一個輸出神經元的輸入都包含前向LSTM層輸出與反向LSTM層輸出. 輸出神經元的計算公式如下:
3? ?基于ResNet和雙向LSTM融合的物聯網入侵檢測分類模型評估與優化
3.1? ?模型評估
本文采用TensorFlow開源機器學習框架,將第1節生成的數據集按照時間維度分割為訓練集與測試集,構造并驗證基于ResNet和雙向LSTM融合的物聯網入侵檢測分類模型的有效性.數據集類別分布如表2所示.
使用卷積層與最大池化層構造ResNet-Inception結構,雙向LSTM網絡參數為288個輸入節點,中間隱藏層為1層,隱藏層節點20個,學習率為0.001.利用圖像訓練集對網絡進行訓練,共訓練100輪,取最佳效果如表3所示.
該網絡結構在64輪時獲得最佳結果,準確率為94.26%,訓練耗時1 488.87 s. 其中F度量為綜合了準確率與召回率參數的指標,計算公式如下:
式中:P為準確率;R為召回率.
ResNet-Inception結構解決了深層網絡的梯度消失問題,長短時記憶單元特有的門結構解決了傳統循環神經網絡時間維度的梯度消失問題,實現較大范圍的上下文信息的保存與傳輸,提高了LSTM單元對具有長時間間隔相關性特點的序列信息的處理能力.
3.2? ?模型優化
3.2.1? ?ResNet-Inception層結構優化
初始ResNet-Inception層結構如圖8所示,不同的ResNet-Inception結構對于不同數據集擬合情況不同. 因此本文嘗試調整ResNet-Inception結構對模型進行進一步優化. 優化后的v1、v2和v3結構如圖12所示.
在保持其他參數不變的情況下,僅更改ResNet-Inception層的結構,訓練100輪,得到不同的ResNet-Inception結構效果對比如表4所示.
由圖12可知,ResNet-Inception v1結構最為復雜有3個平行分支,v2、v3結構比v1結構少一個平行分支. 由表4可知,采用ResNet-Inception v3結構的分類模型在77輪時獲得最佳結果,準確率為94.84%,訓練耗時1 840.17 s,效果強于v1和v2結構. 因此下文針對ResNet-Inception v3結構繼續進行優化.
3.2.2? ?ResNet與雙向LSTM層間連接結構優化
本文當前ResNet層與雙向LSTM層間連接方式是將16個3×6大小的特征圖全部展開成為1×288的向量作為雙向LSTM層的輸入,此時雙向LSTM層的輸入節點數為288,時間序列長度為1.而文獻[6]中將全連接層后的1×1 600的向量重構為10×160的向量獲得了較好的效果,因此本文嘗試改進ResNet與雙向LSTM層間的連接層結構,將16個特征圖作為雙向LSTM層的不同時間序列,此時雙向LSTM層的輸入節點數為18,時間序列長度為16. 兩種不同連接結構對比圖如圖13所示.
本文在3.2.1節網絡結構基礎上,保持其他網絡參數不變,分別采用不同連接結構對模型進行分類測試,得到對比結果如表5所示.
由表5可知,在連接層結構為v1時取得最佳效果,且由實驗結果可知,在連接層結構為v2時,模型的穩定性受到影響,分類結果在66.70%~93.38%之間波動.因此文本后續實驗基于連接結構v1進行優化.
3.2.3? ?雙向LSTM層結構優化
門控循環單元(Gate Recurrent Unit,GRU)[10]是一種對LSTM精簡后的變體,將 LSTM中的遺忘門和輸入門合并為更新門(update gates),因此GRU的結構只有兩個門組成,結構更為簡單,計算量也隨之降低.本文嘗試將LSTM單元更換為GRU與RNN(Recurrent Neural Networks)單元,同時調整雙向LSTM層結構以達到更佳分類效果.模型優化效果對比如表6所示.
由表6可知,RNN與GRU單元結構較為簡單,構建模型所需訓練時間較短,但準確率較LSTM單元有所下降. 因此下文繼續基于LSTM單元進行優化.而LSTM層在隱藏層數為2層,隱藏層節點為20個時,在不影響分類器準確率的同時達到了效率的提升.因此本文后續將基于當前結構進行進一步優化.
3.3? ?模型復用
由于模型訓練花費時間較長,且具有隨機性,導致模型無法保證每次均能得到最佳結果.因此tensorflow框架針對這一問題設計提供了saver函數,利用tensorflow中的saver函數可以將任意輪次訓練中的相關模型參數保存至checkpoints文件中.本文設定初始準確率閾值α為0.8,判斷當前迭代輪次模型準確率是否高于當前準確率閾值,若高于當前準確率閾值,則利用saver函數保存當前模型參數并更新準確率閾值為當前模型準確率,反之則進行下一輪訓練. 設模型迭代總輪次為w,當前輪次模型為Mi(0 < i < w),本文所用最佳模型保存算法BestSaver偽代碼如圖14所示.
經過圖14的BestSaver算法后得到最佳模型MB,利用restore函數可以將MB恢復,再對圖像測試集進行測試,依然可以達到最優效果,為模型的遷移復用提供了便利.利用3.2節最優網絡結構參數,對圖像數據集進行1 000輪的訓練測試,發現第903輪循環時得到了最優的模型結果,準確率達96.77%,模型訓練共耗時13 968.88 s.利用BestSaver算法將其模型保存后,利用restore方法讀取最佳模型參數并對全部圖像測試集進行預測,準確率依然達到96.77%,但模型構建所耗費的時間縮短為39.85 s,大大提高了模型檢測效率,為大規模物聯網流量入侵檢測提供可行方案.
4? ?物聯網入侵檢測分類模型對比
本文利用第1節處理后的圖像數據集對于目前主流機器學習方法進行了訓練測試,分類模型效果對比如表7所示.
由表7可知,在其他機器學習算法中,ResNet神經網絡分類模型獲得了最高的準確率96.08%,模型構建耗時9 698.51 s,而支持向量機(Support Vector Machine,SVM)算法準確率最低為36.46%,耗時3 758.84 s.其余的算法如LeNet5神經網絡、AlexNet神經網絡、VGGNet神經網絡、GoogLeNet神經網絡、樸素貝葉斯(Naive Bayes,NB)、支持向量機(Support Vector Machine,SVM)、隨機森林(Random Forest Classifier,RFC)、決策樹(Decesion Tree,DT)、梯度提升(Gradient Boosting,GB)、AdaBoost算法,分別獲得了67.95%到95.52%之間不等的準確率,模型構建耗費時間跨度也從0.42 s到8 794.45 s.與以上方法對比,本文所提ResNet-雙向LSTM算法獲得了96.77%的準確率,模型構建時間為13 968.88 s.但利用保存好的模型進行模型重構,模型構建時間可以縮短到40 s以內,效果好于其他機器學習模型.
本文所用Portscan攻擊數據僅為2017年7月7日13:55-14:35共40 min采集到的流量數據,而DDoS攻擊數據僅為2017年7月7日15:56-16:16共20 min采集到的流量數據,其樣本數量已足夠訓練本文所提模型. 而在實際應用時,由于現實網絡環境中攻擊流量與正常流量的數據量巨大,且采集時間沒有限制,所以樣本量將更加龐大. 因此實際應用時的樣本量遠大于本文訓練時所用樣本量,足以訓練本文所提模型.因此本文所提模型對真實物聯網環境下大規模入侵檢測分類模型構建及優化具有一定參考價值.
5? ?結? ?論
針對大規模物聯網流量批量快速處理問題,本文提出SamExtract算法將窗口內多條連續流量記錄轉換合成為圖片,并利用基于ResNet和雙向LSTM融合的深度學習方法構建物聯網入侵檢測分類模型.本文提出的基于ResNet和雙向LSTM融合的網絡結構,在空間維度上,利用卷積層提取圖像有效特征,利用ResNet-Inception層解決深層次網絡梯度消失難以訓練的問題;在時間維度上,利用雙向LSTM網絡學習網絡流量間的潛在時間特征.通過進一步優化ResNet-Inception層結構、連接層結構、雙向LSTM網絡和復用分類模型,使優化后的分類模型在提高準確率的同時提高分類器執行效率.采用生成的圖像測試集對優化后的分類模型進行測試,模型分類預測的準確率達到了96.77%,模型構建時間為39.85 s,綜合性能優于其他分類模型.本文所提SamExtract算法、網絡結構優化、模型復用等優化方法對物聯網環境下大規模入侵檢測分類模型構建及優化具有一定參考價值.
參考文獻
[1]? ?SHARAFALDIN I,LASHKARI A H,GHORBANI A A. Toward generating a new intrusion detection dataset and intrusion traffic characterization[C]// International Conference on Information Systems Security and Privacy. Berlin:Springer,2018:108—116.
[2]? ? GHARIB A,SHARAFALDIN I,LASHKARI A H,et al. An evaluation framework for intrusion detection dataset[C]// International Conference on Information Science and Security. Washington D C:IEEE Computer Society,2016:1—6.
[3]? ? 孔令爽. 基于深度學習和遷移學習的入侵檢測研究[D].青島:山東大學信息科學與工程學院,2018:1—10.
KONG L S. Research on intrusion detection based on deep learning and transfer learning [D]. Qingdao:School of Information Science and Engineering,Shandong University,2018:1—10. (In Chinese)
[4]? ? 徐溫雅. 基于機器學習的網絡入侵檢測研究[D]. 北京:北京交通大學計算機與信息技術學院,2018:2—16.
XU W Y. Research on network intrusion detection based on machine learning [D]. Beijing:School of Computer and Information Technology,Beijing Jiao Tong University,2018:2—16. (In Chinese)
[5]? ?VINAYAKUMAR R,SOMAN K P,POORNACHANDRAN P. Applying convolutional neural network for network intrusion detection[C]// International Conference on Advances in Computing,Communications and Informatics. Washington D C:IEEE Computer Society,2017:1107—1110.
[6]? ?ZHANG Y,CHEN X,JIN L,et al. Network Intrusion detection:based on deep hierarchical network and original flow data [J]. IEEE Access,2019,7(1):37004—37016.
[7]? ? USTEBAY S,TURGUT Z,AYDIN M A. Intrusion detection system with recursive feature elimination by using random forest and deep learning classifier[C]// International Congress on Big Data,Deep Learning and Fighting Cyber Terrorism. Washington D C:IEEE Computer Society,2018:71—76.
[8]? ? DUTTA K,KRISHNAN P,MATHEW M,et al. Improving CNN-RNN hybrid networks for handwriting recognition[C]// International Conference on Frontiers in Handwriting Recognition. Washington D C:IEEE Computer Society,2018:80—85.
[9]? ? JAIN M,MATHEW M,JAWAHAR C V. Unconstrained OCR for Urdu using deep CNN-RNN hybrid networks[C]// IAPR Asian Conference on Pattern Recognition. Washington D C:IEEE Computer Society,2017:747—752.
[10]? SZEGEDY C,IOFFE S,VANHOUCKE V. Inception-v4,inception-ResNet and the impact of residual connections on learning [C]// AAAI Conference on Artificial Intelligence. Palo Alto:AAAI Press,2016:4278—4284.
[11]? HE K M,ZHANG X Y,REN S Q,et al. Deep residual learning for image recognition [C]// IEEE Conference on Computer Vision and Pattern Recognition. Washington D C:IEEE Computer Society,2016:770—778.
[12]? KIM J,KIM J,THU H L T,et al. Long short term memory recurrent neural network classifier for intrusion detection [C]// IEEE International Conference on Platform Technology and Service. Washington D C:IEEE Computer Society,2016:1—5.