《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于隱馬爾科夫模型的用戶行為異常檢測方法
基于隱馬爾科夫模型的用戶行為異常檢測方法
來源:電子技術應用2011年第7期
賴英旭, 劉 靜, 王一沛
(北京工業(yè)大學 計算機學院,,北京 100124)
摘要: 提出了一種基于HMM的用戶行為異常檢測的新方法,,用shell 命令序列作為審計數(shù)據(jù),,但在數(shù)據(jù)預處理,、用戶行為輪廓的表示方面與現(xiàn)有方法不同。仿真實驗結果表明,,本方法的檢測效率和實時性相對較高,在檢測準確率方面也有較大優(yōu)勢,。
中圖分類號: TP393
文獻標識碼: A
文章編號: 0258-7998(2011)07-156-03
Method for anomaly detection of user behaviors based on hidden Markov models
Lai Yingxu,, Liu Jing, Wang Yipei
College of Computer,,Beijing University of Technology, Beijing 100124, China
Abstract: A method of user behavior anomaly detection was presented. The method constructs specific hidden Markov model (HMM) with shell commands as audit data. The method is different with other references on data preprocessing and representing the behavior profiles of users. The results of computer simulation show the method presented can achieve high detection accuracy and practicability.
Key words : intrusion detection; anomaly detection; behavior pattern; HMM


    由于當前計算機網(wǎng)絡的飛速發(fā)展,,入侵檢測技術得到了研究者的廣泛重視,F(xiàn)orrest[1]等人在1996年首次提出以進程正常運行時產(chǎn)生的一定長度的系統(tǒng)調用短序列作為模型來表現(xiàn)進程正常運行時的狀態(tài)。Lee[2]等人則用RIPPER從系統(tǒng)調用序列中挖掘正常和異常模式,,以規(guī)則的形式來描述系統(tǒng)的運行狀態(tài),,建立了一個更簡潔有效的系統(tǒng)正常模型。美國新墨西哥大學的Warrender[3]以系統(tǒng)調用為審計數(shù)據(jù),,進行了基于隱馬爾可夫模型HMM(Hidden Markov Model)的程序行為異常檢測研究,。美國普渡大學的Lane [4]及其團隊則利用了Unix用戶的shell命令作為審計數(shù)據(jù),進行了基于HMM的用戶行為異常檢測研究和實驗,。西安交通大學的周星[5]提出一種利用進程堆棧中的函數(shù)返回地址鏈信息來提取不定長模式的方法,,并基于系統(tǒng)調用序列及其對應的不定長模式序列構建了一個兩層的HMM來檢測異常行為,取得了更低的誤報率和漏報率,。
    在以上檢測方法的基礎上,,本文提出一種新的基于HMM的用戶行為異常檢測方法,與參考文獻[6]中提出的基于HMM的檢測方法相比,,檢測效率和實時性相對較高,,在檢測準確率方面也有較大優(yōu)勢。

    本文用一種不同的方法來建立和訓練HMM模型,,降低不必要的系統(tǒng)占用,,并得到一個較好的正常行為模式與異常行為模式的區(qū)分效果。
2 基于HMM的用戶行為異常檢測方法
2.1 數(shù)據(jù)預處理

    本文所采用的原始數(shù)據(jù)來自普渡大學的Lane團隊,,他們花費了很長時間去跟蹤了9個Unix用戶在2年內(nèi)的活動記錄,,以保證這些記錄的真實性。
    參考文獻[4]對這些數(shù)據(jù)記錄進行了預處理,,將每次的命令運用相同的起始,、終止符隔開,將各命令中所出現(xiàn)的地址均用統(tǒng)一標識方法代替,,所涉及的文件也用相同的標識方法代替,,這樣的預處理使得原始數(shù)據(jù)更加整齊且易于分析。在此基礎上,,本文又作了進一步處理,,對于命令行中所有出現(xiàn)的參數(shù)進行處理,即將命令中的附加參數(shù)與命令本身結合設定為命令序列中的一條命令,,而對于地址,、網(wǎng)絡等記錄則直接從命令序列流中刪除。表1中左欄的數(shù)據(jù)流經(jīng)過本文二次處理后,,該命令流序列如右欄所示,,左欄中的14條記錄經(jīng)過處理后,減少為右欄中的8條記錄,減少了近50%,。

    采用本文方法進行數(shù)據(jù)預處理的依據(jù)是:(1)在實際訓練及檢測中,,地址等參數(shù)并沒有實際意義,。無論是按照shell命令序列長度,還是按照各命令本身出現(xiàn)頻率作為劃分狀態(tài)標準,都并不需要此類命令內(nèi)容,;(2)當利用大數(shù)量的shell命令序列進行建模和檢測時,,進行這樣的二次處理可以降低對系統(tǒng)存儲空間的需求。

 


