郭三田 柳 毅
(廣東工業(yè)大學(xué)計算機學(xué)院 廣東 廣州 510006)
隨著網(wǎng)絡(luò)技術(shù)的快速不斷發(fā)展,互聯(lián)網(wǎng)給我們的生活帶來極大幫助的同時,針對計算機網(wǎng)絡(luò)攻擊的數(shù)量也在急劇增加。因此,網(wǎng)絡(luò)信息安全檢測對于保障人們的生活和維護網(wǎng)絡(luò)空間安全具有重大的意義。常用的網(wǎng)絡(luò)安全系統(tǒng)是網(wǎng)絡(luò)入侵檢測系統(tǒng)NIDS(Network Intrusion Detection System)。它主要是通過使用軟件或者硬件工具來監(jiān)視計算機網(wǎng)絡(luò)和主機,當檢測到異常流量時,會觸發(fā)某些限制操作,并將異常上報給網(wǎng)絡(luò)安全管理員。
目前,基于NIDS的機器學(xué)習(xí)算法可分為淺層學(xué)習(xí)和深度學(xué)習(xí)兩種。
傳統(tǒng)的淺層機器學(xué)習(xí)算法主要囊括:K最近鄰算法、貝葉斯網(wǎng)絡(luò)模型、支持向量機、隨機森林等。文獻[1]提出基于極限學(xué)習(xí)機(ELM)特征映射的K最近鄰算法(KNN)的入侵檢測模型,其主要是借助ELM將樣本轉(zhuǎn)變?yōu)榫€性可分,再利用KNN對攻擊樣本進行分類識別;文獻[2]提出了一種基于貝葉斯攻擊圖的網(wǎng)絡(luò)入侵意圖識別方法,其根據(jù)提取到的有效報警證據(jù)進行貝葉斯后驗推理,從而動態(tài)更新攻擊圖中各狀態(tài)節(jié)點遭受攻擊的概率,進而識別網(wǎng)絡(luò)中已發(fā)生和潛在的攻擊行為。文獻[3]提出了一種基于PCA和LDA特征提取的二進制支持向量機SVM分類器,它在處理小樣本數(shù)據(jù)集時檢測率較高,但由于其時間以及空間復(fù)雜度的局限性,當處理大規(guī)模數(shù)據(jù)集時性能較差;文獻[4]提出了一種基于隨機森林的特征選擇入侵檢測方法,其思想主要是選擇對分類最重要和最相關(guān)的特征,從而削減輸入特征的數(shù)量和所花費的時間,提高分類的準確性。文獻[5]提出一種基于特征選擇的入侵檢測技術(shù),借助離散化與特征選擇算法來生成多個特征子集,對提取后的特征用分類算法進行建模學(xué)習(xí),進而實現(xiàn)攻擊檢測識別。淺層機器學(xué)習(xí)模型雖然都提高了檢測率,但其比較依賴于特征選擇,不適用于處理高維非線性的網(wǎng)絡(luò)流量特征數(shù)據(jù)。
近年來,深度學(xué)習(xí)技術(shù)因其強大的自動特征提取能力在圖像識別、語音識別、自然語言處理等方面獲得了很大的突破,不少學(xué)者也開始將深度學(xué)習(xí)算法應(yīng)用于入侵檢測領(lǐng)域中,其中的模型主要囊括深度置信網(wǎng)絡(luò)(DBN)、深度神經(jīng)網(wǎng)絡(luò)(DNN)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)等。文獻[6]將基于改進的增量卷積神經(jīng)網(wǎng)絡(luò)CNN應(yīng)用于IDS中,其可以自動學(xué)習(xí)特征之間的內(nèi)部屬性關(guān)系,而不需要手動提取特征,但其在處理海量數(shù)據(jù)集時的魯棒性仍有待提高;文獻[7]利用深度置信網(wǎng)絡(luò)對大量高維、非線性的無標簽原始數(shù)據(jù)進行降維處理,從而獲得原始數(shù)據(jù)的壓縮低維表示,而后經(jīng)過多類支持向量機分類器對所獲得低維特征進行識別分析處理,然而該模型不能很好地解決數(shù)據(jù)類別分布不均衡的難題。文獻[8]的作者設(shè)計一個堆疊的非對稱深度自動編碼器,并且使用隨機森林算法作為分類器來識別網(wǎng)絡(luò)攻擊類別,但其訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)DNN很復(fù)雜,難以在大規(guī)模數(shù)據(jù)集中進行擴展;文獻[9]提出了一種基于深度神經(jīng)網(wǎng)絡(luò)DNN(Deep Neural Networks)的入侵檢測方法,其能挖掘高維數(shù)據(jù)的潛在特征,分類識別能力較強,但其沒有解決訓(xùn)練過程中的權(quán)重優(yōu)化問題。文獻[10]針對數(shù)據(jù)量大、訓(xùn)練時間長、容易陷入局部最優(yōu)的問題,提出一種基于深度置信網(wǎng)絡(luò)和概率神經(jīng)網(wǎng)絡(luò)(PNN)的入侵檢測方法。文獻[11]提出一種基于深度神經(jīng)網(wǎng)絡(luò)的入侵檢測方法,使用較少的連接和參數(shù),具有易于訓(xùn)練等優(yōu)點,但存在檢測率不高的問題。相對于傳統(tǒng)的淺層學(xué)習(xí)算法,深度學(xué)習(xí)模型對于高維復(fù)雜的網(wǎng)絡(luò)流量數(shù)據(jù)有更好的識別檢測結(jié)果。
目前基于NIDS的機器學(xué)習(xí)網(wǎng)絡(luò)入侵檢測范疇面臨的一個重要挑戰(zhàn)就是異常流量數(shù)據(jù)樣本類分布不均衡的問題,一些攻擊樣本如拒絕服務(wù)攻擊(DoS)的連接數(shù)量遠大于其他的攻擊如跨站腳本攻擊(Web Attack XSS)。同時現(xiàn)有的基于機器學(xué)習(xí)的入侵檢測方法大多數(shù)在于研究如何降低整體的平均漏報率,而忽略了少數(shù)類別攻擊樣本的入侵檢測問題,但在現(xiàn)實的互聯(lián)網(wǎng)環(huán)境中,少數(shù)種類樣本的入侵攻擊比多數(shù)類別樣本的攻擊危險性更大。
針對以上存在的問題,本文提出一種類平衡和CNN結(jié)合的網(wǎng)絡(luò)入侵檢測方法。首先,在數(shù)據(jù)預(yù)處理階段,采取ROS-GMM算法對少數(shù)類樣本進行過采樣的同時對大多數(shù)類樣本進行聚類欠采樣,至此所有類別的樣本數(shù)據(jù)均統(tǒng)一到一個確定的實例,而后通過CNN多個堆疊的卷積以及池化操作對平衡數(shù)據(jù)集上網(wǎng)絡(luò)流量的特征屬性關(guān)系進行提取,進而挖掘出潛在的異常樣本,最后利用Softmax回歸輸出檢測結(jié)果。在CICIDS2017數(shù)據(jù)集上的實驗結(jié)果表明,該模型在保持較高檢測率的同時,對少數(shù)類攻擊樣本的檢測率有了更大的提升。
ROS采取有放回抽樣的辦法從少數(shù)類樣本抽取新樣本以達到補充少數(shù)類樣本的目的。
GMM是參數(shù)化的概率分布模型,表示多個高斯分布函數(shù)的線性組合。假設(shè)所有樣本都來自具有不同參數(shù)的多個高斯分布,則隸屬于同一分布的樣本將被劃為同一聚類,GMM可根據(jù)式(1)返回樣本x屬于不同聚類的概率。
(1)

