朱廣劼
(中國鐵道科學研究院集團有限公司 電子計算技術研究所,北京 100081)
近年來,針對鐵路信息系統的網絡攻擊不斷增加,其中,大規模、有組織的高級持續性威脅[1](APT, Advanced Persistent Threat)攻擊占多數,是威脅鐵路信息系統網絡安全的重要因素。區別于普通的網絡攻擊方式,APT攻擊具有生命周期的特征,完整的APT攻擊包括信息收集、漏洞利用、權限維持和橫向滲透等階段。如何有效、精準地對APT攻擊進行攔截、研判與溯源成為當前網絡安全行業亟需解決的問題。
目前,APT攻擊的檢測與預警多針對攻擊過程的某一階段進行設計,沒有從全局出發,有效利用APT攻擊的各個階段進行全方位預警。有學者利用機器學習算法對APT攻擊的防護進行研究,如劉海波[2]提出利用生成對抗網絡(GAN,Generative Adversarial Network)模型結合長短期記憶(LSTM,Long Short -Term Memory)模型對惡意流量加以識別,該方法僅針對普通的單次性的網絡攻擊進行預警,并未考慮APT攻擊具有高級性、持續性和隱蔽性的特征;Rosenberg等人[3]提出利用深度學習技術擬合APT攻擊的檢測模型,但是該方法忽視了APT攻擊具有階段性、生命周期的特性;李駿韜[4]提出對系統請求的域名進行檢測,利用聚類算法構造數據集,利用決策樹(DT,Decision Tree)算法推斷系統請求解析的域名是否為惡意域名,該方法同樣是只針對APT攻擊生命周期中的權限維持及后續階段進行預警,并且,在檢出系統與惡意主機交互行為的同時,黑客已經完成了漏洞利用攻擊,信息系統已經受到了損害。
已有的機器學習算法,如最近鄰(KNN,KNearest Neighbor)、DT、多層感知機(MLP,Multi-Layer Perceptron)和門控循環單元(GRU,Gated Recurrent Unit)[5]等模型適用于處理攻擊預警二分類問題,涉及到多分類問題,即細化攻擊類型時,則會出現部分攻擊類型預警不準確、誤報率高的問題。此外,由于APT攻擊具有持續性的特性,特征規則庫和機器學習算法很難利用過往的預警結果對當前的流量進行綜合分類、判定。
本文研究并設計了基于堆疊式LSTM[6]模型的APT惡意流量預警系統(簡稱:本文系統);將UNSW-NB15數據集[7]改造為適用于APT惡意流量預警系統中模型訓練的數據集;利用APT攻擊分階段的特性,提出對過往報警記錄再利用的方法,提升LSTM模型對惡意流量的判別率。
APT攻擊是指由專業的攻擊者在長時間保持隱蔽性的前提下、針對特定的目標進行的網絡安全攻擊。APT攻擊主要包含3個要素,即高級性、持續性和威脅性。
APT攻擊中的高級性是指攻擊者使用精心構造的惡意代碼或技術、利用信息系統的漏洞,實施對信息系統的攻擊;持續性是指整個攻擊過程的持續性,區別于普通的網絡安全攻擊,APT攻擊能夠長期隱蔽地進行;威脅性是指攻擊者是針對特定目標發起的、帶有目的性的攻擊。殺傷鏈[8](kill-chain)模型將APT攻擊分為7個階段,如圖1所示。

