[杜翠鳳]
隨著物聯(lián)網(wǎng)技術(shù)的高速發(fā)展,物聯(lián)網(wǎng)終端設(shè)備的大量接入以及邊云架構(gòu)的引入使得網(wǎng)絡(luò)環(huán)境更加復(fù)雜,特別是在各層網(wǎng)絡(luò)中會(huì)產(chǎn)生多維度、非線性的流量數(shù)據(jù),讓傳統(tǒng)的防火墻感到無(wú)能為力。作為補(bǔ)充防火墻檢測(cè)的動(dòng)態(tài)安全防御核心機(jī)制——入侵檢測(cè),其由于能夠檢測(cè)物聯(lián)網(wǎng)中潛在的入侵行為,能夠有效彌補(bǔ)防火墻防御能力的不足。但是,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,高速傳輸?shù)臄?shù)據(jù)流具有無(wú)序性、動(dòng)態(tài)性、突發(fā)性以及數(shù)據(jù)量大等特點(diǎn)[1],導(dǎo)致現(xiàn)有的入侵檢測(cè)模型難以有效識(shí)別入侵行為,在海量數(shù)據(jù)檢測(cè)過(guò)程中入侵系統(tǒng)的檢測(cè)效率和檢測(cè)精度都無(wú)法保證。因此,入侵系統(tǒng)如何從數(shù)據(jù)流不斷學(xué)習(xí)知識(shí),保證在有限的時(shí)間和內(nèi)存情況下采用輕量級(jí)的框架有效識(shí)別入侵檢測(cè)模型;并針對(duì)邊緣側(cè)數(shù)據(jù)分布隨時(shí)間變化的動(dòng)態(tài)特性,提取在線數(shù)據(jù)的有用信息,構(gòu)建一個(gè)適應(yīng)數(shù)據(jù)維度高、數(shù)據(jù)規(guī)模大、時(shí)效性強(qiáng)、檢測(cè)精度高的入侵檢測(cè)模型是本文重點(diǎn)解決的問(wèn)題。
入侵檢測(cè)技術(shù)是一種用于識(shí)別和響應(yīng)系統(tǒng)中未授權(quán)活異常入侵行為的技術(shù)。該技術(shù)的作用包括:識(shí)別入侵者以及入侵者的入侵行為;監(jiān)視已成功突破安全防御系統(tǒng)的操作;根據(jù)對(duì)抗行為的特征及時(shí)提供重要的信息,組織對(duì)抗行為的發(fā)生和事態(tài)的擴(kuò)大[2~4]。因此,入侵行為檢測(cè)就是通過(guò)監(jiān)控網(wǎng)絡(luò)和系統(tǒng)的可疑活動(dòng)進(jìn)行風(fēng)險(xiǎn)評(píng)估的一種技術(shù),從而在攻擊者利用漏洞攻擊前對(duì)系統(tǒng)潛在的漏洞采取必要的措施進(jìn)行保護(hù)[5~7]。當(dāng)前的入侵方式包括主機(jī)入侵和網(wǎng)絡(luò)入侵,主機(jī)入侵時(shí)通過(guò)主機(jī)的軟件行為和主機(jī)的日志判斷的,而網(wǎng)絡(luò)入侵則是通過(guò)判斷數(shù)據(jù)流的特征、與主機(jī)連接次數(shù)來(lái)識(shí)別外部攻擊。當(dāng)前基于異常入侵的檢測(cè)技術(shù)很多,包括基于概率統(tǒng)計(jì)建模的入侵檢測(cè)方法[8~9]、基于規(guī)則建模的入侵檢測(cè)方法[10~11]、基于數(shù)據(jù)挖掘的入侵檢測(cè)方法[12~15]、基于機(jī)器學(xué)習(xí)的入侵檢測(cè)方法[16~20]。但是,不管哪一種入侵的檢測(cè),入侵檢測(cè)對(duì)于實(shí)時(shí)性和準(zhǔn)確性的要求很高。因此,入侵檢測(cè)模型必須具有良好的高可用性、高精度檢測(cè)性和擴(kuò)展性,才能滿足海量網(wǎng)絡(luò)數(shù)據(jù)流的入侵檢測(cè)場(chǎng)景。本文為了應(yīng)對(duì)入侵模型的高可用性、高精度以及高準(zhǔn)確性等問(wèn)題,采用一種在線增量學(xué)習(xí)的方法來(lái)更新入侵檢測(cè)模型,也就是通過(guò)在線不斷學(xué)習(xí)新的知識(shí)的方式來(lái)應(yīng)對(duì)入侵行為的動(dòng)態(tài)變化進(jìn)而提高入侵檢測(cè)的識(shí)別精度。但是現(xiàn)有方法(如遷移學(xué)習(xí))往往容易遺忘學(xué)過(guò)的知識(shí),該方法往往在對(duì)新數(shù)據(jù)學(xué)習(xí)之后就會(huì)遺忘舊知識(shí)進(jìn)而造成模型對(duì)舊數(shù)據(jù)的識(shí)別能力很低,這顯然不滿足當(dāng)前入侵檢測(cè)的應(yīng)用需求。因此,本文致力于構(gòu)建一個(gè)新的模型,該模型力求在學(xué)習(xí)新知識(shí)的同時(shí)盡量減少模型的“遺忘”問(wèn)題,進(jìn)而在舊數(shù)據(jù)和新數(shù)據(jù)中都有不錯(cuò)的性能,從而保證模型的穩(wěn)定性和可靠性。
在線增量學(xué)習(xí)[21~23]通常采用預(yù)測(cè)誤差進(jìn)行選擇性增量學(xué)習(xí)和配套剪枝算法,針對(duì)在線學(xué)習(xí)的新樣本,根據(jù)新樣本訓(xùn)練模型與大規(guī)模學(xué)習(xí)的離線訓(xùn)練模型預(yù)測(cè)的誤差進(jìn)行比對(duì),借助設(shè)定的誤差閾值判定新樣本訓(xùn)練的模型是否進(jìn)行增量學(xué)習(xí),用遞歸的方式不斷更新離線訓(xùn)練模型,縮短了新模型運(yùn)算時(shí)間,改善模型預(yù)測(cè)的效率??偠灾诰€增量學(xué)習(xí)其實(shí)是一個(gè)自適應(yīng)學(xué)習(xí)系統(tǒng),該系統(tǒng)能夠不斷從新樣本數(shù)據(jù)中學(xué)習(xí)新的知識(shí),在保存大部分以前學(xué)到的新知識(shí)基礎(chǔ)上,通過(guò)在線不斷學(xué)習(xí)的方式來(lái)更新模型參數(shù),從而減少模型對(duì)離線數(shù)據(jù)重新訓(xùn)練的時(shí)間。從上面的分析可知,在線增量學(xué)習(xí)包含以下三個(gè)特點(diǎn):(1)能夠從在線新增的樣本學(xué)習(xí)到新的知識(shí);(2)對(duì)以前學(xué)習(xí)過(guò)的數(shù)據(jù)不需要重復(fù)訓(xùn)練,減少了重復(fù)訓(xùn)練的時(shí)間;(3)在學(xué)習(xí)新知識(shí)的同時(shí)不會(huì)“遺忘”舊知識(shí),在保留大部分舊知識(shí)的同時(shí),也具備對(duì)新數(shù)據(jù)的識(shí)別能力。
萬(wàn)物互聯(lián)的時(shí)代要求網(wǎng)絡(luò)入侵檢測(cè)的方法具有更加有效性和實(shí)時(shí)性[24~25],特別是海量終端的接入產(chǎn)生高維度、規(guī)模大的流量數(shù)據(jù)沖擊下,在線入侵檢測(cè)面臨在線更新復(fù)雜度過(guò)高、計(jì)算量過(guò)大的問(wèn)題。因此,利用網(wǎng)絡(luò)流量分布特征的變化構(gòu)建一個(gè)在線自適應(yīng)的網(wǎng)絡(luò)入侵檢測(cè)模型變得尤為重要。
針對(duì)上述的需求,本文采用深度學(xué)習(xí)提取網(wǎng)絡(luò)流量序列的多尺度特征,結(jié)合在線增量學(xué)習(xí)的思想對(duì)在線流量數(shù)據(jù)進(jìn)行增量學(xué)習(xí),采用損失函數(shù)最小化目標(biāo)對(duì)原始模型進(jìn)行在線更新,使得模型盡量減少舊知識(shí)“遺忘”的同時(shí),也提升了更新后模型性能和檢測(cè)的精度。
本文借鑒網(wǎng)絡(luò)流量異常檢測(cè)公開(kāi)數(shù)據(jù)集的特征維度提取,將上述的網(wǎng)絡(luò)流量數(shù)據(jù)特征分為4 大類、41 維的特征[26],4 大類包括:TCP 連接基本特征、TCP 連接內(nèi)容特征、基于時(shí)間的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征和基于主機(jī)的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征。41 個(gè)特征維度如表1 所示。
續(xù)表1
對(duì)于網(wǎng)絡(luò)流量序列的入侵檢測(cè)技術(shù)而言,通過(guò)將網(wǎng)絡(luò)流量特征維度的時(shí)空關(guān)系視為圖像像素的關(guān)系,網(wǎng)絡(luò)流量中每個(gè)特征維度視為圖像中某個(gè)像素點(diǎn),如此,相同類型的網(wǎng)絡(luò)流量特征維度視為一幅幅網(wǎng)絡(luò)流量特征的“畫像”,特征維度之間的相關(guān)關(guān)系視為流量特征的“畫像”表達(dá)?;谏鲜龅乃悸?,本文將網(wǎng)絡(luò)流量序列的41 個(gè)特征維度輸入到深度學(xué)習(xí)中,通過(guò)多個(gè)不同尺度的卷積層對(duì)網(wǎng)絡(luò)流量序列41 個(gè)特征維度進(jìn)行深淺層特征學(xué)習(xí),獲得N 維淺層特征圖和P 維深層特征圖;通過(guò)特征融合將不同尺度的特征信息進(jìn)行拼接,獲得N+P 維全局特征的特征圖。具體的操作如圖1 所示。
圖1 基于深度學(xué)習(xí)的網(wǎng)絡(luò)流量入侵檢測(cè)特征提取
在獲取入侵檢測(cè)特征后,下一步就是分析上述的特征,建立大規(guī)模學(xué)習(xí)、離線訓(xùn)練的入侵檢測(cè)模型,實(shí)現(xiàn)入侵行為的識(shí)別。主要思想是:利用大規(guī)模歷史數(shù)據(jù)整理出來(lái)正常網(wǎng)絡(luò)流量的特征和入侵網(wǎng)絡(luò)行為特征,然后采用監(jiān)督學(xué)習(xí)的分類器構(gòu)建一個(gè)超平面實(shí)現(xiàn)正常流量數(shù)據(jù)和異常流量數(shù)據(jù)的劃分,進(jìn)而實(shí)現(xiàn)入侵行為的檢測(cè)。當(dāng)前大規(guī)模學(xué)習(xí)的行業(yè)解決方法有模型并行和數(shù)據(jù)并行。本文考慮到邊云協(xié)同環(huán)境下的數(shù)據(jù)分布特征,采用數(shù)據(jù)并行的方式對(duì)大規(guī)模數(shù)據(jù)進(jìn)行離線學(xué)習(xí),針對(duì)每個(gè)地區(qū)數(shù)據(jù)分布的差異性,采用同樣的分類器各自運(yùn)行大規(guī)模數(shù)據(jù)的一部分,然后采用集成學(xué)習(xí)的方式將n 個(gè)分類器計(jì)算的結(jié)果按照Adaboost算法進(jìn)行合并,構(gòu)成大規(guī)模數(shù)據(jù)學(xué)習(xí)的離線訓(xùn)練模型。
(1)在第一輪訓(xùn)練中,將各分類器的權(quán)重初始化為同等大小的權(quán)重。
(2)在第二輪訓(xùn)練中,使用第一輪權(quán)重分布D1來(lái)訓(xùn)練數(shù)據(jù),并基于n 各分類器獲得的分類誤差率em。
(3)基于分類誤差率em更新第二輪訓(xùn)練的權(quán)重分布D2,并將第二輪的權(quán)重分布用于下一輪迭代,直至達(dá)到最大的迭代次數(shù)m,
(4)計(jì)算組合分類器
本文從在線學(xué)習(xí)的場(chǎng)景出發(fā),通過(guò)模型結(jié)構(gòu)和數(shù)據(jù)兩方面的增量學(xué)習(xí)任務(wù)來(lái)實(shí)現(xiàn)模型和數(shù)據(jù)進(jìn)行在線學(xué)習(xí)的同時(shí),自動(dòng)根據(jù)誤差調(diào)節(jié)網(wǎng)絡(luò)參數(shù),從而提高模型在不同場(chǎng)景下入侵識(shí)別的正確率。
通過(guò)大規(guī)模離線數(shù)據(jù)學(xué)習(xí)獲取入侵檢測(cè)模型的參數(shù)后,由于新流量序列的數(shù)據(jù)分布有可能跟歷史流量序列的數(shù)據(jù)分布具有一定的差異性,因此,前面大規(guī)模離線學(xué)習(xí)的模型參數(shù)需要進(jìn)行微調(diào)。本文目的是盡量保持前面模型中的重要參數(shù),讓新模型在學(xué)習(xí)舊任務(wù)的時(shí)候保持較高的精度,減少模型的“遺忘”問(wèn)題,另外,通過(guò)對(duì)模型中某些參數(shù)進(jìn)行微調(diào),保證該模型在新任務(wù)識(shí)別中具有一定的精度。本文的在線增量學(xué)習(xí)的思路如圖2 所示。
圖2 在線增量學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測(cè)方法
為了實(shí)現(xiàn)上面的目的,采用EWC 的方法來(lái)實(shí)現(xiàn)參數(shù)的更新,并采用損失函數(shù)最小化目標(biāo)來(lái)保證函數(shù)的精度并盡量減少遺忘。
其中,是優(yōu)化后一個(gè)總的損失,優(yōu)化后新任務(wù)的損失,表示參數(shù)差異的損失。表示用于訓(xùn)練舊知識(shí)數(shù)據(jù)集的重要程度,在0-1 之間,可用人工設(shè)定。那么就是說(shuō),一個(gè)優(yōu)化后的總損失,不僅要考慮這種新的參數(shù)在新任務(wù)檢測(cè)上的損失,還要考慮由于參數(shù)改變所造成的差異性損失。而是衡量深度神經(jīng)網(wǎng)絡(luò)模型中哪些參數(shù)是重要的,哪些參數(shù)是不是那么重要的,是參數(shù)的權(quán)重。如果這個(gè)參數(shù)很重要,那么表示這個(gè)的值相對(duì)大,那么我們將舊知識(shí)學(xué)習(xí)到的參數(shù)變化一點(diǎn)點(diǎn)得到新知識(shí)的參數(shù)的變動(dòng)范圍很小的,因?yàn)橐稽c(diǎn)點(diǎn)的變化很可能導(dǎo)致新的模型在舊的數(shù)據(jù)上的檢測(cè)精度下降的很快;相反,如果的值很小,那么我們將舊知識(shí)學(xué)習(xí)到的參數(shù)變較大得到新知識(shí)的參數(shù)的變動(dòng)范圍很大的,因?yàn)榧词箙?shù)變化很大,由于權(quán)重很小,那么新的模型在舊的數(shù)據(jù)上的檢測(cè)精度也不會(huì)下降很多。為了計(jì)算的大小,本文采用梯度更新大小的方式進(jìn)行衡量,得到公式如下:
為了保證參數(shù)更新后的模型對(duì)舊知識(shí)仍有較高的性能,我們希望模型更新后新數(shù)據(jù)梯度的變化不是那么大,最后與原來(lái)梯度變化方向盡量一致,為了實(shí)現(xiàn)這個(gè)“一致”,那么我們?cè)诤罄m(xù)的新數(shù)據(jù)訓(xùn)練過(guò)程中,我們希望梯度的變化方向盡量與前面一致的,因此可以表達(dá)為:
那么在迭代過(guò)程中,在每一個(gè)新數(shù)據(jù)訓(xùn)練的時(shí)候,我們都希望舊數(shù)據(jù)在參數(shù)各個(gè)樣本在訓(xùn)練過(guò)程中梯度的變化方向和新數(shù)據(jù)在參數(shù)各個(gè)樣本在訓(xùn)練過(guò)程中梯度的變化方向盡量少,這樣才能保證我們模型在新舊兩種數(shù)據(jù)的通用性。我們求解的目標(biāo)從公式3 轉(zhuǎn)到公式8,整個(gè)在線增量學(xué)習(xí)的目標(biāo)就變成了公式8。這里需要注意的是,求解權(quán)重的時(shí)候需要將參數(shù)的變化范圍盡可能量化,也就是權(quán)重越大,參數(shù)的變化范圍越小,反之亦然,因此,基于權(quán)重的大小,我們將參數(shù)的變化大小進(jìn)行約束界定:
最后,基于公式8和公式9,實(shí)現(xiàn)模型的在線增量學(xué)習(xí),更新入侵檢測(cè)模型。
本文在實(shí)驗(yàn)室環(huán)境下搭建用于訓(xùn)練大規(guī)模離線數(shù)據(jù)的數(shù)據(jù)處理和訓(xùn)練的數(shù)據(jù)平臺(tái),通過(guò)搭建大數(shù)據(jù)集群的方式來(lái)實(shí)現(xiàn)大規(guī)模離線數(shù)據(jù)的訓(xùn)練。該集群共有16 臺(tái)服務(wù)器,每臺(tái)服務(wù)器的配置均為16GB 內(nèi)存/8CPU 核心/1T 硬盤/千兆網(wǎng)卡。實(shí)驗(yàn)采用Python 編寫的開(kāi)源神經(jīng)網(wǎng)絡(luò)庫(kù)來(lái)構(gòu)建分類器,可快速、靈活實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)參數(shù)的確定。
本文通過(guò)提取3 個(gè)月5789116 條網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行分析,該流量數(shù)據(jù)中“Normal”和“Dos”兩種類型的數(shù)據(jù)占比很大,其他攻擊類型的占比比較少。為了實(shí)現(xiàn)數(shù)據(jù)的平衡性,本文將其他攻擊類型的數(shù)據(jù)進(jìn)行復(fù)制,讓各種攻擊類型的數(shù)量達(dá)到相對(duì)平衡。
在獲取網(wǎng)絡(luò)流量特征維度的技術(shù)上,采用隨機(jī)的方法選取訓(xùn)練數(shù)據(jù)380 萬(wàn)條,并將其平均分到15 個(gè)服務(wù)器中分別進(jìn)行深度學(xué)習(xí)并構(gòu)建分類器。剩下的1 989 116 條數(shù)據(jù)用于模型驗(yàn)證。為了比較本文方法的有效性,本文將本文的算法與靜態(tài)的離線學(xué)習(xí)入侵檢測(cè)模型進(jìn)行對(duì)比,以展現(xiàn)本文算法的優(yōu)越性。離線學(xué)習(xí)入侵檢測(cè)模型是采用固定周期(一周)更新模型的方法實(shí)現(xiàn)入侵行為特征的更新。
本文從模型的準(zhǔn)確率和F1 值兩個(gè)評(píng)估指標(biāo)分別對(duì)兩種算法的性能進(jìn)行測(cè)試,測(cè)試的時(shí)候?qū)? 989 116 條數(shù)據(jù)分成10 批次測(cè)試,最后將訓(xùn)練集和測(cè)試集的準(zhǔn)確率和F1值進(jìn)行對(duì)比,得到的結(jié)果如圖3 所示。
圖3 不同算法的準(zhǔn)確率對(duì)比
從圖3 可知,本文算法的訓(xùn)練集和測(cè)試集的準(zhǔn)確率較高,其中訓(xùn)練集和測(cè)試集準(zhǔn)確率分別為93.84%和95.31%,而離線學(xué)習(xí)入侵檢測(cè)模型訓(xùn)練集和測(cè)試集準(zhǔn)確率分別為91.77%和91.07%,并且隨著在線增量學(xué)習(xí)的訓(xùn)練,模型性能的表現(xiàn)更加出色。由此可見(jiàn),本文模型能夠通過(guò)在線增量學(xué)習(xí)環(huán)節(jié)有效應(yīng)對(duì)數(shù)據(jù)分布差異的變化,自動(dòng)根據(jù)誤差調(diào)節(jié)網(wǎng)絡(luò)參數(shù),從而提高模型在不同場(chǎng)景下入侵識(shí)別的準(zhǔn)確率。
從圖4 可知,本文算法的訓(xùn)練集和測(cè)試集的F1 值較離線學(xué)習(xí)入侵檢測(cè)模型訓(xùn)練集和測(cè)試集的F1 值高,而且隨著批次的迭代,本文算法的F1 值表現(xiàn)得相對(duì)穩(wěn)定,而離線學(xué)習(xí)入侵檢測(cè)模型則隨著數(shù)據(jù)分布的變化出現(xiàn)較大的抖動(dòng)。這說(shuō)明了,本文的在線集成模型并不是單純的學(xué)習(xí)器的加權(quán)平均,而是結(jié)合模型參數(shù)的權(quán)重進(jìn)行一定范圍的微調(diào),這就避免了由于數(shù)據(jù)存在較大波動(dòng)的場(chǎng)景下模型出現(xiàn)較大幅度抖動(dòng)的現(xiàn)象。由此可知,本文的模型在實(shí)際應(yīng)用中具有更好的可靠性和實(shí)用性。
圖4 不同算法的F1 值對(duì)比
隨著網(wǎng)絡(luò)產(chǎn)生的高維度和非線性的網(wǎng)絡(luò)流量數(shù)據(jù)的產(chǎn)生,傳統(tǒng)的入侵檢測(cè)模型已經(jīng)不再適用于現(xiàn)有網(wǎng)絡(luò)攻擊手段的預(yù)防。因此,基于網(wǎng)絡(luò)環(huán)境復(fù)雜化的擴(kuò)展,現(xiàn)有的入侵檢測(cè)需要具有自適應(yīng)在線學(xué)習(xí)的能力。本文提出了一種在線增量學(xué)習(xí)的方法來(lái)持續(xù)更新海量高維數(shù)據(jù)場(chǎng)景下的入侵檢測(cè)模型,采用深度學(xué)習(xí)對(duì)網(wǎng)絡(luò)流量特征維度進(jìn)行多尺度融合,結(jié)合在線增量學(xué)習(xí)方法實(shí)現(xiàn)網(wǎng)絡(luò)入侵檢測(cè)模型的自適應(yīng)學(xué)習(xí),使得模型在保留大部分已有知識(shí)的情況下自適應(yīng)學(xué)習(xí)新知識(shí),大大提升入侵檢測(cè)模型的分類性能。實(shí)驗(yàn)表明,本文的方法較離線學(xué)習(xí)入侵檢測(cè)模型具有更好的可靠性和實(shí)用性。