您所在的位置: 首頁 >
新聞資訊 >
技術(shù)前沿 >
基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測技術(shù)研究
摘? 要:網(wǎng)絡(luò)入侵是指非授權(quán)訪問和惡意攻擊網(wǎng)絡(luò)系統(tǒng)的行為,對網(wǎng)絡(luò)和數(shù)據(jù)安全構(gòu)成威脅。為了保護網(wǎng)絡(luò)系統(tǒng)免受入侵的危害,設(shè)計和實現(xiàn)一個高效準確的網(wǎng)絡(luò)入侵檢測系統(tǒng)至關(guān)重要。因此,提出了一個基于深度學(xué)習的端到端網(wǎng)絡(luò)入侵檢測框架,利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional NeuralNetwork,CNN)的特征提取和分類能力來識別網(wǎng)絡(luò)流量中的惡意行為。使用公開的網(wǎng)絡(luò)入侵檢測數(shù)據(jù)集對該框架進行實驗評估,并對系統(tǒng)性能進行了分析和比較。實驗結(jié)果表明,所提出的基于CNN 的網(wǎng)絡(luò)入侵檢測系統(tǒng)在準確性和效率方面取得了良好的表現(xiàn),能夠有效地檢測和分類各種網(wǎng)絡(luò)入侵行為。
內(nèi)容目錄:
1 卷積神經(jīng)網(wǎng)絡(luò)的基本原理
2 檢測模型設(shè)計與實現(xiàn)
2.1 數(shù)據(jù)預(yù)處理
2.2 數(shù)據(jù)集劃分
2.3 網(wǎng)絡(luò)模型設(shè)計
2.4 模型訓(xùn)練和優(yōu)化
2.5 模型評估和性能分析
3 檢測模型實驗評估
4 結(jié)? 語
在數(shù)字化時代,網(wǎng)絡(luò)入侵檢測對保障網(wǎng)絡(luò)安全具有重要意義。隨著網(wǎng)絡(luò)的普及和信息的互聯(lián),網(wǎng)絡(luò)入侵事件頻發(fā),給國家、組織和個人帶來了嚴重的威脅和損失。因此,開發(fā)高效可靠的網(wǎng)絡(luò)入侵檢測系統(tǒng)成為一項緊迫的任務(wù)。
網(wǎng)絡(luò)入侵是一種對網(wǎng)絡(luò)系統(tǒng)造成威脅和危害的行為,包括未經(jīng)授權(quán)的訪問、惡意軟件攻擊、拒絕服務(wù)攻擊等。為了保護網(wǎng)絡(luò)系統(tǒng)的安全,網(wǎng)絡(luò)入侵檢測成為一項重要的任務(wù)。傳統(tǒng)的網(wǎng)絡(luò)入侵檢測方法通?;谝?guī)則和統(tǒng)計模型,但這些方法受限于規(guī)則的準確性和模型的泛化能力。近年來,深度學(xué)習技術(shù)的發(fā)展為網(wǎng)絡(luò)入侵檢測提供了新的機會 。深度學(xué)習模型如卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在圖像和語音處理領(lǐng)域取得了顯著的成果,其在網(wǎng)絡(luò)入侵檢測中的應(yīng)用也引起了廣泛關(guān)注。
網(wǎng)絡(luò)入侵檢測是網(wǎng)絡(luò)安全領(lǐng)域的關(guān)鍵問題,許多研究人員和學(xué)者提出了各種方法和技術(shù)來檢測和防止網(wǎng)絡(luò)入侵。在過去的幾十年里,研究人員提出了許多基于規(guī)則和特征工程的方法,這些方法主要依賴于人工定義的規(guī)則和特征來檢測入侵行為 。然而,由于網(wǎng)絡(luò)入侵的復(fù)雜性和多樣性,這些方法往往難以滿足準確性和效率方面的要求。近年來,基于深度學(xué)習的方法在網(wǎng)絡(luò)入侵檢測領(lǐng)域取得了顯著的進展。深度學(xué)習是一種機器學(xué)習的分支,它通過構(gòu)建多層神經(jīng)網(wǎng)絡(luò)來模擬人腦的學(xué)習和決策過程。相比傳統(tǒng)的方法,深度學(xué)習可以自動從原始數(shù)據(jù)中學(xué)習特征和模式,無須依賴手工設(shè)計的規(guī)則和特征 。這使得深度學(xué)習在網(wǎng)絡(luò)入侵檢測中具有更好的適應(yīng)性和準確性。
基于深度學(xué)習的網(wǎng)絡(luò)入侵檢測方法可以分為基于異常檢測和基于分類的方法 兩類?;诋惓z測的方法通過建立正常網(wǎng)絡(luò)流量的模型,檢測和識別與正常行為不符的異常行為。這些方法主要使用自編碼器、變分自編碼器、生成對抗網(wǎng)絡(luò)等模型來學(xué)習正常網(wǎng)絡(luò)流量的分布?;诜诸惖姆椒▌t將網(wǎng)絡(luò)入侵檢測問題轉(zhuǎn)化為一個二分類問題,通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)來區(qū)分正常流量和入侵行為 。這些方法主要使用卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、注意力機制等模型來學(xué)習特征和模式。
雖然基于深度學(xué)習的網(wǎng)絡(luò)入侵檢測方法在一定程度上提高了檢測準確性和效率,但仍然存在一些挑戰(zhàn)和問題。首先,深度學(xué)習模型需要大量的標記數(shù)據(jù)進行訓(xùn)練,但網(wǎng)絡(luò)入侵數(shù)據(jù)往往是稀缺的和不平衡的。其次,深度學(xué)習模型的復(fù)雜性和計算需求較高,限制了其在實時入侵檢測中的應(yīng)用。此外,模型的可解釋性和對抗攻擊的魯棒性也是當前研究的熱點問題。針對以上問題,研究人員提出了一些改進和優(yōu)化方法。例如,使用生成對抗網(wǎng)絡(luò)生成合成的入侵數(shù)據(jù)來增加訓(xùn)練數(shù)據(jù)的數(shù)量和多樣性,采用遷移學(xué)習和預(yù)訓(xùn)練模型來減少標記數(shù)據(jù)的需求,引入注意力機制和解釋性方法來提高模型的可解釋性等。這些方法為進一步提高基于深度學(xué)習的網(wǎng)絡(luò)入侵檢測系統(tǒng)的性能和效果提供了有益的思路和方向。
本文旨在設(shè)計和實現(xiàn)基于深度學(xué)習的網(wǎng)絡(luò)入侵檢測系統(tǒng),以提高入侵檢測的準確性和效率。主要的貢獻包括以下幾個方面:
(1)通過回顧和分析現(xiàn)有的網(wǎng)絡(luò)入侵檢測方法,特別是基于深度學(xué)習的方法,總結(jié)了它們的優(yōu)點和缺點。
(2)詳細介紹了深度學(xué)習的基本原理,包括神經(jīng)網(wǎng)絡(luò)、反向傳播、卷積神經(jīng)網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò)等,并闡述了深度學(xué)習在網(wǎng)絡(luò)入侵檢測中的應(yīng)用,包括特征學(xué)習、異常檢測和分類等方面。
(3)設(shè)計了一個完整的系統(tǒng)架構(gòu),并詳細描述了每個組件的設(shè)計和實現(xiàn)。其中,數(shù)據(jù)預(yù)處理模塊用于對原始數(shù)據(jù)進行清洗、標準化和轉(zhuǎn)換,特征提取模塊利用深度學(xué)習模型從數(shù)據(jù)中學(xué)習有用的特征,模型訓(xùn)練模塊采用監(jiān)督學(xué)習方法對網(wǎng)絡(luò)入侵行為進行建模和訓(xùn)練,入侵檢測模塊用于實時監(jiān)測網(wǎng)絡(luò)流量并識別可能的入侵行為。
(4)通過實驗和評估驗證了系統(tǒng)的性能和效果。本文選擇了合適的數(shù)據(jù)集,并進行了系統(tǒng)性能測試。實驗結(jié)果顯示,基于深度學(xué)習的網(wǎng)絡(luò)入侵檢測系統(tǒng)在準確性和效率方面表現(xiàn)出色。
(5)對系統(tǒng)的優(yōu)點和缺點進行了討論,并提出了一些可能的改進方法。此外,展望未來的研究方向,如進一步優(yōu)化模型、應(yīng)對新型入侵攻擊、提高系統(tǒng)的實時性等。
本論文的工作為深度學(xué)習在網(wǎng)絡(luò)入侵檢測領(lǐng)域的應(yīng)用提供了有益的經(jīng)驗和參考,對于改進網(wǎng)絡(luò)安全和保護網(wǎng)絡(luò)環(huán)境具有一定的實際意義。
1、卷積神經(jīng)網(wǎng)絡(luò)的基本原理
深度學(xué)習是一種機器學(xué)習的方法,它模擬了人腦神經(jīng)系統(tǒng)的工作原理,通過構(gòu)建多層神經(jīng)網(wǎng)絡(luò)來學(xué)習和表示數(shù)據(jù)的復(fù)雜模式和關(guān)系。在網(wǎng)絡(luò)入侵檢測中,深度學(xué)習被廣泛應(yīng)用于特征提取、模式識別和異常檢測等任務(wù),以提高入侵檢測的準確性和效果。
CNN 是專門處理網(wǎng)格結(jié)構(gòu)數(shù)據(jù)的一種神經(jīng)網(wǎng)絡(luò)。它通過卷積層和池化層的引入,能夠有效地捕捉輸入數(shù)據(jù)中的空間和位置信息。在網(wǎng)絡(luò)入侵檢測中,卷積神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于處理網(wǎng)絡(luò)流量數(shù)據(jù),以及提取流量數(shù)據(jù)的局部特征和模式。CNN具有局部感知和權(quán)值共享的特點。卷積神經(jīng)網(wǎng)絡(luò)的局部感知特性使其能夠自動學(xué)習不同尺寸的特征,有效地捕捉輸入數(shù)據(jù)中的空間局部結(jié)構(gòu)。通過卷積操作,網(wǎng)絡(luò)利用滑動窗口在輸入數(shù)據(jù)上進行計算,每個窗口與一組可學(xué)習的卷積核進行卷積操作,并生成對應(yīng)的特征圖。這種操作可以保留輸入數(shù)據(jù)的空間結(jié)構(gòu)信息,并且減少網(wǎng)絡(luò)的參數(shù)數(shù)量。同時,卷積神經(jīng)網(wǎng)絡(luò)采用權(quán)值共享的機制,即每個卷積核在整個輸入數(shù)據(jù)上進行滑動,共享相同的權(quán)值參數(shù)。這種共享能夠大大減小網(wǎng)絡(luò)的計算復(fù)雜度,提高網(wǎng)絡(luò)的訓(xùn)練效率和泛化能力。
池化層用于減少特征圖的維度,減小模型的復(fù)雜性,并提取特征的主要信息。常見的池化操作包括最大池化和平均池化,它們通過對每個特征圖的局部區(qū)域進行池化操作,生成尺寸更小的特征圖。如圖 1 所示,卷積神經(jīng)網(wǎng)絡(luò)通常由多個卷積層、池化層和全連接層組成。卷積層和池化層負責提取和壓縮特征,而全連接層則將提取的特征映射到輸出類別上。具體來說,卷積層通過卷積操作對輸入數(shù)據(jù)進行特征提取,利用卷積核的滑動窗口計算得到特征圖。這些特征圖捕捉了輸入數(shù)據(jù)的局部結(jié)構(gòu)和模式。池化層緊隨卷積層,對特征圖進行降采樣。最大池化選擇每個局部區(qū)域的最大值作為池化結(jié)果,平均池化取局部區(qū)域的平均值。這樣可以減小特征圖的尺寸,保留主要信息,同時降低計算量。全連接層位于網(wǎng)絡(luò)的最后一層,將池化層輸出的特征映射到輸出類別上。它通過學(xué)習權(quán)重參數(shù)來進行分類和判別。
卷積神經(jīng)網(wǎng)絡(luò)的輸入通常是一個二維(圖像)或三維(視頻)的數(shù)據(jù),表示為輸入張量(inputtensor)。
卷積層是卷積神經(jīng)網(wǎng)絡(luò)的核心組件,用于提取輸入數(shù)據(jù)的局部特征和模式。卷積操作通過滑動一個可學(xué)習的卷積核(filter/kernel)在輸入數(shù)據(jù)上進行局部區(qū)域的計算,從而生成特征圖(feature map)。卷積操作可以表示為:
式中:I是輸入特征圖,K是卷積核,F(xiàn)是輸出特征圖,(i, j) 是輸出特征圖上的坐標,(m,n) 是卷積核上的坐標。
卷積層通常在卷積操作后應(yīng)用非線性激活函數(shù),以引入非線性變換和增強網(wǎng)絡(luò)的表達能力。常用的激活函數(shù)包括線性整流函數(shù)(Rectified Linea rUnit,ReLU)、Sigmoid 和 Tanh 等。
池化層用于減少特征圖的空間維度,從而減少參數(shù)數(shù)量和計算量,并增強模型對平移和縮放的不變性。
全連接層用于將卷積層和池化層提取的特征進行組合和映射,以進行最終的分類或回歸。
卷積神經(jīng)網(wǎng)絡(luò)通過堆疊多個卷積層、池化層和全連接層來構(gòu)建復(fù)雜的深度網(wǎng)絡(luò)。網(wǎng)絡(luò)的最后一層通常是輸出層,用于表示模型的最終預(yù)測結(jié)果。通過反向傳播算法和優(yōu)化方法(如梯度下降),卷積神經(jīng)網(wǎng)絡(luò)可以自動學(xué)習輸入數(shù)據(jù)中的特征和模式,并進行準確的分類或預(yù)測。
在網(wǎng)絡(luò)入侵檢測中,卷積神經(jīng)網(wǎng)絡(luò)可以直接處理網(wǎng)絡(luò)流量數(shù)據(jù)的原始形式,無須進行手工特征提取,使得模型更具靈活性和適應(yīng)性。卷積神經(jīng)網(wǎng)絡(luò)在網(wǎng)絡(luò)入侵檢測中的應(yīng)用主要包括流量分類、異常檢測和攻擊識別等任務(wù)。通過訓(xùn)練網(wǎng)絡(luò)模型,它可以學(xué)習到網(wǎng)絡(luò)流量數(shù)據(jù)中的正常模式和異常模式,從而實現(xiàn)對網(wǎng)絡(luò)入侵行為的準確檢測和分類。總之,卷積神經(jīng)網(wǎng)絡(luò)在網(wǎng)絡(luò)入侵檢測中具有較好的特征提取和分類能力,能夠有效地處理網(wǎng)絡(luò)流量數(shù)據(jù),提高網(wǎng)絡(luò)安全性能。它已經(jīng)成為網(wǎng)絡(luò)安全領(lǐng)域的重要研究方向,且研究者們也取得了一定的研究成果和應(yīng)用效果。
2、檢測模型設(shè)計與實現(xiàn)
網(wǎng)絡(luò)入侵檢測系統(tǒng)是一個復(fù)雜的系統(tǒng),需要設(shè)計合適的架構(gòu)和流程來實現(xiàn)高效準確的入侵檢測。本節(jié)主要介紹基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測模型的設(shè)計與實現(xiàn)要點。
2.1 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理是網(wǎng)絡(luò)入侵檢測系統(tǒng)中的重要步驟,它包括數(shù)據(jù)導(dǎo)入、特征選擇、特征轉(zhuǎn)換、數(shù)據(jù)標準化等操作。
(1)數(shù)據(jù)導(dǎo)入。使用 pandas 庫讀取數(shù)據(jù),導(dǎo)入數(shù)據(jù)后進行數(shù)據(jù)的基本查看和探索性分析,以了解數(shù)據(jù)的特點和結(jié)構(gòu)。
(2)特征選擇。根據(jù)任務(wù)需求和數(shù)據(jù)集特點,選擇合適的特征列用于訓(xùn)練和測試。特征選擇是一種從原始特征中選擇最相關(guān)和最有信息量的特征的過程,可以通過領(lǐng)域知識、特征相關(guān)性分析或特征重要性評估等方法進行。
(3)特征轉(zhuǎn)換。將字符型特征進行數(shù)值化,使用編碼器(如 LabelEncoder)將字符型特征轉(zhuǎn)換為數(shù)值型特征。由于大部分機器學(xué)習算法只能處理數(shù)值型數(shù)據(jù),因此需要將字符型特征轉(zhuǎn)換為數(shù)值型特征。LabelEncoder 將每個不同的字符映射到一個整數(shù),從 0 開始遞增,以表示不同的類別。
(4)數(shù)據(jù)標準化。對數(shù)值型特征進行標準化處理,使得數(shù)據(jù)在相同的尺度范圍內(nèi),常用的方法有 Z-score 標準化或 MinMax 標準化。Z-score 標準化,也稱為標準差標準化,通過減去均值并除以標準差,將數(shù)據(jù)轉(zhuǎn)換為均值為 0、標準差為 1 的標準正態(tài)分布,公式如下:
式中:表示標準化后的數(shù)據(jù),x 表示原始數(shù)據(jù),μ 表示數(shù)據(jù)的均值,σ 表示數(shù)據(jù)的標準差。
MinMax 標準化,也稱為區(qū)間縮放法,將數(shù)據(jù)線性縮放到指定的區(qū)間范圍(通常是 [0, 1])。公式如下:
式中:表示縮放后的數(shù)據(jù),x 表示原始數(shù)據(jù),表示數(shù)據(jù)的最小值,表示數(shù)據(jù)的最大值。
本文數(shù)據(jù)預(yù)處理過 程 為:讀 取 NSL-KDD 數(shù)據(jù) 集 文 件(“KDDTrain+.txt”), 將 特 征 列 和 標簽列分離,對字符型特征進行數(shù)值化處理,使用LabelEncoder 將其轉(zhuǎn)換為數(shù)值類型,對數(shù)值化后的特征進行標準化處理,使用 StandardScaler 將其進行標準化,對標簽列進行獨熱編碼處理,使用pd.get_dummies 將其轉(zhuǎn)換為獨熱向量形式。下面為NSL-KDD 數(shù)據(jù)集預(yù)處理示例代碼:
data = pd.read_csv(‘KDD.txt’)
def preprocess_data(data):
features = data.iloc[:, :-2]
labels = data.iloc[:, -2]
encoder = LabelEncoder()
features = features.apply(encoder.fit_transform)
scaler = StandardScaler()
features = scaler.fit_transform(features)
labels = pd.get_dummies(labels)
return features, labels
2.2 數(shù)據(jù)集劃分
為了評估模型的性能和進行最終的網(wǎng)絡(luò)入侵檢測,需要將預(yù)處理后的數(shù)據(jù)集劃分為訓(xùn)練集、驗證集和測試集。常見的劃分方式是按照一定比例(如80% 訓(xùn)練集、10% 驗證集、10% 測試集)進行劃分,確保訓(xùn)練集用于模型訓(xùn)練和參數(shù)調(diào)整,驗證集用于模型驗證和超參數(shù)調(diào)整,測試集用于最終的性能評估。
本文數(shù)據(jù)集劃分過程為:將預(yù)處理后的特征和標簽劃分為訓(xùn)練集和測試集,使用 train_test_split函數(shù)進行劃分,其中測試集占比為 20%。下面為數(shù)據(jù)集劃分處理示例代碼:
def split_data(features, labels):
X_train, X_val_test, y_train, y_val_test = train_
test_split(features, labels, test_size=0.3, random_
state=42)
X_val, X_test, y_val, y_test = train_test_split(X_
val_test, y_val_test, test_size=0.5, random_state=42)
return X_train, X_val, X_test, y_train, y_val, y_test
2.3 網(wǎng)絡(luò)模型設(shè)計
基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測系統(tǒng)需要設(shè)計合適的模型架構(gòu)??梢允褂酶鞣N深度學(xué)習框架(如TensorFlow、Keras)構(gòu)建模型。常見的網(wǎng)絡(luò)模型設(shè)計包括的部分如下文所述。
(1)卷積層:用于提取輸入數(shù)據(jù)中的局部特征和模式,可以通過調(diào)整卷積核的大小和數(shù)量來控制特征提取的效果。
(2)池化層:用于減小特征圖的維度,并保留重要的特征信息,常用的池化操作有最大池化和平均池化。
(3)全連接層:將提取的特征映射到輸出類別上,通過激活函數(shù)進行非線性變換。
(4)Dropout 層:為了避免過擬合,可以添加Dropout 層來隨機丟棄部分神經(jīng)元的輸出。
(5)輸出層:通常是一個 Softmax 層,用于表示模型的最終預(yù)測結(jié)果。
本文構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型的過程為:使用tf.keras.Sequential 順序模型構(gòu)建 CNN 模型;模型包含卷積層、池化層和全連接層,用于提取特征和進行分類;模型最后使用 Softmax 激活函數(shù)進行多類別分類,并計算損失函數(shù)和準確率。下面為構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型的示例代碼:
def build_model(input_shape, num_classes):
model = tf.keras.models.Sequential([
tf.keras.layers.Conv1D(64, 3, activation=’relu’,
input_shape=input_shape),
tf.keras.layers.MaxPooling1D(2),
tf.keras.layers.Conv1D(128, 3, activation=’relu’),
tf.keras.layers.MaxPooling1D(2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation=’relu’),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(num_classes, activation=’
softmax’)])
return model
2.4 模型訓(xùn)練和優(yōu)化
在設(shè)計好網(wǎng)絡(luò)模型后,需要使用訓(xùn)練集對模型進行訓(xùn)練。訓(xùn)練過程中需要選擇適當?shù)膿p失函數(shù)(如交叉熵損失)和優(yōu)化算法(如 Adam 優(yōu)化器)來優(yōu)化模型。同時,可以迭代調(diào)整模型的超參數(shù),如學(xué)習率、批量大小等,以提高模型性能和收斂速度。訓(xùn)練過程中可以監(jiān)控模型在訓(xùn)練集和驗證集上的性能指標,并根據(jù)需要進行調(diào)整和優(yōu)化。
本文訓(xùn)練模型的過程為:對構(gòu)建的 CNN 模型進行編譯,指定損失函數(shù)為 categorical_crossentropy、優(yōu)化器為 adam,并指定評估指標為準確率;使用訓(xùn)練集數(shù)據(jù)進行模型的訓(xùn)練,設(shè)置批量大小為 64,迭代 10 個 epochs,并在驗證集上進行驗證。下面為模型訓(xùn)練示例代碼:
def train_model(X_train, y_train, X_val, y_val,
num_classes):
input_shape = (X_train.shape[1], 1)
X_train = np.reshape(X_train, (X_train.shape[0],
X_train.shape[1], 1))
X_val = np.reshape(X_val, (X_val.shape[0], X_val.
shape[1], 1))
model = build_model(input_shape, num_classes)
model.compile(loss=’categorical_crossentropy’,
optimizer=’adam’, metrics=[‘a(chǎn)ccuracy’])
history = model.fit(X_train, y_train, batch_size=64,
epochs=10, validation_data=(X_val, y_val))
return model, history
2.5 模型評估和性能分析
訓(xùn)練完成后,使用驗證集評估模型的性能,包括準確率、精確率、召回率、F1 分數(shù)等指標,可以繪制學(xué)習曲線和驗證曲線來觀察模型的訓(xùn)練過程和驗證結(jié)果。進一步分析模型在不同類別上的表現(xiàn),查看誤分類樣本,并根據(jù)需要進一步改進模型。最終,使用測試集對最優(yōu)模型進行性能評估和比較。計算模型在測試集上的準確率、精確率、召回率、F1 分數(shù)等指標,并繪制混淆矩陣等圖表進行可視化。根據(jù)實際需求,可以調(diào)整模型的閾值和參數(shù),進一步優(yōu)化模型的性能。本文對測試集數(shù)據(jù)進行模型的評估,計算測試集的準確率。
3、檢測模型實驗評估
本 文 使 用 的 程 序 運 行 結(jié) 果 為 Test Accuracy:0.995 792 806 148 529。圖 2 顯示了基于 CNN 的模型在訓(xùn)練集和驗證集上的準確率隨著訓(xùn)練輪數(shù)的變化情況。橫軸表示訓(xùn)練輪數(shù)(Epoch),縱軸表示準確率。在訓(xùn)練集和驗證集上,模型的準確率隨著訓(xùn)練輪數(shù)的增加逐漸提高。這表明模型在訓(xùn)練過程中逐漸學(xué)習到了數(shù)據(jù)的特征,并在驗證集上表現(xiàn)出良好的泛化能力。最終,模型在驗證集上的準確率穩(wěn)定在一個較高水平。
圖 2 基于 CNN 的模型的準確率
實 驗 結(jié) 果 表 明, 使 用 基 于 NSL-KDD 數(shù) 據(jù) 集的卷積神經(jīng)網(wǎng)絡(luò)模型進行網(wǎng)絡(luò)入侵檢測,在測試集上獲得了高達 99.58% 的準確率(Test Accuracy:0.995 792 806 148 529)。表明該模型具有很好的性能,在網(wǎng)絡(luò)入侵檢測任務(wù)中能夠有效地進行分類和預(yù)測,該模型在識別網(wǎng)絡(luò)流量是否為入侵行為方面表現(xiàn)出色。高準確率意味著模型能夠準確地將正常流量和惡意入侵流量區(qū)分開來,從而提供了一個可靠的網(wǎng)絡(luò)安全防護系統(tǒng)。這對于網(wǎng)絡(luò)入侵檢測系統(tǒng)的設(shè)計和實現(xiàn)研究具有重要意義,因為準確率是評估模型性能和有效性的重要指標之一。此結(jié)果表明,基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測系統(tǒng)在 NSLKDD 數(shù)據(jù)集上取得了很好的性能,并有望在實際應(yīng)用中發(fā)揮重要作用。
圖 3 基于 CNN 模型的損失情況
圖 3 顯示了模型在訓(xùn)練集和驗證集上的損失函數(shù)值隨著訓(xùn)練輪數(shù)的變化情況。在訓(xùn)練集和驗證集上,模型的損失隨著訓(xùn)練輪數(shù)的增加逐漸降低。這表明模型在訓(xùn)練過程中逐漸學(xué)習到了數(shù)據(jù)的特征,并逐漸減小了預(yù)測結(jié)果與真實結(jié)果之間的差距。具體而言,在訓(xùn)練過程中,模型的訓(xùn)練集損失逐漸降低。這意味著模型可以通過優(yōu)化算法逐漸調(diào)整參數(shù),使得預(yù)測結(jié)果與訓(xùn)練集標簽之間的差距減小。較低的訓(xùn)練集損失表明模型在訓(xùn)練集上能夠較好地擬合數(shù)據(jù)。在訓(xùn)練過程中,模型的驗證集損失也逐漸降低。驗證集損失是衡量模型在未見過的數(shù)據(jù)上的預(yù)測性能,較低的驗證集損失表明模型具有良好的泛化能力,能夠在未知數(shù)據(jù)上進行準確預(yù)測。觀察訓(xùn)練集損失和驗證集損失的差距可以幫助判斷模型是否存在過擬合或欠擬合。如果訓(xùn)練集損失較低而驗證集損失較高,說明模型可能出現(xiàn)過擬合,即在訓(xùn)練集上表現(xiàn)良好但在驗證集上泛化能力較差。相反,如果訓(xùn)練集損失和驗證集損失都較高,則可能存在欠擬合,模型未能很好地擬合訓(xùn)練數(shù)據(jù)。通過觀察損失曲線的趨勢可以判斷模型的收斂情況和學(xué)習速度。如果損失曲線在訓(xùn)練過程中逐漸平穩(wěn)下降,且訓(xùn)練集損失和驗證集損失收斂到一個較低的水平,則表示模型具有較好的學(xué)習能力和穩(wěn)定性。
圖 4 顯示了模型在測試集上的分類結(jié)果與真實標簽之間的對應(yīng)關(guān)系。
圖 4 基于 CNN 模型的混淆矩陣
混 淆 矩 陣 是 一 個 矩 陣, 橫 軸 表 示 預(yù) 測 標 簽(Predicted Labels), 縱 軸 表 示 真 實 標 簽(True Labels),矩陣中的每個元素表示對應(yīng)標簽對的樣本數(shù)。通過熱力圖的顏色深淺可以反映出不同類別的分類情況,顏色越淺表示分類正確的樣本越多,顏色越深表示分類錯誤的樣本越多。每個單元格表示預(yù)測為某個類別的樣本在真實類別下的計數(shù)?;煜仃嚨膶蔷€元素表示模型預(yù)測正確的樣本數(shù),即真正例(True Positives)。對角線上的值越大,表示模型在該類別上的預(yù)測準確率越高。混淆矩陣的非對角線元素表示模型將某個類別錯誤地預(yù)測為其他類別的樣本數(shù),即假正例(False Positives)和假負例(False Negatives)。非對角線上的值越大,表示模型在該類別上的錯誤分類數(shù)量越多。精確率表示模型預(yù)測為某個類別的樣本中真實屬于該類別的比例,召回率表示模型正確預(yù)測某個類別的樣本占該類別所有樣本的比例。F1 分數(shù)是綜合考慮精確率和召回率的指標,可以衡量模型的綜合性能。F1分數(shù)是精確率和召回率的調(diào)和均值,當精確率和召回率都較高時,F(xiàn)1 分數(shù)也會較高。
通過以上設(shè)計和實現(xiàn),基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測系統(tǒng)能夠有效地檢測和分類各種網(wǎng)絡(luò)入侵行為,提高網(wǎng)絡(luò)系統(tǒng)的安全性和可靠性。模型在訓(xùn)練過程中逐漸學(xué)習到了數(shù)據(jù)的特征,并在驗證集上表現(xiàn)出了良好的準確率和較低的損失。模型在測試集上的準確率為 0.995 8,表示模型在未見過的數(shù)據(jù)上仍能保持較高的準確性?;煜仃嚳梢蕴峁└敿毜哪P托阅苄畔?,可以用于分析模型在不同類別上的分類情況和錯誤樣本的分布。綜上所述,該模型在網(wǎng)絡(luò)入侵檢測任務(wù)中表現(xiàn)出了很高的準確率和較低的損失,具備較好的分類能力和泛化能力,可以用于有效檢測和分類各種網(wǎng)絡(luò)入侵行為,提高網(wǎng)絡(luò)系統(tǒng)的安全性和可靠性。同時,可以根據(jù)實際需求和數(shù)據(jù)特點進行進一步的優(yōu)化和改進,以提升系統(tǒng)性能和應(yīng)用效果。
4、結(jié) 語
本文基于卷積神經(jīng)網(wǎng)絡(luò)設(shè)計并實現(xiàn)了一個網(wǎng)絡(luò)入侵檢測模型,并使用 NSL-KDD 數(shù)據(jù)集對其進行評估。實驗結(jié)果表明,該模型在測試集上取得了高準確率(99.58%)的表現(xiàn),能夠有效地檢測和分類網(wǎng)絡(luò)入侵行為。這為網(wǎng)絡(luò)安全領(lǐng)域提供了一個可靠的防護工具,有助于提高網(wǎng)絡(luò)系統(tǒng)的安全性和可靠性。
然而,網(wǎng)絡(luò)入侵檢測是一個充滿挑戰(zhàn)的領(lǐng)域,仍然存在許多值得進一步探索和改進的方向:
(1)數(shù)據(jù)集的多樣性。雖然 NSL-KDD 數(shù)據(jù)集在本文中被用作評估網(wǎng)絡(luò)入侵檢測系統(tǒng)的基準數(shù)據(jù)集,但實際應(yīng)用中的網(wǎng)絡(luò)流量數(shù)據(jù)可能更加多樣化。因此,將系統(tǒng)應(yīng)用于真實世界的網(wǎng)絡(luò)流量數(shù)據(jù)集,并在不同的數(shù)據(jù)集上進行測試和驗證,將有助于更全面地了解系統(tǒng)的性能和可靠性。
(2)異常檢測和未知攻擊。網(wǎng)絡(luò)入侵檢測系統(tǒng)通常通過學(xué)習已知的入侵模式來識別入侵行為。然而,新型的入侵攻擊和未知的異常行為可能無法被系統(tǒng)準確識別。因此,需要進一步研究和開發(fā)針對未知攻擊和異常行為的檢測方法,以提高系統(tǒng)的魯棒性和適應(yīng)性。
(3)模型解釋性和可解釋性。深度學(xué)習模型在網(wǎng)絡(luò)入侵檢測中取得了顯著的性能提升,但其黑盒性質(zhì)限制了對模型決策過程的理解。為了提高系統(tǒng)的可解釋性和可信度,需要研究解釋深度學(xué)習模型的方法,并提供對預(yù)測結(jié)果的合理解釋。
(4)對抗攻擊和魯棒性。網(wǎng)絡(luò)入侵檢測系統(tǒng)可能成為惡意攻擊的目標,攻擊者可能試圖欺騙系統(tǒng)或規(guī)避檢測。因此,需要研究和開發(fā)對抗攻擊的方法,以增強系統(tǒng)的魯棒性和抵抗能力。
總之,設(shè)計和實現(xiàn)網(wǎng)絡(luò)入侵檢測系統(tǒng)是一個復(fù)雜而關(guān)鍵的任務(wù)。需要綜合考慮數(shù)據(jù)集選擇、模型選擇、特征工程、模型解釋性、實時性和可擴展性等因素,以實現(xiàn)高效準確的入侵檢測。同時,還需要注意模型的泛化能力和穩(wěn)定性,在實際場景中進行充分測試和驗證,以確保系統(tǒng)的性能和可用性。未來的研究可以進一步探索網(wǎng)絡(luò)入侵檢測系統(tǒng)的優(yōu)化和改進方法,以適應(yīng)不斷變化的網(wǎng)絡(luò)安全威脅和攻擊手段。
引用格式:盧達 , 馮中華 . 基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測技術(shù)研究 [J]. 通信技術(shù) ,2024,57(5):529-536.
作者簡介 >>>
盧? 達,男,碩士,工程師,主要研究方向為信息安全;
馮中華,男,碩士,高級工程師,主要研究方向為信息安全。
選自《通信技術(shù)》2024年第5期(為便于排版,已省去原文參考文獻
來源:信息安全與通信保密雜志社