譚平嶂,滕鵬國,李 丹
(中國電子科技集團公司第三十研究所,四川 成都 610041)
隨著信息技術的發展和網絡的普及,越來越多的信息系統聯入網絡,為人們的生產生活帶來了極大便利,同時也擴大了信息系統和信息的安全風險。隨著信息系統能力和復雜程度的提高,各種網絡威脅日新月異,安全威脅的形態也逐步向廣域化、組織化及復雜化的特點發展演進[1-2]。在網絡高度發展,聯通能力不成為障礙的情況下,信息安全成為制約信息化的主要瓶頸。對系統安全性的擔憂,直接影響了一些業務的網上運營和數據共享。
由于網絡攻擊事件層出不窮,信息系統的管理者和維護者逐步建立了風險意識和安全防范意識。因此,在一些重點領域的信息化建設中,人們往往投入大量資金開展網絡和系統安全防護建設[3-4],但是仍然對系統的安全性感覺“不托底”。對安全的主要困惑體現于如下4 個方面。
(1)雖然系統中已經采用了很多防控措施,并部署了很多安全防護設備,但是仍不能確定系統是否足夠安全,是否有效解決了安全問題,是否存在遺漏或安全死角,以及如何更有效地確保系統安全性。
(2)當前系統的配置和部署,能夠在何種程度上保護系統的安全,不清楚系統安全防護強度有多大以及需要多大。
(3)安全防護系統運行中,面臨威脅攻擊時,眾多安全防護設備如防病毒、主機監控、IDS 等上報了很多告警信息,但無法確定威脅攻擊的嚴重程度,對整個系統的正常運行影響有多大,帶來的安全風險又有多大,當前的安全防護體系是否能夠有效抵御,是否需要采取應急措施。
(4)如何進行安全風險定位,若感覺系統運行不正常如何界定威脅的影響范圍。在大量的告警、日志等信息中,很難進行高效準確的風險定位和影響因素的關聯性分析,從而難以對威脅攻擊進行及時有效的防范和處理。
針對信息系統的擁有者而言,上述困惑的本質在于安全性是系統內在的一個較為抽象的概念,也是一個和網絡威脅對抗相對的概念。組成安全性的要素往往不能夠直接測量或采集,安全性評估與通過信息系統或安全防護設備采集的指標往往脫節。例如:安全防護裝備采集的告警信息一般是網絡攻擊的直接特征信息,但不能直接反應系統的安全狀態以及判斷能否抵御當前的攻擊。同時,安全性涵蓋系統組成和運用模式當中多種要素的疊加,單一指標難以判定系統整體的安全性。因此,引入隱馬爾科夫模型,通過打通可測量指標與系統安全性之間的聯系,建立一個信息安全風險的評估體系,對系統的安全性進行整體描述,幫助信息系統的擁有者和管理者能夠整體評估當前系統的安全性。
隱馬爾科夫模型(Hidden Markov Model,HMM)簡稱HMM 模型[5-7],是通過觀測值求解隱藏狀態變化的模型,通過雙重的隨機模型描述狀態與觀測值對應關系。在隱馬爾可夫模型中,隱藏狀態雖不直接可見,但影響狀態的某些變量則是可見的。由于每一個狀態在可能輸出的符號上都有概率分布,從而可以建立隱藏狀態和觀察值的統計模型,通過可觀測到的數據,預測不可觀測到的數據。
假定系統有一個狀態值序列X={x1,x2,x3,x4,x5,…,xt},其觀測值序列為Y={y1,y2,y3,y4,y5,…,yt}。在每個時間點上觀測到的情況僅僅和當前的隱藏狀態變量有關(即y1和x1相關,y2和x2相關,…),而隱藏狀態變量X是無法觀測的,這就是HMM 模型,如圖1 所示。

圖1 隱馬爾科夫模型
假定其中隱藏狀態變量序列X具有N種取值,表明該系統具有N個狀態,狀態集合S記為S={s1,s2,s3,…,sN}。觀測值Y具有M種取值,表明該系統觀測值有M個取值,觀測值集合O記為O={o1,o2,o3,…,oM}。
一個HMM 模型一般由3 個部分組成,記為λ={A,B,Π}
(1)狀態轉移概率矩陣A維度為N×N可表示為任意兩個狀態之間轉移概率形成的矩陣,記為A={aij},或者:

aij表示序列X從狀態si轉移到sj的概率,其中:

(2)觀測概率矩陣B維度為N×M表示發射概率及每個狀態下觀測值的概率,記為B={bi(k)}。bi(k)表示序列Y在狀態si時觀測值ok的概率,其中:

(3)初始狀態概率向量Π,維度為N×1。記為Π={πi},πi表示初始時狀態為si的概率,其中:

