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