劉金碩,詹岱依,鄧娟,王麗娜
(武漢大學(xué)國家網(wǎng)絡(luò)安全學(xué)院空天信息安全與可信計算教育部重點實驗室,武漢 430072)
在高速網(wǎng)絡(luò)環(huán)境下,網(wǎng)絡(luò)安全問題層出不窮,網(wǎng)絡(luò)入侵檢測作為監(jiān)控網(wǎng)絡(luò)潛在攻擊的重要措施[1],需要在海量數(shù)據(jù)環(huán)境下快速且準確地識別攻擊事件。因此,提高網(wǎng)絡(luò)入侵檢測技術(shù)的準確率與檢測速度具有十分重要的現(xiàn)實意義。
近年來,機器學(xué)習(xí)與深度學(xué)習(xí)算法在圖像和文本識別、語言翻譯等方面都取得了較大突破,于是很多研究人員也將其運用于網(wǎng)絡(luò)入侵檢測領(lǐng)域。MA等[2]提出一種基于生成對抗網(wǎng)絡(luò)和雙向長短期記憶(Bidirectional Long Short-Term Memory,Bi-LSTM)網(wǎng)絡(luò)的方法,該方法解決了數(shù)據(jù)集冗余的問題。LI等[3]提出基于卷積神經(jīng)網(wǎng)絡(luò)的入侵檢測系統(tǒng),該系統(tǒng)將文本數(shù)據(jù)處理轉(zhuǎn)換為圖像數(shù)據(jù)處理,準確率達到79.14%,雖然其效果不如其他深度學(xué)習(xí)算法,但是為入侵檢測方法設(shè)計提供了一種新思路。此外,ZARAI 等[4]利用長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)來緩解循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的梯度消失問題,從而改進入侵檢測系統(tǒng)的特征選擇,實驗結(jié)果表明,3 層LSTM 架構(gòu)的入侵檢測模型對異常攻擊檢測更有效。SUWANNALAI 等[5]提出基于強化學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測系統(tǒng),與遞歸神經(jīng)網(wǎng)絡(luò)相比,該系統(tǒng)在數(shù)據(jù)集中某些類型的攻擊上有優(yōu)異表現(xiàn)。ZHAO 等[6]提出一種基于輕量級深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)的網(wǎng)絡(luò)入侵檢測方法,該方法能有效減輕入侵檢測時所面臨的內(nèi)存負擔(dān)。
雖然深度學(xué)習(xí)[7]與機器學(xué)習(xí)算法在網(wǎng)絡(luò)入侵檢測領(lǐng)域取得了較好的效果[8-10],但是仍然存在如下問題:1)數(shù)據(jù)安全與數(shù)據(jù)隱私,在大數(shù)據(jù)時代,數(shù)據(jù)安全與數(shù)據(jù)隱私[11]一直是網(wǎng)絡(luò)入侵檢測所面臨的一大難題,且在模型訓(xùn)練以及數(shù)據(jù)傳輸過程中往往存在許多隱私泄露等安全問題;2)準確率與效率,在處理海量數(shù)據(jù)時,較高的準確率往往伴隨著較大的時間成本,如何同時提高數(shù)據(jù)處理效率[12]與模型準確率也是目前的研究重點。
聯(lián)邦學(xué)習(xí)[13]是2016 年谷歌公司提出的一種分布式機器學(xué)習(xí)框架,它在服務(wù)器之間通信時可以實現(xiàn)數(shù)據(jù)安全,很好地保障了參與方的終端數(shù)據(jù)隱私。同時,還可以使用各種不同的通用模型在多個參與方之間開展高效率的特征提取與學(xué)習(xí)。FRIHA 等[14]結(jié)合聯(lián)邦學(xué)習(xí)提出一種物聯(lián)網(wǎng)入侵檢測系統(tǒng),該系統(tǒng)利用混合集成的方法結(jié)合聯(lián)邦學(xué)習(xí)來執(zhí)行局部訓(xùn)練并只聚合模型參數(shù),實現(xiàn)了較高的召回率。CIREGAN 等[15]使用基于GPU 的加速訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)算法進行圖像分類和字符識別,結(jié)果表明,深度神經(jīng)網(wǎng)絡(luò)的并行計算能力能夠大幅減少訓(xùn)練所需時間。
本文基于深度神經(jīng)網(wǎng)絡(luò)和聯(lián)邦學(xué)習(xí)建立一種網(wǎng)絡(luò)入侵檢測模型DFC-NID。該模型融合聯(lián)邦學(xué)習(xí)框架,通過基于自動編碼器優(yōu)化的深度神經(jīng)網(wǎng)絡(luò)算法對多個子服務(wù)器節(jié)點的網(wǎng)絡(luò)入侵數(shù)據(jù)進行模型訓(xùn)練。最后通過實驗驗證DFC-NID 模型在耗時和數(shù)據(jù)安全保障方面的性能。
網(wǎng)絡(luò)入侵檢測數(shù)據(jù)集包括部分自制數(shù)據(jù)集和一些常用的公測數(shù)據(jù)集。目前,大多數(shù)入侵檢測研究使用的標準公共數(shù)據(jù)集為KDDCup99[16-17]和NSLKDD[18-20]。
NSL-KDD 數(shù)據(jù)集是KDDCup99 數(shù)據(jù)集的改進版 本。2009 年,TAVALLAEE 等[21]對KDDCup99 數(shù)據(jù)集進行統(tǒng)計分析,發(fā)現(xiàn)該數(shù)據(jù)集中存在大量冗余記錄,其中,訓(xùn)練數(shù)據(jù)集中就有高達78%的冗余數(shù)據(jù),測試數(shù)據(jù)集中有75%的冗余數(shù)據(jù),如此大量的重復(fù)記錄會導(dǎo)致分類器偏向于學(xué)習(xí)更頻繁出現(xiàn)的記錄,從而造成評估結(jié)果偏差。TAVALLAEE 等[21]刪除了原始KDDCup99 數(shù)據(jù)集中的這些冗余記錄,創(chuàng)建了一個更簡潔高效的入侵檢測數(shù)據(jù)集NSL-KDD。NSL-KDD 數(shù)據(jù)集包含41 個正?;蛱囟ü纛愋偷奶卣?,表1 匯總了NSL-KDD 數(shù)據(jù)集中的數(shù)據(jù)類型以及屬于該特定數(shù)據(jù)類型的數(shù)據(jù)集中的特征編號。
表1 NSL-KDD 數(shù)據(jù)集的數(shù)據(jù)類型及特征編號Table 1 Data type and feature number of NSL-KDD dataset
表2 歸納了NSL-KDD 數(shù)據(jù)集中4 種不同攻擊類型的屬性值,分別為DoS(Denial of Service)、Probe、R2L(Root to Local)、U2R(Unauthorized to Root):
表2 NSL-KDD 數(shù)據(jù)集的攻擊類型屬性值Table 2 Attack type attribute value of NSL-KDD dataset
1)DoS。拒絕服務(wù)攻擊,攻擊者通過使計算內(nèi)存資源變得過于繁忙或拒絕合法用戶訪問,使其暫時或無限期地對用戶不可用。
2)Probe。攻擊者通過掃描計算機(主機)的網(wǎng)絡(luò),收集有關(guān)Web 應(yīng)用程序、操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)以及與其連接的設(shè)備的信息,從而找到威脅或漏洞并加以利用。
3)R2L。攻擊者從遠程設(shè)備到本地設(shè)備進行未授權(quán)訪問,通過利用一些漏洞來向設(shè)備發(fā)送數(shù)據(jù)包。
4)U2R。攻擊者可以訪問攻擊目標中的user,且攻擊者在訪問計算機時可以獲得root 權(quán)限的攻擊,如木馬、勒索軟件等。
上述4 種攻擊類別中共包含22 種不同的子類,這22 個子類加上normal 共同組成了KDDCup99 中的23 個標簽。在KDDCup99 的41 個特征中,有38 個數(shù)字特征和3 個字符特征,3 個字符特征分別為protocol_type、service 和flag。
深度神經(jīng)網(wǎng)絡(luò)在處理NSL-KDD、KDDCup99 等規(guī)模龐大數(shù)據(jù)集時具有較好的并行計算能力。如圖1 所示,用于入侵檢測數(shù)據(jù)處理的DNN 由輸入層、隱藏層、輸出層組成[22],各個層之間的神經(jīng)元完全連通。圖1 的輸入層使用來自NSL-KDD 數(shù)據(jù)集的所有41 個特征作為神經(jīng)元,經(jīng)過多個隱藏層之后對攻擊數(shù)據(jù)和正常數(shù)據(jù)進行分類。
圖1 深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Deep neural network structure
聯(lián)邦學(xué)習(xí)的核心思想是基于分布在多個設(shè)備上的數(shù)據(jù)集建立機器學(xué)習(xí)模型,同時防止數(shù)據(jù)泄露[23]。在聯(lián)邦學(xué)習(xí)框架下,每個設(shè)備不發(fā)送原始數(shù)據(jù)進行處理,僅發(fā)送更新后的模型參數(shù)進行聚合,其參數(shù)聚合原理類似于分布式機器學(xué)習(xí)[24]。
如圖2 所示,在聯(lián)邦學(xué)習(xí)框架中,每個服務(wù)器之間相對獨立、互不干預(yù),對本地數(shù)據(jù)的處理權(quán)限不受中心服務(wù)器控制。每個子服務(wù)器通過下載通用模型來對本地數(shù)據(jù)進行獨立訓(xùn)練與測試,然后通過上傳將本地參數(shù)更新傳輸至中心服務(wù)器。每個數(shù)據(jù)擁有方都可以在不給出己方數(shù)據(jù)的條件下進行訓(xùn)練,從而有效保障數(shù)據(jù)所有者的數(shù)據(jù)安全。在聯(lián)邦學(xué)習(xí)機制下,多個子服務(wù)器能夠共同維持一個最新的全局模型,這個全局模型是聯(lián)邦學(xué)習(xí)框架中最重要的組成模塊,本文DFC-NID 模型中聯(lián)邦學(xué)習(xí)框架所使用的通用模型是DNN。
圖2 聯(lián)邦學(xué)習(xí)框架Fig.2 Federated learning framework
本文所提網(wǎng)絡(luò)入侵檢測模型DFC-NID 的總體流程如圖3 所示。
圖3 DFC-NID 流程Fig.3 The procedure of DFC-NID
DFC-NID 總體架構(gòu)分為數(shù)據(jù)預(yù)處理、DNN 通用模型搭建、聯(lián)邦學(xué)習(xí)框架建立3 個部分。對于輸入的數(shù)據(jù)集,首先進行符號預(yù)處理以及數(shù)據(jù)歸一化;然后建立DNN 通用模型模塊,利用其對數(shù)據(jù)集進行特征學(xué)習(xí);接著搭建聯(lián)邦學(xué)習(xí)框架,使得多個服務(wù)器協(xié)作并不斷迭代優(yōu)化參數(shù);最后通過Softmax 層輸出分類預(yù)測結(jié)果。
由于在使用DNN 進行分類時數(shù)據(jù)只能用數(shù)值來訓(xùn)練和測試,而NSL-KDD 與KDDCup99 數(shù)據(jù)集包含許多不同的數(shù)據(jù)類型,因此需要對初始數(shù)據(jù)進行預(yù)處理。預(yù)處理過程主要分為以下2 個步驟:
1)符號數(shù)據(jù)預(yù)處理,即將非數(shù)值數(shù)據(jù)轉(zhuǎn)換成數(shù)值數(shù)據(jù)。在數(shù)據(jù)集中通常存在非數(shù)值數(shù)據(jù),如表1中的特征2、3 和4(TCP、UDP 和ICMP)。給每個變量分配特定的值(如TCP=1、UDP=2、ICMP=3),可以將訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集中的這些特征轉(zhuǎn)換為數(shù)值類型。在預(yù)處理時,將數(shù)據(jù)集的攻擊類與正常類轉(zhuǎn)換為數(shù)字類,如將1、2、3、4分別分配給DoS、Probe、R2L、U2R,將5 分配給normal。
2)數(shù)據(jù)歸一化。NSL-KDD 數(shù)據(jù)集的特征是離散值或連續(xù)值,如果特征值的范圍不同,則它們之間將無法直接進行比較。通過使用最小-最大歸一化[25]對這些特征進行處理,將每個特征的所有不同值都映射到[0,1]范圍。
通用模型是基于聯(lián)邦學(xué)習(xí)的入侵檢測框架的核心模塊,DFC-NID 選擇深度神經(jīng)網(wǎng)絡(luò)作為該框架的通用模型。
如圖4 所示,輸入層使用來自NSL-KDD 數(shù)據(jù)集的所有41 個特征作為神經(jīng)元。第一隱藏層是一個包含20 個神經(jīng)元的自動編碼器,其從輸入數(shù)據(jù)的41 個特征中選擇20 個特征;第二隱藏層是一個包含10 個神經(jīng)元的自動編碼器;第三隱藏層是Softmax層,通過Softmax 層后可以將數(shù)據(jù)分為正常類與4 種不同的攻擊類。
圖4 深度神經(jīng)網(wǎng)絡(luò)通用模型Fig.4 General model of deep neural network
2.2.1 自動編碼器
自動編碼器[26]是一種可以用于特征降維[27]的無監(jiān)督神經(jīng)網(wǎng)絡(luò)模型,DFC-NID 采用自動編碼器作為“預(yù)訓(xùn)練”DNN 的一種方式。自動編碼器結(jié)構(gòu)如圖5所示。
圖5 自動編碼器結(jié)構(gòu)Fig.5 Auto-encoder structure
自動編碼器在對訓(xùn)練數(shù)據(jù)進行預(yù)訓(xùn)練的過程中不使用標簽,且自動編碼器在輸出處復(fù)制其輸入。在通常情況下,x的數(shù)量與x′相同,當隱藏層中的神經(jīng)元數(shù)量h小于x的數(shù)量時,自動編碼器會學(xué)習(xí)x的壓縮表示,下一個自動編碼器再使用這些從訓(xùn)練數(shù)據(jù)中提取生成的特征集進行訓(xùn)練。綜上所述,首先通過無監(jiān)督學(xué)習(xí)技術(shù)對自動編碼器進行訓(xùn)練,然后利用訓(xùn)練后的自動編碼器提取特征。
2.2.2 訓(xùn)練方式
為了使訓(xùn)練過程更加有效,模型一次訓(xùn)練一層DNN,即通過自動編碼器來對每個隱藏層進行訓(xùn)練與微調(diào)。
在第一個自動編碼器訓(xùn)練后,再對第二個自動編碼器進行訓(xùn)練。與訓(xùn)練第一個自動編碼器不同的是,第二個自動編碼器使用的是從第一個自動編碼器中提取的特征,而不是訓(xùn)練集。在這一層中,20 個特征被進一步壓縮為10 個特征集。經(jīng)過訓(xùn)練后,再從第二個自動編碼器中提取特征。
聯(lián)邦學(xué)習(xí)能夠在保持高效率通信的情況下很好地保護數(shù)據(jù)隱私。本文DFC-NID 模型構(gòu)建的入侵檢測聯(lián)邦學(xué)習(xí)框架如圖6 所示。由于同步加載的通信方式具有更高的預(yù)測精度且使模型收斂更穩(wěn)定,因此本文聯(lián)邦學(xué)習(xí)中心服務(wù)器與子服務(wù)器的通信過程選用同步加載的調(diào)度方式。對于圖6 中的N個子服務(wù)器,每個服務(wù)器都有自己的數(shù)據(jù)集Di,每間隔時間t展開一輪通信,每一輪通信包括以下4 個步驟:1)發(fā)送通用模型;2)訓(xùn)練子服務(wù)器;3)上傳子服務(wù)器模型參數(shù);4)模型聚合,生成新的通用模型。
圖6 DFC-NID 模型的聯(lián)邦學(xué)習(xí)框架Fig.6 Federated learning framework for DFC-NID model
中心服務(wù)器將DNN 通用模型發(fā)送到每個子服務(wù)器,子服務(wù)器使用各自本地的數(shù)據(jù)集進行訓(xùn)練,訓(xùn)練完畢后再將得到的訓(xùn)練參數(shù)上傳。在通信時間t期間,中心服務(wù)器獲得了各個子服務(wù)器的訓(xùn)練參數(shù),通過式(1)更新模型權(quán)重并進行模型聚合:
其中:ni為每個子服務(wù)器數(shù)據(jù)集的大小;n為所有子服務(wù)器數(shù)據(jù)集ni之和。隨著W值的不斷更新,可以得到一個新的DNN 通用模型文件Mt+1。最后,將新的DNN 通用模型立即重新分配到每個子服務(wù)器上,并進行迭代處理直到模型收斂,結(jié)束訓(xùn)練。算法1為入侵檢測系統(tǒng)聯(lián)邦學(xué)習(xí)過程的完整偽代碼。
算法1入侵檢測系統(tǒng)的聯(lián)邦學(xué)習(xí)算法
DFC-NID 在第一輪通信時使用一個小規(guī)模的測試集對訓(xùn)練后的子服務(wù)器進行性能測試,若測試結(jié)果小于設(shè)定的閾值,則該服務(wù)器本輪通信停止上傳參數(shù),從而增強通用模型的聚合效果。除此之外,DFC-NID 還在聚合算法中設(shè)置啟動閾值,當中心服務(wù)器接收到的參數(shù)個數(shù)大于閾值時,模型聚合開始,從而有效提高聯(lián)邦學(xué)習(xí)模型的聚合效率。
本文實驗使用NSL-KDD 與10%的KDDCup99作為數(shù)據(jù)集,其中,619 994 條數(shù)據(jù)作為訓(xùn)練集,311 094 條數(shù)據(jù)作為測試集。各個特征類別所對應(yīng)的訓(xùn)練集與測試集數(shù)據(jù)量如表3 所示。
表3 實驗數(shù)據(jù)集信息Table 3 Experimental dataset information
實驗使用如下指標對DFC-NID 進行入侵檢測性能評估:
1)準確率,計算公式如下:
2)精確率,計算公式如下:
3)召回率,計算公式如下:
4)F1 分數(shù),計算公式如下:
3.3.1 先進性與有效性實驗
表4 比較了本文DFC-NID 與眾多常用的深度學(xué)習(xí)模型在檢測性能上的表現(xiàn)。從表4 可以看出,DFC-NID 在準確率和F1 分數(shù)上均優(yōu)于其他模型,其中,準確率平均提升了3.1%。
表4 不同模型的實驗結(jié)果對比Table 4 Comparison of experimental results of different models
表5 對比了DFC-NID 與近兩年提出的網(wǎng)絡(luò)入侵檢測模型[28-30]的準確率。從表5 可以看出,與現(xiàn)有模型相比,本文DFC-NID 模型在入侵檢測中取得了更高的準確率。
表5 網(wǎng)絡(luò)入侵檢測模型準確率對比Table 5 Comparison of accuracy of network intrusion detection models
結(jié)合表4 與表5 可以得出,本文所提DFC-NID模型在網(wǎng)絡(luò)入侵檢測中具有先進性和有效性。
3.3.2 模型魯棒性實驗
為了驗證DFC-NID 的魯棒性,實驗針對不同的攻擊類別對不同數(shù)據(jù)集進行多分類實驗,其中包括正常類與DoS、Probe、U2R、R2L 這4 個攻擊類。實驗結(jié)果如表6、表7 所示,從中可以看出,在NSLKDD 數(shù)據(jù)集上DoS、Probe 與正常類的準確率均在0.946~0.977范圍內(nèi),在KDDCup99數(shù)據(jù)集上DoS、Probe 與正常類的準確率均在0.987~0.998 范圍內(nèi),即在不同數(shù)據(jù)集上DFC-NID 對于DoS、Probe 與正常類的檢測都有較高的準確率,證明DFC-NID 具有良好的魯棒性。
表6 NSL-KDD 數(shù)據(jù)集的五分類結(jié)果Table 6 Five classification results of NSL-KDD dataset
表7 KDDCup99 數(shù)據(jù)集的五分類結(jié)果Table 7 Five classification results of KDDCup99 dataset
從表6、表7 中還可以看出,當只考慮2 類(正常類和攻擊類)時,檢測精確率較高。由于R2L 和U2R可供訓(xùn)練的樣本有限(如表3 所示,R2L 和U2R 的數(shù)據(jù)量都太過稀疏),因此在實驗中取得的結(jié)果不太穩(wěn)定。盡管如此,從實驗結(jié)果中還是可以明顯看出,DFC-NID 模型對于數(shù)據(jù)量大的攻擊類別能夠取得很高的準確率、精確率、召回率和F1 分數(shù)。
3.3.3 聯(lián)邦學(xué)習(xí)對比實驗
為了驗證DFC-NID 所使用的聯(lián)邦學(xué)習(xí)框架在網(wǎng)絡(luò)入侵檢測中的優(yōu)越性,實驗將DFC-NID 與不使用聯(lián)邦學(xué)習(xí)框架而只使用DNN 通用模型的情況(稱為NO-FC 模型)進行對比。其中,DFC-NID 中設(shè)置5 個子服務(wù)器作為參與方,并將數(shù)據(jù)集隨機分為5 個部分分別發(fā)送給子服務(wù)器用于各自的本地訓(xùn)練。在網(wǎng)絡(luò)入侵檢測模型評估中,時間效率也是體現(xiàn)模型性能的一個重要因素,因此,實驗還測量了DFC-NID模型與對比模型所需的訓(xùn)練時間,實驗結(jié)果如表8所示。
表8 聯(lián)邦學(xué)習(xí)對比實驗結(jié)果Table 8 Comparative experimental results of federated learning
由表8 可以看出,相比不使用聯(lián)邦學(xué)習(xí)框架的NO-FC 模型,DFC-NID 模型在測試集上的準確率與召回率有所提升,且DFC-NID 減少了83.9%的訓(xùn)練時間。因此,DFC-NID 模型可以在保持高準確率的同時大幅縮短訓(xùn)練時間。另外,由于DFC-NID 模型在訓(xùn)練時只需要傳輸模型參數(shù),數(shù)據(jù)集僅在子服務(wù)器上進行訓(xùn)練,因此DFC-NID 模型能更好地保障數(shù)據(jù)的安全性。
為在復(fù)雜網(wǎng)絡(luò)環(huán)境中對多樣化的網(wǎng)絡(luò)入侵方式進行快速準確的檢測,本文提出一種基于深度神經(jīng)網(wǎng)絡(luò)和聯(lián)邦學(xué)習(xí)的入侵檢測模型DFC-NID。利用聯(lián)邦學(xué)習(xí)框架使多服務(wù)器協(xié)作參與,在縮短訓(xùn)練時間的同時確保數(shù)據(jù)的安全性。使用DNN 作為通用模型自動提取并高效學(xué)習(xí)數(shù)據(jù)特征,最后通過Softmax分類器得到預(yù)測結(jié)果。實驗結(jié)果表明,DFC-NID 的準確率達到94.1%,高于MFO-ENSEMBLE、LSTM-GRU等分類模型,在攻擊類DoS與Probe上,DFC-NID 的準確率最高達到99.8%與98.7%,取得了很好的檢測效果。與此同時,相較不使用聯(lián)邦學(xué)習(xí)的對照模型,DFC-NID 減少了83.9%的訓(xùn)練時間并能保持較高的準確率與召回率。在聯(lián)邦學(xué)習(xí)機制下,每個參與方之間數(shù)據(jù)不互通,因此,DFC-NID 能夠很好地保證數(shù)據(jù)的安全與隱私。下一步將對小樣本入侵檢測問題進行研究,提升針對稀疏數(shù)據(jù)的攻擊類別檢測效果。