從隱馬爾科夫模型定義中可以看出,該模型中通過狀態轉移矩陣描述了隱藏狀態變量之間的轉移概率,通過觀測矩陣描述了系統內部狀態與外部觀測值之間的對應概率。結合初始狀態概率,能夠計算出各種內部狀態序列出現的概率以及各狀態與觀測值之間的關系。在安全性評估中,由于安全狀態是內在的、無法讀取的,而人們感興趣的是如何通過能夠觀測的數據計算出信息系統當前的安全狀態。因此,可以將安全狀態抽象為系統的狀態序列,將信息系統和安全防護設備的一些采樣讀數作為觀測序列,從而建立一個隱馬爾科夫模型,通過觀測序列計算隱藏狀態序列出現的概率,從而實現對系統安全狀態的評估。
對信息系統進行安全性評估和安全建設時,針對信息系統的安全性,需要具有以下的認識。
(1)安全性是有條件的,是信息系統在一定條件下對任意可能攻擊破壞承受能力的總和。任何信息系統在安全建設或管理中需要接受信息安全的不完備。
(2)安全性是相對的,是攻防雙方博弈對抗的綜合結果,沒有100%安全。對于一個信息系統而言,不可能解決完所有的安全威脅后系統再開始運行。安全的規劃和建設需要與系統運用效率取得平衡。
(3)風險是永遠存在的。在信息系統業務運行過程中,安全風險始終如影隨形。安全運維保障處理威脅攻擊不能頻繁打斷業務的正常運行,需要在系統運行中對各類攻擊具有一定的容忍度。
因此,信息系統安全評估是系統建設的重要組成部分。通過對信息系統安全狀態的實時評估,能夠及時掌握系統的安全狀態和面臨的危險程度,通過調整防控策略最大限度降低系統風險,保障系統正常運行。信息安全評估的內容與方法有別于一般傳統領域,需要在信息攻防對抗實踐過程中逐步確立、發展和完善。一個靜態的模型不足以支持對發展變化的網絡威脅進行持續跟蹤,因此建立的評估模型需要具備動態自適應的特性。實踐中采用HMM模型描述系統安全狀態與觀測值的映射關系,通過機器學習對模型中的參數進行訓練不斷迭代更新參數,使得評估模型逐步完善,并能夠適應外部環境的不斷變化。
假定一個HMM 模型為λ={A,B,Π},在安全評估前先要通過參數確定來完成模型的建立。
首先從系統安全性的角度建立系統的狀態取值范圍。這些狀態值的設定應該都能夠反映當前系統安全的內在狀態。由于信息系統是由各個組件以及組件之間的不同聯結方式共同組成,因此信息系統存在的安全風險不僅與組件有關,還受組件之間聯結的影響,同時各狀態之間能夠進行相互轉化。這里從系統本身的安全屬性來定義狀態的取值范圍。選擇的狀態取值范圍應是表示系統的主要安全狀態,而過多的狀態設定會造成評估的計算量過大。因此,可設置隱藏狀態變量取值范圍S={s1,s2,s3,…,sN},定義的狀態值說明如表1 所示。

表1 隱藏狀態變量取值范圍狀態值說明
觀測值是能夠在系統中直接讀取的、確定的信息。在安全評估中,可以采用系統中部署的安全防護裝備的告警信息、日志以及信息系統自身的管理運維日志等進行表示。具體的采集信息由系統建設中安全防護系統的部署與安全策略的配置情況決定。常用觀測值讀取的類型主要包括防火墻類設備、入侵檢測類設備、防病毒軟件、主機監控軟件、服務器的系統日志、核心業務軟件工作日志以及云平臺的運行日志等。在安全防護的評估中,任意一種單一設備的信息是無法完整反映整個系統的安全性,需要通過對多個設備信息的采集反映安全狀態的變化。每個設備產生的信息都是各自獨立的,形成多個隨機序列,因此通過將每個設備的觀測值作為一組觀測序列形成多個評估模型,逐一采樣計算后對結果進行綜合再得到最后的安全性評估結果。假定有v個設備作為觀測序列采集對象,每個采集對象的觀測值有M個不同的觀測值,記為:

不同系統面臨的環境不同,各狀態之間的轉移概率是沒有固定的經驗值確定的,而隱藏狀態與觀測值之間的發射概率也不完全相同。因此,狀態轉移矩陣和觀測概率矩陣需要每個系統單獨動態構建,并通過機器學習的方式對其進行持續修正,以達到最佳效果。
如果得到多組足夠長的隱藏狀態、觀測值序列{(x1,y1),(x2,y2),…,(xD,yD)},就可以使用最大似然來求解模型參數。但是,實際上狀態信息X是隱藏狀態變量,不能夠直接得到狀態序列,往往只能夠得到觀測序列Y。因此,需要從多組可觀測序列中求出合適的狀態序列分布。通常采用期望最大化算法(Expectation-Maximum,EM)通過觀測序列得出HMM 模型的模型參數。
EM 算法使用啟發式迭代方法,首先猜想或隨機化模型中的參數(EM 算法的E 步),即隨機初始化當前模型參數為λ*,其中λ={A,B,Π}。隨后基于觀測數據和隱藏數據一起進行極大化對數似然,求解模型參數(EM 算法的M 步),得到更新的模型參數λ。
聯合分布P(Y,X|λ)基于條件概率P(X|Y,λ*)的期望表達式為:

極大化式(6),然后得到更新后的模型參數如下:

