當前位置:學問君>學習教育>畢業論文>

基於機器學習的用戶行爲異常檢測

學問君 人氣:2.36W

 

基於機器學習的用戶行爲異常檢測

摘  要: 對Lane T等人提出的IDS用戶行爲異常檢測模型進行了簡要介紹,在此基礎上提出一種新的檢測模型,此模型利用多種長度不同的shell命令序列表示用戶的行爲模式,建立多個樣本序列庫來描述正常用戶的行爲輪廓。檢測時,採用序列匹配的方法挖掘用戶命令流中的行爲模式,以行爲模式所對應的長度可變的命令序列爲單位進行相似度賦值,並將加窗濾噪後的相似度作爲用戶身份的判決依據。基於UNIX用戶shell命令數據的實驗表明,同Lane T等人的檢測模型相比,新的檢測模型具有更高的檢測性能。

關鍵詞: IDS;異常檢測;行爲模式;機器學習;相似度

中圖分類號:TP18;TP393.08      文獻標識碼:A

Anomaly Detection of User Behaviors Based on Machine Learning


SUN Hong-wei,TIAN Xin-guang, ZHANG Er-yang

(ol of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China;

                        2. Putian Telecom Corporation, Beijing 100088, China)


Abstract: Anomaly detection acts as one of the important directions of research on Intrusion Detection Systems (IDSs). In this paper, an anomaly detection model originated mainly by Terran Lane is briefly introduced. Then a new anomaly detection model based on machine learning is presented. The model uses shell command sequences of variable length to represent a valid user’s behavior patterns and uses more than one dictionaries of shell command sequences to build the user’s behavior profile. While performing detection, the model digs behavior patterns by sequence matching method and evaluates the similarities of the corresponding command sequences to the dictionaries. The two models are tested with UNIX users’ shell command data. The results show that the new model originated by us has higher detection performance.

Key words: IDS; anomaly detection; behavior pattern; machine learning; similarity measure


1  引言

目前,異常檢測是入侵檢測系統(IDS)研究的主要方向,這種檢測技術建立系統或用戶的正常行爲模式,透過被監測系統或用戶的實際行爲模式和正常模式之間的比較和匹配來檢測入侵,其特點是不需要過多有關係統缺陷的知識,具有較強的適應性,並且能夠檢測出未知的入侵模式。虛警概率高是目前限制異常檢測應用的主要因素。異常檢測的關鍵問題在於正常行爲模式(庫)的建立以及如何利用該模式(庫)對當前行爲進行比較和判斷。

國內外已經開展了神經網絡、機器學習等智能技術在異常檢測中的應用研究,研究目標主要是提高檢測系統的準確性、實時性、高效性以及自適應性,其中一些研究成果在檢測性能和可操作性上已接近或達到了實用化水平。本文介紹了Lane T等人提出的基於機器學習的IDS用戶行爲異常檢測模型,在其基礎上提出一種新的檢測模型,此模型用多種長度不同的shell命令序列表示用戶行爲模式,建立多個樣本序列庫來描述正常用戶的行爲輪廓,檢測時以長度可變的命令

序列爲單位進行相似度賦值,並將加窗濾噪後的相似度作爲用戶身份的判決依據。利用UNIX用戶shell命令數據進行的實驗表明,新的檢測模型具有很高的檢測性能和較強的可操作性。

2  基於機器學習的定長命令序列檢測模型

2.1 機器學習基本原理

機器學習是人工智能的一個新的分支,它是透過對人類認知機理的研究,藉助機器(計算機系統)建立各種學習模型,賦予機器學習的能力,在此基礎上構建具有特定應用的面向任務的學習系統。一個機器學習系統主要有學習單元、知識庫、執行單元組成,其中學習單元利用外界資訊源提供的資訊來建立知識庫並對其做出改進(增加新知識或重新組織已有知識),執行單元利用知識庫中的知識執行任務,任務執行後的資訊又反饋給學習單元作爲進一步學習的輸入。學習單元是機器學習系統實現學習功能的核心部分,它涉及處理外界資訊的方式以及獲取新知識過程中所用的方法。知識庫用來存儲知識,包括系統原有的領域知識(這種知識是長期的、相對穩定的),以及透過學習而獲得的各種新知識(這種知識是短期的、變化的),選擇何種知識表示對學習系統的設計起着非常重要的作用。執行單元是使學習系統具有實際用途,同時又能夠評價學習方法好壞的關鍵部分。

