劉楚鴻 汪培萍
【摘要】? ? 隨著計(jì)算機(jī)網(wǎng)絡(luò)的不斷發(fā)展,越來(lái)越多的用戶使用計(jì)算機(jī),從而給黑客入侵網(wǎng)絡(luò)提供了機(jī)會(huì),網(wǎng)絡(luò)的安全時(shí)刻面臨著威脅。入侵檢測(cè)技術(shù)是一種可以主動(dòng)防御網(wǎng)絡(luò)安全技術(shù),它對(duì)網(wǎng)絡(luò)的數(shù)據(jù)傳輸進(jìn)行實(shí)時(shí)的監(jiān)控,當(dāng)發(fā)現(xiàn)有可疑數(shù)據(jù)時(shí),及時(shí)發(fā)出警報(bào)或者采取主動(dòng)防御措施。傳統(tǒng)的入侵檢測(cè)技術(shù)誤報(bào)率高,自適應(yīng)能力不足。因此,本文將自動(dòng)編碼器(Auto-Encoder)應(yīng)用到入侵檢測(cè)系統(tǒng)中去,基于Tensorflow-GPU 實(shí)現(xiàn)了該方法,并在Nvidia GTX 1060 6GB的GPU上 ,使用KDD數(shù)據(jù)集進(jìn)行了評(píng)估.實(shí)驗(yàn)表明,檢測(cè)準(zhǔn)確率達(dá)到99%。
【關(guān)鍵詞】? ? 計(jì)算機(jī)網(wǎng)絡(luò)? ? 入侵檢測(cè)? ? 自動(dòng)編碼器? ? KDD
引言
現(xiàn)如今,計(jì)算機(jī)網(wǎng)絡(luò)受到的攻擊越來(lái)越多,一種常見(jiàn)的計(jì)算機(jī)網(wǎng)絡(luò)安全系統(tǒng)是網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(NIDS)。NIDS通過(guò)監(jiān)視每個(gè)網(wǎng)絡(luò)信道是否存在異常行為,當(dāng)檢測(cè)到異常行為時(shí),及時(shí)發(fā)出警報(bào)或者采取主動(dòng)防御措施。很多的機(jī)器學(xué)習(xí)技術(shù)被應(yīng)用在NIDS以提高檢測(cè)性能。最流行的方法是使用人工神經(jīng)網(wǎng)絡(luò)(ANN)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)檢測(cè)。使用人工神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)是能夠?qū)W習(xí)復(fù)雜非線性的數(shù)據(jù),與其他的機(jī)器算法相比,在檢測(cè)的性能有著很大的優(yōu)勢(shì)。
使用人工神經(jīng)網(wǎng)絡(luò)作為網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(NIDS)的方法是訓(xùn)練它將網(wǎng)絡(luò)數(shù)據(jù)分類(lèi)為正常數(shù)據(jù)或者異常數(shù)據(jù)。而使用人工神經(jīng)網(wǎng)絡(luò)作為異常檢測(cè)系統(tǒng)不能對(duì)原始數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,并且監(jiān)督學(xué)習(xí)的訓(xùn)練方式導(dǎo)致了系統(tǒng)具有高復(fù)雜性。本文開(kāi)發(fā)一種基于自動(dòng)編碼器集合的網(wǎng)絡(luò)入侵檢測(cè)器,該系統(tǒng)使用一組小型神經(jīng)網(wǎng)絡(luò)(自動(dòng)編碼器),比單個(gè)自動(dòng)編碼器在相同的特征空間中更有效,并且可以更小的噪聲。它們可以在無(wú)監(jiān)督的情況下進(jìn)行訓(xùn)練;并且在重建不好的情況下,它們可以用于異常檢測(cè)。實(shí)驗(yàn)表明,使用該方法能夠提高檢測(cè)準(zhǔn)確率。
一、基于自動(dòng)編碼器集合的入侵檢測(cè)系統(tǒng)
深度學(xué)習(xí)可以自動(dòng)從原始數(shù)據(jù)中學(xué)習(xí)特征來(lái)提高分類(lèi)器的準(zhǔn)確率。Lecun等人概括了機(jī)器學(xué)習(xí)的基本架構(gòu),即特征提取模塊與分類(lèi)器模塊。本文提出的基于自動(dòng)編碼器集合的在線入侵檢測(cè)系統(tǒng)也基于此方法,組成如圖1所示,主要由數(shù)據(jù)預(yù)處理模塊、特征學(xué)習(xí)模塊、異常檢測(cè)模塊組成。
1.1數(shù)據(jù)預(yù)處理模塊
數(shù)據(jù)預(yù)處理模塊首先將原始數(shù)據(jù)進(jìn)行特征化處理,其中包括:文本特征的數(shù)值化和數(shù)據(jù)特征的標(biāo)準(zhǔn)化等。本文采用基于數(shù)據(jù)填充算法的轉(zhuǎn)換方法,其轉(zhuǎn)換過(guò)程如圖2所示,在保留單個(gè)初始樣本X中全部信息的基礎(chǔ)上,對(duì)初始樣本進(jìn)行特征擴(kuò)展,并且使用隨機(jī)的正態(tài)分布來(lái)填充擴(kuò)充得到的特征。該辦法相對(duì)簡(jiǎn)單,并且容易實(shí)現(xiàn)。
圖2? ? 數(shù)據(jù)轉(zhuǎn)換算法
數(shù)據(jù)輸入的特征(維度)所在的數(shù)值范圍往往都是不一致的,意味著數(shù)據(jù)存在偏差,不利于神經(jīng)網(wǎng)絡(luò)的處理,因此在數(shù)據(jù)預(yù)處理階段進(jìn)行標(biāo)準(zhǔn)化處理。本文采用主流零-均值規(guī)范化(Z-Score)的方法,如式1所示。
a為樣本總數(shù),xi為標(biāo)準(zhǔn)化前樣本數(shù)據(jù)某一維度的特征值,為標(biāo)準(zhǔn)化之后樣本數(shù)據(jù)所對(duì)應(yīng)維度的特征值。
1.2特征學(xué)習(xí)模塊
1.2.1在網(wǎng)絡(luò)異常檢測(cè)中,提取捕獲每個(gè)穿越網(wǎng)絡(luò)的數(shù)據(jù)包的上下文及目的的特征至關(guān)重要
從網(wǎng)絡(luò)流量中提取特征的挑戰(zhàn)是:
(1)來(lái)自不同信道輸入(對(duì)話)的分組是交錯(cuò)的,
(2)在任何時(shí)刻可能有多個(gè)信道,
(3)分組到達(dá)率很高。
本文采用了一個(gè)特征提取框架,用于通過(guò)動(dòng)態(tài)數(shù)量的數(shù)據(jù)流(網(wǎng)絡(luò)通道)進(jìn)行時(shí)間統(tǒng)計(jì)的高速特征提取。該框架內(nèi)存占用量小,因?yàn)樗褂迷谧枘岽翱谏暇S護(hù)的增量統(tǒng)計(jì)信息。使用阻尼窗口意味著提取的特征是暫時(shí)的(捕獲數(shù)據(jù)包通道的最終行為),并且當(dāng)阻尼權(quán)重變?yōu)榱銜r(shí)(節(jié)省額外內(nèi)存),可以刪除增量統(tǒng)計(jì)數(shù)據(jù)。
阻尼增量統(tǒng)計(jì):設(shè)S={x1,x2,....................}是一個(gè)無(wú)界數(shù)據(jù)流,其中xi∈R。S的均值、方差和標(biāo)準(zhǔn)差可以通過(guò)保持元組IS=(N,LS,SS),(其中N,LS和SS是實(shí)例的個(gè)數(shù)、線性和平方和)逐步更新。具體來(lái)說(shuō),將xi插入IS的更新過(guò)程如式2所示:
任何給定時(shí)間的統(tǒng)計(jì)數(shù)據(jù)是
為了提取數(shù)據(jù)流的當(dāng)前行為,就必須拋棄舊的實(shí)例。解決這一問(wèn)題的方法是使用受抑制的增量統(tǒng)計(jì)數(shù)據(jù)。在阻尼窗口模型中,舊值的權(quán)重隨時(shí)間呈指數(shù)遞減。設(shè)d為衰減函數(shù),定義為式
其中λ>0是衰變因子,t是從Si流中最后一次觀察到的時(shí)間。阻尼增量統(tǒng)計(jì)的元組定義為ISiλ。ISiλ=(ω,LS,SS,SRij,Tlast),ω是當(dāng)前權(quán)重,Tlast是ISiλ是上一次更新的時(shí)間戳。
SRij是流i和j之間的剩余積之和(用于計(jì)算2D統(tǒng)計(jì)量),在時(shí)間tcur更新具有Xcur的ISλ,執(zhí)行算法1
1.2.2 特征映射器
特征映射器的目的是將x的n個(gè)特征(維度)映射到k個(gè)較小的子實(shí)例中,每個(gè)異常檢測(cè)模塊集成層中的每個(gè)自動(dòng)編碼器都有一個(gè)子實(shí)例。
設(shè)v表示k個(gè)子實(shí)例的有序集。v={,,......,};v的子實(shí)例可以看作是域X的子空間。為了確保異常檢測(cè)模塊中的工作有效且復(fù)雜度低,要求所選映射f()=v,確保每個(gè)都不超過(guò)m個(gè)特征,其中m是系統(tǒng)的用戶定義參數(shù),參數(shù)m影響集合的整體復(fù)雜性;將中的每個(gè)n個(gè)特征精確映射一次到v中的特征,將X的特征(維數(shù))逐步聚類(lèi)到不大于m的k群中,從而找到映射f。通過(guò)對(duì)增量更新的摘要數(shù)據(jù)執(zhí)行聚集層次聚類(lèi)來(lái)實(shí)現(xiàn)這一點(diǎn)。特征映射器的特征映射算法執(zhí)行以下步驟:
(1)在訓(xùn)練模式下,增量更新摘要統(tǒng)計(jì)數(shù)據(jù)的實(shí)例特性;
(2)當(dāng)訓(xùn)練模式結(jié)束時(shí),對(duì)統(tǒng)計(jì)信息執(zhí)行分層聚類(lèi)以形成f;
(3)在執(zhí)行模式下,執(zhí)行f()=v,并將v傳遞給異常檢測(cè)模塊;
1.3異常檢測(cè)模塊
異常檢測(cè)模塊由兩層的自動(dòng)編碼器組成,集成層與輸出層。
集成層:
一組有序的三層自動(dòng)編碼器,該層負(fù)責(zé)測(cè)量v中每個(gè)子空間(實(shí)例)的獨(dú)立異常。在訓(xùn)練模式期間,自動(dòng)編碼器學(xué)習(xí)其各自子空間的正常行為。在訓(xùn)練模式和執(zhí)行模式下,每個(gè)自動(dòng)編碼器向輸出層報(bào)告其RMSE重構(gòu)錯(cuò)誤。
輸出層:
一種三層自動(dòng)編碼器,它學(xué)習(xí)集成層的正常(即訓(xùn)練模式)的RMSE。考慮子空間異常與網(wǎng)絡(luò)流量中自然產(chǎn)生的噪聲之間的關(guān)系,該層負(fù)責(zé)生成最終的異常評(píng)分。
當(dāng)異常檢測(cè)器從特征映射器接收到第一組映射實(shí)例V是,異常檢測(cè)器使用實(shí)例V作為模型初始化異常檢測(cè)器的結(jié)構(gòu)。
具體來(lái)說(shuō),θ表示整個(gè)自動(dòng)編碼器,設(shè)L(1)和L(2)分別表示集合層和輸出層。L(1)定義為有序集L(1)={θ1,θ2,.....θk}。
自動(dòng)編碼器θi∈L(1)有三層神經(jīng)元:隱層神經(jīng)元()在輸入與輸出層,與內(nèi)層神經(jīng)元β.(),β∈(0,1]。圖3說(shuō)明了∈V與∈L(1)之間的映射。
L(2)被定義為具有K個(gè)輸入和輸出神經(jīng)元的單個(gè)自編碼器θ0,以及[K*β]內(nèi)神經(jīng)元。L(2)的輸入是來(lái)自L(1)中每個(gè)自動(dòng)編碼器歸一化RMSE誤差信號(hào)。
在L(1)中發(fā)送每個(gè)自動(dòng)編碼器的聚合錯(cuò)誤(RMSE)信號(hào),而不是來(lái)自L(1)的每個(gè)單個(gè)神經(jīng)元的信號(hào),從而降低了網(wǎng)絡(luò)的復(fù)雜性。
利用均勻分布的隨機(jī)值初始化了自動(dòng)編碼器θ i的權(quán)值。
自動(dòng)編碼器的訓(xùn)練算法如下:
在執(zhí)行模式下,自動(dòng)編碼器不更新任何內(nèi)部參數(shù)。并且在整個(gè)網(wǎng)絡(luò)中執(zhí)行前向傳播,并返回L(2)的RMSE重構(gòu)錯(cuò)誤。算法3給出了執(zhí)行的過(guò)程。
異常檢測(cè)器的輸出是RMSE異常分?jǐn)?shù)S∈[0,∞],s越大則異常概率越大。要使用S,必須確定異常分?jǐn)?shù)截止閾值φ。在所有實(shí)例都代表正常的流量情況下,將φ設(shè)置為訓(xùn)練模式中看到的最大分?jǐn)?shù)。
另一種方法是按概率選擇φ,具體而言將L(1)輸出的RMSE分?jǐn)?shù)擬合為記錄正?;蚍菢?biāo)準(zhǔn)分布,L(2)如果s發(fā)生的概率非常低,則提出警報(bào)。本文根據(jù)其原始的RMSE分?jǐn)?shù)來(lái)評(píng)估異常檢測(cè)器的檢測(cè)能力。
二、實(shí)驗(yàn)結(jié)果分析
本文采用KDDCup99數(shù)據(jù)集用來(lái)檢測(cè)算法的可行性,該數(shù)據(jù)集中,每一個(gè)連接有41個(gè)固定特征屬性和1個(gè)類(lèi)標(biāo)識(shí),在41個(gè)特征屬性中有9個(gè)為離散(symbolic)型,其余均為連續(xù)(continuous)型,類(lèi)標(biāo)識(shí)用于表示具體的攻擊類(lèi)型;KDDCup99將入侵的行為分為DOS、R2L、U2L、Probing。
本文對(duì)10%的樣本進(jìn)行分析,其中包含495651個(gè)訓(xùn)練樣本以及312029個(gè)測(cè)試樣本,各類(lèi)的入侵行為的分類(lèi)如表1所示。
本文使用入侵檢測(cè)準(zhǔn)確率作為檢測(cè)異常檢測(cè)器的指標(biāo),其中準(zhǔn)確率的計(jì)算公式如下所示:
A為準(zhǔn)確率,TP和TN分別表示正確分類(lèi)的攻擊樣本和正確分類(lèi)的正常樣本,F(xiàn)P和FN表示錯(cuò)誤分類(lèi)的攻擊樣本和錯(cuò)誤分類(lèi)的正常樣本。
把入侵的數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)預(yù)處理模塊處理后,經(jīng)過(guò)自動(dòng)編碼器集合的異常檢測(cè)器后,得到的批處理數(shù)據(jù)量的準(zhǔn)確率如表2所示。
從表2中的結(jié)果可以得到,當(dāng)epoch的數(shù)目越大,入侵檢測(cè)的準(zhǔn)確率就越高。
三、結(jié)論
隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,越來(lái)越多的用戶使用計(jì)算機(jī)網(wǎng)絡(luò),從而給黑客入侵網(wǎng)絡(luò)提供了機(jī)會(huì),網(wǎng)絡(luò)的安全面臨著威脅。入侵檢測(cè)技術(shù)是一種可以主動(dòng)防御網(wǎng)絡(luò)安全技術(shù),能對(duì)網(wǎng)絡(luò)的數(shù)據(jù)傳輸進(jìn)行實(shí)時(shí)的監(jiān)控,當(dāng)發(fā)現(xiàn)可疑數(shù)據(jù)時(shí),及時(shí)發(fā)出警報(bào)或者采取主動(dòng)防御措施。
本文提出的基于自動(dòng)編碼器集合的入侵檢測(cè)技術(shù),基于Tensorflow-GPU實(shí)現(xiàn)了系統(tǒng)模型的代碼,并在Nvidia GTX 1060 6GB的GPU完成了模型在KDD標(biāo)準(zhǔn)入侵檢測(cè)數(shù)據(jù)集上的測(cè)試。
實(shí)驗(yàn)表明,該模型對(duì)攻擊的檢測(cè)取得較好的檢測(cè)性能,檢測(cè)準(zhǔn)確率達(dá)到99%。
參? 考? 文? 獻(xiàn)
[1] Evaluation of anomaly-based IDS for mobile devices using machine learning classifiers[J]. Security and Communication Networks, 2012, 5(1):3-14.
[2] Buczak A L , Member, IEEE, et al. A Survey of Data Mining and Machine Learning Methods for Cyber Security Intrusion Detection[J]. IEEE Communications Surveys & Tutorials, 2017, 18(2):1153-1176.
[3]高妮, 賀毅岳, 高嶺. 海量數(shù)據(jù)環(huán)境下用于入侵檢測(cè)的深度學(xué)習(xí)方法[J]. 計(jì)算機(jī)應(yīng)用研究, 2018, 35(4):1197-1200.
[4]鄧俊鋒, 張曉龍. 基于自動(dòng)編碼器組合的深度學(xué)習(xí)優(yōu)化方法[J]. 計(jì)算機(jī)應(yīng)用, 2016, 36(3):697-702.
[5]王艷華, 馬志強(qiáng), 臧露. 入侵檢測(cè)技術(shù)在網(wǎng)絡(luò)安全中的應(yīng)用與研究[J]. 信息技術(shù), 2009(6):41-44.
[6]潘志松. 基于神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)研究[D]. 南京航空航天大學(xué), 2003.
[7]基于自動(dòng)編碼器的半監(jiān)督表示學(xué)習(xí)與分類(lèi)學(xué)習(xí)研究[D]. 重慶大學(xué), 2015.