蔡元萃,杜紅艷,王欣
(1.中國勞動關(guān)系學(xué)院網(wǎng)絡(luò)信息中心,北京 100048;2.中國航天系統(tǒng)科學(xué)與工程研究院,北京 100083;3.中電智能科技有限公司,北京 102209)
隨著云計算、大數(shù)據(jù)、人工智能給人類社會與生活帶來極大變革,網(wǎng)絡(luò)環(huán)境和數(shù)據(jù)利用日趨復(fù)雜,催生了嚴(yán)峻的網(wǎng)絡(luò)安全問題與挑戰(zhàn),網(wǎng)絡(luò)安全成為了信息時代的核心命題[1],傳統(tǒng)的網(wǎng)絡(luò)安全管理思路,如“重建設(shè)、輕管理”、一成不變的安全策略等,都難以適應(yīng)網(wǎng)絡(luò)安全形勢瞬息萬變新時代,如何智能調(diào)整安全策略,自動識別新型網(wǎng)絡(luò)攻擊,是當(dāng)下網(wǎng)絡(luò)安全的難點和痛點。本文在傳統(tǒng)網(wǎng)絡(luò)安全態(tài)勢感知平臺基礎(chǔ)上提出響應(yīng)式解決方案,并在識別新型網(wǎng)絡(luò)攻擊方面提出智能預(yù)測的應(yīng)用思路,以提升網(wǎng)絡(luò)安全態(tài)勢感知平臺的主動性和智能性。
網(wǎng)絡(luò)安全態(tài)勢感知研究是近幾年發(fā)展起來的一個熱門研究領(lǐng)域。網(wǎng)絡(luò)安全態(tài)勢感知在提高網(wǎng)絡(luò)的監(jiān)控能力、應(yīng)急響應(yīng)能力和預(yù)測網(wǎng)絡(luò)安全的發(fā)展趨勢等方面都具有重要的意義。它融合所有信息實時評估網(wǎng)絡(luò)安全狀況,為網(wǎng)絡(luò)安全的決策提供依據(jù),將風(fēng)險和損失降到最低。一般來說,網(wǎng)絡(luò)安全態(tài)勢感知按功能分為要素提取、評估和預(yù)測三個方面[2]。
在要素提取方面,態(tài)勢要素主要包括靜態(tài)的配置信息、動態(tài)的運行信息以及網(wǎng)絡(luò)的流量信息等。國外的學(xué)者一般通過提取某種角度的態(tài)勢要素來評估網(wǎng)絡(luò)安全態(tài)勢,但存在無法獲取全面信息的問題。國內(nèi)的學(xué)者一般綜合考慮網(wǎng)絡(luò)各方面的信息,比如充分使用大數(shù)據(jù)技術(shù),從多個角度分層次描述網(wǎng)絡(luò)的安全態(tài)勢,但沒有考慮指標(biāo)體系中各因素之間的關(guān)聯(lián)性。
在態(tài)勢評估方面,研究者們摒棄了研究單一的安全事件,而是從宏觀角度去考慮網(wǎng)絡(luò)整體的安全狀況,以獲得網(wǎng)絡(luò)安全的綜合評估。目前用于網(wǎng)絡(luò)安全態(tài)勢評估的算法大致分為以下幾類:邏輯關(guān)系法、數(shù)學(xué)模型法、概率統(tǒng)計法和推理規(guī)則法。其中邏輯關(guān)系不能解釋系統(tǒng)中存在的不確定性,概率統(tǒng)計容易造成計算量爆炸問題,影響態(tài)勢評估的實時性,推理規(guī)則在輸入條件沖突時,方法的準(zhǔn)確性會受到嚴(yán)重的影響。
在態(tài)勢預(yù)測方面,網(wǎng)絡(luò)安全態(tài)勢的預(yù)測是指根據(jù)網(wǎng)絡(luò)安全態(tài)勢的歷史信息和當(dāng)前狀態(tài)對網(wǎng)絡(luò)未來一段時間的發(fā)展趨勢進(jìn)行預(yù)測。由于網(wǎng)絡(luò)攻擊的隨機性和不確定性,安全態(tài)勢變化是一個復(fù)雜的非線性過程,限制了傳統(tǒng)預(yù)測模型的使用。目前,網(wǎng)絡(luò)安全態(tài)勢預(yù)測一般采用支持向量機、時間序列預(yù)測法、機器學(xué)習(xí)等方法。支持向量機屬于有監(jiān)督機制算法,難以解決非線性問題;時間序列預(yù)測法在處理具有非線性關(guān)系、非正態(tài)分布特性的宏觀網(wǎng)絡(luò)態(tài)勢值所形成的時間序列數(shù)據(jù)時,效果并不是很理想;機器學(xué)習(xí)算法主要依靠經(jīng)驗風(fēng)險最小化原則,容易導(dǎo)致泛化能力下降且模型結(jié)構(gòu)難以確定的問題,但隨著深度學(xué)習(xí)理論的突破,取得的效果逐漸顯著,是目前絡(luò)安全態(tài)勢預(yù)測的研究熱點[2]。
傳統(tǒng)的網(wǎng)絡(luò)安全態(tài)勢感知主要針對單一網(wǎng)絡(luò)環(huán)境,在設(shè)計上僅對網(wǎng)絡(luò)攻擊的行為進(jìn)行數(shù)據(jù)收集和分析。隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,相應(yīng)的指標(biāo)體系應(yīng)運而生,但指標(biāo)不全面,精準(zhǔn)性與實時性方面時常存在缺陷。大數(shù)據(jù)技術(shù)提升了感知能力,深度學(xué)習(xí)加強了預(yù)測分析能力,網(wǎng)絡(luò)安全態(tài)勢感知系統(tǒng)具備了實戰(zhàn)能力,這都依賴于大量的歷史數(shù)據(jù)和關(guān)聯(lián)數(shù)據(jù)。網(wǎng)絡(luò)攻防的形勢瞬息萬變,靠先驗知識難以精準(zhǔn)應(yīng)對碎片化攻擊、超長潛伏期攻擊,尤其對于新型攻擊的識別存在較大困難,如何能做到先敵制勝,是網(wǎng)絡(luò)安全防御的終極難題。對此,人工智能領(lǐng)域中的生成對抗網(wǎng)絡(luò)技術(shù)對于模擬攻防行為和應(yīng)急演練上能自我提升學(xué)習(xí)能力,根據(jù)有限的攻擊片段,提前發(fā)掘完整攻擊鏈,對識別新型攻擊將具有極大的研究價值。
響應(yīng)式網(wǎng)絡(luò)安全態(tài)勢感知平臺是以復(fù)雜網(wǎng)絡(luò)環(huán)境為研究背景[3],將統(tǒng)一數(shù)據(jù)管理、態(tài)勢感知、態(tài)勢評估、智能預(yù)測和決策支持等緊密結(jié)合,利用大數(shù)據(jù)技術(shù)的大量、高速、多樣、價值、真實性的特征,利用深度學(xué)習(xí)技術(shù)的無監(jiān)督、可泛化、自主學(xué)習(xí)的優(yōu)勢,實現(xiàn)網(wǎng)絡(luò)安全態(tài)勢感知、評估和決策一體化系統(tǒng)[4]。它可以實時監(jiān)控網(wǎng)絡(luò)的安全狀態(tài),保證網(wǎng)絡(luò)的安全性能,并自動調(diào)整安全策略應(yīng)對潛在的安全威脅和攻擊,實現(xiàn)響應(yīng)式系統(tǒng)能力。響應(yīng)式網(wǎng)絡(luò)安全態(tài)勢感知平臺技術(shù)架構(gòu)如圖1所示。
響應(yīng)式網(wǎng)絡(luò)安全態(tài)勢感知平臺分為統(tǒng)一數(shù)據(jù)管理系統(tǒng)、態(tài)勢感知系統(tǒng)、態(tài)勢評估系統(tǒng)、智能預(yù)測系統(tǒng)、決策支持系統(tǒng)五個子系統(tǒng)。
(1)統(tǒng)一數(shù)據(jù)管理系統(tǒng)
有效解決數(shù)據(jù)多來源、多格式、多標(biāo)準(zhǔn)的問題,避免信息孤島,構(gòu)建統(tǒng)一的數(shù)據(jù)資源池,實現(xiàn)全方位的數(shù)據(jù)共享和利用,為整體平臺和其他子系統(tǒng)的數(shù)據(jù)生產(chǎn)和流向奠定基礎(chǔ)。
(2)態(tài)勢感知系統(tǒng)
統(tǒng)籌其他子系統(tǒng)協(xié)作分工的核心子系統(tǒng)。第一,利用大數(shù)據(jù)技術(shù)對各類型的數(shù)據(jù)進(jìn)行采集,實時統(tǒng)一轉(zhuǎn)儲到統(tǒng)一數(shù)據(jù)管理系統(tǒng);第二,啟動智能預(yù)測系統(tǒng)進(jìn)行安全威脅分析,得出安全威脅系數(shù);第三,根據(jù)安全威脅系數(shù)的級別和類別,更新態(tài)勢評估系統(tǒng)的安全類別聚類中心和聚類范圍,當(dāng)安全威脅系數(shù)觸發(fā)規(guī)則,啟動決策支持系統(tǒng),對安全策略進(jìn)行變更,實現(xiàn)靈活機動的自適應(yīng)功能,具備響應(yīng)式的基本特征。
(3)態(tài)勢評估系統(tǒng)
態(tài)勢評估系統(tǒng)是對態(tài)勢感知的數(shù)據(jù)進(jìn)行評估,得出安全級別劃分和安全分類聚類,通常用概率或權(quán)重來表示。在級別劃分上采用有監(jiān)督機制,人工制定安全級別和對應(yīng)的威脅程度;在安全分類上采用無監(jiān)督機制,利用聚類的方法進(jìn)行動態(tài)調(diào)整。
(4)智能預(yù)測系統(tǒng)
采用機器學(xué)習(xí)中深度學(xué)習(xí)方法不斷訓(xùn)練匹配規(guī)則,通過足夠量的訓(xùn)練數(shù)據(jù),提升預(yù)測匹配度,輸入數(shù)據(jù)為統(tǒng)一標(biāo)準(zhǔn)后的網(wǎng)絡(luò)行為鏈,輸出數(shù)據(jù)為發(fā)生安全威脅的概率。
(5)響應(yīng)式?jīng)Q策支持系統(tǒng)
以自主防御為目的,采用決策支持系統(tǒng)的架構(gòu),輔以專家系統(tǒng)和關(guān)聯(lián)規(guī)則等技術(shù),根據(jù)系統(tǒng)決策的量化結(jié)果,自動觸發(fā)應(yīng)急預(yù)案,通過細(xì)化的組合指令向安全設(shè)備發(fā)出系統(tǒng)級命令,啟動或關(guān)閉預(yù)定策略,以達(dá)到自動化響應(yīng)式的效果。
生成式對抗網(wǎng)絡(luò)是一種深度學(xué)習(xí)模型,能夠自我博弈,且具備高檢測精度和低時間消耗的識別模型,是近年來復(fù)雜分布上無監(jiān)督學(xué)習(xí)最具前景的方法之一。本文將依托網(wǎng)絡(luò)安全行為數(shù)據(jù)特征,構(gòu)建一種基于生成對抗網(wǎng)絡(luò)的解決思路,起到提前預(yù)測的效果。
數(shù)據(jù)空間是網(wǎng)絡(luò)安全行為所在的空間,是所有訪問日志、行為日志等數(shù)據(jù)構(gòu)成的集合。在生成攻擊鏈這個任務(wù)中,數(shù)據(jù)空間就是一些網(wǎng)絡(luò)安全行為的集合,也稱為網(wǎng)絡(luò)安全行為空間。在網(wǎng)絡(luò)安全行為空間里,每一個網(wǎng)絡(luò)安全行為都是這個空間里的點。將這些特殊的點記做數(shù)據(jù)點,為了有效表達(dá),關(guān)鍵特征必須包括時間、級別、次數(shù)、協(xié)議、源IP、目標(biāo)IP、動作、事件描述等要素,具體數(shù)據(jù)存儲建模記做Dp(i)={Time,Level,Number,Protocol,Source IP,Target IP,Action,Event Description},而由數(shù)據(jù)空間中的數(shù)據(jù)點構(gòu)成的具有關(guān)聯(lián)關(guān)系的序列數(shù)據(jù)簇,并且能產(chǎn)生網(wǎng)絡(luò)安全威脅和后果,稱作攻擊鏈。
3.2.1 網(wǎng)絡(luò)模型結(jié)構(gòu)
生成式對抗網(wǎng)絡(luò)是源于博弈論中的零和博弈的一種生成式模型[5],主要由一個生成器(Generator) 和一個判別器(Discriminator) 組成,如圖2所示。從某個概率分布P中采樣隨機變量Z,作為生成器G的輸入,經(jīng)過G的轉(zhuǎn)換,輸出偽數(shù)據(jù)G(Z)。同時將一個證實的網(wǎng)絡(luò)攻擊數(shù)據(jù)X稱為真實數(shù)據(jù)。判別器D以G(Z) 或X為輸入,計算某一個輸入是否為真實數(shù)據(jù),并得出概率,能有效區(qū)分輸入數(shù)據(jù)是來自于真實數(shù)據(jù)還是生成數(shù)據(jù)[6]。
圖2 生成對抗網(wǎng)絡(luò)結(jié)構(gòu)流程圖
3.2.2 生成網(wǎng)絡(luò)
生成網(wǎng)絡(luò)的職責(zé)是把隨機點變成與數(shù)據(jù)集相似的數(shù)據(jù)。這些隨機點是從一個潛在空間中隨機抽取的。生成網(wǎng)絡(luò)是一個可以實現(xiàn)“點到點變換”的函數(shù),它把潛在空間中的點變成網(wǎng)絡(luò)威脅空間中的點。生成網(wǎng)絡(luò)生成的點叫做生成點。通過生成網(wǎng)絡(luò),潛在空間中的分布可以變換為網(wǎng)絡(luò)威脅空間中的分布。
真實網(wǎng)絡(luò)攻擊鏈在網(wǎng)絡(luò)空間中的分布情況是非常復(fù)雜的,簡單的函數(shù)很難把這些隨機的點恰好都變到真實網(wǎng)絡(luò)攻擊鏈所在的位置,所以實踐中通常要利用深度神經(jīng)網(wǎng)絡(luò),其強大的表達(dá)能力使得生成完整的網(wǎng)絡(luò)攻擊鏈成為可能,但仍有可能因生成網(wǎng)絡(luò)的隨意設(shè)定而得到一些毫無意義的網(wǎng)絡(luò)行為鏈,所以設(shè)定訓(xùn)練目標(biāo),可以通過減小與目標(biāo)的差距而優(yōu)化網(wǎng)絡(luò)。
在訓(xùn)練生成網(wǎng)絡(luò)過程中,先固定生成網(wǎng)絡(luò),訓(xùn)練判別網(wǎng)絡(luò)。首先生成一定數(shù)量的隨機點,并利用生成網(wǎng)絡(luò)將這些隨機點變?yōu)榫W(wǎng)絡(luò)攻擊鏈,再找一定數(shù)量的真實網(wǎng)絡(luò)攻擊鏈,與生成網(wǎng)絡(luò)攻擊連組成一個二分類的數(shù)據(jù)集。分類的目標(biāo)就是分辨網(wǎng)絡(luò)攻擊鏈?zhǔn)巧傻倪€是真實的,在這個小數(shù)據(jù)集上可以訓(xùn)練一個判別網(wǎng)絡(luò),從而賦予其區(qū)分真實網(wǎng)絡(luò)攻擊鏈和生成網(wǎng)絡(luò)攻擊鏈的能力。
3.2.3 判別網(wǎng)絡(luò)
判別網(wǎng)絡(luò)的任務(wù)是判斷一個網(wǎng)絡(luò)攻擊鏈究竟是來自真實數(shù)據(jù)還是由生成網(wǎng)絡(luò)所生成。在訓(xùn)練判別網(wǎng)絡(luò)的過程中,通過不斷輸入兩類不同的網(wǎng)絡(luò)攻擊鏈并為兩類行為標(biāo)注不同的數(shù)值以提高它的辨別能力,通常輸入真實網(wǎng)絡(luò)攻擊鏈標(biāo)注數(shù)值為1,若輸入的是當(dāng)前生成網(wǎng)絡(luò)生成的網(wǎng)絡(luò)攻擊鏈標(biāo)注數(shù)值為0。當(dāng)判別網(wǎng)絡(luò)認(rèn)為兩種可能都有時,則會輸出網(wǎng)絡(luò)攻擊鏈?zhǔn)钦鎸崝?shù)據(jù)的概率。判別網(wǎng)絡(luò)的輸出結(jié)果用一個數(shù)值來指示空間中的一個點來自真實數(shù)據(jù)的可能性。
在訓(xùn)練判別網(wǎng)絡(luò)的過程中,先固定判別網(wǎng)絡(luò),訓(xùn)練生成網(wǎng)絡(luò),持續(xù)地在潛在空間中生成隨機點,并通過生成網(wǎng)絡(luò)將這些隨機點變換成生成網(wǎng)絡(luò)攻擊鏈。將生成攻擊鏈輸入到判別器中,得到其是否為真實網(wǎng)絡(luò)攻擊鏈的概率。更重要的是,判別網(wǎng)絡(luò)也會給生成網(wǎng)絡(luò)提出如何提高判別輸出概率的反饋信息。生成網(wǎng)絡(luò)利用得到的反饋信息來調(diào)整網(wǎng)絡(luò)的參數(shù),使得生成出來的作品能在判別網(wǎng)絡(luò)中獲得更高的分?jǐn)?shù),經(jīng)過一定量的訓(xùn)練,生成網(wǎng)絡(luò)就可以輸出更接近真實網(wǎng)絡(luò)攻擊鏈的生成攻擊鏈。
3.3.1 實驗環(huán)境
硬件環(huán)境為:4顆i7-6 850k的CPU,2顆EVGA GTX1 080T的GPU,4條32G DDR4內(nèi)存。
軟件環(huán)境為:操作系統(tǒng)為Ubuntu16.04,集成環(huán)境為AnaConda3-5.2.0,開發(fā)環(huán)境為PyCharm2018.3.3,開發(fā)語言為Python3.3,計算架構(gòu)為TensorFlow2.0,其他庫包括matplotlib.pyplot、numpy、os、PIL、time。
數(shù)據(jù)源為:KDD CUP 99 dataset。
3.3.2 實驗步驟
(1)定義生成器
使用上采樣從隨機變量生成網(wǎng)絡(luò)安全攻擊鏈,從一個Dense將此種子作為輸入的層開始,然后上采樣幾次。定義方法為:
def make_generator_model()
(2)定義判別器
使用判別器旨在一個形成網(wǎng)絡(luò)安全攻擊鏈分類器。定義方法為:
def make_discriminator_model()
(3)定義判別器損失函數(shù)與優(yōu)化器
該方法量化了判別器能夠?qū)⒄鎸嵐翩溑c生成攻擊鏈區(qū)分開的程度。它將判別器對真實攻擊鏈的預(yù)測與1的數(shù)組進(jìn)行比較,并將判別器對生成攻擊鏈的預(yù)測與0的數(shù)組進(jìn)行比較。定義損失函數(shù)為:
def discriminator_loss(real_output,fake_output)
定義優(yōu)化方法為:
discriminator_optimizer = tf.keras.optimizers.Adam(1e-4)
(4)生成器損失函數(shù)與優(yōu)化器
生成器的損失函數(shù)直觀地量化了它能夠欺騙鑒別器的程度。如果生成器表現(xiàn)良好,則判別器將生成攻擊鏈分類為真實(或1)。將生成的攻擊鏈上的判別器決策與1的數(shù)組進(jìn)行比較。定義損失函數(shù)為:
def generator_loss(fake_output)
定義優(yōu)化方法為:
generator_optimizer = tf.keras.optimizers.Adam(1e-4)
(5)定義循環(huán)訓(xùn)練
循環(huán)訓(xùn)練從生成器接收隨機種子作為輸入開始。該種子用于產(chǎn)生攻擊鏈,然后使用判別器對真實攻擊鏈(從訓(xùn)練集中生成)和生成攻擊鏈(由生成器產(chǎn)生)進(jìn)行分類。計算每個模型的損失函數(shù),并使用梯度更新生成器和判別器。定義方法為:
def train_step(attackchains)
def train(dataset,epochs)
def generate_and_save_attackchains(model,epoch,test_input)
(6)訓(xùn)練模型
調(diào)用train()上面定義的方法同時訓(xùn)練生成器和判別器。定義方法為:
train(train_dataset,EPOCHS)
(7)創(chuàng)建一個完整攻擊鏈
根據(jù)一個攻擊片段,生成一個完整攻擊鏈,完成預(yù)測。定義方法為:
def display_attackchain(epoch_no)
3.3.3 實驗結(jié)果
KDD99數(shù)據(jù)集總共由500萬條記錄構(gòu)成,含有一個10%的訓(xùn)練子集和測試子集,訓(xùn)練集中共出現(xiàn)了22個攻擊類型,而剩下的17種只在測試集中出現(xiàn),本試驗在訓(xùn)練集數(shù)據(jù)9 000次迭代后,開始啟用測試集,針對17種新型攻擊的識別概率0.7以上的是15種,攻擊鏈構(gòu)建70%時的提前識別率為5種,其中識別概率最高的是DOS攻擊分類下的mailbomb攻擊子類,數(shù)值為93.75%,最早被識別的是R2L攻擊分類下的snmpgetattack子類,提前識別率為72%,這對于瞬息萬變的網(wǎng)絡(luò)安全形勢而言,識別率并不理想,仍需進(jìn)一步根據(jù)數(shù)據(jù)源分布情況進(jìn)行深化研究,具體思路為對損失函數(shù)和優(yōu)化器進(jìn)行綜合改進(jìn)的同時,對生成對抗網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行改進(jìn),增加其反饋機制,改進(jìn)循環(huán)策略,提升收斂速度。
本文研究了網(wǎng)絡(luò)安全態(tài)勢感知的現(xiàn)狀,并針對現(xiàn)有缺陷分析提出了一種新的系統(tǒng)設(shè)計思路,在傳統(tǒng)態(tài)勢感知三大功能基礎(chǔ)上,提出決策支持和統(tǒng)一數(shù)據(jù)管理的創(chuàng)新思路,使得網(wǎng)絡(luò)安全態(tài)勢感知具備響應(yīng)式布局,能夠?qū)Π踩{進(jìn)行最快的阻斷和應(yīng)急反應(yīng)。同時提出一種基于生成對抗網(wǎng)絡(luò)的智能預(yù)測模型,可以根據(jù)攻擊片段預(yù)測完整攻擊鏈,提前主動式發(fā)掘新型網(wǎng)絡(luò)攻擊,結(jié)合響應(yīng)式網(wǎng)絡(luò)安全態(tài)勢感知系統(tǒng),變被動為主動,顯著提升網(wǎng)絡(luò)安全防御的能力。但根據(jù)實證分析,識別率(特別是提前識別率)不夠理想,算法模型仍需在識別精度、識別分類上繼續(xù)改進(jìn)。