文獻標識碼: A
文章編號: 0258-7998(2011)07-156-03
由于當前計算機網(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.