2.2 HMM建模
    本文所建立的HMM模型的目的是為了描述一個正常用戶行為,,用W代表合法用戶正常行為模式的總類數(shù),,而相對應的shell命令集合則如C=(L(1),L(2),…,L(W+1)),其中L(j)為包含若干個長度為l(j)的shell命令序列,。W的值越大意味著對于命令集合分類得越精細,,所需要的系統(tǒng)資源也就越多。本文針對兩種不同的shell命令集合分類方法進行了對比實驗,,方法一是參考文獻[6]中使用的方法,;方法二是本文提出的改進隱馬爾科夫方法。

    (2)設定W個序列出現(xiàn)頻率門限,,記為η1,η2,η3,…,ηw,,該門限的作用是判定每個Seqmj是否可以成為正常用戶行為觀測值,低于門限值的即舍去,。
  在C中的L(W+1)用來記錄未知和異常模式記錄的值,,對于L(W+1)下shell命令記錄的判定方法為:當l(W)=1時,附加狀態(tài)W+1對應的觀測值集合L(W+1)是由長度為1,、且在Sw中出現(xiàn)頻率小于門限值?濁w的shell命令序列構成,而當l(W)≠1時,則L(W+1)由所有長度為1的shell命令序列構成,。
2.2.2 改進HMM方法
    用戶對于日常操作都有一套自己的命令使用頻率,本文依據(jù)用戶與用戶之間的命令使用頻率差別作為行為分類依據(jù),。本文方法中的C表示方法與參考文獻[6]中一致,,C=(L(1),L(2),…,L(W+1)),W的值增大,,則出現(xiàn)頻率的分類更細化,,也會增加系統(tǒng)存儲和處理量,但與參考文獻[6]的狀態(tài)分類方法相比要小很多,。假設正常用戶的訓練數(shù)據(jù)為R=(R1,,R2,…,Rn),,此時的用戶正常行為觀測值集合建立起來就相對簡單,,根據(jù)訓練數(shù)據(jù)R,生成W個出現(xiàn)頻率分別為l(1),l(2),…,l(W)的shell命令序列流,,表示為S1,S2…,Sw,,每個Si中包含了所有出現(xiàn)在頻率區(qū)域的shell命令記錄。同樣,,劃分在附加狀態(tài)W+1下的shell命令序列,也就是未知和異常行為模式的值。
    上述兩個建模方法各有利弊,,對于參考文獻[6]的方法,,在利用命令序列長度建模時,其優(yōu)點是思路清晰,,不同的狀態(tài)之間不會發(fā)生重疊,,適用性強。缺點是由于每個狀態(tài)中Si都將存儲超過門限值的所有shell命令序列,,這將是一個很大的存儲量(尤其是當W達到一定值時,。而本文方法的,優(yōu)點是利用命令的出現(xiàn)頻率分類,,由于命令種類(即便加上了參數(shù))的局限性,,所需要的存儲量將會少得多,運算起來更快,,也更為容易理解,。缺點則是對于每個狀態(tài)對應的頻率區(qū)域的劃分將更多地依賴歷史記錄和經(jīng)驗。
2.3 HMM的訓練
    訓練過程也就是參數(shù)估計過程,,這個過程在研究中是極其重要的,,傳統(tǒng)的思路是利用Baum-Welch 算法實現(xiàn),而實際上該算法并不是唯一的,,也不是最好的算法,。本文采用參考文獻[3]提出的改進算法來實現(xiàn)對該HMM模型的訓練。
2.4 HMM的檢測
    檢測階段的主要工作是對被監(jiān)測用戶在被監(jiān)測時間內(nèi)執(zhí)行的shell命令行進行處理,并利用在訓練中已產(chǎn)生的HMM模型,計算相應的判決值,,進而對該用戶的行為類別進行判別,。
    假設在所需的檢測時間內(nèi)記錄該時間段內(nèi)用戶的命令流,記為R=(R1,,R2,,…,Rn)。其中,,Ri為第i個獨立的shell命令序列,,n為shell命令記錄的總量,此時的命令序列R中的值是按照時間順序依次得到的。
    利用訓練中的參數(shù)匹配方法,,對于命令序列R進行操作,,得到狀態(tài)轉移序列q=(q1,q2,,…,qx),,其中,x為狀態(tài)轉移序列內(nèi)狀態(tài)的總數(shù),qi代表R中按時間排序的第i 個狀態(tài),。HMM檢測流程如下:
    (1)根據(jù)訓練數(shù)據(jù)R生成w個shell命令序列流S1,S2…,Sw,,設定初始m:=1,j:=1,n:=0,。
    (2)如果m≤r-l(1)+1,則將Seqmj與L(j)進行比較,,
   
3 實驗設計與結果分析
    在本文的實驗中,利用其中4個用戶userl,、user2、user3,、user4的數(shù)據(jù)進行實驗,,并設合法用戶為user2,將余下的user1,、user3,、user4視為非法或未知用戶。在該4個用戶的數(shù)據(jù)記錄中皆有超過15 000條命令行記錄,。對于正常用戶,,實驗中將利用其中的前5 000條命令進行正常行為模式的訓練,得到HMM觀測值集合并確定HMM參數(shù),,后5 000條命令作為正常行為的檢測,。對于非法用戶,將分別用其中的5 000條命令進行異常檢測的測試,。在HMM模型建立及訓練階段的參數(shù)設置為W=3,,C={3,2,,1},。在HMM模型建立過程中,從正常用戶user2的前5 000個shell命令中得到C(1),C(2),C(3)所對應的命令序列個數(shù)如表2所示,。

    參考文獻[6]方法的異常檢測結果如圖1所示,上方曲線為合法用戶user2的正常行為測試數(shù)據(jù)對應的判決值曲線,,下方的3條曲線為非法用戶的異常行為測試數(shù)據(jù)對應的判決值曲線(以下同)。

    改進的HMM方法得到的異常檢測測試結果如圖2所示,??梢钥闯觯鄬τ趗ser2,,三組非法用戶的值更加靠近于3,,表明權值為2 和1 的命令序列所表示的合法用戶的正常行為模式在3個非法用戶行為序列中較少出現(xiàn),從圖1,、圖2 中可以看出,,改進的HMM方法使得正常行為和異常行為測試數(shù)據(jù)對應的判決值曲線具有良好的可分性。

    參考文獻[6]方法用于建模的命令序列有1 140個,,而改進的HMM方法只有136個,,大大節(jié)約了系統(tǒng)存儲空間,所以,,改進HMM的方法具有較好的檢測準確度,,本文在運算成本和計算效率之間取得了權衡,,在實驗中取得了一個很好的效果。
    本文提出一種基于隱馬爾可夫模型的用戶行為異常檢測新方法,,并通過實驗對該方法的性能進行了測試,。實驗表明,該方法具有很高的檢測準確率和較強的可操作性,。但需要指出的是,該方法中的一些檢測思想雖然適用于以系統(tǒng)調用為審計數(shù)據(jù)的程序行為異常檢測,,但具體的操作方式及檢測性能還有待分析和驗證,。
參考文獻
[1] FORREST S, HOFMEYR S A, SOMAYAJIA. A sense of  self for UNIX processes[C]. Proceedings of IEEE Symposium on Security and Privacy, Los Alamos, California,1996.
[2] LEE W, STOLFO S J. Data mining approaches for intrusion detection[C].Proceedings of the 7th US ENIX Security Symposium, San Antonio, Texas, 1998.
[3] WARRENDER C, FORREST S, PEARLMUTTER B. Detecting intrusions using system calls: alternative data models[C]. Proceedings of the IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1999:133-145.
[4] LANE T. Machine learning techniques for the computer security domain of anomaly detection[D].Purdue University  2000.
[5] 周星, 彭勤科, 王靜波. 基于兩層隱馬爾可夫模型的入侵檢測方法[J].計算機應用研究, 2008,25(3):911-914.
[6] 鄔書躍,田新廣.基于隱馬爾科夫模型的用戶行為異常檢測新方法[J].通信學報,2007,28(4):38-43.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉載,。