摘要:傳統(tǒng)的系統(tǒng)防御方法是基于特征庫(kù)的被動(dòng)防御,它們無(wú)法實(shí)時(shí)發(fā)現(xiàn)零日攻擊。本文基于隱馬爾科夫模型建立描述系統(tǒng)CPU行為的模型。該方法根據(jù)系統(tǒng)用戶的行為習(xí)慣動(dòng)態(tài)調(diào)整模型參數(shù),利用觀測(cè)序列相對(duì)于代表正常行為輪廓的模型的似然概率衡量系統(tǒng)CPU行為的正常度。由于該方法不需要特征庫(kù),可以更有效地應(yīng)用于未知主機(jī)威脅的早期檢測(cè)。
關(guān)鍵詞:HMM模型CPU性能異常檢測(cè)
隨著科技的不斷發(fā)展,計(jì)算機(jī)已經(jīng)成為人們?nèi)粘I詈凸ぷ鞅貍涞摹⒉豢苫蛉钡闹饕ぞ摺S?jì)算機(jī)的運(yùn)行速度越來(lái)越快,處理的信息量越來(lái)越大,用戶對(duì)計(jì)算機(jī)的性能也提出更高的要求。CPU作為計(jì)算機(jī)的核心,是進(jìn)行數(shù)據(jù)處理運(yùn)算和指令操作的中樞,容易受到工作負(fù)荷、病毒等外來(lái)因素的影響,使計(jì)算機(jī)的性能?chē)?yán)重下降。目前使用的主流殺毒軟件、防火墻和系統(tǒng)監(jiān)控程序僅僅依靠病毒庫(kù)中存在的病毒進(jìn)行識(shí)別和需要人工參與,不能自動(dòng)識(shí)別系統(tǒng)的異常,保證不了系統(tǒng)的安全。本論文所闡述的基于HMM的CPU行為模型主動(dòng)防御異常檢測(cè)技術(shù),實(shí)現(xiàn)了CPU 性能異常行為的早期預(yù)測(cè)。
1 隱式馬爾科夫模型
隱式馬爾科夫模型(Hidden Markov Models,簡(jiǎn)稱HMM)可以表示為:
λ=(N,M,π,A,B)
上述參數(shù):N為Markov鏈的狀態(tài)數(shù)目;M為每個(gè)狀態(tài)θ對(duì)應(yīng)的可能出現(xiàn)的觀測(cè)值數(shù)目;π為初始狀態(tài)概率矢量;A為狀態(tài)轉(zhuǎn)移概率矩陣;B為觀察值概率矩陣。
應(yīng)用HMM 可以解決以下三個(gè)方面的問(wèn)題:
①評(píng)估問(wèn)題:對(duì)于給定的模型λ和觀察值序列O,求這個(gè)觀察值序列O的概率P(0|λ)。常用算法是前向算法和后向算法。②解碼問(wèn)題:對(duì)于給定的觀察值序列和模型λ,求出現(xiàn)可能性最大的狀態(tài)序列。常用算法是Viterbi 算法。③訓(xùn)練問(wèn)題:對(duì)于給定的觀察值序列O,調(diào)整參數(shù)λ,使觀察值出現(xiàn)概率(0|λ)最大。常用算法Baum-Welch算法。
2 CPU性能異常檢測(cè)系統(tǒng)模型
CPU性能異常檢測(cè)系統(tǒng)模型如圖1所示,該模型主要由兩部分組成:
2.1 數(shù)據(jù)收集與處理:利用Windows 系統(tǒng)提供的性能監(jiān)控器收集CPU的性能計(jì)數(shù)器日志數(shù)據(jù),通過(guò)圖形幫助顯示性能監(jiān)視數(shù)據(jù)。
2.2 HMM 模型部分:
HMM 模型主要由HMM 訓(xùn)練與異常檢測(cè)兩部分組成。
①正常狀態(tài)下的HMM 訓(xùn)練。通過(guò)導(dǎo)入處理過(guò)的、多個(gè)或大量正常狀態(tài)下的性能日志數(shù)據(jù),訓(xùn)練CPU正常狀態(tài)下的參考模型,運(yùn)用到Baum-Welch算法和前向-后向算法確定λ=(N,M,π,A,B)與正常狀態(tài)閾值。②異常檢測(cè)部分。往參考模型導(dǎo)入檢測(cè)的CPU性能日志數(shù)據(jù),利用前向-后向算法計(jì)算P(0|λ)值,并與閾值比較,判斷該日志數(shù)據(jù)的狀態(tài)。
3 基于HMM模型的CPU性能異常檢測(cè)實(shí)驗(yàn)
本實(shí)驗(yàn)主要運(yùn)用基于一維HMM的異常檢測(cè),必須選擇具有最佳的異常檢測(cè)效果的計(jì)數(shù)器。由于Processor time 顯示的是CPU 處于用戶模式和特權(quán)模式之下,執(zhí)行非閑置線程總的百分比;經(jīng)過(guò)數(shù)據(jù)記錄分析證明,Processor Time的計(jì)數(shù)值等于Privileged Time和User Time的計(jì)數(shù)值之和。因此,Processor Time 的數(shù)據(jù)能夠反映出Processor Time和User Time的數(shù)據(jù)特征。考慮Processor Time是由CPU的工作狀態(tài)所決定,我們進(jìn)一步用“輕負(fù)荷”、“中度負(fù)荷”, “高度負(fù)荷”來(lái)描述CPU的三種工作狀態(tài),并假設(shè)CPU的工作狀態(tài)符合Markov鏈特性。即狀態(tài)的跳轉(zhuǎn)代表CPU工作狀態(tài)的變化。由于CPU的真實(shí)工作狀態(tài)并不可見(jiàn),只能通過(guò)可觀測(cè)過(guò)程Processor Time來(lái)估計(jì),因此,我們可以通過(guò)隱馬爾科夫模型來(lái)描述CPU的工作過(guò)程。
3.1 CPU 性能日志數(shù)據(jù)收集和處理
首先,有目的性地進(jìn)行CPU 性能日志數(shù)據(jù)收集,即Processor time在正常狀態(tài)和異常狀態(tài)下收集兩種并分別標(biāo)記,以便于HMM 可行性的判斷。
在正常狀態(tài)下,CPU 一般處于低占用率的過(guò)程之中,CPU 還有大量的空閑資源沒(méi)有使用;而在異常狀態(tài)下,異常進(jìn)程無(wú)節(jié)制占用CPU 的資源,導(dǎo)致占用率一直處于較大的過(guò)程,這是CPU 性能降低的征兆。
實(shí)驗(yàn)中采集了100份實(shí)驗(yàn)樣本,將Processor time 的計(jì)數(shù)值作為觀察值,將日志數(shù)據(jù)進(jìn)行離散化處理,確定觀察值O,可得到離散化處理后的正常狀態(tài)和異常狀態(tài)下觀察值概率分布如表1所示:
正常狀態(tài)下觀察值主要處于1、2、3 之中,分布比較集中;而在異常狀態(tài)下,觀察值大部分集中于10、11、12,也有高于10%的一部分分布比較分散。正常狀態(tài),觀察值較小;異常狀態(tài),觀察值較大。
將性能計(jì)數(shù)器的計(jì)數(shù)值分段作為觀察值,確定狀態(tài)值Q,根據(jù)狀態(tài)值,將Processor time 的計(jì)數(shù)值分為“輕負(fù)荷”、“中度負(fù)荷”, “高度負(fù)荷”三個(gè)部分。
3.2 正常狀態(tài)下基于HMM 訓(xùn)練CPU 性能檢測(cè)
將CPU的行為看成HMM過(guò)程,在MATLAB 7.1的操作平臺(tái)中,將開(kāi)始的時(shí)候每一種情況的狀態(tài)認(rèn)為都處于“低負(fù)荷”狀態(tài)之中,即初始狀態(tài)概率默認(rèn)為π=[1 0 0]。A作為狀態(tài)轉(zhuǎn)移矩陣,是狀態(tài)Q“低負(fù)荷”、“中度負(fù)荷”和“高度負(fù)荷”三種狀態(tài)之間轉(zhuǎn)移概率的集合;B作為觀察值概率矩陣,是在狀態(tài)Q的前提下出現(xiàn)特定觀察值O 的概率集合,即:
通過(guò)隨機(jī)分布確定出A0矩陣,根據(jù)狀態(tài)的分布變換,歸納、分析獲得B0矩陣,從而可以得到參考模型的初始參數(shù)λ0=(π0,A0,B0)。
3.2.1 正常狀態(tài)與異常狀態(tài)下的P(0|λ)的分析
將正常狀態(tài)驗(yàn)證樣本和異常狀態(tài)樣本驗(yàn)證樣本的日志數(shù)據(jù)分別平均分成n組數(shù)據(jù),然后將數(shù)據(jù)組導(dǎo)入訓(xùn)練好的HMM之中,統(tǒng)計(jì)出各組數(shù)據(jù)的Pn(0|λ)。本實(shí)驗(yàn)得到正常樣本和異常樣本的平均對(duì)數(shù)或然概率log(Pn(0|λ))/1,并經(jīng)四舍五入后的分布如表2所示:
由實(shí)驗(yàn)數(shù)據(jù)可以得出,CPU異常狀態(tài)下異常序列的或然概率P(O|λ)小于正常時(shí)的概率,其分布主要位于更小的區(qū)間之中。
3.2.2 基于HMM的CPU 性能異常檢測(cè)
檢測(cè)率[1](簡(jiǎn)稱DR)與誤報(bào)率[2](簡(jiǎn)稱FPR)是異常檢測(cè)系統(tǒng)的兩個(gè)重要性能衡量標(biāo)準(zhǔn)。根據(jù)異常狀況的判斷標(biāo)志 ,正常閾值pF是整個(gè)異常檢測(cè)系統(tǒng)的核心。若pF過(guò)小,容易造成誤檢;若pF過(guò)大,則容易漏檢。表3為實(shí)驗(yàn)取閾值pF=-30~40后的或然概率、檢測(cè)率和誤報(bào)率,可見(jiàn)當(dāng)閾值取-34.5時(shí),檢測(cè)率DR 為97%,誤報(bào)率FPR 為2%。因此,對(duì)于正常狀態(tài)下的CPU 性能特性HMM,正常閾值pF=-34.5,則或然概率大于或等于-34.5 的CPU 行為特性是屬于正常狀態(tài),這時(shí)候系統(tǒng)的DR=97%,F(xiàn)PR=2%。
3.2.3 從正常狀態(tài)樣本和異常狀態(tài)樣本中選取多份樣本,根據(jù)觀察值序列得到的平均或然概率,我們對(duì)正常狀態(tài)樣本的平均或然概率小于正常閾值pmin進(jìn)行統(tǒng)計(jì),DR=95%。異常狀態(tài)樣本中多份異常狀態(tài)的或然概率都大于正常閾值pmin,誤報(bào)率恰恰為0.01,因此異常檢測(cè)的效果十分明顯。
4 結(jié)束語(yǔ)
通過(guò)Windows系統(tǒng)性能監(jiān)視器進(jìn)行記錄CPU的行為日志數(shù)據(jù),依靠HMM實(shí)現(xiàn)行為特征的分析與辨識(shí),從而達(dá)到主機(jī)的初期監(jiān)控,具有簡(jiǎn)單性、直觀性、擴(kuò)展性、普遍性的特點(diǎn)。本試驗(yàn)中也存在:使用的性能監(jiān)視器比較簡(jiǎn)陋,得到的日志數(shù)據(jù)僅僅是最原始的計(jì)數(shù)值;訓(xùn)練模型所得的觀察值概率矩陣B存在零值,需要作微小量的添加處理,導(dǎo)致誤差不斷疊加;CPU 的狀態(tài)設(shè)定只有“正常”和“異常”兩種,設(shè)定的狀態(tài)類型太少等缺陷,還待有進(jìn)一步的改進(jìn),這里就不在贅述。
參考文獻(xiàn):
[1]謝逸,余順爭(zhēng).基于Web用戶瀏覽行為的通緝異常檢測(cè)[N].軟件學(xué)報(bào),2007年6月.
[2]牛霜霞,韓麗明,崔貴良,任永杰.Windows 服務(wù)器性能檢測(cè)方法[J].河南電力,2010,第四期:55-60.
作者簡(jiǎn)介:雷曙光,男,1973年出生,陜西興平市,講師/碩士研究生,多媒體信號(hào)處理方向研究。