然后進行多輪的E 步和M 步的迭代,直到模型λ的參數值收斂為止。通過多次迭代學習,確認了模型λ的參數,即表明建立了內部安全狀態與外部觀測值的關系,從而能夠通過觀測值序列得出系統安全狀態的最大可能性。
EM 算法的求解涉及到迭代,還需要前向算法和后向算法兩個基礎的算法,用來求HMM 觀測序列的概率。前向算法本質上屬于動態規劃的算法,即通過找到局部狀態遞推的公式,一步步從子問題的最優解拓展到整個問題的最優解。
(1)前向概率
在前向算法中,需要通過定義“前向概率”來定義動態規劃的這個局部狀態。前向概率是指設定某時刻t隱藏狀態為si,觀測狀態序列為o1,o2,o3,…,ot的概率,記為at(i):

從而:

(2)后向概率
假定當時刻t隱藏狀態為si,時刻t+1 隱藏狀態為sj時,出現觀測狀態的序列為ot+2,ot+3,…,oT的概率為βt+1(j)。那么,在時刻t+1 隱藏狀態為sj,觀測狀態的序列為ot+2,ot+3,…,oT的概率為aijβt+1(j)隨后可得到時刻t隱藏狀態為si時刻t+1 隱藏狀態為sj時,出現觀測狀態的序列為ot+1,ot+2,…,oT的概率為aijbj(ot+1)βt+1(j)。把所有對應的概率加起來,可以得到觀測狀態的序列為ot+1,ot+2,…,oT。t時刻隱藏狀態為si的后向概率記為βt(i):

(3)已知模型參數下,根據觀測序列預測某時刻下特定狀態的概率
對于確定的模型λ和觀測序列O,在時刻t時處于狀態si的概率γt(i)記為:

利用前向概率和后向概率的定義,可知:

(4)已知模型參數下,根據觀測值和上一時刻預測下一時刻特定狀態的概率
在時刻t處于狀態si且時刻t+1 處于狀態sj的概率記為:

在模型建立參數求解過程中,如果有D組長度為T的觀測序列,即{Y1,Y2,…,YD}是已知的,根據EM 算法迭代計算每組訓練數據產生的參數如下:

通過式(15)、式(16)和式(17)確定了模型的參數,就能夠根據在安全防護設備或信息系統上獲取的信息生成觀測序列,通過這些觀測序列計算出系統的狀態序列。
在系統內部安全狀態的評估中,通過機器學習確定模型參數,并且在獲取觀測值后,能對系統內部的安全狀態進行評估。當已知模型λ={A,B,Π}和觀測序列O={o1,o2,…,oT},求給定觀測序列O條件下最可能出現的對應狀態序列,要最大化即P(S*|O,λ)最大。
在HMM模型中一般采用維特比算法求解預測值。由于維特比算法是動態規劃算法,因此需要找到合適的局部狀態和局部狀態的遞推公式。在HMM 中,維特比算法定義了兩個局部狀態用于遞推。
第一個局部狀態是在時刻t隱藏狀態為s所有可能的狀態轉移路徑s1,s2,…,st中的概率最大值,記為δt(i):

第二個局部狀態定義在時刻t隱藏狀態為s的所有單個狀態轉移路徑中概率最大的轉移路徑中第t-1 個節點的隱藏狀態為Ψt(i)其遞推表達式可以表示為:

有了這兩個局部狀態,可以從時刻0 一直遞推到時刻T,直到找到最優的隱藏狀態序列。計算時刻T最大的δt(i)即為最可能隱藏狀態序列出現的概率。計算時刻T最大的Ψt(i),即為時刻T最可能的隱藏狀態。

利用局部狀態Ψ(i) 開始回溯。對于t=T-1,T-2,…,1:st=最終得到最有可能的隱藏狀態序列。
針對每一種相關設備的觀測值可以通過式(21)和式(22)得出隱藏的安全狀態序列出現概率。但是,在一個系統中往往有多個安全防護設備協作,任一設備上報的告警和日志信息都不能完全覆蓋整個系統的安全狀態,因此需要將多個安全防護設備或者信息設備的運行日志作為不同的觀測序列進行綜合來判定系統實際的安全性。通過對每個觀測序列引發的狀態序列概率進行記錄,得到最大可能概率的安全狀態序列,最終形成綜合的安全評估。

其中,K為各獨立觀測序列的數量。
本文通過引入隱馬爾科夫模型,建立了一種通用的信息系統安全的評估方法。該方法將信息系統的安全狀態作為隱藏狀態變量,將各安全防護設備或者信息系統的運行狀態、日志等作為可觀測序列,通過多次迭代學習建立了隱藏狀態變量和觀測值的映射關系,實現通過觀測值來評估系統的狀態。由于觀測值不止一個序列,因此最終的評估結果是將多個觀測值對應的狀態序列進行綜合實現。本文重點是介紹隱馬爾科夫模型在信息安全中的評估方法應用和計算方法,對隱馬爾科夫模型的數學原理未作詳細描述,需要了解詳細推導過程可詳見參考文獻的相關內容。