郭三田 柳 毅
(廣東工業(yè)大學計算機學院 廣東 廣州 510006)
隨著網絡技術的快速不斷發(fā)展,互聯網給我們的生活帶來極大幫助的同時,針對計算機網絡攻擊的數量也在急劇增加。因此,網絡信息安全檢測對于保障人們的生活和維護網絡空間安全具有重大的意義。常用的網絡安全系統是網絡入侵檢測系統NIDS(Network Intrusion Detection System)。它主要是通過使用軟件或者硬件工具來監(jiān)視計算機網絡和主機,當檢測到異常流量時,會觸發(fā)某些限制操作,并將異常上報給網絡安全管理員。
目前,基于NIDS的機器學習算法可分為淺層學習和深度學習兩種。
傳統的淺層機器學習算法主要囊括:K最近鄰算法、貝葉斯網絡模型、支持向量機、隨機森林等。文獻[1]提出基于極限學習機(ELM)特征映射的K最近鄰算法(KNN)的入侵檢測模型,其主要是借助ELM將樣本轉變?yōu)榫€性可分,再利用KNN對攻擊樣本進行分類識別;文獻[2]提出了一種基于貝葉斯攻擊圖的網絡入侵意圖識別方法,其根據提取到的有效報警證據進行貝葉斯后驗推理,從而動態(tài)更新攻擊圖中各狀態(tài)節(jié)點遭受攻擊的概率,進而識別網絡中已發(fā)生和潛在的攻擊行為。文獻[3]提出了一種基于PCA和LDA特征提取的二進制支持向量機SVM分類器,它在處理小樣本數據集時檢測率較高,但由于其時間以及空間復雜度的局限性,當處理大規(guī)模數據集時性能較差;文獻[4]提出了一種基于隨機森林的特征選擇入侵檢測方法,其思想主要是選擇對分類最重要和最相關的特征,從而削減輸入特征的數量和所花費的時間,提高分類的準確性。文獻[5]提出一種基于特征選擇的入侵檢測技術,借助離散化與特征選擇算法來生成多個特征子集,對提取后的特征用分類算法進行建模學習,進而實現攻擊檢測識別。淺層機器學習模型雖然都提高了檢測率,但其比較依賴于特征選擇,不適用于處理高維非線性的網絡流量特征數據。
近年來,深度學習技術因其強大的自動特征提取能力在圖像識別、語音識別、自然語言處理等方面獲得了很大的突破,不少學者也開始將深度學習算法應用于入侵檢測領域中,其中的模型主要囊括深度置信網絡(DBN)、深度神經網絡(DNN)、卷積神經網絡(CNN)、循環(huán)神經網絡(RNN)等。文獻[6]將基于改進的增量卷積神經網絡CNN應用于IDS中,其可以自動學習特征之間的內部屬性關系,而不需要手動提取特征,但其在處理海量數據集時的魯棒性仍有待提高;文獻[7]利用深度置信網絡對大量高維、非線性的無標簽原始數據進行降維處理,從而獲得原始數據的壓縮低維表示,而后經過多類支持向量機分類器對所獲得低維特征進行識別分析處理,然而該模型不能很好地解決數據類別分布不均衡的難題。文獻[8]的作者設計一個堆疊的非對稱深度自動編碼器,并且使用隨機森林算法作為分類器來識別網絡攻擊類別,但其訓練的深度神經網絡DNN很復雜,難以在大規(guī)模數據集中進行擴展;文獻[9]提出了一種基于深度神經網絡DNN(Deep Neural Networks)的入侵檢測方法,其能挖掘高維數據的潛在特征,分類識別能力較強,但其沒有解決訓練過程中的權重優(yōu)化問題。文獻[10]針對數據量大、訓練時間長、容易陷入局部最優(yōu)的問題,提出一種基于深度置信網絡和概率神經網絡(PNN)的入侵檢測方法。文獻[11]提出一種基于深度神經網絡的入侵檢測方法,使用較少的連接和參數,具有易于訓練等優(yōu)點,但存在檢測率不高的問題。相對于傳統的淺層學習算法,深度學習模型對于高維復雜的網絡流量數據有更好的識別檢測結果。
目前基于NIDS的機器學習網絡入侵檢測范疇面臨的一個重要挑戰(zhàn)就是異常流量數據樣本類分布不均衡的問題,一些攻擊樣本如拒絕服務攻擊(DoS)的連接數量遠大于其他的攻擊如跨站腳本攻擊(Web Attack XSS)。同時現有的基于機器學習的入侵檢測方法大多數在于研究如何降低整體的平均漏報率,而忽略了少數類別攻擊樣本的入侵檢測問題,但在現實的互聯網環(huán)境中,少數種類樣本的入侵攻擊比多數類別樣本的攻擊危險性更大。
針對以上存在的問題,本文提出一種類平衡和CNN結合的網絡入侵檢測方法。首先,在數據預處理階段,采取ROS-GMM算法對少數類樣本進行過采樣的同時對大多數類樣本進行聚類欠采樣,至此所有類別的樣本數據均統一到一個確定的實例,而后通過CNN多個堆疊的卷積以及池化操作對平衡數據集上網絡流量的特征屬性關系進行提取,進而挖掘出潛在的異常樣本,最后利用Softmax回歸輸出檢測結果。在CICIDS2017數據集上的實驗結果表明,該模型在保持較高檢測率的同時,對少數類攻擊樣本的檢測率有了更大的提升。
ROS采取有放回抽樣的辦法從少數類樣本抽取新樣本以達到補充少數類樣本的目的。
GMM是參數化的概率分布模型,表示多個高斯分布函數的線性組合。假設所有樣本都來自具有不同參數的多個高斯分布,則隸屬于同一分布的樣本將被劃為同一聚類,GMM可根據式(1)返回樣本x屬于不同聚類的概率。
(1)
(2)
為了避免單獨過采樣所導致的過多冗余數據,引起時間和空間成本的增加以及單獨下采樣所帶來的部分重要特征丟失,提出一種新的類平衡算法ROS-GMM,它可以顯著地提高少數種類攻擊樣本的檢測率。該算法將訓練數據集上所有類別樣本重新采樣到統一的數量實例IResample[12]。IResample的定義如式(3)所示。
(3)
式中:N為訓練集上的樣本總數;C為相對應的類別標簽數。
算法1ROS-GMM算法
輸入:training data set B={Bi,i=1,2,…,C}。
//C為總的類別數,|B|=N為訓練集上總的樣本數
輸出:B′
//類平衡的訓練數據集
2. for i←1 to C do
3. if |Bi| 5. end if 6. if |Bi|>IResamplethen 7. Hk=GMM(Bi,C) //使用GMM將Bi欠采樣成C個類,k=1,2,…,C 8. for k←1 to C do 10. end for 12. end if 14. end for 15. return B′ //返回類平衡的訓練數據集 CNN的網絡框架一般由輸入層、卷積層、池化層、全連接層和輸出層5部分組成。 (4) 式中:h為非線性ReLU激活函數;j為卷積核的序列號;b為偏置值;n為網絡流量特征的維度數;Xi;i+d-1是由Xi,Xi+1,…,Xi+d-1所拼接而成的特征子序列。利用卷積核對X0;d-1到Xn-d+1;n中的每個特征子序列進行迭代遍歷后,得到如式(5)所示的新特征屬性圖。 (5) 將所有經卷積運算后生成的特征圖進行堆疊得到如式(6)所示的新特征圖序列。 Vm=[v1,v2,…,vn-d+1] (6) 池化層用來對卷積后生成的特征序列Vm進行池化運算,常用的池化運算有最大池化[13]和均勻池化,本文選用最大池化。首先特征圖Vj通過池化操作后被分成N塊,將每塊中的最大值按順序連接起來,從而得到如式(7)所示的長度為N的向量pj: (7) 全連接層由一個線性函數和激活函數組成,式(9)使用ReLU激活函數對池化層處理后得到的特征pj進行非線性變換得到ui,式(10)使用Softmax回歸函數得到各流量特征ui的權重Wβ=[β1,β2,…,βn],并將其分類輸出。 ReLU(x)=max(0,x) (8) (9) βi=Softmax(Wui) (10) 基于類平衡與CNN結合的異常流量入侵檢測模型包括以下4個步驟,如圖1所示。 圖1 基于類平衡與CNN結合的入侵檢測框架 1) 數據預處理。通過獨熱編碼技術將類標簽的字符型特征映射為數值型,并剔除掉數據集中的冗余特征,最后將數據進行標準歸一化處理,使數據集合乎均值為0、方差為1的高斯正態(tài)分布。 2) 類平衡處理。采取隨機過采樣ROS算法來增添訓練集中少數類別樣本的數量,同時利用GMM算法來對數據集中的多數類別樣本進行聚類欠采樣,最終使訓練集上所有種類別的樣本數量均與IResample一致。 3) 網絡流量高維特征提取。將上述處理后的數據輸入到CNN框架中進行網絡權重學習,挖掘出相關性最大的異常流量高維特征屬性。 4) 分類器。通過Softmax回歸對網絡流量的高維數據特征屬性進行識別分類,并輸出分類結果。 表1列出了本文所采用的整體CNN框架以及相關超參數,卷積層中卷積核的數量依次為32-32-64-64。同時在模型訓練時,將batch-size設為256,epochs設為20。 表1 CNN框架和超參數的設定 在模型訓練的時候,可依據損失函數來優(yōu)化目標函數,并根據BP反向傳播算法來對參數進行調整。本文選擇交叉熵損失函數作為模型的迭代優(yōu)化對象。另外,為了避免模型在訓練時產生過擬合現象,模型在卷積池化操作后需使用dropout正則化和批量歸一化Batch Normalization(BN)技術對數據進行優(yōu)化處理。 (11) 式中:W為權重矩陣;b為偏置;yi為實際值;f(xi)為分類器的預測值。 本文采用Nadam[14]來作為優(yōu)化算法,其學習率設為0.008,參數的迭代更新過程如下: Δwi=wi-1-?▽wiH(w) (12) wi+1=wi+Δwi (13) 式中:?為學習率;H(w)為損失函數。 CICIDS2017[15]數據集是加拿大網絡安全研究所于2017年公開頒布的一個入侵檢測數據集。Sharafaldin等通過模擬一個真實的網絡攻擊場景來對本地網絡進行攻擊從而采集網絡流量數據,該數據集包含2 830 743個網絡流量樣本,其中包括1個正常類別樣本和14個攻擊類別樣本,正常類別樣本占80.30%,攻擊流量占19.70%,其數據分布跟實際的網絡流量分布是一樣的。將CICIDS2017中的所有樣本用于實驗,并以7∶1∶2的比例對數據集進行劃分并用于訓練、驗證、測試。表2列出了每個類別的詳細數據分布。 表2 CICIDS2017數據集中每個類別的樣本數 數據預處理由獨熱編碼、特征縮減和數據歸一標準化三部分組成。 首先,通過獨熱編碼將數據集中的15種類標簽字符型數據進行數值化。同時,由于該數據集中的流字節(jié)和流數據包特征中包含無窮大值,為了避免模型在訓練時出現錯誤,可將此類無窮大值用其列的最大值加1進行替換,并用零對缺失值進行填充。 然后,根據文獻[12],對數據集中6個冗余且無意義的特征進行刪除,分別為流ID、源IP、源端口、目標IP、協議、時間戳,此時數據集的特征大小縮減為78。 最后,根據式(14)對于所有數值型的特征采取標準歸一化處理,使其合乎均值為0、方差為1的高斯正態(tài)分布,歸一化后的數據與原始數據保持相同的線性關系,但其卻有助于加快模型的收斂速度和提高模型的準確性。 (14) 式中:x是原始的特征屬性值;x′是經過標準化后的特征屬性值;μ和δ分別是特征屬性值的均值和標準偏差。 分類后的數據被劃分為4種類型:模型檢測為攻擊但實際卻為正常的樣本數,模型檢測正確的攻擊樣本數,模型檢測為正常但實際卻為攻擊的樣本數,模型檢測正確的正常樣本數,它們分別可用FP、TP、FN、TN來表達。測試樣本的總數Sum=TP+FN+FP+TN。在類不均衡數據集的性能評價中,少數類樣本數據的性能檢測評估相比較整體性能評估的意義更大。因此,本文選用DR(Detection Rate)、FAR(False Alarm Rate)、F1-score、AUC作為評估技術指標。 檢測率(DR)是模型識別正確的攻擊樣本數占總攻擊樣本數的百分比,如式(15)所示。 誤報率(FAR)是模型識別為攻擊但實際卻為正常的樣本數占總正常樣本數的百分比,如式(16)所示。 F1-score是召回率以及精準率兩者的調和平均值。當二者均趨于最大時,F1-score的值為最大。F1-score的值越大,意味著不均衡數據的分類效果越好。 ROC曲線圖的橫坐標是FPrate,縱坐標是TPrate。曲線若離左上角越近則意味著分類器性能越好。由于曲線不能對分類器的性能進行定量的評估,所以常將曲線下方的AUC面積值作為評估指標,該值越大則闡明分類器的性能越好。 實驗內容: 1) 在相同分類決策方法下驗證有無ROS-GMM類平衡處理方法對于異常入侵檢測的影響。 2) 與ROS、Smote-Kmeans算法進行對比,剖析所提出的類平衡算法在入侵檢測的實用性與優(yōu)越性。 3) 在同樣采用ROS-GMM類平衡算法下,采用RF、MLP、RNN等算法與CNN進行對比,剖析CNN框架相較其他算法與類平衡算法結合后的優(yōu)越性。 4) 在同樣采用CICIDS2017實驗數據下,驗證不同的分類辦法對于網絡異常入侵檢測的影響。 4.4.1類平衡處理方法的有效性驗證 為了驗證ROS-GMM類平衡處理方法的有效性,將經過ROS-GMM算法處理的前后數據集在CNN上進行驗證。兩者檢測的多分類ROC曲線分別如圖2、圖3所示,其中class0-class14依次所代表的數據類型與表2所列舉的順序一致。從圖2和圖3可以明顯看出,經過ROS-GMM算法處理后的CNN模型對所有類別樣本的宏平均AUC值提升了0.07,這表明采用ROS-GMM對不均衡數據集處理后,分類器的分類成效更好,且對于少數類攻擊樣本的分類精度提升更多,從而驗證了本文算法的有效性。 圖2 CNN的多分類ROC曲線 圖3 ROS-GMM-CNN的多分類ROC曲線 4.4.2不同類平衡算法的對比驗證 表3展示了不同的類平衡算法在同一CNN框架下對15種類別樣本的檢測率性能比較。可以看出,加入本文提出的ROS-GMM算法后,F1-score比前面三者分別提高0.23百分點、0.15百分點、0.02百分點。F1-score的提升說明數據集在分類過程中,在整體數值分類精度得到提升的情況下,少數類攻擊樣本的分類精度獲得提升的程度更高。而宏平均AUC值相較于其他三種方法分別提高0.07、0.05、0.01,說明經類平衡算法ROS-GMM處理后,分類器的整體性能得到更大的提升。 表3 不同類平衡算法在15種類別樣本上檢測率的性能比較 續(xù)表3 同時,實驗對比結果還表明,對于少數類攻擊模式,本文方法在保持較高F1-score以及AUC的前提下,可以更好地對少數類入侵模式進行檢測識別,使其檢測率在不同程度上獲得相應的更大的提升,如對于Web Attack XSS,相較于其他三種方法分別提升了0.81、0.33、0.02。 4.4.3在同一類平衡算法下不同分類方法的對比驗證 如圖4所示,在統一使用類平衡算法的前提下,分別采用隨機森林RF、多層感知機MLP、循環(huán)神經網絡RNN與本文模型在各項分類性能指標上進行對比分析??梢钥闯?與RF、MLP、RNN等模型相比,類平衡算法與CNN結合后模型的測試效果最好,其檢測率達到99.58%,相比較其他三種模型分別提高了7.1百分點、0.77百分點、0.46百分點;其F1-score值為99.42百分點,比其他三種模型分別提高了5.29百分點、0.49百分點、0.19百分點;而精確率達到99.55百分點,比其他三種模型分別提高了2.9百分點、0.44百分點、0.24百分點;這進一步說明類平衡ROS-GMM算法與CNN結合的網絡入侵檢測方法,在面對復雜的網絡流量數據時,能保持較高的異常入侵檢測識別率,具有更好的入侵檢測能力。 圖4 在同一類平衡算法下不同分類方法的入侵檢測性能比較 4.4.4與最近機器學習方法的比較 表4展示了本文模型與其他最近入侵檢測方法的模型比較結果,統一使用CICIDS2017數據集,結果表明,該模型的檢測率相對其他兩種機器學習模型分別提升了1.37百分點、5.49百分點,同時誤報率相對于兩者分別降低了0.32百分點和0.68百分點。其中文獻[16]提出了一種基于并行交叉卷積神經網絡PCCN的異常檢測方法,其檢測率為98.21%;文獻[17]提出了一種新型的基于深度學習和區(qū)塊鏈的智能電網能源交換框架,其檢測率為94.09%。 表4 與最近機器學習方法結果對比/% 為了提高大規(guī)模數據集中少數類樣本的檢測率,提出使用ROS-GMM算法對數據集進行類平衡處理,從而在平衡的數據集上訓練卷積神經網絡,本文模型在保持較高檢測率和效率的基礎上,對少數類別樣本的檢測率有了明顯提高,且誤報率較低,具有重大的實用價值。2 卷積神經網絡
3 基于類平衡與CNN結合的異常流量檢測模型
3.1 模型框架
3.2 超參數設定
3.3 損失函數
3.4 優(yōu)化算法
4 實驗驗證
4.1 實驗數據
4.2 數據預處理
4.3 評估指標
4.4 實驗分析
5 結 語