陳 律,李 輝,劉 暢
(1.中國鐵道科學研究院研究生部,北京 100081; 2.中國鐵道科學研究院集團有限公司通信信號研究所, 北京 100081;3.國家鐵路智能運輸系統(tǒng)工程技術研究中心,北京 100081)
隨著我國鐵路的快速發(fā)展,鐵路通信業(yè)務的需求不斷增加,鐵路網絡安全的重要性也日益體現(xiàn)。國家出臺多條相關政策規(guī)劃[1],強化了信息安全在當今社會的戰(zhàn)略地位。目前我國鐵路已明確將采用5G-R實現(xiàn)鐵路下一代移動通信系統(tǒng)[2],預示著對鐵路網絡安全的需求也更加復雜。鐵路網絡安全關系著人民生命財產安全,除了注重日常的安全風險管理,更要考慮從技術層面應對網絡安全問題,以高可靠性承載鐵路各項業(yè)務。
現(xiàn)階段的網絡系統(tǒng)對于外部攻擊部署了多種網絡安全服務應用,包括防火墻[3]、防病毒網關[4]、訪問控制[5]、入侵檢測(Intrusion Detection System, IDS)[6]及入侵防御(Intrusion Prevention System, IPS)[7]等。對于內部用戶攻擊導致網絡泄露等其他安全事件,主要由能夠監(jiān)視和控制流量的網絡安全審計系統(tǒng)來輔助處理。
網絡安全審計系統(tǒng)是為了解決學校、企業(yè)等可能出現(xiàn)的網絡安全問題,以及網絡安全管理和信息審查而設計的一款系統(tǒng)[8]。根據(jù)數(shù)據(jù)來源可以分為三大類:基于網絡的、基于主機的和基于日志的?;诰W絡的網絡安全審計作為使用較為廣泛的一種方式,主要通過串接或旁路來對網絡信息進行監(jiān)控;基于主機的網絡安全審計針對用戶所使用的主機設備進行監(jiān)督;基于日志的網絡安全審計則針對各種日志文件進行收集后統(tǒng)一分析處理。本文提出的網絡安全審計系統(tǒng)采用基于網絡的安全審計模式,具有更強的實時性,從而保證可以快速響應并減少可能的損害,提供全局視野來維護整個網絡環(huán)境。
上述方法均著重于網絡流量數(shù)據(jù)的分析或存儲來提出改進方案,網絡流量采集的實時性沒有明顯提高。此外,目前針對鐵路5G專網這種典型應用場景的研究較少,成果理論不夠充足、完善。5G-R作為一種專用的封閉網絡,其特點是采用的協(xié)議和傳輸?shù)臉I(yè)務內容模式相對固定,專用設備終端外部接口相對封閉。并且部分終端由工作人員手持使用,一旦發(fā)生被惡意盜用的風險事件,需要迅速發(fā)現(xiàn)異常并采取處理措施,以避免出現(xiàn)更大的損失和安全事故,更加強調實時監(jiān)測的重要性。
因此,在5G-R的應用背景下提出一種實時在線進行通信網絡流量檢測的網絡安全審計系統(tǒng)意義重大,也說明在相關問題上有很大的研究發(fā)展空間?;诖?本文提出一種采用eBPF(extend Berkeley Packet Filter, eBPF)技術實時采集鐵路通信網絡流量數(shù)據(jù),在線應用深度學習中的卷積長短期記憶網絡(ConvLSTM)模型進行流量特征提取和分析,最終直觀呈現(xiàn)流量異常情況的網絡安全審計系統(tǒng)。
網絡數(shù)據(jù)通常包括網絡流量、用戶行為、系統(tǒng)日志等。這些數(shù)據(jù)可以從網絡設備(如路由器、交換機)上收集,也可以通過專門的監(jiān)控工具收集。數(shù)據(jù)采集的重點是確保獲取到完整、準確、及時的網絡數(shù)據(jù),以便后續(xù)分析。本系統(tǒng)中選用eBPF技術,主要因為其在內核級別進行數(shù)據(jù)處理和過濾可以快速捕獲大量網絡數(shù)據(jù),滿足鐵路通信網絡的實時性需求。且eBPF在加載到內核前會進行嚴格的驗證,適應于鐵路通信網絡的高安全性要求。
eBPF是起源于Linux內核的技術,最大的優(yōu)勢是無需更改內核源碼或加載內核模塊,便可安全擴展內核功能。其來源于伯克利包過濾器(Berkeley Packet Filter,BPF),BPF最早是由MCCANNE等[15]提出并在1993年發(fā)布[16]。BPF當時用于tcpdump,在內核中提前篩選數(shù)據(jù)包而不會破壞內核[17]。
eBPF的工作原理如圖1所示,可以看作是在內核中運行的類虛擬機[18],通過系統(tǒng)調用與內核之間通信,并不會影響內核的安全性。借助如BCC(BPF Compiler Collection)等eBPF工具,將eBPF程序在用戶態(tài)編寫完成后,經過BTF(BPF Type Format)進行元數(shù)據(jù)格式編碼,編譯為eBPF字節(jié)碼,通過Verifier安全驗證后載入內核運行,之后使用eBPF()系統(tǒng)調用將eBPF字節(jié)碼加載至內核[19],該系統(tǒng)具有多種靜態(tài)或動態(tài)標記以便eBPF程序插入探針來進行事件追蹤。以此實現(xiàn)eBPF程序在指定的系統(tǒng)調用發(fā)生時被執(zhí)行,并將該系統(tǒng)調用發(fā)生時的關鍵信息傳回到用戶態(tài),輸出為對應的事件數(shù)據(jù)或統(tǒng)計數(shù)據(jù)。eBPF()系統(tǒng)同時支持不同類型的映射。針對網絡流量,eBPF可以在網絡封包到達內核協(xié)議棧之前就進行處理,便于實現(xiàn)網絡流量控制。
圖1 eBPF工作原理Fig.1 eBPF working principle
數(shù)據(jù)解析技術是從網絡流量中提取和初步理解信息的過程。數(shù)據(jù)解析技術可以識別出網絡數(shù)據(jù)包的具體內容,如協(xié)議、端口、數(shù)據(jù)報文等。有效的數(shù)據(jù)解析可以幫助使用者了解網絡行為,以便于檢測和預防安全威脅。
一般來說,5G-R數(shù)據(jù)通信的基本單位為以太網幀,包括源地址、目的地址、類型/長度字段、有效載荷(payload)以及檢驗尾部等多個部分。其中部分信息對于下一階段的流量識別是冗余的,需要在數(shù)據(jù)解析技術中,應用相應技術進行數(shù)據(jù)的預處理,將原始的以太幀轉換成適合后續(xù)算法分析的格式。
本系統(tǒng)采用深度學習方法進行數(shù)據(jù)預處理,相較于傳統(tǒng)的預處理方法,深度學習方法有著更強大的特征提取和分類能力,處理速度更快。利用深度學習高效的特征提取能力,提取包括源IP地址、目的IP地址、源端口、目的端口、協(xié)議類型、報文長度和有效載荷等內容。
以上特征不僅可以用來初步分析鐵路網絡流量模式以理解網絡的使用情況,同時也為后期訓練分類器識別網絡異常情況提供有力支持。由此可見,數(shù)據(jù)解析技術是網絡安全審計的一個關鍵步驟,需要仔細設計和執(zhí)行以確保流量識別階段可以從中獲取有用的信息。
流量識別技術是網絡安全審計的一個重要組成部分,其專注于分析網絡流量數(shù)據(jù),以判別網絡上正在發(fā)生的活動和異常狀態(tài)。通常涉及到一些算法和模型,包括但不限于模式匹配、異常檢測、機器學習等。流量識別可以監(jiān)測異常流量模式(可能指示著DDoS攻擊或數(shù)據(jù)泄露)、分析用戶行為(如是否有違規(guī)使用網絡的行為)、優(yōu)化網絡性能等。
傳統(tǒng)的機器學習方法是淺層學習方法[20],挖掘數(shù)據(jù)信息的能力有限。且由于識別異常的過程是針對小概率事件,且數(shù)據(jù)集存在極大的非均衡性,因此,需要使用集成學習或深度學習等魯棒性相對較高的模型[21]。從訓練耗費資源、數(shù)據(jù)量大小及實際應用場景考慮,本系統(tǒng)選用深度學習模型。杜浩良等[22]提出了CNN(Convolutional Neural Networks,卷積神經網)+LSTM(Long short-term Memory, 長短期記憶網絡)的架構模型進行異常流量識別檢測,CNN部分處理輸入數(shù)據(jù)的空間信息,LSTM部分處理輸入數(shù)據(jù)的時間信息,同時利用挖掘流量數(shù)據(jù)的時空特征,提高了檢測的準確率。但是該模型時空信息分開處理會導致空間信息和時間信息中的一些交互關系被忽視。隨機森林(Random Forest)[23]是一種集成學習方法,構建多個決策樹并綜合其結果進行預測。隨機森林可以同時考慮所有特征,并自動學習特征之間的交互關系,從而提高檢測的準確率。然而,如果輸入數(shù)據(jù)是時間序列數(shù)據(jù),隨機森林并不能直接捕捉到這種序列中的時間依賴性。在這種情況下,需要先對時間序列數(shù)據(jù)提取滯后特征、滑動窗口統(tǒng)計特征等,然后再輸入到隨機森林中。
現(xiàn)有的模型在處理時空信息的交互性方面都存在一定不足。這些模型大多數(shù)是獨立處理空間信息和時間信息,或者在處理過程中沒有充分考慮二者之間的交互關系?;诖?本文使用ConvLSTM算法對異常流量進行檢測,對于輸入采用共享參數(shù)處理時空信息,同時更好地學習時空信息之間的交互關系,提高異常流量檢測的準確度和效率。
5G-R 網絡作為專用網絡,其系統(tǒng)架構具有自主可控的特點。這種特性使得網絡可以根據(jù)特定需求和環(huán)境進行定制和優(yōu)化,從而提供更高效、更安全的服務,具體部署環(huán)境如圖2所示。
圖2 網絡安全審計系統(tǒng)部署環(huán)境Fig.2 Network security audit system deployment environment
將網絡安全審計系統(tǒng)采用旁路部署方式接入核心交換機。通過直接接入網絡的核心部分,從而對網絡的整體安全狀況進行全面審計和監(jiān)控。這不僅可以提高網絡安全性,而且可以提高審計效率和準確性。
此外,網絡安全審計系統(tǒng)也可以針對某一具體業(yè)務,接入關鍵業(yè)務系統(tǒng)的指定交換機。這種部署方式可以使網絡審計系統(tǒng)更加精確地針對特定業(yè)務進行監(jiān)控和審計,更加集中地對網絡進行防護,從而提高防護效果和效率。
總的來說,5G-R網絡采用這種系統(tǒng)架構和部署方式,不僅便于集中投入網絡安全防護成本,而且在增強防護能力的同時避免了設備的重復建設。
本系統(tǒng)的結構設計如圖3所示。整體采用python語言編寫,依據(jù)網絡安全審計系統(tǒng)的關鍵技術,分為數(shù)據(jù)采集、數(shù)據(jù)解析、流量識別三大模塊。首先基于eBPF技術,捕獲需審計的系統(tǒng)間的流量數(shù)據(jù),保存為pcap文件。之后利用ConvLSTM算法對數(shù)據(jù)進行預處理,并將其按照算法規(guī)則分類。
圖3 網絡安全審計系統(tǒng)結構設計Fig.3 Network security audit system structural design
3.2.1 數(shù)據(jù)采集模塊
5G-R系統(tǒng)中多數(shù)設備采用Linux系統(tǒng),該系統(tǒng)整體分為3層,從上至下依次為用戶層、內核及硬件系統(tǒng)。捕獲流量部分的代碼在用戶層編寫和調試,最終目的是通過觸發(fā)鉤子函數(shù)執(zhí)行內核的對應功能。在實際應用場景下,為從數(shù)據(jù)包級別跟蹤各設備間通信狀態(tài),同時不影響業(yè)務性能和內核復雜度,采用eBPF抓取網絡流量數(shù)據(jù)。
具體的設計思路是基于Linux系統(tǒng)提供的用戶空間探針Uprobe來尋找用戶態(tài)的程序或庫的特定函數(shù)地址。Uprobe作為一個動態(tài)跟蹤點,eBPF程序可以在此處設置Hook鉤子函數(shù),當內核執(zhí)行到這些點時,將會調用設置好的鉤子,觸發(fā)中斷,陷入內核態(tài)。由于網絡流量數(shù)據(jù)在內核中流轉,此時便可以直接對其進行監(jiān)控和捕獲,通過map映射將信息傳遞給用戶態(tài),之后程序再返回到用戶態(tài)繼續(xù)執(zhí)行后續(xù)操作,將信息儲存為pcap文件以備下一步的處理。
使用Hook機制同時解決了流量加密的問題。若網絡流量數(shù)據(jù)采用了TLS和SSL安全保密協(xié)議,在系統(tǒng)庫的SSL_write、SSL_read函數(shù)設置鉤子函數(shù),可以直接得到該函數(shù)的返回值。而傳統(tǒng)方式下,必須得到認證機構服務簽發(fā)的證書授權(Certificate Authority,CA),證明該實體的身份、公鑰的合法性以及二者之間的匹配關系,才能獲得被加密的信息。因此本程序可以在無CA證書的情況下獲得網絡流量明文數(shù)據(jù),從而進行下一步數(shù)據(jù)解析提取特征。
3.2.2 數(shù)據(jù)解析模塊
由于捕獲到的網絡流量數(shù)據(jù)保存為pcap文件,包含了pcap header和pcap data兩個部分,數(shù)據(jù)區(qū)pcap data又可分為packet header和packet data。實際應用中,原始流量數(shù)據(jù)包含過多的冗余信息,其格式也不利于模型訓練和預測。因此需要進行預處理,將可以明顯體現(xiàn)數(shù)據(jù)特征的信息提取出來,改造成便于模型處理的結構。
本程序中利用python自帶的scapy庫,調用rdpcap()函數(shù)讀取源文件,進行數(shù)據(jù)的整合和清理。用變量data遍歷每條記錄,生成對應的標簽特征集合,并存儲為csv文件,便于后續(xù)訓練省去上述操作,直接調用。
3.2.3 流量識別模塊
流量識別模塊主要是通過ConvLSTM算法模型進行數(shù)據(jù)的判別。卷積長短期記憶網絡(ConvLSTM)是一種特殊類型的長短期記憶網絡(LSTM),其在LSTM的內部結構中加入了卷積操作,使得可以同時處理輸入數(shù)據(jù)的空間信息和時間信息。ConvLSTM主要應用于處理具有空間和時間依賴性的數(shù)據(jù)的任務。
ConvLSTM的基本結構與普通的LSTM相似,如圖4所示,都包括1個遺忘門、1個輸入門、1個輸出門及1個細胞狀態(tài)。然而,與普通的LSTM不同的是,ConvLSTM中的所有組件都是通過卷積操作計算,這意味著ConvLSTM可以處理多維的輸入數(shù)據(jù),并且保留輸入數(shù)據(jù)的空間結構。
圖4 ConvLSTM基本結構Fig.4 ConvLSTM basic structure
遺忘門(Forget Gate):遺忘門的作用是決定哪些信息應被遺忘或丟棄。其通過一個sigmoid函數(shù)計算得到一個介于0和1之間的值,決定細胞狀態(tài)中的哪些信息應被保留,哪些信息應被丟棄。遺忘門的計算公式為
ft=σ(Wf*[ht-1,xt]+bf)
(1)
式中,*為卷積操作;ht-1為上一個時間步的隱藏狀態(tài);xt為當前時間步的輸入;σ為sigmoid激活函數(shù);Wf和bf為遺忘門的參數(shù)。
輸入門的作用是決定哪些新的信息應該被更新到細胞狀態(tài)中。其也通過一個sigmoid函數(shù)計算得到一個介于0和1之間的值,決定哪些新的信息應被添加到細胞狀態(tài)中。輸入門的計算公式為
it=σ(Wi*[ht-1,xt]+bi)
(2)
輸出門的作用是決定細胞狀態(tài)中的哪些信息應該被輸出。其通過一個sigmoid函數(shù)計算得到一個介于0和1之間的值,決定細胞狀態(tài)中的哪些信息應被輸出為當前時間步的隱藏狀態(tài)。輸出門的計算公式為
ot=σ(Wo*[ht-1,xt]+bo)
(3)
候選細胞狀態(tài)(Candidate Cell State):候選細胞狀態(tài)是用于更新細胞狀態(tài)的新的信息。其通過一個tanh函數(shù)計算得到一個介于-1和1之間的值,這個值表示當前時間步的新的信息。候選細胞狀態(tài)的計算公式為
(4)
式中,tanh為雙曲正切激活函數(shù);Wc和bc為候選細胞狀態(tài)的參數(shù)。
更新細胞狀態(tài)(Update Cell State):更新細胞狀態(tài)的作用是結合遺忘門、輸入門和候選細胞狀態(tài),更新當前時間步的細胞狀態(tài)。更新細胞狀態(tài)的計算公式為
(5)
式中,·為元素級別的乘法操作;Ct-1為上一個時間步的細胞狀態(tài)。
更新隱藏狀態(tài)(Update Hidden State):更新隱藏狀態(tài)的作用是根據(jù)輸出門和更新后的細胞狀態(tài),計算當前時間步的隱藏狀態(tài)。更新隱藏狀態(tài)的計算公式為
ht=ottanh(Ct)
(6)
這些步驟的設計使得ConvLSTM可以學習和記憶輸入數(shù)據(jù)中的長期和短期的依賴關系,同時又可以處理輸入數(shù)據(jù)的空間信息。
4.1.1 數(shù)據(jù)集
為驗證本文算法的有效性,使用公開數(shù)據(jù)集CIC-IDS-2017進行實驗驗證。CIC-IDS-2017是一個由加拿大新布倫瑞克大學的網絡安全研究中心發(fā)布的用于入侵檢測的數(shù)據(jù)集。這個數(shù)據(jù)集包含了一周的網絡流量,大約280萬條網絡流量記錄,使用的協(xié)議更加豐富, 包括FTP、HTTP、SSH、Email以及HTTPS協(xié)議[24]。其中有正常流量和各種類型的攻擊流量,如DDoS攻擊、蠕蟲攻擊、Web攻擊、DoS攻擊等,使得這個數(shù)據(jù)集可以用于訓練和測試各種類型的入侵檢測模型。數(shù)據(jù)集中每條網絡流量包含85個特征,如源IP地址、目標IP地址、源端口、目標端口、協(xié)議類型、流量大小等。
一些攻擊類型數(shù)量過少,因此在訓練過程中需要對其進行舍棄,同時本文按照文獻[25]進行了數(shù)據(jù)預處理。由于特征繁多,在訓練時對所有特征進行評估會給模型帶來過大的訓練負擔,因此在已有研究基礎上,利用遞歸特征消除的方法進行特征篩選,遞歸特征消除方法步驟如下。
(1)初始化一個包含所有特征的特征集合。
(2)在特征集合中移除一個特征,然后用剩下的特征訓練ConvLSTM模型,記錄模型的性能。
(3)重復上一步,直到特征集合中的每個特征都被移除過一次。
(4)選取表現(xiàn)最優(yōu)的前6個特征,這6個特征將作為訓練模型的輸入。
需要注意的是,上述提到的所有特征并不是所有的85個特征,而是在已有評估20個特征[25]的基礎上進行。最終每個攻擊類型特征選擇如表1所示。
表1 攻擊類型特征選擇Tab.1 Feature selection of attack types
4.1.2 實驗結果分析
深度學習中常用混淆矩陣作為結果可視化的表示方法,并引入FP、FN、TP與TN的概念,基于準確度的指標如表2所示。
表2 基于準確度的指標Tab.2 Indicators based on accuracy
準確率(acc)表示判斷正確的結果與所有觀測樣本之比
acc=(TP+TN)/(TP+FP+FN+TN)
(7)
查準率(Precision)表示實際為正例的樣本占所有預測為正例樣本的概率值;查全率(Recall)表示模型正確判斷出的正例占數(shù)據(jù)集中所有正例的概率值。
f1分數(shù)(f1-score)表示查準率和查全率的調和平均數(shù),即在二者權重相同的情況下衡量算法性能的指標
f1-score=
2×(precision·recall)/(precision+recall)
(8)
為體現(xiàn)本文算法的有效性,與經典的異常流量識別算法進行對比。選取的方法分別為:基于隨機森林的方法和基于CNN-LSTM的方法。使用acc和f1-score作為評估指標,結果如表3所示。可以看出,本文算法在整體性能表現(xiàn)上達到了最優(yōu)。對比隨機森林算法,本文所有數(shù)據(jù)集的acc提高了0.14;對比CNN-LSTM算法,本文所有數(shù)據(jù)集的acc提高了0.03,驗證了本文算法的有效性。同時在具體攻擊類型上,如DoS GoldenEye、DoS Slowloris相較于其他方法也取得了較大的性能提升。
表3 算法對比Tab.3 Comparison of algorithms
同時,為全面對比模型性能,三個模型的訓練時間如表4所示??梢钥闯?本文算法在訓練時間方面接近隨機森林算法,遠低于CNN-LSTM算法,綜合取得最優(yōu)表現(xiàn)。
表4 訓練時間對比Tab.4 Comparison of training time
上一節(jié)采用CIC-IDS-2017數(shù)據(jù)集驗證了本文算法在復雜特征下異常流量檢測的能力,為模擬鐵路通信網絡中的流量,創(chuàng)建實驗環(huán)境來真實模擬5G-R系統(tǒng)中設備之間的通信,如圖5所示。使用虛擬機軟件VMware Workstation Pro搭建Linux服務器,用于運行所設計的網絡安全審計程序,系統(tǒng)為CentOS 7 64位,IP地址為192.168.40.115,使用NAT模式與本地主機連接,本地主機作為客戶端,IP地址為192.168.40.1。
圖5 模擬5G-R通信實驗環(huán)境Fig.5 Simulation of 5G-R communication experimental environment
實驗在客戶端與服務器端使用python代碼及網絡傳輸助手實現(xiàn)二者之間的TCP通信。在Linux系統(tǒng)上創(chuàng)建目標服務器Server,開啟socket并綁定IP為192.168.40.115,綁定端口為443,需要先開啟運行服務器端才能與客戶端成功通信。發(fā)送正常流量的客戶端Client1,IP為192.168.40.1,通過python代碼實現(xiàn),通信規(guī)則為客戶端發(fā)送任意內容“xxx”,服務器端回復“收到xxx”,即重復收到的內容。異常流量客戶端Client2則更改本地主機IP地址為192.168.40.2,使用軟件網絡傳輸助手,與服務器建立連接后無論發(fā)送什么內容,服務器端均回復“error”。
首先運行Server并開啟網絡安全審計系統(tǒng),使用Client1與之通信,一段時間后,關閉Client1并轉換為Client2與之通信,最終審計系統(tǒng)能夠識別出流量的異常變化情況,達到了設計的預期要求。
將系統(tǒng)判斷結果與實際流量狀態(tài)對比,準確率可以達到95.93%。將判斷結果可視化為混淆矩陣,如圖6所示,共采集流量123條,異常流量標記為“0”,正常流量標記為“1”。可以直觀看出,其中正常流量共有108條,預測正確的108條,預測錯誤的0條;異常流量共有15條,預測正確的10條,預測錯誤的5條。說明本網絡安全審計系統(tǒng)理論上可以較為準確地完成流量的狀態(tài)判斷工作。
圖6 混淆矩陣Fig.6 Confusion matrix
當前鐵路5G專網已部署了成熟的網絡安全設備來抵御外部的惡意侵入,但不包含內部通信異常狀態(tài)的檢測,基于此,本文設計了一種網絡安全審計系統(tǒng)從內外兩方面來提供更加全面的網絡安全服務。結合5G-R的特殊網絡特性,在數(shù)據(jù)采集環(huán)節(jié)采用eBPF技術,相比其他技術方式可以更加快速地捕獲大量網絡數(shù)據(jù)且具有驗證機制,滿足5G-R場景的實時性和高安全性要求;采用深度學習中的ConvLSTM算法分析數(shù)據(jù),統(tǒng)籌時間信息和空間信息,創(chuàng)新性地解決了網絡外部和內部的網絡安全檢測問題,不僅可以檢測出可能存在的非法入侵攻擊等外部安全隱患,還可以系統(tǒng)性地檢測內部使用不當或通信異常帶來的流量變化。
隨著5G-R設備和資源越來越多的云化,網絡安全審計的應用范圍和功能也將不斷得到拓展和升級。面對這一發(fā)展趨勢,本系統(tǒng)可能存在數(shù)據(jù)不平衡、面對新類型的異常泛化能力不足的問題。未來可以考慮增加數(shù)據(jù)特征維度,進一步完善相關算法,以提升系統(tǒng)的檢測和防護能力,更好滿足日益增長的網絡安全需求。