康瀠允,孟凡宇,馮永新
(沈陽理工大學信息科學與工程學院,沈陽 110159)
物聯(lián)網[1](IOT)是一個大型的異構網絡,被定義為采用多種信息傳感設備,在規(guī)定的通信協(xié)議下將互聯(lián)網與物理設備相連接以實現(xiàn)信息的交互,進而實現(xiàn)智能化監(jiān)控和管理的網絡系統(tǒng)。
物聯(lián)網關鍵技術起源于軍事需求,發(fā)展于經濟建設,伴隨著社會進步和科技發(fā)展,其應用也逐漸得到擴展。軍事物聯(lián)網[2]是一個以現(xiàn)有軍事網絡為基礎,將其末端延伸到具體武器裝備,通過射頻識別(RFID)、紅外感應器、傳感器、定位系統(tǒng)等信息傳感設備,按約定的協(xié)議把任何物品與軍隊內部專用網絡連接起來,實現(xiàn)軍事活動中人、物、環(huán)境之間的聯(lián)接、信息交互和通信,并對人員、武器、裝備智能識別、定位、跟蹤、監(jiān)控和管理,從而實現(xiàn)戰(zhàn)場環(huán)境感知及實時后勤保障的一種智能化網絡??紤]到軍事應用中戰(zhàn)場環(huán)境復雜、作戰(zhàn)單元眾多,以及持續(xù)有效的供給等實際需求,軍事物聯(lián)網已被許多軍事專家稱為“一個未探明儲量的金礦”,并正在孕育著軍事變革深入發(fā)展的新契機。
針對軍事物聯(lián)網中網絡流量數(shù)據(jù)日趨復雜,以及數(shù)據(jù)特征維度高,非線性特性強等特點,傳統(tǒng)機器學習易出現(xiàn)“維度爆炸”等問題,本文圍繞基于深度學習的軍事物聯(lián)網網絡流量分析展開討論,提出一種基于無池化層改進型卷積神經網絡的軍事物聯(lián)網網絡流量異常檢測模型——NPCNN,并構造合理數(shù)據(jù)集進行性能評估,通過仿真實驗對軍事物聯(lián)網網絡流量異常檢測模型進行了驗證。實驗研究表明,NPCNN 相比傳統(tǒng)的卷積神經網絡,在軍事物聯(lián)網網絡流量異常檢測方面具有更高的準確性。
軍事物聯(lián)網的技術架構如圖1 所示,通常由感知層、網絡層和應用層構成。從技術角度而言,軍事物聯(lián)網的安全目標包括機密性、完整性、可用性、可靠性、不可抵賴性、隱私性和可信性,由于軍事物聯(lián)網的構成及面臨的環(huán)境復雜,網絡各層都面臨一些安全問題。
圖1 軍事物聯(lián)網的技術架構
其中,軍事物聯(lián)網的網絡層主要是對傳感器采集的信息進行分析處理,并將結果安全無誤地提供給應用層。它是在現(xiàn)有通信網和互聯(lián)網的基礎上建立起來的,因而,互聯(lián)網中的安全威脅在軍事物聯(lián)網中同樣存在,比如:竊聽、篡改、中斷、偽造、拒絕服務攻擊、重發(fā)攻擊、路由攻擊、假冒身份等,這些攻擊方式同樣會發(fā)生在軍事物聯(lián)網的基礎通信網絡中。而網絡流量的分析是軍事物聯(lián)網網絡行為分析的一個重要方面,網絡流量作為信息的重要載體,其內容刻畫和記錄了通信雙方具體的相關活動,在網絡上進行的通信行為,網絡流量均能夠在一定程度上體現(xiàn)出來,通過分析網絡流量,可以很直觀地了解網絡中進行的各種行為。
入侵檢測系統(tǒng)[3](IDS)是常用的網絡流量分析技術,其目的是要識別隱藏在正常流量中的惡意流量。文獻[4-7]可以彌補傳統(tǒng)入侵檢測技術的不足,但在算法的可擴展性方面存在局限性。近年來互聯(lián)網、云計算等技術的發(fā)展迅猛,軍事物聯(lián)網面臨的網絡環(huán)境更加復雜,傳統(tǒng)的入侵檢測在復雜環(huán)境下性能將會大大降低,同時,數(shù)據(jù)的爆炸性増長也成為軍事物聯(lián)網安全維護必須要面對的嚴峻挑戰(zhàn)。傳統(tǒng)機器學習方法很難滿足入侵檢測實時性的要求[8],不能很好地適應物聯(lián)網環(huán)境的需求。因此,發(fā)展面向軍事物聯(lián)網的新型網絡流量分析技術十分必要。深度學習算法[9]在多媒體處理方面帶來突破性的成果,網絡空間安全領域的研究者也在嘗試將深度學習算法應用于惡意軟件檢測和入侵檢測等領域。本文不同于上述已有工作,結合深度學習算法,構建出一種基于無池化層改進型卷積神經網絡(NPCNN,No Pooling CNN)的網絡流量異常檢測模型。
面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型,采用深度學習技術自動化學習網絡流量的特征,將特征提取與模型訓練過程結合起來,從全局的角度對網絡流量進行分析。該檢測模型不依賴于任何有關協(xié)議和拓撲的先驗知識,也不需要人工選擇特征。面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型的整體框架如下頁圖2 所示。
在原始的網絡流量數(shù)據(jù)中,存在數(shù)據(jù)類型不統(tǒng)一(包含離散型的數(shù)據(jù)和連續(xù)型的數(shù)據(jù)),數(shù)據(jù)特征類型不統(tǒng)一(包含數(shù)值型和字符型的特征),屬性值范圍差異大,且標簽也過于繁瑣的問題,為了能夠方便地使用算法對網絡流量進行分類,需要對數(shù)據(jù)進行預處理[10]。
圖2 面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型整體框架
首先進行數(shù)據(jù)標準化,可采用數(shù)值映射或編碼映射的方式,將字符型特征轉換為離散化的數(shù)值型。經數(shù)據(jù)標準化后,每一條數(shù)據(jù)選擇的各個屬性都變?yōu)閿?shù)值型數(shù)據(jù),但用此時的數(shù)據(jù)進行處理,就會出現(xiàn)“大數(shù)吃小數(shù)的現(xiàn)象”,即計算的結果被某個樣本的特征屬性完全掩蓋,無法看出不同樣本的屬性特點。因此,需對標準化后的數(shù)據(jù)進行歸一化處理,將數(shù)據(jù)映射到[0,1]上。
經過標準化和歸一化后的數(shù)據(jù)data 為包含i 個特征的i×j 維數(shù)組,求出每列屬性的最大值;將每個數(shù)據(jù)和該數(shù)據(jù)所在列的最大值的比值,作為該數(shù)據(jù)的歸一化數(shù)值,將整個data 數(shù)組進行歸一化;利用getdim 函數(shù),將數(shù)據(jù)data 的維度取根號,向上取整為N,將N 作為輸出數(shù)組的維度;將data 數(shù)據(jù)采用全“0”填充的方式,映射成N×N 維的數(shù)組numpy。數(shù)據(jù)預處理的偽代碼如下:
傳統(tǒng)卷積神經網絡[11]模型結構如圖3 所示,卷積神經網絡每個網絡有多個神經元,每個神經元只接收前一層的輸出,經過該層的計算后,將結果輸出給下一層,同一層的神經元互不連接。該算法可以將輸入數(shù)據(jù)經過訓練的多層網絡得到輸出。卷積神經網絡包括輸入層、卷積層、池化層、輸出層等[12]。
圖3 傳統(tǒng)卷積神經網絡模型結構
卷積神經網絡中的池化層,能夠縮小參數(shù)矩陣方法:數(shù)據(jù)預處理的尺寸,從而減少最后全連接層中參數(shù)的數(shù)量。而面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型處理的是網絡流量,與卷積神經網絡常用來處理的圖像有所不同。數(shù)據(jù)集中的數(shù)據(jù)點對最終的分類結果都有貢獻,且相鄰數(shù)據(jù)點之間的關聯(lián)度不大,如采用池化對數(shù)據(jù)矩陣進行壓縮,會有數(shù)據(jù)的損失,進而會導致準確率降低以及計算速度的減慢,在NPCNN 中,不采用池化層,直接將卷積后的數(shù)據(jù)輸入到全連接網絡中進行計算。因此,NPCNN 的網絡結構無池化層,只包括輸入層、卷積層、全連接層、輸出層。NPCNN 的網絡結構如圖4 所示。
圖4 NPCNN 的網絡結構
經過預處理的數(shù)據(jù),可以輸入NPCNN 的網絡中進行訓練,NPCNN 的網絡對數(shù)據(jù)的處理過程如下:首先將數(shù)據(jù)預處理后生成的N×N 維的數(shù)組陣輸入到輸入層中,卷積層采用M(M 是大于等于3的整數(shù))個N×N 的卷積核,卷積步長為1,其輸出結果是N×N×M 的矩陣,進而將數(shù)據(jù)映射成一列N×N×M 的數(shù)據(jù),輸入到隱藏層為K 個節(jié)點的全連接網絡中,輸出為P(P 為數(shù)據(jù)中的數(shù)據(jù)類別數(shù)目)維向量。
NPCNN 網絡結構中的卷積層和全連接層的激活函數(shù),均采用Relu 函數(shù),該函數(shù)是非線性函數(shù),能夠增加卷積神經網絡的非線性性。
同時為了提高檢測模型的泛化能力,并能夠更準確地評估模型的分類性能,NPCNN 的網絡對數(shù)據(jù)流采用k-折交叉驗證(k-fold cross validation)方法構造訓練集。k-折交叉驗證指將樣本數(shù)據(jù)集隨機劃分為k 個相同大小的子集,在每次模型訓練迭代過程中,按順序選取其中的一個子集作為測試集,剩下的k-1 個子集作為訓練集。本文取k=3,即將數(shù)據(jù)集分為3 份,每次取其中2 份進行訓練,1 份進行測試。
2.4.1 分類器選擇
NPCNN 采用Softmax 分類器來判斷輸入的數(shù)據(jù)流為正常流量還是惡意網絡流量,它將多個神經元的輸出,映射到(0,1)區(qū)間內,從而來進行分類,本文將Softmax 作為二分類器,輸出結果為2 類。
2.4.2 損失函數(shù)
模型訓練時,在分類器后需要根據(jù)損失函數(shù)計算損失,用來評估預測值與實際值的差距,進一步進行反向傳播來進行參數(shù)調整。NPCNN 采用categorical_crossentropy(交叉熵損失函數(shù))作為損失函數(shù),交叉熵是用來評估當前訓練得到的概率分布與真實分布的差異情況。它刻畫的是實際輸出(概率)與期望輸出(概率)的距離,也就是交叉熵的值越小,兩個概率分布就越接近。
2.4.3 優(yōu)化算法
Adam(Adaptive Moment Estimation)算法即自適應時刻估計方法,能計算每個參數(shù)的自適應學習率。與其他自適應學習率算法相比,Adam 收斂速度更快,學習效果更為有效,而且可以糾正其他優(yōu)化技術中存在的問題,如學習率消失、收斂過慢或是高方差的參數(shù)更新導致?lián)p失函數(shù)波動較大等。
面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型采用python 語言實現(xiàn),其框架為Keras,實驗硬件環(huán)境為Intel(R)Core(TM)i9-9900 K 3.6 GHz 的CPU 以及NVIDIA RTX2080Ti 的GPU,軟件環(huán)境為ubuntu16.0.4,CUDA9.2,Tensorflow1.3 版本。為了測試模型的效果,本文采用了含有90 K 數(shù)據(jù)樣本的Modbus 網絡流量數(shù)據(jù)集、含有120 K 數(shù)據(jù)樣本NSL-KDD 數(shù)據(jù)集、以及含有311K 數(shù)據(jù)樣本的KDDCup99 數(shù)據(jù)集行驗證,并將NPCNN 網絡結構同CNN 對比。CNN 和NPCNN 相比,在卷積層和全連接層之間,多了一個2×2 的池化層。將總體準確率即正確分類的樣本數(shù)占總樣本數(shù)的比例和運行時間,作為衡量模型性能的標準。
圖5 Modbus 數(shù)據(jù)集的NPCNN 網絡結構
Modbus 數(shù)據(jù)集輸入的NPCNN 網絡結構如圖5所示。首先,將25 維的Modbus 數(shù)據(jù)集中的符號性特征屬性數(shù)值化和歸一化處理,獲得標準數(shù)據(jù)集,將25 維的數(shù)組轉成5×5 的矩陣。其次,卷積層采用5 個3×3 的卷積核,卷積步長為1,其輸出結果是5×5×5 的矩陣。再次,將數(shù)據(jù)映射成5×5×5的數(shù)據(jù),輸入到隱藏層為256 個節(jié)點的全連接網絡中,本文中訓練集的訓練輪數(shù)為10 次,當訓練集訓練結束后,使用測試數(shù)據(jù)集進行測試,采用Softmax分類器對數(shù)據(jù)中的4 種數(shù)據(jù)類別進行識別,輸出分類結果。
圖6 NSL-KDD 數(shù)據(jù)集的NPCNN 網絡結構
NSL-KDD 數(shù)據(jù)集輸入的NPCNN 網絡結構如圖6 所示。首先,將41 維的NSL-KDD 數(shù)據(jù)集中的符號性特征屬性數(shù)值化和歸一化處理,獲得標準數(shù)據(jù)集,將41 維的數(shù)組采用全“0”填充,映射成49 維數(shù)組,從而使之能夠轉成7×7 的矩陣。其次,卷積層采用5 個3×3 的卷積核,卷積步長為1,其輸出結果是7×7×5 的矩陣。再次,將數(shù)據(jù)映射成一列7×7×5 的數(shù)據(jù),輸入到隱藏層為256 個節(jié)點的全連接網絡中,本文中訓練集的訓練輪數(shù)為10 次,當訓練集訓練結束后,使用測試數(shù)據(jù)集進行測試,采用Softmax 分類器對NSL-KDD 數(shù)據(jù)集中的DoS、Probe、R2L、U2R 和Normal 5 種數(shù)據(jù)類別進行識別,輸出分類結果。
KDDCup99 數(shù)據(jù)集的模型訓練過程及NPCNN網絡結構,同NSL-KDD 數(shù)據(jù)集。
采用Modbus 數(shù)據(jù)集對CNN 和面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型進行10 輪訓練,每一輪的總體準確率結果如表1 所示,結果對比如圖7 所示。
圖7 CNN 和NPCNN 在Modbus 數(shù)據(jù)集上運行的準確率對比圖
表1 CNN 和NPCNN 在Modbus 數(shù)據(jù)集上運行的準確率
采用NSL-KDD 數(shù)據(jù)集對CNN 和面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型進行10 輪訓練,每一輪的總體準確率結果如表2 所示,結果對比如圖8 所示。
表2 CNN 和NPCNN 在NSL-KDD 數(shù)據(jù)集上運行的準確率
圖8 CNN 和NPCNN 在NSL-KDD 數(shù)據(jù)集上運行的準確率對比圖
從表1、表2、圖7 和圖8 可以看出,在10 輪訓練過程中,NPCNN 每次訓練都會相對穩(wěn)定地比上一次訓練得到更優(yōu)的總體準確率,且NPCNN 對軍事物聯(lián)網網絡流量檢測的總體準確率,能夠更快地趨近于最優(yōu),說明將NPCNN 用于軍事物聯(lián)網網絡流量異常檢測,可以得到不錯的效果。
同時,本文對面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型,在不同數(shù)據(jù)量的流量樣本上進行了測試,從上文中使用到的包含有120 K 樣本的NSL-KDD 數(shù)據(jù)集中,隨機抽取25 K、50 K、75 K 和100 K 數(shù)據(jù)樣本,從包含9 K 樣本的Modbus 數(shù)據(jù)集中,隨機抽取2 K、4 K、6 K 和8 K 數(shù)據(jù)樣本。采用不同數(shù)據(jù)量的NSL-KDD 數(shù)據(jù)集和Modbus 數(shù)據(jù)集對CNN 和面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型訓練,總體準確率的結果如圖9 和圖10 所示。
圖9 不同數(shù)據(jù)量NSL-KDD 的總體準確率
圖10 不同數(shù)據(jù)量Modbus 的總體準確率
從圖中可以看出,NPCNN 對不同數(shù)據(jù)量大小的樣本都有很好的分類準確率。同時隨著數(shù)據(jù)樣本數(shù)量的增加,同CNN 相比,NPCNN 在網絡流量分析上的優(yōu)勢更加顯著。
進一步,本文采用KDDCup99 數(shù)據(jù)集對CNN和面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型進行10 輪訓練,每一輪的總體準確率結果如表3所示,結果對比如圖11 所示。
從表3 和圖11 中可以看出,在10 輪訓練過程中,NPCNN 對CNN 和軍事物聯(lián)網網絡流量檢測的總體準確率,能夠更快地趨近于最優(yōu),面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型,能夠對不同數(shù)據(jù)量大小的網絡流量樣本進行分析,在大樣本條件具有很好的可擴展性。
采用Modbus 數(shù)據(jù)集、NSL-KDD 數(shù)據(jù)集以及KDDCup99 數(shù)據(jù)集,對面向軍事物聯(lián)網的NPCNN網絡流量異常檢測模型進行實驗的總體準確率和運行時間結果,如表4 所示。
從表4 中可以看出,由于NPCNN 網絡結構沒有池化層,沒有減少最后全連層中的參數(shù)數(shù)量,因此,從算法的運行時間上看,CNN 略優(yōu)于本文提出的NPCNN 算法。但從算法的準確率上看,NPCNN優(yōu)于CNN,在處理NSL-KDD 數(shù)據(jù)集時,總體正確率可達到99.55 %,當處理Modbus 數(shù)據(jù)集時,總體正確率可達到99.97%,當處理KDDCup99 數(shù)據(jù)集時,總體正確率可達到94.18%。NPCNN 以犧牲極小的運算時間換取了較高的運算準確率,同時在大樣本條件下算法也具有很高的運行效率。從而證明本文提出的一種面向軍事物聯(lián)網的NPCNN 網絡流量異常檢測模型,在軍事物聯(lián)網網絡流量分析中具有很好的適用性。
表3 CNN 和NPCNN 在KDDCup99 數(shù)據(jù)集上運行的準確率
圖11 CNN 和NPCNN 在KDDCup99數(shù)據(jù)集上運行的準確率對比圖
表4 總體實驗結果
傳統(tǒng)機器學習易出現(xiàn)“維度爆炸”等問題,本文將卷積神經網絡算法應用到軍事物聯(lián)網網絡流量分析領域,NPCNN 進一步優(yōu)化了神經網絡結構,通過實驗,驗證了本文提出的網絡流量異常檢測模型,對軍事物聯(lián)網網絡流量進行異常檢測的可行性,以及對不同數(shù)據(jù)量的網絡流量樣本分析的可擴展性。