(2)

為了避免單獨過采樣所導(dǎo)致的過多冗余數(shù)據(jù),引起時間和空間成本的增加以及單獨下采樣所帶來的部分重要特征丟失,提出一種新的類平衡算法ROS-GMM,它可以顯著地提高少數(shù)種類攻擊樣本的檢測率。該算法將訓(xùn)練數(shù)據(jù)集上所有類別樣本重新采樣到統(tǒng)一的數(shù)量實例IResample[12]。IResample的定義如式(3)所示。
(3)
式中:N為訓(xùn)練集上的樣本總數(shù);C為相對應(yīng)的類別標簽數(shù)。

算法1ROS-GMM算法
輸入:training data set B={Bi,i=1,2,…,C}。
//C為總的類別數(shù),|B|=N為訓(xùn)練集上總的樣本數(shù)
輸出:B′
//類平衡的訓(xùn)練數(shù)據(jù)集
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′ //返回類平衡的訓(xùn)練數(shù)據(jù)集 CNN的網(wǎng)絡(luò)框架一般由輸入層、卷積層、池化層、全連接層和輸出層5部分組成。 (4) 式中:h為非線性ReLU激活函數(shù);j為卷積核的序列號;b為偏置值;n為網(wǎng)絡(luò)流量特征的維度數(shù);Xi;i+d-1是由Xi,Xi+1,…,Xi+d-1所拼接而成的特征子序列。利用卷積核對X0;d-1到Xn-d+1;n中的每個特征子序列進行迭代遍歷后,得到如式(5)所示的新特征屬性圖。 (5) 將所有經(jīng)卷積運算后生成的特征圖進行堆疊得到如式(6)所示的新特征圖序列。 Vm=[v1,v2,…,vn-d+1] (6) 池化層用來對卷積后生成的特征序列Vm進行池化運算,常用的池化運算有最大池化[13]和均勻池化,本文選用最大池化。首先特征圖Vj通過池化操作后被分成N塊,將每塊中的最大值按順序連接起來,從而得到如式(7)所示的長度為N的向量pj: (7) 全連接層由一個線性函數(shù)和激活函數(shù)組成,式(9)使用ReLU激活函數(shù)對池化層處理后得到的特征pj進行非線性變換得到ui,式(10)使用Softmax回歸函數(shù)得到各流量特征ui的權(quán)重Wβ=[β1,β2,…,βn],并將其分類輸出。 ReLU(x)=max(0,x) (8) (9) βi=Softmax(Wui) (10) 基于類平衡與CNN結(jié)合的異常流量入侵檢測模型包括以下4個步驟,如圖1所示。 圖1 基于類平衡與CNN結(jié)合的入侵檢測框架 1) 數(shù)據(jù)預(yù)處理。通過獨熱編碼技術(shù)將類標簽的字符型特征映射為數(shù)值型,并剔除掉數(shù)據(jù)集中的冗余特征,最后將數(shù)據(jù)進行標準歸一化處理,使數(shù)據(jù)集合乎均值為0、方差為1的高斯正態(tài)分布。 2) 類平衡處理。采取隨機過采樣ROS算法來增添訓(xùn)練集中少數(shù)類別樣本的數(shù)量,同時利用GMM算法來對數(shù)據(jù)集中的多數(shù)類別樣本進行聚類欠采樣,最終使訓(xùn)練集上所有種類別的樣本數(shù)量均與IResample一致。 3) 網(wǎng)絡(luò)流量高維特征提取。將上述處理后的數(shù)據(jù)輸入到CNN框架中進行網(wǎng)絡(luò)權(quán)重學(xué)習(xí),挖掘出相關(guān)性最大的異常流量高維特征屬性。 4) 分類器。通過Softmax回歸對網(wǎng)絡(luò)流量的高維數(shù)據(jù)特征屬性進行識別分類,并輸出分類結(jié)果。 表1列出了本文所采用的整體CNN框架以及相關(guān)超參數(shù),卷積層中卷積核的數(shù)量依次為32-32-64-64。同時在模型訓(xùn)練時,將batch-size設(shè)為256,epochs設(shè)為20。 表1 CNN框架和超參數(shù)的設(shè)定 在模型訓(xùn)練的時候,可依據(jù)損失函數(shù)來優(yōu)化目標函數(shù),并根據(jù)BP反向傳播算法來對參數(shù)進行調(diào)整。本文選擇交叉熵損失函數(shù)作為模型的迭代優(yōu)化對象。另外,為了避免模型在訓(xùn)練時產(chǎn)生過擬合現(xiàn)象,模型在卷積池化操作后需使用dropout正則化和批量歸一化Batch Normalization(BN)技術(shù)對數(shù)據(jù)進行優(yōu)化處理。 (11) 式中:W為權(quán)重矩陣;b為偏置;yi為實際值;f(xi)為分類器的預(yù)測值。 本文采用Nadam[14]來作為優(yōu)化算法,其學(xué)習(xí)率設(shè)為0.008,參數(shù)的迭代更新過程如下: Δwi=wi-1-?▽wiH(w) (12) wi+1=wi+Δwi (13) 式中:?為學(xué)習(xí)率;H(w)為損失函數(shù)。 CICIDS2017[15]數(shù)據(jù)集是加拿大網(wǎng)絡(luò)安全研究所于2017年公開頒布的一個入侵檢測數(shù)據(jù)集。Sharafaldin等通過模擬一個真實的網(wǎng)絡(luò)攻擊場景來對本地網(wǎng)絡(luò)進行攻擊從而采集網(wǎng)絡(luò)流量數(shù)據(jù),該數(shù)據(jù)集包含2 830 743個網(wǎng)絡(luò)流量樣本,其中包括1個正常類別樣本和14個攻擊類別樣本,正常類別樣本占80.30%,攻擊流量占19.70%,其數(shù)據(jù)分布跟實際的網(wǎng)絡(luò)流量分布是一樣的。將CICIDS2017中的所有樣本用于實驗,并以7∶1∶2的比例對數(shù)據(jù)集進行劃分并用于訓(xùn)練、驗證、測試。表2列出了每個類別的詳細數(shù)據(jù)分布。 表2 CICIDS2017數(shù)據(jù)集中每個類別的樣本數(shù) 數(shù)據(jù)預(yù)處理由獨熱編碼、特征縮減和數(shù)據(jù)歸一標準化三部分組成。 首先,通過獨熱編碼將數(shù)據(jù)集中的15種類標簽字符型數(shù)據(jù)進行數(shù)值化。同時,由于該數(shù)據(jù)集中的流字節(jié)和流數(shù)據(jù)包特征中包含無窮大值,為了避免模型在訓(xùn)練時出現(xiàn)錯誤,可將此類無窮大值用其列的最大值加1進行替換,并用零對缺失值進行填充。 然后,根據(jù)文獻[12],對數(shù)據(jù)集中6個冗余且無意義的特征進行刪除,分別為流ID、源IP、源端口、目標IP、協(xié)議、時間戳,此時數(shù)據(jù)集的特征大小縮減為78。 最后,根據(jù)式(14)對于所有數(shù)值型的特征采取標準歸一化處理,使其合乎均值為0、方差為1的高斯正態(tài)分布,歸一化后的數(shù)據(jù)與原始數(shù)據(jù)保持相同的線性關(guān)系,但其卻有助于加快模型的收斂速度和提高模型的準確性。 (14) 式中:x是原始的特征屬性值;x′是經(jīng)過標準化后的特征屬性值;μ和δ分別是特征屬性值的均值和標準偏差。 分類后的數(shù)據(jù)被劃分為4種類型:模型檢測為攻擊但實際卻為正常的樣本數(shù),模型檢測正確的攻擊樣本數(shù),模型檢測為正常但實際卻為攻擊的樣本數(shù),模型檢測正確的正常樣本數(shù),它們分別可用FP、TP、FN、TN來表達。測試樣本的總數(shù)Sum=TP+FN+FP+TN。在類不均衡數(shù)據(jù)集的性能評價中,少數(shù)類樣本數(shù)據(jù)的性能檢測評估相比較整體性能評估的意義更大。因此,本文選用DR(Detection Rate)、FAR(False Alarm Rate)、F1-score、AUC作為評估技術(shù)指標。 檢測率(DR)是模型識別正確的攻擊樣本數(shù)占總攻擊樣本數(shù)的百分比,如式(15)所示。 誤報率(FAR)是模型識別為攻擊但實際卻為正常的樣本數(shù)占總正常樣本數(shù)的百分比,如式(16)所示。 F1-score是召回率以及精準率兩者的調(diào)和平均值。當二者均趨于最大時,F1-score的值為最大。F1-score的值越大,意味著不均衡數(shù)據(jù)的分類效果越好。 ROC曲線圖的橫坐標是FPrate,縱坐標是TPrate。曲線若離左上角越近則意味著分類器性能越好。由于曲線不能對分類器的性能進行定量的評估,所以常將曲線下方的AUC面積值作為評估指標,該值越大則闡明分類器的性能越好。 實驗內(nèi)容: 1) 在相同分類決策方法下驗證有無ROS-GMM類平衡處理方法對于異常入侵檢測的影響。 2) 與ROS、Smote-Kmeans算法進行對比,剖析所提出的類平衡算法在入侵檢測的實用性與優(yōu)越性。 3) 在同樣采用ROS-GMM類平衡算法下,采用RF、MLP、RNN等算法與CNN進行對比,剖析CNN框架相較其他算法與類平衡算法結(jié)合后的優(yōu)越性。 4) 在同樣采用CICIDS2017實驗數(shù)據(jù)下,驗證不同的分類辦法對于網(wǎng)絡(luò)異常入侵檢測的影響。 4.4.1類平衡處理方法的有效性驗證 為了驗證ROS-GMM類平衡處理方法的有效性,將經(jīng)過ROS-GMM算法處理的前后數(shù)據(jù)集在CNN上進行驗證。兩者檢測的多分類ROC曲線分別如圖2、圖3所示,其中class0-class14依次所代表的數(shù)據(jù)類型與表2所列舉的順序一致。從圖2和圖3可以明顯看出,經(jīng)過ROS-GMM算法處理后的CNN模型對所有類別樣本的宏平均AUC值提升了0.07,這表明采用ROS-GMM對不均衡數(shù)據(jù)集處理后,分類器的分類成效更好,且對于少數(shù)類攻擊樣本的分類精度提升更多,從而驗證了本文算法的有效性。 圖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的提升說明數(shù)據(jù)集在分類過程中,在整體數(shù)值分類精度得到提升的情況下,少數(shù)類攻擊樣本的分類精度獲得提升的程度更高。而宏平均AUC值相較于其他三種方法分別提高0.07、0.05、0.01,說明經(jīng)類平衡算法ROS-GMM處理后,分類器的整體性能得到更大的提升。 表3 不同類平衡算法在15種類別樣本上檢測率的性能比較 續(xù)表3 同時,實驗對比結(jié)果還表明,對于少數(shù)類攻擊模式,本文方法在保持較高F1-score以及AUC的前提下,可以更好地對少數(shù)類入侵模式進行檢測識別,使其檢測率在不同程度上獲得相應(yīng)的更大的提升,如對于Web Attack XSS,相較于其他三種方法分別提升了0.81、0.33、0.02。 4.4.3在同一類平衡算法下不同分類方法的對比驗證 如圖4所示,在統(tǒng)一使用類平衡算法的前提下,分別采用隨機森林RF、多層感知機MLP、循環(huán)神經(jīng)網(wǎng)絡(luò)RNN與本文模型在各項分類性能指標上進行對比分析??梢钥闯?與RF、MLP、RNN等模型相比,類平衡算法與CNN結(jié)合后模型的測試效果最好,其檢測率達到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結(jié)合的網(wǎng)絡(luò)入侵檢測方法,在面對復(fù)雜的網(wǎng)絡(luò)流量數(shù)據(jù)時,能保持較高的異常入侵檢測識別率,具有更好的入侵檢測能力。 圖4 在同一類平衡算法下不同分類方法的入侵檢測性能比較 4.4.4與最近機器學(xué)習(xí)方法的比較 表4展示了本文模型與其他最近入侵檢測方法的模型比較結(jié)果,統(tǒng)一使用CICIDS2017數(shù)據(jù)集,結(jié)果表明,該模型的檢測率相對其他兩種機器學(xué)習(xí)模型分別提升了1.37百分點、5.49百分點,同時誤報率相對于兩者分別降低了0.32百分點和0.68百分點。其中文獻[16]提出了一種基于并行交叉卷積神經(jīng)網(wǎng)絡(luò)PCCN的異常檢測方法,其檢測率為98.21%;文獻[17]提出了一種新型的基于深度學(xué)習(xí)和區(qū)塊鏈的智能電網(wǎng)能源交換框架,其檢測率為94.09%。 表4 與最近機器學(xué)習(xí)方法結(jié)果對比/% 為了提高大規(guī)模數(shù)據(jù)集中少數(shù)類樣本的檢測率,提出使用ROS-GMM算法對數(shù)據(jù)集進行類平衡處理,從而在平衡的數(shù)據(jù)集上訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),本文模型在保持較高檢測率和效率的基礎(chǔ)上,對少數(shù)類別樣本的檢測率有了明顯提高,且誤報率較低,具有重大的實用價值。


2 卷積神經(jīng)網(wǎng)絡(luò)



3 基于類平衡與CNN結(jié)合的異常流量檢測模型
3.1 模型框架

3.2 超參數(shù)設(shè)定

3.3 損失函數(shù)
3.4 優(yōu)化算法
4 實驗驗證
4.1 實驗數(shù)據(jù)

4.2 數(shù)據(jù)預(yù)處理
4.3 評估指標
4.4 實驗分析






5 結(jié) 語