機器學習研究中的很大一部分工作集中在分類和問題求解這兩個領域;經過三十多年的發展,目前已有了很多學習方法,如歸納學習、實例學習、遺傳學習等,但這些方法均有其侷限性,結合具體的應用領域探討新的學習方法和算法是目前的研究主流。

2.2 定長命令序列檢測模型的描述

美國Purdue大學的Lane T等人提出了一種基於機器學習的用戶行爲異常檢測模型,並對模型進行了深入的研究和實驗。其模型利用長度固定的shell命令序列表示用戶的行爲模式,建立樣本序列庫來描述正常用戶的行爲輪廓;工作時,將被監測用戶的命令序列同正常用戶的樣本命令序列庫進行比較和匹配,根據兩者的相似度對被監測用戶的身份進行判斷。模型的要點簡述如下[2]:

(1)將長度固定的shell命令序列作爲描述用戶行爲模式的最小數據單元,採用實例學習方法建立正常用戶的樣本序列庫(知識庫)。

(2)定義兩序列之間的相似度,它用於表示兩個序列所代表的行爲模式之間的相似程度。在此基礎上,定義一個序列同樣本序列庫的相似度,它用於表示此序列所代表的行爲模式同正常用戶各種行爲模式之間的最大相似程度。

(3)模型工作時,計算被監測用戶序列流中的每個序列同正常用戶樣本序列庫的相似度,然後,對相似度進行加窗濾噪處理,得到按時間順序排列的相似度判決值,根據判決值的大小對被監測用戶的身份進行實時判決。

模型中有以下幾個關鍵問題:一、最佳序列長度的選擇;二、樣本序列的提取;三、相似度函數的定義;四、濾噪算法的選擇。Lane T等人針對以上問題利用UNIX用戶的shell命令數據做了大量實驗,以下是他們得出的結論:

(1)最佳序列長度同具體用戶的行爲特點有關。隨着序列長度的`增大(從1到15),模型的檢測性能隨用戶的不同而呈現出不同的變化趨勢。

    (2)在各種相似度函數中,關心相鄰命令之間相關性的相似度函數對應的檢測性能優於不考慮相關性的相似度函數。均值濾噪和中值濾噪算法[2]對應的檢測性能差別不大。

(3)在聚類、按出現概率提取、按時間順序截取、隨機選擇等樣本序列提取方法中,聚類方法對不同用戶的適應性要強一些,但實現起來最複雜。

3  基於機器學習的變長命令序列檢測模型

3.1  變長命令序列檢測模型的描述

Lane T等人提出的定長命令序列檢測模型主要有兩個缺點:一、在用戶行爲模式的表示上缺乏靈活性和適應性。行爲模式是指用戶操作過程中體現出的某種規律性;實際中,不同用戶所具有的行爲模式存在差異,同一用戶完成不同行爲模式時所執行的命令個數也不盡相同,因而,用長度固定的命令序列難以全面準確地表示出用戶的整體行爲輪廓。二、不容易估算針對具體用戶的最佳序列長度。Lane T等人主要採用實驗方法來確定最佳序列長度,這種方法所需的計算量很大,而且其性能缺乏穩定性。我們針對定長命令序列檢測模型的以上不足進行了改進和修正,提出一種變長命令序列檢測模型,具體描述如下:

(1)根據正常用戶的歷史行爲,定義種長度不同的shell命令序列,用於表示正常用戶的各種行爲模式。

設序列長度的集合爲,其中表示第種序列的長度,且。在樣本序列庫的個數確定的情況下,可有不同的選擇。例如時,可以爲(即三種序列的長度分別爲),也可以爲或其它組合。和對檢測性能有直接影響,在選擇它們時,除了要充分考慮正常用戶的行爲特點之外,還需考慮模型的複雜度及檢測效率(和越大,檢測系統的存儲量和工作中的運算量也會越大)。

(2)針對每種序列建立一個樣本序列庫,用個樣本序列庫來描述正常用戶的行爲輪廓(行爲模式集合)。按照正常用戶歷史行爲中各序列的出現概率來提取樣本序列。

設個樣本序列庫的集合,其中表示長度爲的序列對應的樣本序列庫。設正常用戶的訓練數據(歷史數據)爲,它是一個長度爲的shell命令流,其中表示按時間順序排列的第個命令,對應的長度爲()的命令序列流可表示爲,其中。我們設定一個概率門限,將()中出現概率大於的命令序列視爲正常用戶的行爲模式,即是由這些命令序列組成。

(3)定義序列之間以及序列同樣本序列庫之間的相似度函數,用以描述行爲模式之間以及行爲模式同用戶整體行爲輪廓之間的相似程度。

設長度爲的兩序列和的相似度爲,其計算方法如下[1]:

第一步:設定,,。

第二步:如果(其中表示中的第個命令),則,;否則,,。

第三步:。如果,返回執行第二步;否則,。

根據以上定義,如果時(即兩序列相同),則有。

序列和樣本序列庫的相似度函數定義爲:

                                   (1)

(4)檢測時,以長度可變的命令序列爲單位進行相似度賦值,並將加窗濾噪後的相似度作爲用戶身份的判決依據。

對於被監測用戶的命令流,將它所對應的長度爲的序列流表示爲,其中。模型工作時,按照以下方法定義第個長度可變的序列並計算它同樣本序列庫集合的相似度。

第一步:設定,,。

第二步:如果,根據(1)式計算;否則,結束序列定義和相似度計算過程。

第三步:如果(即與中的某個序列相同),則,,,,,並返回執行第二步;否則,。

第四步:如果,返回執行第二步;如果,則,,,,,並返回執行第二步。

按照以上方法進行變長序列的定義和相似度計算,可得到按時間順序排列的相似度輸出值序列,其中爲中的變長序列個數,,對此序列進行加窗濾噪處理,得到相似度判決值,對此值設定一個門限,若它大於,將被監測用戶判爲正常用戶,否則,將其判爲異常用戶。採用均值濾噪算法時的相似度判決值爲:

                                               (2)

式中表示用戶第個變長序列對應時間點上的相似度判決值(模型在中第個變長序列之後的每個序列對應時間點上都做一次判決),爲窗長度,它是一個很重要的參數,決定了從被監測用戶行爲發生到檢測系統對其行爲做出判斷的最短時間(即檢測時間)。

3.2  模型的分析與比較

我們提出的變長命令序列檢測模型主要有以下幾個特點:

(1)用多種長度不同的命令序列表示正常用戶的行爲模式,並針對每種命令序列建立一個樣本序列庫,這可以更好地反映正常用戶的實際行爲輪廓。

(2)以長度可變的序列爲單位進行相似度賦值,其實質是在被監測用戶命令流中進行行爲模式挖掘。行爲模式挖掘過程中,以當前命令爲起點組成多個長度不同的序列,並按照長度從大到小的順序依次同相應的樣本序列庫進行比較,如果其中一個序列同相應樣本序列庫中的某個序列相同,則認爲挖掘到一個行爲模式,將此序列提取出來並進行相似度賦值,序列長度越大,所賦的值也越大,如果任何一個序列同相應樣本序列庫中的序列都不相同,則將當前命令提取出來作爲長度爲1的序列,並將它與樣本序列庫的相似度賦以0值;然後,再以此序列之後的下一個命令爲起點組成多個序列繼續進行挖掘和賦值。

Lane T等人的定長序列檢測模型關心的是以當前命令爲起點的定長序列與正常用戶各個行爲模式之間的最大相似程度,而變長序列檢測模型關心的是以當前命令爲起點的多個長度不同的序列是否能夠同正常用戶的某個行爲模式完全匹配。

(3)定長序列檢測模型對正常用戶和異常用戶的檢測時間是相同的。變長序列檢測模型則不然,其檢測時間爲個變長序列持續時間(不考慮模型的計算時間),設變長序列的平均長度爲,則平均檢測時間爲個命令持續時間;當被監測用戶是正常用戶時,在其命令流中挖掘到的行爲模式會比較多,相對較大,最大可爲,當被監測用戶是異常用戶時,在其命令流中只能挖掘到很少的(正常用戶的)行爲模式,相對較小(最小可爲1);所以,模型對異常用戶的平均檢測時間相對要短。

(4)此模型需要建立多個樣本序列庫,因而對檢測系統數據存儲空間的需求相對較大。

4  實驗結果

我們利用普渡大學的shell命令實驗數據[1]對上述兩種檢測模型的性能進行了實驗。其數據庫包含八個UNIX用戶在兩年時間內的活動記錄。每個用戶的數據檔案中均濾除了用戶名、主機名、網址等標識資訊,僅保留了shell命令的名稱及參數;用戶命令流中的命令按照在shell會話中的出現次序進行排列,不同的shell會話按照時間順序進行連接,每個會話開始和結束的時間點上插入了標識符。實驗中採用了四個用戶(分別爲USER1、USER2、USER3、USER4)的數據,每個用戶各有個shell命令。

我們進行了分組實驗,每組實驗中將一個用戶設爲正常用戶,而將其他三個設爲異常用戶,分別採用兩種模型進行訓練和測試;正常用戶的前個命令用於模型的訓練(建立樣本序列庫),正常用戶和異常用戶的後個命令用於模型檢測性能的測試。在定長序列檢測模型中,序列長度爲;在變長序列檢測模型中,序列長度集合。兩種模型中,每種樣本序列庫均由正常用戶的近個序列中出現概率大於的序列組成,檢測時採用均值濾噪算法計算判決值。

圖1和圖2給出了一組實驗的結果,實驗中將USER1設爲正常用戶,兩種模型的窗長度均爲。圖1給出的是採用定長序列檢測模型時USER1和USER2的後個命令對應的歸一化判決值曲線,圖中縱座標表示加窗濾噪後的相似度判決值。圖2給出了採用變長序列檢測模型時相應的歸一化判決值曲線,圖中,USER1(正常用戶)對應的變長序列個數爲,平均序列長度爲,而USER2(異常用戶)對應的變長序列個數爲,平均序列長度爲。可以看出,圖2中兩條曲線的可分性明顯好於圖1。


圖1  定長序列檢測模型的判決值曲線                圖2  變長序列檢測模型的判決值曲線

爲了在對異常用戶的平均檢測時間相同的情況下比較兩種模型的性能,我們做了四組實驗,四個用戶各在一組實驗中被設爲正常用戶。每組實驗中,採用變長序列檢測模型時,用於性能測試的各異常用戶命令流(包含個命令)中的變長序列個數平均約爲,因此,我們將變長序列檢測模型的窗長度設爲,而將定長序列檢測模型的窗長度設爲,以保證兩種模型對異常用戶的平均檢測時間基本相同。實驗中透過調整判決門限可以得到不同虛警概率情況下對三個異常用戶的平均檢測概率。表1給出了USER4被設爲正常用戶時的一組實驗結果。

表1  USER4被設爲正常用戶時的實驗結果

  虛警概率
 0
 0.001
 0.005
 0.010
 0.050
 
定長序列模型的  平均檢測概率
 0.67
 0.70
 0.76
 0.79
 0.96
 
變長序列模型的  平均檢測概率
 0.83
 0.86
 0.88
 0.92
 0.99
 


根據表1的實驗結果,在虛警概率較低的區間,變長序列檢測模型對應的平均檢測概率相對定長序列檢測模型有明顯的提高。其餘三組實驗的結果也證明了這一點,這裏不再一一列出。


5  結論

本文提出一種新的基於機器學習的IDS用戶行爲異常檢測模型,並利用UNIX用戶的shell命令數據進行了實驗,實驗結果表明,新模型的檢測性能同Lane T等人提出的檢測模型相比有較大改善。由於模型中的學習方法和檢測算法對不同的檢測數據有一定的適應性,因而此模型也可以用於shell命令之外其它數據類型(如系統調用)的IDS,但具體的應用範圍及檢測性能還需要進一步的研究和實驗。


參考文獻:

[1]  Lane T. Machine learning techniques for the computer security domain of anomaly detection[is]. Purdue University, 2000.

[2]  Lane T., Brodley C E. An application of machine learning to anomaly detection. Proceedings of the 20th National Information Systems Security Conference, 1997:366-377.

[3]  Kosoresow A P, Hofmeyr S A. A shape of self for UNIX processes. IEEE Software,1997,14(5):35-42.

[4]  Warrender C, Forrest S, Pearlmutter B. Detecting Intrusions Using System Calls: Alternative Data Models. Proceedings the 1999 IEEE Symposium on Security and Privacy. Berkely, California, USA:IEEE Computer Society, 1999:133-145.