朱廣劼
(中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司 電子計(jì)算技術(shù)研究所,北京 100081)
近年來(lái),針對(duì)鐵路信息系統(tǒng)的網(wǎng)絡(luò)攻擊不斷增加,其中,大規(guī)模、有組織的高級(jí)持續(xù)性威脅[1](APT, Advanced Persistent Threat)攻擊占多數(shù),是威脅鐵路信息系統(tǒng)網(wǎng)絡(luò)安全的重要因素。區(qū)別于普通的網(wǎng)絡(luò)攻擊方式,APT攻擊具有生命周期的特征,完整的APT攻擊包括信息收集、漏洞利用、權(quán)限維持和橫向滲透等階段。如何有效、精準(zhǔn)地對(duì)APT攻擊進(jìn)行攔截、研判與溯源成為當(dāng)前網(wǎng)絡(luò)安全行業(yè)亟需解決的問(wèn)題。
目前,APT攻擊的檢測(cè)與預(yù)警多針對(duì)攻擊過(guò)程的某一階段進(jìn)行設(shè)計(jì),沒有從全局出發(fā),有效利用APT攻擊的各個(gè)階段進(jìn)行全方位預(yù)警。有學(xué)者利用機(jī)器學(xué)習(xí)算法對(duì)APT攻擊的防護(hù)進(jìn)行研究,如劉海波[2]提出利用生成對(duì)抗網(wǎng)絡(luò)(GAN,Generative Adversarial Network)模型結(jié)合長(zhǎng)短期記憶(LSTM,Long Short -Term Memory)模型對(duì)惡意流量加以識(shí)別,該方法僅針對(duì)普通的單次性的網(wǎng)絡(luò)攻擊進(jìn)行預(yù)警,并未考慮APT攻擊具有高級(jí)性、持續(xù)性和隱蔽性的特征;Rosenberg等人[3]提出利用深度學(xué)習(xí)技術(shù)擬合APT攻擊的檢測(cè)模型,但是該方法忽視了APT攻擊具有階段性、生命周期的特性;李駿韜[4]提出對(duì)系統(tǒng)請(qǐng)求的域名進(jìn)行檢測(cè),利用聚類算法構(gòu)造數(shù)據(jù)集,利用決策樹(DT,Decision Tree)算法推斷系統(tǒng)請(qǐng)求解析的域名是否為惡意域名,該方法同樣是只針對(duì)APT攻擊生命周期中的權(quán)限維持及后續(xù)階段進(jìn)行預(yù)警,并且,在檢出系統(tǒng)與惡意主機(jī)交互行為的同時(shí),黑客已經(jīng)完成了漏洞利用攻擊,信息系統(tǒng)已經(jīng)受到了損害。
已有的機(jī)器學(xué)習(xí)算法,如最近鄰(KNN,KNearest Neighbor)、DT、多層感知機(jī)(MLP,Multi-Layer Perceptron)和門控循環(huán)單元(GRU,Gated Recurrent Unit)[5]等模型適用于處理攻擊預(yù)警二分類問(wèn)題,涉及到多分類問(wèn)題,即細(xì)化攻擊類型時(shí),則會(huì)出現(xiàn)部分攻擊類型預(yù)警不準(zhǔn)確、誤報(bào)率高的問(wèn)題。此外,由于APT攻擊具有持續(xù)性的特性,特征規(guī)則庫(kù)和機(jī)器學(xué)習(xí)算法很難利用過(guò)往的預(yù)警結(jié)果對(duì)當(dāng)前的流量進(jìn)行綜合分類、判定。
本文研究并設(shè)計(jì)了基于堆疊式LSTM[6]模型的APT惡意流量預(yù)警系統(tǒng)(簡(jiǎn)稱:本文系統(tǒng));將UNSW-NB15數(shù)據(jù)集[7]改造為適用于APT惡意流量預(yù)警系統(tǒng)中模型訓(xùn)練的數(shù)據(jù)集;利用APT攻擊分階段的特性,提出對(duì)過(guò)往報(bào)警記錄再利用的方法,提升LSTM模型對(duì)惡意流量的判別率。
APT攻擊是指由專業(yè)的攻擊者在長(zhǎng)時(shí)間保持隱蔽性的前提下、針對(duì)特定的目標(biāo)進(jìn)行的網(wǎng)絡(luò)安全攻擊。APT攻擊主要包含3個(gè)要素,即高級(jí)性、持續(xù)性和威脅性。
APT攻擊中的高級(jí)性是指攻擊者使用精心構(gòu)造的惡意代碼或技術(shù)、利用信息系統(tǒng)的漏洞,實(shí)施對(duì)信息系統(tǒng)的攻擊;持續(xù)性是指整個(gè)攻擊過(guò)程的持續(xù)性,區(qū)別于普通的網(wǎng)絡(luò)安全攻擊,APT攻擊能夠長(zhǎng)期隱蔽地進(jìn)行;威脅性是指攻擊者是針對(duì)特定目標(biāo)發(fā)起的、帶有目的性的攻擊。殺傷鏈[8](kill-chain)模型將APT攻擊分為7個(gè)階段,如圖1所示。
圖1 殺傷鏈定義的APT攻擊7個(gè)階段
殺傷鏈定義的7個(gè)階段中:第1階段,攻擊者進(jìn)行偵察工作,即搜集目標(biāo)系統(tǒng)和人員的信息;第2~第4階段為攻擊階段,攻擊者將惡意程序通過(guò)社會(huì)工程學(xué)或系統(tǒng)漏洞上傳至目標(biāo)系統(tǒng)中,并發(fā)動(dòng)攻擊;第5~第7階段,為后期滲透階段,包括權(quán)限提升,權(quán)限維持,橫向移動(dòng)和數(shù)據(jù)滲出等。
由圖1可知,完整的APT攻擊是階段性的,各階段之間環(huán)環(huán)相扣,相鄰兩階段的聯(lián)系更加緊密。本文將據(jù)此量化APT攻擊各階段之間的關(guān)系,設(shè)置各階段之間的權(quán)重。
LSTM模型是由循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN,Recurrent Neural Network)模型發(fā)展而來(lái),為解決RNN模型長(zhǎng)時(shí)間依賴問(wèn)題,LSTM模型引入了“門”的概念,通過(guò)設(shè)置遺忘門、輸入門和輸出門,可以對(duì)前置信息進(jìn)行選擇性遺忘的同時(shí),將新的信息選擇性地記錄到模型中。
UNSW-NB15數(shù)據(jù)集是由原始網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行特征提取而構(gòu)建的、用于入侵檢測(cè)模型訓(xùn)練的數(shù)據(jù)集。該數(shù)據(jù)集包括標(biāo)簽在內(nèi)共49個(gè)特征,標(biāo)簽分為二分類標(biāo)簽和十分類標(biāo)簽(包括9種攻擊類型和 1 種正常類型),9 種攻擊類型分別為:信息偵察、目標(biāo)分析、模糊測(cè)試、漏洞利用、后門攻擊、代碼執(zhí)行、拒絕服務(wù)(DoS,Denial of Service)、蠕蟲攻擊和泛型攻擊。
為了能降低誤報(bào)率且能夠綜合利用針對(duì)同源主機(jī)的預(yù)警記錄,本文系統(tǒng)主要由兩個(gè)模塊組成:第 1個(gè)模塊為基于深度學(xué)習(xí)的流量預(yù)警模塊,可根據(jù)當(dāng)前的流量信息對(duì)其類型做一個(gè)初步的判斷;第 2 個(gè)模塊為流量預(yù)警結(jié)果再計(jì)算模塊,該模塊利用過(guò)去一段時(shí)間內(nèi)同源主機(jī)的預(yù)警記錄,對(duì)當(dāng)前流量預(yù)警模塊所給出的結(jié)果進(jìn)行再計(jì)算。
2.1.1 模型設(shè)計(jì)
LSTM模型本身可以記憶前一個(gè)甚至幾個(gè)樣本的特征,因此可以有效利用APT攻擊分階段的特性。本文設(shè)計(jì)的流量預(yù)警模塊采用堆疊式LSTM模型,如圖2所示。
圖2 堆疊式LSTM模型
圖2的模型中,各層神經(jīng)元之間通過(guò)不同的權(quán)重連接,區(qū)別于普通的多層深度神經(jīng)網(wǎng)絡(luò),圖中所示的隱藏層均為L(zhǎng)STM神經(jīng)元的形式,通過(guò)該神經(jīng)元可以使模型能夠記錄之前樣本的特征信息并加以利用。
本文將APT攻擊生命周期精簡(jiǎn)為5個(gè)階段,對(duì)應(yīng)5種攻擊類型,分別為信息偵察,漏洞利用,權(quán)限維持,橫向移動(dòng),數(shù)據(jù)泄露。流量預(yù)警模塊最終輸出為 6 個(gè)和為 1 的值,分別代表流量的 6 種類型,即: 1 種正常流量和APT攻擊的 5 種類型的流量。6個(gè)值分別表示流量屬于相應(yīng)類型的概率,取其中的最大值所表示的類型作為當(dāng)前流量的分類。
2.1.2 數(shù)據(jù)集改造
本文結(jié)合鐵路信息系統(tǒng)遭受APT攻擊的流量特征,改造UNSW-NB15數(shù)據(jù)集為適用于APT惡意流量預(yù)警系統(tǒng)中模型訓(xùn)練的數(shù)據(jù)集,將該數(shù)據(jù)集中十分標(biāo)簽的 9 種攻擊類型映射為APT攻擊中的 5 種類型,映射關(guān)系如表1所示。
表1 UNSW-NB15十分標(biāo)簽攻擊類型與APT攻擊類型映射關(guān)系
表1中并未出現(xiàn)DoS類型,因?yàn)樵卺槍?duì)鐵路信息系統(tǒng)的惡意流量攻擊中,DoS攻擊比較少見,并且DoS攻擊也不符合APT攻擊的幾個(gè)特性,因此,在數(shù)據(jù)集改造過(guò)程中刪除了DoS攻擊類型的數(shù)據(jù)。
2.1.3 數(shù)據(jù)集處理
數(shù)據(jù)集標(biāo)簽映射完成后對(duì)數(shù)據(jù)特征進(jìn)行極值裁剪和標(biāo)準(zhǔn)化處理。極值裁剪是為了防止數(shù)據(jù)集中某個(gè)樣本的特征值與中位值差距過(guò)大而影響整個(gè)數(shù)據(jù)集的標(biāo)準(zhǔn)化分布所進(jìn)行的操作。
數(shù)據(jù)集經(jīng)過(guò)標(biāo)簽映射、極值裁剪和標(biāo)準(zhǔn)化處理后,即可作為最終的數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練。
APT攻擊過(guò)程中,后一階段依賴于前一階段的發(fā)生[9],如攻擊者需要先完成信息偵察,再進(jìn)行后續(xù)的漏洞利用和權(quán)限維持等攻擊。因此,當(dāng)流量被判定為APT攻擊中信息偵察階段后的某一階段時(shí),上一個(gè)時(shí)間段存在同源主機(jī)中的前一個(gè)或幾個(gè)階段的報(bào)警記錄會(huì)增加對(duì)當(dāng)前流量判定的可信度。利用該思想,本文提出一個(gè)對(duì)流量預(yù)警結(jié)果進(jìn)行再計(jì)算的方法,綜合上一個(gè)時(shí)間段預(yù)警記錄,引入置信度的概念,以此來(lái)更加準(zhǔn)確地判定當(dāng)前流量的類型。
在收到來(lái)自流量預(yù)警模塊的判定結(jié)果后,通過(guò)調(diào)取同源主機(jī)的報(bào)警記錄,獲取到各階段上個(gè)時(shí)間段內(nèi)報(bào)警分類結(jié)果的最大值,在乘以對(duì)應(yīng)權(quán)重的基礎(chǔ)上,將其與本次得到的流量預(yù)警結(jié)果的對(duì)應(yīng)值相加,得到各個(gè)階段的置信度,再?gòu)闹腥∽畲笾邓鶎兕愋妥鳛楸敬瘟髁颗卸愋?。用公式表示?/p>
其中,res為 最終的分類結(jié)果,confn表示當(dāng)前流量屬第n類的置信度(2 ≤n≤ 5),phasen表示當(dāng)前流量被流量預(yù)警模塊判定為屬第n類的概率,wni表示第n類與第i類之間的權(quán)重,pre_phasei表示同源主機(jī)在上一個(gè)時(shí)間段內(nèi)流量為第i類的概率。
由式(1)、式(2)可知,各類型之間的權(quán)重反應(yīng)了APT攻擊各階段之間的關(guān)系。由于信息偵察為APT攻擊的第 1 階段,因此,針對(duì)信息偵察和正常類型則不需要進(jìn)行再計(jì)算。
為了驗(yàn)證本文系統(tǒng)的有效性和預(yù)警方法的優(yōu)越性,在Kaggle云平臺(tái)上對(duì)本文系統(tǒng)進(jìn)行了實(shí)驗(yàn)。使用Tensorflow、Sklearn、pandas等依賴包進(jìn)行代碼編寫,代碼環(huán)境為Python 3.9;使用Telsa P100 16 GB GPU、改造后UNSW-NB15數(shù)據(jù)集進(jìn)行模型訓(xùn)練。
3.1.1 改造后的數(shù)據(jù)集
改造后數(shù)據(jù)集的樣本分布如圖3所示,可以看出,數(shù)據(jù)集中正常類型、漏洞利用類型和數(shù)據(jù)泄露類型占多數(shù),信息偵察類型占比較小,而權(quán)限維持和橫向移動(dòng)兩種類型作為APT攻擊的后期階段,其數(shù)據(jù)在圖中占比極少,尤其是橫向移動(dòng)類型的數(shù)據(jù),在圖中幾乎不可見。
圖3 改造后UNSW-NB15數(shù)據(jù)集樣本分布
3.1.2 模型結(jié)構(gòu)及參數(shù)量
文中使用的LSTM模型結(jié)構(gòu)及參數(shù)量如表2所示,其中,隱藏層有3層,隱藏神經(jīng)元數(shù)量分別為32、32、16,每層之間加入批標(biāo)準(zhǔn)化(BN,Batch Normalization)操作,緩解在訓(xùn)練過(guò)程中的過(guò)擬合問(wèn)題,每層的激活函數(shù)為L(zhǎng)eakyReLU。
表2 LSTM模型結(jié)構(gòu)及對(duì)應(yīng)參數(shù)量
3.1.3 權(quán)重設(shè)置
流量預(yù)警結(jié)果再計(jì)算模塊的核心問(wèn)題為APT攻擊各階段之間的權(quán)重設(shè)置問(wèn)題,設(shè)置一個(gè)合適的權(quán)重能夠提高最終分類結(jié)果的準(zhǔn)確率。由式(1)可知,APT攻擊靠后階段需要加多個(gè)階段的預(yù)警記錄值,通過(guò)該方法也可以解決數(shù)據(jù)集中APT攻擊后期階段數(shù)據(jù)量太少(如權(quán)限維持和橫向移動(dòng))、樣本失衡導(dǎo)致少數(shù)類樣本無(wú)法訓(xùn)練、模型無(wú)法有效判斷其所屬類型的問(wèn)題。
本文根據(jù)APT攻擊各階段之間的關(guān)系,設(shè)置了各階段之間的權(quán)重,如表3所示。由于APT攻擊的各階段按固定次序發(fā)生,因此在設(shè)定各階段之間的權(quán)重時(shí),相鄰階段的權(quán)重設(shè)置偏高一些,而非相鄰階段的權(quán)重設(shè)置低一些;在APT攻擊中的數(shù)據(jù)滲出階段,攻擊者可以跳過(guò)橫向滲透,甚至權(quán)限維持階段,直接進(jìn)行數(shù)據(jù)滲出,因此在設(shè)置數(shù)據(jù)滲出與各階段之間的權(quán)重時(shí),并未按照相鄰階段設(shè)置高,非相鄰階段設(shè)置低的原則,而是根據(jù)APT攻擊過(guò)程中可能發(fā)生的實(shí)際情況設(shè)定權(quán)重值。
表3 APT攻擊各階段之間權(quán)重設(shè)置
本文模型在經(jīng)過(guò)500次迭代后收斂,損失函數(shù)曲線及準(zhǔn)確率曲線如圖4、圖5所示。由圖可知,在前100次迭代過(guò)程中,性能得到了比較大的提升,損失函數(shù)下降最快;在100~500次迭代過(guò)程中,上升幅度較小,但仍舊比較穩(wěn)定。從整個(gè)訓(xùn)練過(guò)程可以看出,訓(xùn)練集和驗(yàn)證集在損失函數(shù)和準(zhǔn)確率的曲線走向上是一致的,可以認(rèn)為經(jīng)過(guò)訓(xùn)練的模型具有良好的泛化能力。
圖4 模型迭代過(guò)程損失函數(shù)曲線
圖5 模型迭代過(guò)程準(zhǔn)確率曲線
在相同數(shù)據(jù)集的基礎(chǔ)上,將流量預(yù)警模塊中的LSTM模型分別替換成KNN、DT、MLP和GRU模型,比較準(zhǔn)確率、精確率、召回率和F1分?jǐn)?shù)值這4個(gè)指標(biāo),其中,F(xiàn)1分?jǐn)?shù)值是精確率和召回率的調(diào)和平均數(shù),結(jié)果如表4所示。由表4 可知,本文采用LSTM模型的方法在 4 個(gè)指標(biāo)上均優(yōu)于其他方法,因此,本文系統(tǒng)能夠有效提高惡意流量預(yù)警的準(zhǔn)確率,降低誤報(bào)率和漏報(bào)率。
表4 模型表現(xiàn)對(duì)比
針對(duì)鐵路信息系統(tǒng)遭受的APT攻擊特征,本文研究并設(shè)計(jì)了基于堆疊式LSTM模型的APT惡意流量預(yù)警系統(tǒng)。利用APT攻擊具有階段性的特性,抽取上一個(gè)時(shí)間段內(nèi)同源主機(jī)報(bào)警記錄,引入置信度概念,以此判斷當(dāng)前流量所屬類型。該方法有效利用了APT攻擊的特性,能夠更加準(zhǔn)確地判斷當(dāng)前流量所屬類型,并且,該方法可解決樣本不平衡數(shù)據(jù)集中少數(shù)類樣本無(wú)法訓(xùn)練、無(wú)法判別的問(wèn)題。
本文對(duì)APT攻擊中各階段之間的權(quán)重是在分析各階段間關(guān)系的基礎(chǔ)上主觀設(shè)置的,更加客觀地量化各階段之間的權(quán)重是本文未來(lái)要研究的內(nèi)容。