圖1 殺傷鏈定義的APT攻擊7個階段
殺傷鏈定義的7個階段中:第1階段,攻擊者進行偵察工作,即搜集目標系統和人員的信息;第2~第4階段為攻擊階段,攻擊者將惡意程序通過社會工程學或系統漏洞上傳至目標系統中,并發動攻擊;第5~第7階段,為后期滲透階段,包括權限提升,權限維持,橫向移動和數據滲出等。
由圖1可知,完整的APT攻擊是階段性的,各階段之間環環相扣,相鄰兩階段的聯系更加緊密。本文將據此量化APT攻擊各階段之間的關系,設置各階段之間的權重。
LSTM模型是由循環神經網絡(RNN,Recurrent Neural Network)模型發展而來,為解決RNN模型長時間依賴問題,LSTM模型引入了“門”的概念,通過設置遺忘門、輸入門和輸出門,可以對前置信息進行選擇性遺忘的同時,將新的信息選擇性地記錄到模型中。
UNSW-NB15數據集是由原始網絡數據包進行特征提取而構建的、用于入侵檢測模型訓練的數據集。該數據集包括標簽在內共49個特征,標簽分為二分類標簽和十分類標簽(包括9種攻擊類型和 1 種正常類型),9 種攻擊類型分別為:信息偵察、目標分析、模糊測試、漏洞利用、后門攻擊、代碼執行、拒絕服務(DoS,Denial of Service)、蠕蟲攻擊和泛型攻擊。
為了能降低誤報率且能夠綜合利用針對同源主機的預警記錄,本文系統主要由兩個模塊組成:第 1個模塊為基于深度學習的流量預警模塊,可根據當前的流量信息對其類型做一個初步的判斷;第 2 個模塊為流量預警結果再計算模塊,該模塊利用過去一段時間內同源主機的預警記錄,對當前流量預警模塊所給出的結果進行再計算。
2.1.1 模型設計
LSTM模型本身可以記憶前一個甚至幾個樣本的特征,因此可以有效利用APT攻擊分階段的特性。本文設計的流量預警模塊采用堆疊式LSTM模型,如圖2所示。

圖2 堆疊式LSTM模型
圖2的模型中,各層神經元之間通過不同的權重連接,區別于普通的多層深度神經網絡,圖中所示的隱藏層均為LSTM神經元的形式,通過該神經元可以使模型能夠記錄之前樣本的特征信息并加以利用。
本文將APT攻擊生命周期精簡為5個階段,對應5種攻擊類型,分別為信息偵察,漏洞利用,權限維持,橫向移動,數據泄露。流量預警模塊最終輸出為 6 個和為 1 的值,分別代表流量的 6 種類型,即: 1 種正常流量和APT攻擊的 5 種類型的流量。6個值分別表示流量屬于相應類型的概率,取其中的最大值所表示的類型作為當前流量的分類。
2.1.2 數據集改造
本文結合鐵路信息系統遭受APT攻擊的流量特征,改造UNSW-NB15數據集為適用于APT惡意流量預警系統中模型訓練的數據集,將該數據集中十分標簽的 9 種攻擊類型映射為APT攻擊中的 5 種類型,映射關系如表1所示。

表1 UNSW-NB15十分標簽攻擊類型與APT攻擊類型映射關系
表1中并未出現DoS類型,因為在針對鐵路信息系統的惡意流量攻擊中,DoS攻擊比較少見,并且DoS攻擊也不符合APT攻擊的幾個特性,因此,在數據集改造過程中刪除了DoS攻擊類型的數據。
2.1.3 數據集處理
數據集標簽映射完成后對數據特征進行極值裁剪和標準化處理。極值裁剪是為了防止數據集中某個樣本的特征值與中位值差距過大而影響整個數據集的標準化分布所進行的操作。
數據集經過標簽映射、極值裁剪和標準化處理后,即可作為最終的數據對模型進行訓練。
APT攻擊過程中,后一階段依賴于前一階段的發生[9],如攻擊者需要先完成信息偵察,再進行后續的漏洞利用和權限維持等攻擊。因此,當流量被判定為APT攻擊中信息偵察階段后的某一階段時,上一個時間段存在同源主機中的前一個或幾個階段的報警記錄會增加對當前流量判定的可信度。利用該思想,本文提出一個對流量預警結果進行再計算的方法,綜合上一個時間段預警記錄,引入置信度的概念,以此來更加準確地判定當前流量的類型。
在收到來自流量預警模塊的判定結果后,通過調取同源主機的報警記錄,獲取到各階段上個時間段內報警分類結果的最大值,在乘以對應權重的基礎上,將其與本次得到的流量預警結果的對應值相加,得到各個階段的置信度,再從中取最大值所屬類型作為本次流量判定類型。用公式表示為

