基於機器學習的使用者行為異常檢測

才智咖 人氣:2.34W

 

基於機器學習的使用者行為異常檢測

摘  要: 對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.