高林娥
(運(yùn)城師范高等專(zhuān)科學(xué)校 山西省運(yùn)城市 044000)
傳統(tǒng)入侵檢測(cè)方法選用特征庫(kù)特征匹配或分類(lèi)、聚類(lèi)的方式進(jìn)行學(xué)習(xí),對(duì)特征的依賴(lài)較強(qiáng),且在入侵檢測(cè)過(guò)程中易出現(xiàn)數(shù)據(jù)不均現(xiàn)象,導(dǎo)致入侵檢測(cè)效果不穩(wěn),當(dāng)入侵病毒量較少時(shí),檢測(cè)效果較差。為更好應(yīng)對(duì)網(wǎng)絡(luò)安全管理需求,將深度學(xué)習(xí)的概念融入入侵檢測(cè)中,借助人工神經(jīng)網(wǎng)絡(luò),提升入侵檢測(cè)水平。
人工神經(jīng)網(wǎng)絡(luò)以人造神經(jīng)元為基礎(chǔ),各神經(jīng)元相互連接,完成信號(hào)傳輸、接收和處理。在ANN實(shí)現(xiàn)中,人造神經(jīng)元間傳輸信號(hào)為實(shí)數(shù),隨著學(xué)習(xí)深度的加深,該參數(shù)發(fā)生一定變化,每個(gè)神經(jīng)元均對(duì)應(yīng)一個(gè)閾值,當(dāng)總信號(hào)高于閾值時(shí)借助激勵(lì)函數(shù)完成信號(hào)計(jì)算。一般情況下,人造神經(jīng)元為多層結(jié)構(gòu),每層可能具備不同的轉(zhuǎn)換處理功能。信號(hào)從輸入層進(jìn)入再到輸出層輸出,期間經(jīng)歷多次穿層活動(dòng),最終輸出的結(jié)果受拓?fù)浣Y(jié)構(gòu)影響,節(jié)點(diǎn)間的權(quán)重反映節(jié)點(diǎn)上的映射關(guān)系[1]。該模型擬合復(fù)雜非線(xiàn)性函數(shù)的功能極強(qiáng),依靠帶有標(biāo)記的數(shù)據(jù)即可完成判斷、識(shí)別活動(dòng)。例如,在識(shí)別圖像中,人工神經(jīng)網(wǎng)絡(luò)在深度學(xué)習(xí)過(guò)程中,記憶對(duì)象特征,進(jìn)而判斷圖像是否為目標(biāo)圖像。
人工神經(jīng)元是人工神經(jīng)網(wǎng)絡(luò)的基本單位,其為生物神經(jīng)元的仿真形式,每一神經(jīng)元帶有輸入和輸出兩個(gè)端口,由多個(gè)神經(jīng)元組成的人工神經(jīng)網(wǎng)絡(luò)包括輸入層、輸出層和隱藏層,其中隱藏層指位于輸入層和輸出層之間的全部層級(jí)?,F(xiàn)有人工神經(jīng)網(wǎng)絡(luò)可分為單層、多層前饋、時(shí)間、自組織等類(lèi)型,本文所研究的BP神經(jīng)網(wǎng)絡(luò)即屬于多層前饋神經(jīng)網(wǎng)絡(luò),其使用誤差逆轉(zhuǎn)傳播算法進(jìn)行訓(xùn)練,位于相鄰層級(jí)的神經(jīng)元之間進(jìn)行互通,不存在同層或跨層互通現(xiàn)象,因此不出現(xiàn)環(huán)狀結(jié)構(gòu)。
BP神經(jīng)網(wǎng)絡(luò)為一種多層前饋神經(jīng)網(wǎng)絡(luò),前后層神經(jīng)元相連接,深度神經(jīng)元一般由輸入層、隱藏層及輸出層構(gòu)成,每層均含有多個(gè)神經(jīng)元,其訓(xùn)練可分為正向、反向兩個(gè)過(guò)程。正向過(guò)程中,信息從輸入層進(jìn)入,受隱藏層處理后,由輸出層給出實(shí)際值,若計(jì)算誤差未達(dá)標(biāo),則需要進(jìn)入反向過(guò)程。反向傳輸結(jié)合誤差,從輸出層進(jìn)入,在隱藏層完成網(wǎng)絡(luò)權(quán)值及閾值的修改再傳輸至輸入層,然后借助新的權(quán)值和閾值再次進(jìn)行正向傳播。通過(guò)BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練可有效降低其傳輸誤差,當(dāng)誤差足夠低時(shí),才能得到最優(yōu)分類(lèi)結(jié)果,同時(shí)BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果達(dá)到最佳。最常用的BP神經(jīng)網(wǎng)絡(luò)誤差優(yōu)化函數(shù)方法為梯度下降算法,該算法可分為全量梯度下降算法、隨機(jī)梯度下降算法及批量梯度下降算法。
基于人工神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)方法指利用已有樣本集訓(xùn)練神經(jīng)網(wǎng)絡(luò)分類(lèi)器,使其具備初始檢測(cè)的功能。將待檢測(cè)數(shù)據(jù)輸入神經(jīng)網(wǎng)絡(luò),通過(guò)分析和計(jì)算,在輸出端得出檢測(cè)結(jié)果。在人工神經(jīng)網(wǎng)絡(luò)自身屬性的影響下,基于人工神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)方法具備自主學(xué)習(xí)功能,檢測(cè)效率上存在突出優(yōu)勢(shì)。
本文研究的入侵檢測(cè)模型基于CIDF通用入侵檢測(cè)框架,該框架可分為事件產(chǎn)生器、事件分析器、響應(yīng)單元和事件數(shù)據(jù)庫(kù)。其中,事件產(chǎn)生器完成數(shù)據(jù)采集工作,事件分析器對(duì)數(shù)據(jù)進(jìn)行分析和判斷,相應(yīng)單元結(jié)合判斷結(jié)果給出相應(yīng)的響應(yīng)處理。該入侵檢測(cè)系統(tǒng)由底層網(wǎng)絡(luò)數(shù)據(jù)包提供事件數(shù)據(jù),收集并整理數(shù)據(jù)包中數(shù)據(jù),根據(jù)網(wǎng)絡(luò)通信原理,可得到網(wǎng)絡(luò)連接的局部特征,利用神經(jīng)網(wǎng)絡(luò)對(duì)特征進(jìn)行分析,即可實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)入侵的檢測(cè)。
基于BP神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)分為嗅探器、數(shù)據(jù)審計(jì)模塊和數(shù)據(jù)檢測(cè)模塊。嗅探器從網(wǎng)卡獲取原始網(wǎng)絡(luò)數(shù)據(jù)包,并對(duì)其中信息進(jìn)行分析,如IP地址、協(xié)議等,將采集到的數(shù)據(jù)實(shí)時(shí)傳輸至數(shù)據(jù)審計(jì)模塊。數(shù)據(jù)審計(jì)模塊主要功能有二,第一,審計(jì)從嗅探器發(fā)來(lái)的數(shù)據(jù),通過(guò)整理和分析,從中提取特征值,并將其轉(zhuǎn)換為單條連接的形式傳輸至數(shù)據(jù)檢測(cè)模塊;第二,接收數(shù)據(jù)檢測(cè)模塊的檢測(cè)反饋,結(jié)合結(jié)果給出相應(yīng)的處理。數(shù)據(jù)審計(jì)模塊設(shè)計(jì)對(duì)交互界面的要求較高。數(shù)據(jù)檢測(cè)模塊負(fù)責(zé)檢測(cè)由審計(jì)模塊發(fā)來(lái)的數(shù)據(jù),當(dāng)使用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行入侵檢測(cè)時(shí),采用KDD CUP99數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù)來(lái)源。
2.3.1 嗅探器設(shè)計(jì)
嗅探器的開(kāi)發(fā)使用JAVA語(yǔ)言,在eclipse環(huán)境中進(jìn)行。完成開(kāi)發(fā)環(huán)境配置后,進(jìn)行嗅探器功能編程。
數(shù)據(jù)包獲取主要類(lèi)型包括Jpcap Captor、Network Interface和Packet。以Network Interface類(lèi)為例,其中包括網(wǎng)卡的name、description等屬性,可通過(guò)這些屬性進(jìn)行網(wǎng)卡辨別。
數(shù)據(jù)包捕獲完成后,對(duì)其內(nèi)容、結(jié)構(gòu)進(jìn)行分析,分析對(duì)象主要是位于網(wǎng)絡(luò)層的數(shù)據(jù)包,如IP、TCP、UDP等數(shù)據(jù)包。在獲取某一數(shù)據(jù)包后,分析其是否為IP數(shù)據(jù)包,若是,則將Packet對(duì)象轉(zhuǎn)化為IPPacket對(duì)象,獲取成員信息。在完成IP數(shù)據(jù)包協(xié)議字段解析后,還需對(duì)其類(lèi)型作進(jìn)一步的明確,若協(xié)議字段為6,則判斷為T(mén)CP數(shù)據(jù)包;若字段為17,則為UDP數(shù)據(jù)包。如表1所示為常見(jiàn)協(xié)議字段值。
表1:常見(jiàn)協(xié)議字段值
本文研究的基于BP神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)方法,主要涉及到IP協(xié)議和TCP協(xié)議。在IP協(xié)議的數(shù)據(jù)包結(jié)構(gòu)中,報(bào)表長(zhǎng)度為4位、總長(zhǎng)度占2個(gè)字節(jié),以上數(shù)據(jù)分別對(duì)應(yīng)報(bào)頭長(zhǎng)度及包含數(shù)據(jù)報(bào)文的總長(zhǎng)度。報(bào)文的標(biāo)志、標(biāo)識(shí)及分段偏移量可用來(lái)表示報(bào)文的分組信息,協(xié)議號(hào)則對(duì)應(yīng)數(shù)據(jù)報(bào)的協(xié)議,IP源地址及目的地址均為其數(shù)據(jù)報(bào)中含有的基本信息。而TCP數(shù)據(jù)報(bào)源端口號(hào)及目的端口號(hào)均占用2個(gè)字節(jié),序號(hào)和確認(rèn)號(hào)占用4個(gè)字節(jié),URG表示加急包,ACK表示確認(rèn),PSH為立刻發(fā)送,RST表示連接重置,SYN表示連接同步,F(xiàn)IN表示連接中止請(qǐng)求。窗口占2個(gè)字節(jié),可表示窗口大小。
數(shù)據(jù)包信息分析頒布后,需將信息傳輸至數(shù)據(jù)審計(jì)模塊。網(wǎng)絡(luò)情況檢查等問(wèn)題會(huì)導(dǎo)致重復(fù)數(shù)據(jù)包的出現(xiàn),因此在傳輸之前需對(duì)重復(fù)數(shù)據(jù)包進(jìn)行過(guò)濾,過(guò)濾方式為:記錄數(shù)據(jù)包的MF、DF、ident和offset,再根據(jù)以上信息判斷是否為重復(fù)數(shù)據(jù)包,若是,則僅發(fā)送一次信息。使用Socket編程完成數(shù)據(jù)包數(shù)據(jù)信息的發(fā)送,當(dāng)兩項(xiàng)數(shù)據(jù)包發(fā)送完成后,都表現(xiàn)為包括IP頭部分的9種特征數(shù)據(jù),TCP數(shù)據(jù)包為20種特征數(shù)據(jù)。
2.3.2 數(shù)據(jù)審計(jì)模塊設(shè)計(jì)
數(shù)據(jù)審計(jì)模塊為入侵檢測(cè)系統(tǒng)的數(shù)據(jù)處理中心,完成數(shù)據(jù)分析、反饋、存儲(chǔ)和展示活動(dòng)。
(1)信息審計(jì)。將嗅探器傳輸回的數(shù)據(jù)包存儲(chǔ)在數(shù)據(jù)庫(kù)當(dāng)中,并對(duì)數(shù)據(jù)包信息進(jìn)行整理,從中提取連接信息,再將連接信息與連接過(guò)程相結(jié)合,提取每條連接信息的特征值。TCP傳輸過(guò)程分為三個(gè)環(huán)節(jié)。第一,建立TCP連接。客戶(hù)端向服務(wù)端發(fā)送帶有STN標(biāo)志、初始序號(hào)為1000、不帶數(shù)據(jù)的段1,提出連接請(qǐng)求。服務(wù)端接收到請(qǐng)求后,傳回帶有SYN標(biāo)志及ACK標(biāo)志、初始序列號(hào)為8000的段2,確認(rèn)序號(hào)1001,反饋服務(wù)端接收請(qǐng)求并發(fā)起連接??蛻?hù)端收到連接提醒后,反饋帶有ACK標(biāo)志的段3,表明已接收連接。數(shù)據(jù)連接完成后,全部數(shù)據(jù)包的ack位置均為1,證明序號(hào)有效。第二,TCP傳輸??蛻?hù)端向服務(wù)端發(fā)送初始序號(hào)1001、確認(rèn)序號(hào)8001及含有20字節(jié)的段4,成功接收后,傳回確認(rèn)序號(hào)1021及帶10個(gè)字節(jié)的段5,表明已收到[2]。客戶(hù)端再向服務(wù)端傳輸8011的段6進(jìn)行確認(rèn)。第三,終止連接??蛻?hù)端發(fā)送帶有FIN標(biāo)志的段7提出斷開(kāi)連接請(qǐng)求,服務(wù)端發(fā)送帶有ACK標(biāo)志的段8及帶有FIN標(biāo)志的段9及段10進(jìn)行確認(rèn)并終止連接。
(2)特征提取。數(shù)據(jù)包整理后可獲取大量連接信息,為使其服務(wù)于入侵檢測(cè),需從連接信息中提取特征值。特征值提取與入侵檢測(cè)精度直接相關(guān),因此選取KDD CUP99數(shù)據(jù)集中的41維特征值,可分為T(mén)CP連接基本特征、內(nèi)容特征、基于2S時(shí)間內(nèi)的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征和基于前100個(gè)連接中的主機(jī)網(wǎng)絡(luò)流量統(tǒng)計(jì)特征。TCP連接基本特征可通過(guò)更新連接狀態(tài)來(lái)獲得,依照端口號(hào)判斷其服務(wù)類(lèi)型。TPC連接的內(nèi)容特征需在數(shù)據(jù)包數(shù)據(jù)解析中獲得,現(xiàn)有可參考資料非常有限,一般確認(rèn)為0。基于2S時(shí)間內(nèi)的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征在連接信息統(tǒng)計(jì)中獲取。
(3)交互界面設(shè)計(jì)。考慮到程序開(kāi)發(fā)的便捷性,數(shù)據(jù)審計(jì)模塊使用C#在Visual Studio2012環(huán)境下進(jìn)行開(kāi)發(fā)。交互界面主要用于顯示連接信息及入侵檢測(cè)系統(tǒng)的連接響應(yīng)判斷結(jié)果。交互界面為入侵檢測(cè)系統(tǒng)發(fā)生人機(jī)交互的核心,其設(shè)計(jì)應(yīng)結(jié)合用戶(hù)使用習(xí)慣及要求進(jìn)行,保證內(nèi)容呈現(xiàn)清晰、簡(jiǎn)潔。
(4)數(shù)據(jù)庫(kù)選擇。本文設(shè)計(jì)的入侵檢測(cè)系統(tǒng)選用SQLsever 2008數(shù)據(jù)庫(kù),分為攻擊統(tǒng)計(jì)數(shù)據(jù)、網(wǎng)絡(luò)會(huì)話(huà)記錄、網(wǎng)絡(luò)連接內(nèi)容、數(shù)據(jù)流量統(tǒng)計(jì)、原始數(shù)據(jù)包等存儲(chǔ)模塊。
2.3.3 數(shù)據(jù)檢測(cè)模塊設(shè)計(jì)
數(shù)據(jù)檢測(cè)模塊成為入侵檢測(cè)核心任務(wù),能夠準(zhǔn)確、及時(shí)辨別攻擊數(shù)據(jù),以保證入侵檢測(cè)系統(tǒng)穩(wěn)定發(fā)揮作用。
(1)數(shù)據(jù)預(yù)處理。數(shù)據(jù)預(yù)處理對(duì)來(lái)自數(shù)據(jù)審計(jì)模塊的信息進(jìn)行數(shù)值化、標(biāo)準(zhǔn)化、特征選擇、特征提取等操作,形成標(biāo)準(zhǔn)化的數(shù)據(jù)集。例如,數(shù)據(jù)數(shù)值化對(duì)KDD CUP99數(shù)據(jù)集中41項(xiàng)特征值中的協(xié)議、目標(biāo)主機(jī)網(wǎng)絡(luò)服務(wù)、連接狀態(tài)及類(lèi)標(biāo)簽進(jìn)行處理,采用將字符轉(zhuǎn)化為數(shù)值的方式完成處理過(guò)程。數(shù)據(jù)標(biāo)準(zhǔn)化則依照一定方法對(duì)數(shù)據(jù)進(jìn)行收縮處理,使其位于有限范圍內(nèi),常用處理方法包括最小最大標(biāo)準(zhǔn)化、小數(shù)定標(biāo)標(biāo)準(zhǔn)化等,其目的是將各項(xiàng)數(shù)據(jù)置于同一數(shù)量級(jí),以便進(jìn)行綜合分析。
(2)檢測(cè)算法設(shè)計(jì)。BP神經(jīng)網(wǎng)絡(luò)自帶權(quán)重和與閾值,閾值作用于不同的映射函數(shù)可產(chǎn)生不同的映射效果,甚至可順利反映無(wú)法用數(shù)學(xué)方式進(jìn)行描述的關(guān)系。借助誤差公式及權(quán)重積分,可不斷對(duì)權(quán)重進(jìn)行修改,逐漸降低誤差。神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)至少包括三層,設(shè)某相鄰兩層的i、j節(jié)點(diǎn)權(quán)重為ωij,不同節(jié)點(diǎn)j的閾值為bj,輸出值為xj。使用如下公式可計(jì)算出每個(gè)節(jié)點(diǎn)的輸出值:當(dāng)權(quán)重賦值在0~1時(shí),完成權(quán)重初始化并依照順序輸入相關(guān)數(shù)值,得到的激活函數(shù)圖像表現(xiàn)為S形[3]。函數(shù)遞增、遞減趨勢(shì)表現(xiàn)相對(duì)平坦,覆蓋率高、微分效果好,相較于線(xiàn)性函數(shù)更加精準(zhǔn),適用于BP算法。最終的輸出函數(shù)為線(xiàn)性形式,證明至少存在一個(gè)隱藏層S形函數(shù)及線(xiàn)性函數(shù)可逼近全部輸出值。
(3)檢測(cè)模塊實(shí)現(xiàn)。在JAVA環(huán)境中完成模塊開(kāi)發(fā),主程序完成配置文件讀取、訓(xùn)練數(shù)據(jù)集加載、神經(jīng)網(wǎng)絡(luò)分類(lèi)器搭建、待檢測(cè)數(shù)據(jù)監(jiān)測(cè)、數(shù)據(jù)檢測(cè)等工作,使用BP神經(jīng)網(wǎng)絡(luò)分類(lèi)器劃分連接數(shù)據(jù)并返回分類(lèi)結(jié)果。數(shù)據(jù)檢測(cè)模塊的實(shí)現(xiàn)流程如下:訓(xùn)練神經(jīng)網(wǎng)絡(luò)并搭建分類(lèi)器,接收審計(jì)模塊傳輸回的流量特征數(shù)據(jù)并給出分類(lèi)結(jié)果,將結(jié)果傳輸回審計(jì)模塊。BP神經(jīng)網(wǎng)絡(luò)通過(guò)自主學(xué)習(xí),可實(shí)現(xiàn)數(shù)據(jù)檢測(cè)模塊功能的自主優(yōu)化,以適應(yīng)更復(fù)雜的入侵檢測(cè)需求。
系統(tǒng)測(cè)試可驗(yàn)證基于BP神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)方法是否能夠充分達(dá)到其預(yù)設(shè)功能、運(yùn)行狀態(tài)是否穩(wěn)定。在常規(guī)測(cè)試活動(dòng)中,可將不同模塊安裝至不同機(jī)器上,多個(gè)主機(jī)同時(shí)運(yùn)行。但由于本次系統(tǒng)測(cè)試主要檢驗(yàn)其功能性,因此將各個(gè)模塊放置在統(tǒng)一機(jī)器上。
使用的計(jì)算機(jī)處理器為Intel(R)Core(TM)i7-7700HQ CPU@ 2.80GHz,操作系統(tǒng)為Windows 10,借助WinPcap進(jìn)行嗅探器測(cè)試。
3.2.1 嗅探器測(cè)試
在計(jì)算機(jī)中運(yùn)行嗅探器程序時(shí),界面出現(xiàn)計(jì)算機(jī)網(wǎng)卡列表,結(jié)合提示選取相應(yīng)的網(wǎng)卡,嗅探器在接收到審計(jì)端開(kāi)始指令后進(jìn)行數(shù)據(jù)包抓取并完成信息傳輸。運(yùn)行過(guò)程中,數(shù)據(jù)庫(kù)內(nèi)存有大量數(shù)據(jù)包特征及鏈接特征,證明嗅探器數(shù)據(jù)采集功能達(dá)標(biāo)。
3.2.2 數(shù)據(jù)審計(jì)模塊測(cè)試
啟動(dòng)檢測(cè)響應(yīng)平臺(tái)后,界面出現(xiàn)實(shí)時(shí)連接信息及當(dāng)前的真實(shí)檢測(cè)結(jié)果,根據(jù)檢測(cè)結(jié)果可判斷設(shè)計(jì)模塊運(yùn)行正常,審計(jì)響應(yīng)端順利完成待檢數(shù)據(jù)發(fā)送,并接收來(lái)自檢測(cè)平臺(tái)的反饋數(shù)據(jù),給出準(zhǔn)確的流量數(shù)據(jù)檢測(cè)結(jié)果。
3.2.3 數(shù)據(jù)檢測(cè)模塊測(cè)試
系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)檢測(cè)功能時(shí),應(yīng)完成檢測(cè)算法效果的評(píng)估,并對(duì)數(shù)據(jù)傳輸過(guò)程進(jìn)行測(cè)試,檢測(cè)結(jié)果正常。
總體看來(lái),方案中設(shè)計(jì)的入侵檢測(cè)功能可基本實(shí)現(xiàn),且能夠正常運(yùn)行。由于該入侵檢測(cè)方案還未在真實(shí)的網(wǎng)絡(luò)環(huán)境中長(zhǎng)時(shí)間運(yùn)行,因此檢測(cè)結(jié)果還存在一定局限,但基本達(dá)到設(shè)計(jì)預(yù)期。
基于人工神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)被設(shè)計(jì)為嗅探器、數(shù)據(jù)審計(jì)和數(shù)據(jù)檢測(cè)三個(gè)模塊,深度學(xué)習(xí)與網(wǎng)絡(luò)安全管理的結(jié)合有利于二者的同步發(fā)展。借助深度學(xué)習(xí),不斷提高網(wǎng)絡(luò)安全管理水平,同時(shí)給人工神經(jīng)網(wǎng)絡(luò)帶來(lái)更大的發(fā)展空間。為應(yīng)對(duì)不斷復(fù)雜的網(wǎng)絡(luò)入侵手段,入侵檢測(cè)需動(dòng)態(tài)化發(fā)展,圍繞人工神經(jīng)網(wǎng)絡(luò),研究更多高效防御方法。