其中,res為 最終的分類結果,confn表示當前流量屬第n類的置信度(2 ≤n≤ 5),phasen表示當前流量被流量預警模塊判定為屬第n類的概率,wni表示第n類與第i類之間的權重,pre_phasei表示同源主機在上一個時間段內流量為第i類的概率。
由式(1)、式(2)可知,各類型之間的權重反應了APT攻擊各階段之間的關系。由于信息偵察為APT攻擊的第 1 階段,因此,針對信息偵察和正常類型則不需要進行再計算。
為了驗證本文系統的有效性和預警方法的優越性,在Kaggle云平臺上對本文系統進行了實驗。使用Tensorflow、Sklearn、pandas等依賴包進行代碼編寫,代碼環境為Python 3.9;使用Telsa P100 16 GB GPU、改造后UNSW-NB15數據集進行模型訓練。
3.1.1 改造后的數據集
改造后數據集的樣本分布如圖3所示,可以看出,數據集中正常類型、漏洞利用類型和數據泄露類型占多數,信息偵察類型占比較小,而權限維持和橫向移動兩種類型作為APT攻擊的后期階段,其數據在圖中占比極少,尤其是橫向移動類型的數據,在圖中幾乎不可見。

圖3 改造后UNSW-NB15數據集樣本分布
3.1.2 模型結構及參數量
文中使用的LSTM模型結構及參數量如表2所示,其中,隱藏層有3層,隱藏神經元數量分別為32、32、16,每層之間加入批標準化(BN,Batch Normalization)操作,緩解在訓練過程中的過擬合問題,每層的激活函數為LeakyReLU。

表2 LSTM模型結構及對應參數量
3.1.3 權重設置
流量預警結果再計算模塊的核心問題為APT攻擊各階段之間的權重設置問題,設置一個合適的權重能夠提高最終分類結果的準確率。由式(1)可知,APT攻擊靠后階段需要加多個階段的預警記錄值,通過該方法也可以解決數據集中APT攻擊后期階段數據量太少(如權限維持和橫向移動)、樣本失衡導致少數類樣本無法訓練、模型無法有效判斷其所屬類型的問題。
本文根據APT攻擊各階段之間的關系,設置了各階段之間的權重,如表3所示。由于APT攻擊的各階段按固定次序發生,因此在設定各階段之間的權重時,相鄰階段的權重設置偏高一些,而非相鄰階段的權重設置低一些;在APT攻擊中的數據滲出階段,攻擊者可以跳過橫向滲透,甚至權限維持階段,直接進行數據滲出,因此在設置數據滲出與各階段之間的權重時,并未按照相鄰階段設置高,非相鄰階段設置低的原則,而是根據APT攻擊過程中可能發生的實際情況設定權重值。

表3 APT攻擊各階段之間權重設置
本文模型在經過500次迭代后收斂,損失函數曲線及準確率曲線如圖4、圖5所示。由圖可知,在前100次迭代過程中,性能得到了比較大的提升,損失函數下降最快;在100~500次迭代過程中,上升幅度較小,但仍舊比較穩定。從整個訓練過程可以看出,訓練集和驗證集在損失函數和準確率的曲線走向上是一致的,可以認為經過訓練的模型具有良好的泛化能力。

圖4 模型迭代過程損失函數曲線

圖5 模型迭代過程準確率曲線
在相同數據集的基礎上,將流量預警模塊中的LSTM模型分別替換成KNN、DT、MLP和GRU模型,比較準確率、精確率、召回率和F1分數值這4個指標,其中,F1分數值是精確率和召回率的調和平均數,結果如表4所示。由表4 可知,本文采用LSTM模型的方法在 4 個指標上均優于其他方法,因此,本文系統能夠有效提高惡意流量預警的準確率,降低誤報率和漏報率。

表4 模型表現對比
針對鐵路信息系統遭受的APT攻擊特征,本文研究并設計了基于堆疊式LSTM模型的APT惡意流量預警系統。利用APT攻擊具有階段性的特性,抽取上一個時間段內同源主機報警記錄,引入置信度概念,以此判斷當前流量所屬類型。該方法有效利用了APT攻擊的特性,能夠更加準確地判斷當前流量所屬類型,并且,該方法可解決樣本不平衡數據集中少數類樣本無法訓練、無法判別的問題。
本文對APT攻擊中各階段之間的權重是在分析各階段間關系的基礎上主觀設置的,更加客觀地量化各階段之間的權重是本文未來要研究的內容。