欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)系統(tǒng)和方法

文檔序號(hào):7616531閱讀:948來(lái)源:國(guó)知局
專利名稱:基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于計(jì)算機(jī)網(wǎng)絡(luò)安全的基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)系統(tǒng)和方法,屬于網(wǎng)絡(luò)信息安全技術(shù)領(lǐng)域。
背景技術(shù)
近年來(lái),隨著計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用范圍的不斷擴(kuò)大,對(duì)網(wǎng)絡(luò)的各類攻擊與破壞活動(dòng)與日俱增,所造成的危害也越來(lái)越大;全球每年因計(jì)算機(jī)網(wǎng)絡(luò)的安全系統(tǒng)被破壞而造成的經(jīng)濟(jì)損失達(dá)數(shù)百億美元。目前,網(wǎng)絡(luò)安全已成為國(guó)家信息產(chǎn)業(yè)發(fā)展的關(guān)鍵,同時(shí)也是國(guó)家與國(guó)防安全的重要組成部分。對(duì)網(wǎng)絡(luò)攻擊行為進(jìn)行檢測(cè)和防范,保障計(jì)算機(jī)系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)及整個(gè)信息基礎(chǔ)設(shè)施的安全已經(jīng)成為刻不容緩的重要課題。入侵檢測(cè)是一種用于檢測(cè)計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中入侵行為的網(wǎng)絡(luò)信息安全技術(shù),它主要通過(guò)監(jiān)控計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)的狀態(tài)、行為以及系統(tǒng)的使用情況,來(lái)檢測(cè)系統(tǒng)用戶的越權(quán)使用和誤用行為,以及系統(tǒng)外部的入侵者利用系統(tǒng)的安全缺陷所進(jìn)行的攻擊行為。入侵檢測(cè)系統(tǒng)(IDS,Intrusion DetectionSystem)能夠擴(kuò)展系統(tǒng)管理員的包括安全審計(jì)、監(jiān)視、攻擊識(shí)別和響應(yīng)能力的各種安全管理能力,被認(rèn)為是“防火墻”之后的第二道安全閘門(mén),在網(wǎng)絡(luò)信息安全體系中占有重要地位。
根據(jù)審計(jì)數(shù)據(jù)的來(lái)源和所監(jiān)控的對(duì)象,入侵檢測(cè)系統(tǒng)可分為主機(jī)型、網(wǎng)絡(luò)型和混合型系統(tǒng)。主機(jī)型入侵檢測(cè)系統(tǒng)使用的審計(jì)數(shù)據(jù)主要來(lái)自操作系統(tǒng)的審計(jì)記錄、系統(tǒng)日志和應(yīng)用程序日志,該類系統(tǒng)保護(hù)對(duì)象通常是單個(gè)服務(wù)器。網(wǎng)絡(luò)型入侵檢測(cè)系統(tǒng)的信息源則是網(wǎng)絡(luò)上的原始數(shù)據(jù)包,該類系統(tǒng)通常擔(dān)負(fù)著保護(hù)一個(gè)網(wǎng)段的任務(wù)?;旌闲腿肭謾z測(cè)系統(tǒng)能夠同時(shí)分析來(lái)自服務(wù)器的審計(jì)數(shù)據(jù)和網(wǎng)絡(luò)上的數(shù)據(jù)包,系統(tǒng)由多個(gè)部件組成,一般采用分布式結(jié)構(gòu)。
主機(jī)型和網(wǎng)絡(luò)型入侵檢測(cè)系統(tǒng)在不同的檢測(cè)領(lǐng)域各具優(yōu)勢(shì),兩者存在互補(bǔ)性。主機(jī)型入侵檢測(cè)系統(tǒng)主要優(yōu)點(diǎn)有(1)對(duì)網(wǎng)絡(luò)流量不敏感,一般不會(huì)因?yàn)榫W(wǎng)絡(luò)流量的增加而影響對(duì)系統(tǒng)行為的監(jiān)視;(2)檢測(cè)的針對(duì)性強(qiáng),檢測(cè)粒度細(xì),可以很容易地監(jiān)控系統(tǒng)的一些活動(dòng),例如針對(duì)敏感文件、目錄、程序或端口的活動(dòng);(3)配置靈活,不需要額外的硬件,可以根據(jù)受保護(hù)系統(tǒng)的實(shí)際情況進(jìn)行有針對(duì)性的定制,同時(shí)能夠利用操作系統(tǒng)本身的功能和結(jié)合異常分析,更準(zhǔn)確地檢測(cè)攻擊行為;(4)對(duì)利用操作系統(tǒng)漏洞或應(yīng)用軟件缺陷而進(jìn)行的攻擊有良好的防范效果;(5)可用于加密或采用交換機(jī)制的網(wǎng)絡(luò)環(huán)境。網(wǎng)絡(luò)型入侵檢測(cè)系統(tǒng)一般被放置在比較重要的網(wǎng)段內(nèi),其優(yōu)點(diǎn)主要有(1)適用于檢測(cè)基于網(wǎng)絡(luò)協(xié)議的攻擊;(2)與服務(wù)器的操作系統(tǒng)無(wú)關(guān),適用范圍廣,擴(kuò)展性好;(3)一般通過(guò)網(wǎng)絡(luò)監(jiān)聽(tīng)的方式獲取數(shù)據(jù),所以對(duì)受保護(hù)網(wǎng)絡(luò)的性能影響很小,并且不需要改動(dòng)網(wǎng)絡(luò)結(jié)構(gòu);而且,網(wǎng)絡(luò)監(jiān)聽(tīng)器對(duì)網(wǎng)絡(luò)中的用戶是透明的,降低了檢測(cè)系統(tǒng)本身遭受入侵者攻擊的可能性。
目前,入侵檢測(cè)技術(shù)主要分為三類誤用檢測(cè)、異常檢測(cè)和混合檢測(cè)。誤用檢測(cè)通過(guò)對(duì)入侵(攻擊)行為進(jìn)行分析和表示來(lái)檢測(cè)入侵(本發(fā)明中,將“入侵”和“攻擊”作為同義詞使用);這種方法一般是將入侵行為表示為一種模式或特征,并根據(jù)已知的入侵行為和系統(tǒng)缺陷建立入侵模式(特征)庫(kù),檢測(cè)時(shí)將被監(jiān)測(cè)系統(tǒng)或用戶的實(shí)際行為模式同入侵模式進(jìn)行匹配,根據(jù)匹配結(jié)果來(lái)判斷是否存在入侵。誤用檢測(cè)對(duì)已知入侵有很強(qiáng)的檢測(cè)能力,其缺點(diǎn)是模式庫(kù)需要不斷更新,而且難以檢測(cè)出未知入侵。異常檢測(cè)是對(duì)系統(tǒng)或用戶的正常行為(輪廓)進(jìn)行分析和表示,當(dāng)被監(jiān)測(cè)系統(tǒng)或用戶的實(shí)際行為與其正常行為存在一定差異時(shí),即認(rèn)為有入侵存在。異常檢測(cè)的優(yōu)點(diǎn)是不需要過(guò)多有關(guān)系統(tǒng)缺陷的知識(shí),具有較強(qiáng)的適應(yīng)性,能夠檢測(cè)出未知入侵或新出現(xiàn)的入侵模式?;旌蠙z測(cè)是將誤用檢測(cè)和異常檢測(cè)綜合在一起的檢測(cè)技術(shù),通常具有更好的檢測(cè)性能。
隨著對(duì)計(jì)算機(jī)網(wǎng)絡(luò)弱點(diǎn)和攻擊研究的不斷深入,誤用檢測(cè)技術(shù)的應(yīng)用越來(lái)越廣泛,目前,商用的網(wǎng)絡(luò)型入侵檢測(cè)系統(tǒng)大多采用這種技術(shù)。誤用檢測(cè)的關(guān)鍵是如何對(duì)入侵行為進(jìn)行表示和更新,以及如何提高報(bào)文捕獲和模式匹配的速度與效率。由于新的攻擊類型和網(wǎng)絡(luò)漏洞不斷出現(xiàn),實(shí)際誤用檢測(cè)系統(tǒng)中的入侵模式(特征)庫(kù)往往不能及時(shí)得到補(bǔ)充和更新,這是造成系統(tǒng)漏報(bào)的主要原因。異常檢測(cè)技術(shù)在主機(jī)型入侵檢測(cè)系統(tǒng)中有較多的應(yīng)用,在網(wǎng)絡(luò)型入侵檢測(cè)系統(tǒng)中則常常用作誤用檢測(cè)的補(bǔ)充(例如對(duì)網(wǎng)絡(luò)流量的異常分析)。異常檢測(cè)的核心問(wèn)題是如何表示系統(tǒng)或用戶的正常行為(輪廓),以及如何將系統(tǒng)或用戶的實(shí)際行為與其正常行為進(jìn)行比較。對(duì)于異常檢測(cè)而言,為了全面、準(zhǔn)確地表示系統(tǒng)或用戶的正常行為(以降低虛警概率),通常需要用大量的、較為完備的訓(xùn)練數(shù)據(jù)對(duì)檢測(cè)模型進(jìn)行訓(xùn)練。但是,同誤用檢測(cè)相比,異常檢測(cè)在許多方面具有優(yōu)勢(shì),特別是有檢測(cè)未知攻擊的能力。作為一種有良好發(fā)展前景的入侵檢測(cè)技術(shù),異常檢測(cè)正在得到越來(lái)越多的研究和應(yīng)用。
本發(fā)明涉及的用戶行為異常檢測(cè)系統(tǒng)是一種主機(jī)型入侵檢測(cè)系統(tǒng),該系統(tǒng)采用了基于機(jī)器學(xué)習(xí)的異常檢測(cè)技術(shù)。機(jī)器學(xué)習(xí)是指利用機(jī)器(計(jì)算機(jī))學(xué)習(xí)知識(shí)和解決問(wèn)題,屬于交叉性學(xué)科。機(jī)器學(xué)習(xí)的應(yīng)用研究主要是發(fā)展各種學(xué)習(xí)模型和學(xué)習(xí)方法,并在此基礎(chǔ)上構(gòu)建具有特定應(yīng)用的面向任務(wù)的學(xué)習(xí)系統(tǒng)。
參見(jiàn)圖1所示的機(jī)器學(xué)習(xí)系統(tǒng)的通用模型。一個(gè)機(jī)器學(xué)習(xí)系統(tǒng)主要由學(xué)習(xí)單元、知識(shí)庫(kù)和執(zhí)行單元組成。其中學(xué)習(xí)單元是系統(tǒng)的核心,它利用外界信息源提供的信息來(lái)獲取知識(shí)并對(duì)其做出改進(jìn)(例如重新組織已有知識(shí));學(xué)習(xí)單元的輸入有兩種外界環(huán)境信息和執(zhí)行任務(wù)后的反饋信息。不同的學(xué)習(xí)系統(tǒng)采用不同的經(jīng)驗(yàn)實(shí)例表示,最簡(jiǎn)單的一種是二元特征表示,僅僅描述對(duì)象某些屬性的存在與否,連接學(xué)習(xí)和遺傳學(xué)習(xí)方法一般使用這種二元特征的輸入。另一種是屬性值表示,每個(gè)屬性有一組相互排斥的值,如顏色屬性的值可為紅色、藍(lán)色和黃色等,這種屬性值表示的典型應(yīng)用是在歸納學(xué)習(xí)方法中。還有一種更復(fù)雜的是關(guān)系或結(jié)構(gòu)表示,它描述兩個(gè)或多個(gè)對(duì)象間的關(guān)系,這種關(guān)系或結(jié)構(gòu)信息一般是以謂詞邏輯、語(yǔ)義網(wǎng)絡(luò)等形式來(lái)表示;同前兩種表示相比較,這種表示具有更強(qiáng)的表示能力,但同時(shí)也為學(xué)習(xí)中的匹配過(guò)程帶來(lái)了相當(dāng)?shù)膹?fù)雜度。知識(shí)庫(kù)用來(lái)存儲(chǔ)知識(shí),它所存儲(chǔ)的知識(shí)包括領(lǐng)域知識(shí)(這種知識(shí)一般是相對(duì)穩(wěn)定的),以及通過(guò)學(xué)習(xí)而獲得的各種新知識(shí)(這種知識(shí)在某些情況下是隨時(shí)間變化的)。選擇何種知識(shí)進(jìn)行存儲(chǔ)對(duì)學(xué)習(xí)系統(tǒng)的設(shè)計(jì)起著非常關(guān)鍵的作用,有的系統(tǒng)只存儲(chǔ)具體的單個(gè)經(jīng)驗(yàn)實(shí)例,有些系統(tǒng)則存儲(chǔ)從這些實(shí)例中得到的抽象推廣。如果是后者,又存在兩種區(qū)別以邏輯的、離散的形式表示知識(shí),或者以數(shù)值的、連續(xù)的形式表示知識(shí)。歸納學(xué)習(xí)和分析學(xué)習(xí)常使用邏輯的、離散的表示形式,連接學(xué)習(xí)則主要使用數(shù)值的、連續(xù)的表示形式。執(zhí)行單元利用知識(shí)庫(kù)中的知識(shí)執(zhí)行任務(wù),任務(wù)執(zhí)行后的信息又反饋給學(xué)習(xí)單元作為進(jìn)一步學(xué)習(xí)的輸入,該單元是使學(xué)習(xí)系統(tǒng)具有實(shí)際用途,同時(shí)又能夠評(píng)價(jià)學(xué)習(xí)方法好壞的關(guān)鍵部分。
機(jī)器學(xué)習(xí)技術(shù)可以從不同的角度進(jìn)行分類。按照學(xué)習(xí)的綜合屬性,機(jī)器學(xué)習(xí)技術(shù)可分為歸納學(xué)習(xí)、分析學(xué)習(xí)、基于實(shí)例的學(xué)習(xí)、連接學(xué)習(xí)等。歸納學(xué)習(xí)是在給定關(guān)于某個(gè)概念的一系列已知的正例和反例的條件下,通過(guò)歸納推理得到對(duì)該概念的一般性描述的過(guò)程;決策樹(shù)學(xué)習(xí)算法是目前廣為應(yīng)用的歸納學(xué)習(xí)算法,典型的決策樹(shù)學(xué)習(xí)算法有CLS算法、ID3算法等。分析學(xué)習(xí)是利用先驗(yàn)知識(shí)并通過(guò)演繹推理來(lái)擴(kuò)大訓(xùn)練樣例提供的信息;在分析學(xué)習(xí)中,學(xué)習(xí)系統(tǒng)的輸入除了訓(xùn)練樣例和假設(shè)空間之外,還包括領(lǐng)域理論,它由可用于解釋訓(xùn)練樣例的先驗(yàn)知識(shí)組成。基于實(shí)例的學(xué)習(xí)需要把訓(xùn)練樣例存儲(chǔ)起來(lái),泛化工作被推遲到分析新實(shí)例的時(shí)候;通常情況下,當(dāng)基于實(shí)例的學(xué)習(xí)系統(tǒng)遇到新的實(shí)例時(shí),它將分析新實(shí)例與以前存儲(chǔ)的實(shí)例的關(guān)系,并據(jù)此把一個(gè)目標(biāo)函數(shù)值賦給新實(shí)例;這種技術(shù)的優(yōu)點(diǎn)是不在整個(gè)實(shí)例空間上一次性地估計(jì)目標(biāo)函數(shù),而是針對(duì)每個(gè)待分析新實(shí)例作出局部估計(jì);該技術(shù)的一個(gè)不足是分析新實(shí)例所需的計(jì)算量可能比較大;所以,適當(dāng)減少訓(xùn)練樣例的數(shù)量,并有效地索引訓(xùn)練樣例,以減少分析新實(shí)例時(shí)的計(jì)算量是一個(gè)重要問(wèn)題。本發(fā)明所提供的異常檢測(cè)系統(tǒng)采用了基于實(shí)例學(xué)習(xí)的技術(shù)。
在一個(gè)實(shí)際的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中,一般都有多個(gè)合法用戶;這些合法用戶通常具有不同的操作權(quán)限(例如,程序員在系統(tǒng)中的主要活動(dòng)是編程,而不允許執(zhí)行系統(tǒng)管理員權(quán)限內(nèi)的某些操作);而且,不同的合法用戶具有不同的行為特點(diǎn)和行為規(guī)律。為了計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)的安全,在很多情況下都必須對(duì)系統(tǒng)中一些關(guān)鍵合法用戶的行為進(jìn)行監(jiān)視,以防止這些關(guān)鍵合法用戶進(jìn)行非授權(quán)操作,或者防止外部入侵者(非法用戶)冒用這些關(guān)鍵合法用戶的帳號(hào)進(jìn)行非法操作。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的是提供一種基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)系統(tǒng)和方法。該系統(tǒng)利用機(jī)器學(xué)習(xí)模型來(lái)建立計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中一個(gè)(或一組)關(guān)鍵合法用戶的正常行為輪廓,并在檢測(cè)中通過(guò)比較關(guān)鍵合法用戶的當(dāng)前行為與其正常行為輪廓來(lái)識(shí)別異常行為;如果該用戶的當(dāng)前行為較大程度地偏離了其歷史上的正常行為輪廓,即認(rèn)為發(fā)生了異??赡苁顷P(guān)鍵合法用戶進(jìn)行了非授權(quán)操作,或是外部入侵者冒用關(guān)鍵合法用戶的帳號(hào)進(jìn)行了非法操作。雖然異常并不一定意味著攻擊行為,但至少應(yīng)該引起安全管理員的密切注意。
為了達(dá)到上述目的,本發(fā)明提供了一種基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)系統(tǒng),該系統(tǒng)配置在需要監(jiān)控的服務(wù)器上,采用Unix平臺(tái)上的用戶接口shell命令作為審計(jì)數(shù)據(jù),在用戶界面層分析用戶行為來(lái)檢測(cè)服務(wù)器中是否發(fā)生入侵;其技術(shù)方案是所述系統(tǒng)包括有控制模塊,負(fù)責(zé)設(shè)置系統(tǒng)的工作狀態(tài)和各種檢測(cè)參數(shù),并對(duì)數(shù)據(jù)獲取和預(yù)處理模塊、學(xué)習(xí)模塊、檢測(cè)模塊和整個(gè)系統(tǒng)的運(yùn)行進(jìn)行控制;數(shù)據(jù)獲取和預(yù)處理模塊,負(fù)責(zé)從服務(wù)器中獲取原始的訓(xùn)練數(shù)據(jù)或?qū)徲?jì)數(shù)據(jù),即用戶執(zhí)行的shell命令行數(shù)據(jù),并將這些原始訓(xùn)練數(shù)據(jù)或?qū)徲?jì)數(shù)據(jù)處理成shell命令流的形式后,分別送入學(xué)習(xí)模塊或檢測(cè)模塊,用于學(xué)習(xí)或檢測(cè);學(xué)習(xí)模塊,采用機(jī)器學(xué)習(xí)技術(shù),從訓(xùn)練數(shù)據(jù)中獲取網(wǎng)絡(luò)系統(tǒng)中某個(gè)合法用戶正常行為的知識(shí),并在其基礎(chǔ)上建立用于表示該合法用戶的正常行為輪廓的shell命令序列庫(kù);序列存儲(chǔ)模塊,用于存儲(chǔ)學(xué)習(xí)模塊所建立的shell命令序列庫(kù),并在檢測(cè)時(shí),供檢測(cè)模塊進(jìn)行檢索比較;檢測(cè)模塊,負(fù)責(zé)對(duì)所述合法用戶在被監(jiān)測(cè)時(shí)間內(nèi)執(zhí)行的shell命令審計(jì)數(shù)據(jù)進(jìn)行分析處理,完成包括但不限于“行為模式序列”的挖掘、相似度計(jì)算或賦值、相似度的加窗濾噪、判決值計(jì)算和用戶行為判決的工作;檢測(cè)結(jié)果輸出模塊,負(fù)責(zé)顯示檢測(cè)模塊生成的判決值曲線,并在檢測(cè)模塊的控制下對(duì)異常行為進(jìn)行報(bào)警。
為了達(dá)到上述目的,本發(fā)明又提供了該用戶行為異常檢測(cè)系統(tǒng)的檢測(cè)方法,包括下列操作步驟(1)系統(tǒng)啟動(dòng);(2)系統(tǒng)等待指令的輸入時(shí),由控制模塊設(shè)置系統(tǒng)的工作狀態(tài)和檢測(cè)參數(shù),以便在此后輸入“開(kāi)始工作”指令后,由控制模塊自動(dòng)查看系統(tǒng)的設(shè)置情況,分別進(jìn)入兩種不同工作狀態(tài)如果系統(tǒng)被設(shè)置為學(xué)習(xí)狀態(tài),執(zhí)行后續(xù)操作;如果系統(tǒng)被設(shè)置為檢測(cè)狀態(tài),則跳轉(zhuǎn)執(zhí)行步驟(6);(3)在控制模塊驅(qū)動(dòng)下,數(shù)據(jù)獲取和預(yù)處理模塊從預(yù)先設(shè)定的數(shù)據(jù)接口載入原始訓(xùn)練數(shù)據(jù),并對(duì)該原始訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理,使其成為shell命令流的形式,再將其輸出至學(xué)習(xí)模塊;(4)學(xué)習(xí)模塊利用預(yù)處理后的shell命令流訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí),建立shell命令序列庫(kù),并將該序列庫(kù)存入序列存儲(chǔ)模塊后,向控制模塊發(fā)送“學(xué)習(xí)結(jié)束”的消息;(5)控制模塊接收到學(xué)習(xí)模塊的“學(xué)習(xí)結(jié)束”消息后,使系統(tǒng)返回步驟(2),等待輸入新的設(shè)置指令;或者直接將系統(tǒng)的工作狀態(tài)轉(zhuǎn)為檢測(cè)狀態(tài),執(zhí)行后續(xù)操作;(6)在控制模塊驅(qū)動(dòng)下,數(shù)據(jù)獲取和預(yù)處理模塊從預(yù)先設(shè)定的數(shù)據(jù)接口實(shí)時(shí)載入shell命令行的原始審計(jì)數(shù)據(jù),同時(shí)對(duì)該原始審計(jì)數(shù)據(jù)進(jìn)行實(shí)時(shí)預(yù)處理,并將預(yù)處理后的shell命令流審計(jì)數(shù)據(jù)實(shí)時(shí)輸出至檢測(cè)模塊;(7)檢測(cè)模塊對(duì)該審計(jì)數(shù)據(jù)進(jìn)行實(shí)時(shí)分析,生成檢測(cè)結(jié)果;(8)檢測(cè)結(jié)果輸出模塊顯示檢測(cè)結(jié)果判決值曲線,并對(duì)異常行為進(jìn)行實(shí)時(shí)報(bào)警。
所述步驟(2)中,如果系統(tǒng)的工作狀態(tài)被設(shè)置為學(xué)習(xí)狀態(tài),需要設(shè)置的工作參數(shù)包括用于表示該合法用戶的正常行為輪廓而需要建立的shell命令序列庫(kù)的個(gè)數(shù)W,以及W個(gè)序列長(zhǎng)度l(1)、l(2)、......、l(W);其中l(wèi)(i)是第i個(gè)shell命令序列庫(kù)中序列的長(zhǎng)度,且l(1)<l(2)<......<l(W);
如果系統(tǒng)的工作狀態(tài)被設(shè)置為檢測(cè)狀態(tài),需要設(shè)置的工作參數(shù)有兩種,分別為第一種判決方法,窗長(zhǎng)度w,判決門(mén)限λ;或第二種判決方法,窗長(zhǎng)度的個(gè)數(shù)V,V個(gè)窗長(zhǎng)度w(1)、w(2)、......、w(V),V個(gè)判決上限u(1)、u(2)、......、u(V)和V個(gè)判決下限d(1)、d(2)、......、d(V);其中,w(1)<w(2)<......<w(V),u(k)和d(k)分別是第k個(gè)窗長(zhǎng)度c(k)所對(duì)應(yīng)的判決上限和判決下限,k是區(qū)間為[1,V]的自然數(shù),且u(1)>u(2)>......>u(V-1)>u(V)=d(V)>d(V-1)>......>d(2)>d(1)。
所述步驟(3)或步驟(6)中數(shù)據(jù)獲取和預(yù)處理模塊對(duì)原始訓(xùn)練數(shù)據(jù)或原始審計(jì)數(shù)據(jù)進(jìn)行的預(yù)處理包括下列步驟31、提取出shell命令行中命令的名稱names、標(biāo)記flags和元字符metacharacters;32、將包括但不限于文件名、服務(wù)器名、目錄、網(wǎng)址的信息替換為統(tǒng)一格式的標(biāo)識(shí)符號(hào)<n>,其中n表示文件名、服務(wù)器名、目錄或網(wǎng)址的個(gè)數(shù);33、在每個(gè)shell會(huì)話開(kāi)始和結(jié)束的時(shí)間點(diǎn)上分別插入表示起始和結(jié)束的標(biāo)識(shí)符號(hào)SOF和EOF;34、將包括命令的名稱、標(biāo)記和元字符的符號(hào)以及文件名、服務(wù)器名、目錄、網(wǎng)址的信息標(biāo)識(shí)符號(hào)的shell命令符號(hào)按照在shell會(huì)話中的出現(xiàn)次序進(jìn)行排列;并按照時(shí)間順序連接不同shell會(huì)話的命令符號(hào),且在上述數(shù)據(jù)中不添加時(shí)間戳,經(jīng)過(guò)該預(yù)處理后,原始輸入數(shù)據(jù)在形式上成為shell命令流一串按時(shí)間順序排列的shell命令符號(hào),且一個(gè)shell命令流可包含多個(gè)shell會(huì)話的內(nèi)容。
所述步驟(4)中學(xué)習(xí)模塊利用預(yù)處理后的shell命令流訓(xùn)練數(shù)據(jù)進(jìn)行的學(xué)習(xí)操作包括下列步驟41、從數(shù)據(jù)獲取和預(yù)處理模塊得到經(jīng)過(guò)預(yù)處理的、表示該合法用戶的正常行為的訓(xùn)練數(shù)據(jù)R=(s1,s2,......,sr),即一個(gè)長(zhǎng)度為r的shell命令流,其中sj表示按時(shí)間順序排列的第j個(gè)shell命令符號(hào);42、從控制模塊中讀取學(xué)習(xí)參數(shù)用于表示該合法用戶的正常行為輪廓而需要建立的shell命令序列庫(kù)的個(gè)數(shù)W,以及W個(gè)序列長(zhǎng)度l(1)、l(2)、......、l(W);其中l(wèi)(i)是第i個(gè)shell命令序列庫(kù)中序列的長(zhǎng)度,且l(1)<l(2)<......<l(W);43、由shell命令流R生成W個(gè)序列長(zhǎng)度分別為l(1)、l(2)、......、l(W)的shell命令序列流S1、S2、......、SW,其中Si是序列長(zhǎng)度為l(i)的shell命令序列流Si=(Seq1i,Seq2i,......,Seqr-l(i)+1i),]]>式中Seqji=(sj,sj+1,......,sj+l(i)-1),]]>它是Si中按時(shí)間順序排列的第j個(gè)shell命令序列,i是區(qū)間[1,W]中的自然數(shù);44、計(jì)算shell命令序列流Si中的每個(gè)shell命令序列在Si中的出現(xiàn)頻率,其中i是區(qū)間[1,W]中的自然數(shù);即計(jì)算序列流Si中的每個(gè)shell序列在Si中的出現(xiàn)次數(shù)除以該序列流中各個(gè)序列出現(xiàn)次數(shù)之和;45、讀取控制模塊中的頻率門(mén)限參數(shù)用于建立W個(gè)shell命令序列庫(kù)的頻率門(mén)限η1、η2、......、ηW;其中ηi是建立序列長(zhǎng)度為l(i)的shell命令序列庫(kù)時(shí)所使用的頻率門(mén)限,i是區(qū)間[1,W]中的自然數(shù);46、按照序列的出現(xiàn)頻率,從W個(gè)shell命令序列流S1、S2、......、SW中分別提取若干個(gè)shell命令序列用作樣例,建立W個(gè)序列庫(kù);其具體方法步驟是設(shè)W個(gè)用于表示該用戶正常行為輪廓的序列庫(kù)的集合L={L(1),L(2),......,L(W)},其中L(i)表示由長(zhǎng)度為l(i)的序列組成的序列庫(kù);按照自然數(shù)i從1到W的次序,分別將shell命令序列流Si中出現(xiàn)頻率大于或等于頻率門(mén)限ηi的shell命令序列提取出來(lái)作為樣例,即視為該合法用戶的正常行為模式的shell命令序列,并將這些序列集合在一起構(gòu)成序列庫(kù)L(i)。
所述步驟(7)中檢測(cè)模塊對(duì)審計(jì)數(shù)據(jù)進(jìn)行實(shí)時(shí)分析并生成檢測(cè)結(jié)果的實(shí)時(shí)檢測(cè)操作包括下列步驟71、從數(shù)據(jù)獲取和預(yù)處理模塊實(shí)時(shí)地獲取審計(jì)數(shù)據(jù);即在檢測(cè)時(shí),數(shù)據(jù)獲取和預(yù)處理模塊要從shell歷史文件中實(shí)時(shí)地獲取該被監(jiān)測(cè)合法用戶在被監(jiān)測(cè)時(shí)間內(nèi)執(zhí)行的shell命令行,并對(duì)這些命令行數(shù)據(jù)進(jìn)行預(yù)處理后,變換為一個(gè)shell命令流R={s1,s2,......,sr},其中sj表示按時(shí)間順序排列的第j個(gè)shell命令符號(hào),r為該命令流的長(zhǎng)度;數(shù)據(jù)獲取和預(yù)處理模塊按照時(shí)間順序?qū)崟r(shí)地將R={s1,s2,......,sr}中的每個(gè)shell命令符號(hào)依次輸出至檢測(cè)模塊;
72、檢測(cè)模塊利用序列匹配方法來(lái)挖掘shell命令流R中的“行為模式序列”,并按照每個(gè)“行為模式序列”的長(zhǎng)度計(jì)算它與序列庫(kù)集合L={L(1),L(2),......,L(W)}的相似度,得到按時(shí)間順序排列的“行為模式序列”流P=(Seq1*,Seq2*,......,SeqM*),]]>以及相應(yīng)的相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L)),]]>其中Seqn*表示從R中挖掘到的第n個(gè)“行為模式序列”,Sim(Seqn*,L)表示Seqn*與序列庫(kù)集合的相似度,M是從R中挖掘到的“行為模式序列”的個(gè)數(shù),且int(r/l(W))≤M≤r-l(W)+1;73、對(duì)相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L))]]>進(jìn)行加窗并取均值,將得到的相似度均值,即相似度判決值與判決門(mén)限進(jìn)行比較,進(jìn)而對(duì)該被監(jiān)測(cè)合法用戶的行為作出判決;在實(shí)時(shí)檢測(cè)時(shí),所述三個(gè)步驟71、72、73是同步執(zhí)行的。
所述步驟72中檢測(cè)模塊利用序列匹配方法挖掘所述用戶shell命令流審計(jì)數(shù)據(jù)R中行為模式序列及每個(gè)行為模式序列與序列庫(kù)集合的相似度的計(jì)算進(jìn)一步包括下列步驟721、設(shè)置三個(gè)變量j=1,i=W,n=1;722、如果j≤r-l(W)+1,將Seqji與序列庫(kù)L(i)進(jìn)行比較,再執(zhí)行步驟723;如果j>r-l(W)+1,停止操作,即結(jié)束行為模式序列的挖掘和相似度計(jì)算;723、如果S‾eqji∈L(i),]]>即Seqji與序列庫(kù)L(i)中的某個(gè)序列相同,則第n個(gè)行為模式序列Seqn*:=S‾eqji,]]>Seqn*與序列庫(kù)集合L的相似度為Sim(Seqn*,L):=2l(i)/2l(W),]]>j=j(luò)+l(i),i=W,n=n+1,并返回執(zhí)行步驟722;如果S‾eqji∉L(i),]]>即Seqji與序列庫(kù)L(i)中的任何序列都不相同,則i=i-1,然后執(zhí)行步驟724;724、如果i≠0,返回執(zhí)行步驟722;如果i=0,則Seqn*:=(Sj),]]>Sim(Seqn*,L):=0,]]>j=j(luò)+1,i=W,n=n+1,并返回執(zhí)行步驟722。
所述步驟73中檢測(cè)模塊在對(duì)相似度流進(jìn)行加窗處理和對(duì)該用戶的行為進(jìn)行判決時(shí),有兩種判決方法可供用戶選擇;其中第一種判決方法是用固定的窗長(zhǎng)度對(duì)相似度流進(jìn)行加窗并取均值,得到的相似度均值,即相似度判決值,再利用相似度判決值和判決門(mén)限對(duì)該用戶的行為進(jìn)行判決;包括下列操作步驟7301、讀取控制模塊中設(shè)置的參數(shù)窗長(zhǎng)度w和判決門(mén)限λ,當(dāng)從審計(jì)數(shù)據(jù)R中挖掘到第n個(gè)行為模式序列Seqn*,并計(jì)算出Sim(Seqn*,L)后,其中n≥w;以Sim(Seqn*,L)為終點(diǎn)對(duì)相似度流Z進(jìn)行加窗,計(jì)算以Sim(Seqn*,L)為終點(diǎn)的w個(gè)相似度,即Sim(Seqn-w+1*,L)、Sim(Seqn-w+2*,L)、......、Sim(Seqn*,L)的均值,得到Seqn*對(duì)應(yīng)的相似度判決值D(n)D(n)=1wΣm=n-w+1nSim(Seqm*,L);]]>7302、利用判決值D(n)和判決門(mén)限λ對(duì)該用戶的“當(dāng)前行為”進(jìn)行判決;如果D(n)>λ,將該用戶的“當(dāng)前行為”判為正常行為;如果D(n)≤λ,將該用戶的“當(dāng)前行為”判為異常行為;其中第二種判決方法是采用可變的窗長(zhǎng)度對(duì)相似度流進(jìn)行加窗并取均值,得到的相似度均值,即相似度判決值,再利用相似度判決值和判決門(mén)限對(duì)該被監(jiān)測(cè)用戶的行為進(jìn)行判決;包括下列操作步驟7311、讀取控制模塊中設(shè)置的參數(shù)V個(gè)窗長(zhǎng)度w(1)、w(2)、......、w(V),V個(gè)判決上限u(1)、u(2)、......、u(V)和V個(gè)判決下限d(1)、d(2)、......、d(V),其中,w(1)<w(2)<......<w(V),u(k)和d(k)分別是第k個(gè)窗長(zhǎng)度c(k)所對(duì)應(yīng)的判決上限和判決下限,k是區(qū)間為[1,V]的自然數(shù),且u(1)>u(2)>......>u(V-1)>u(V)=d(V)>d(V-1)>......>d(2)>d(1);7312、當(dāng)從R中挖掘到第n個(gè)“行為模式序列”Seqn*,并計(jì)算出Sim(Seqn*,L)后,繼續(xù)計(jì)算Seqn*對(duì)應(yīng)的相似度判決值D(n),并對(duì)該用戶的“當(dāng)前行為”作出判決。
所述步驟7312進(jìn)行的計(jì)算和判決方法進(jìn)一步包括下列操作步驟步驟1、設(shè)置變量k=1;步驟2、將n同w(k)進(jìn)行比較如果n≥w(k),執(zhí)行后續(xù)步驟;如果n<w(k),則不計(jì)算D(n),也不對(duì)該用戶的“當(dāng)前行為”進(jìn)行判決,結(jié)束該操作;步驟3計(jì)算相似度均值N(n,k),該數(shù)值是對(duì)相似度流Z=(Sim(Seq1*,L),Sim(Seq2*L),......,Sim(SeqM*,L))]]>中以Sim(Seqn*,L)為終點(diǎn)的w(k)個(gè)相似度Sim(Seqn-w(k)+1*,L)、Sim(Seqn-w(k)+2*,L)、......、Sim(Seqn*,L)進(jìn)行加窗并取均值后得到的N(n,k)=1w(k)Σm=n-w(k)+1nSim(Seqm*,L),]]>式中w(k)為窗長(zhǎng)度,且w(k)≤n≤M;步驟4、判斷是否滿足判決條件N(n,k)>u(k),如果滿足該條件,則Seqn*對(duì)應(yīng)的相似度判決值定義為D(n)=N(n,k),并將該用戶的“當(dāng)前行為”判為正常行為;如果不滿足判決條件N(n,k)>u(k),繼續(xù)執(zhí)行后續(xù)操作;步驟5、判斷是否滿足判決條件N(n,k)≤d(k),如果滿足該條件,則D(n)=N(n,k),并將該用戶的“當(dāng)前行為”判為異常行為,結(jié)束對(duì)用戶“當(dāng)前行為”的判決;如果不滿足判決條件N(n,k)≤d(k),繼續(xù)執(zhí)行后續(xù)操作。
步驟6、k=k+1,即k的值加1,并返回執(zhí)行步驟2,循環(huán)執(zhí)行后續(xù)操作。
所述檢測(cè)方法用于對(duì)計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中的某一個(gè)合法用戶的行為進(jìn)行異常檢測(cè),或者對(duì)網(wǎng)絡(luò)系統(tǒng)中一組或多個(gè)合法用戶的行為進(jìn)行異常檢測(cè),對(duì)于后者,可采用兩種不同的方法如果一組或多個(gè)合法用戶的權(quán)限和行為特點(diǎn)相差比較大,則利用每個(gè)合法用戶的正常行為訓(xùn)練數(shù)據(jù)分別建立W個(gè)序列庫(kù),再分別利用各自的W個(gè)序列庫(kù)對(duì)每個(gè)用戶的行為進(jìn)行異常檢測(cè);如果一組或多個(gè)合法用戶具有同等的權(quán)限,而且行為特點(diǎn)比較接近,則將這些用戶的訓(xùn)練數(shù)據(jù)組合在一起,即將這些用戶的shell命令流連接在一起構(gòu)成總的訓(xùn)練數(shù)據(jù),利用該訓(xùn)練數(shù)據(jù)建立W個(gè)序列庫(kù),再利用該W個(gè)序列庫(kù)對(duì)每個(gè)用戶的行為進(jìn)行異常檢測(cè)。
本發(fā)明是一種基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)系統(tǒng)和方法,其優(yōu)點(diǎn)在于(1)本發(fā)明的系統(tǒng)具有很強(qiáng)的實(shí)用性和可操作性。該系統(tǒng)采用軟件組成,可以靈活配置在需要監(jiān)控的網(wǎng)絡(luò)服務(wù)器上,不需要額外配置任何硬件,就能夠檢測(cè)網(wǎng)絡(luò)服務(wù)器中的用戶異常行為,進(jìn)而使安全管理員識(shí)別對(duì)網(wǎng)絡(luò)系統(tǒng)的各種攻擊活動(dòng)。與現(xiàn)有的一些商用主機(jī)型入侵檢測(cè)系統(tǒng)相比,本發(fā)明系統(tǒng)利用多種長(zhǎng)度不同的shell命令序列表示合法用戶的各種正常行為模式,并建立多個(gè)序列庫(kù)來(lái)描述用戶的正常行為輪廓,提高了用戶行為模式和行為輪廓表示中的靈活性和準(zhǔn)確性。實(shí)際應(yīng)用中的檢測(cè)結(jié)果表明,該系統(tǒng)具有很高的檢測(cè)準(zhǔn)確率。
(2)本發(fā)明的檢測(cè)方法是以機(jī)器學(xué)習(xí)技術(shù)為基礎(chǔ),在很多主機(jī)型入侵檢測(cè)系統(tǒng)中,學(xué)習(xí)階段(訓(xùn)練階段)所采用的訓(xùn)練樣例通常既有正例,又有反例。本發(fā)明的系統(tǒng)在學(xué)習(xí)時(shí)只需要正例,不需要反例,從而大大降低了訓(xùn)練數(shù)據(jù)收集的難度,擴(kuò)展了系統(tǒng)的應(yīng)用范圍和領(lǐng)域。另外,本發(fā)明采用了獨(dú)特的相似度計(jì)算(賦值)方法;在本發(fā)明中,合法用戶的正常行為模式被認(rèn)為是其正常操作過(guò)程中頻繁執(zhí)行的shell命令序列,因此,系統(tǒng)是按照訓(xùn)練數(shù)據(jù)中shell命令序列的出現(xiàn)頻率來(lái)提取樣例序列。在試驗(yàn)性的實(shí)際應(yīng)用中的檢測(cè)結(jié)果表明,這種提取樣例序列的方法是一種很穩(wěn)健的方法。
(3)在本發(fā)明的第二種檢測(cè)判決方法中,對(duì)相似度流進(jìn)行加窗濾噪時(shí)引入了“可變窗長(zhǎng)度”的技術(shù)手段,并聯(lián)合采用多個(gè)判決門(mén)限對(duì)被監(jiān)測(cè)用戶的行為進(jìn)行判決,增強(qiáng)了檢測(cè)性能的穩(wěn)定性和檢測(cè)的實(shí)時(shí)性。
(4)本發(fā)明的檢測(cè)方法在進(jìn)行“行為模式序列”挖掘時(shí),采用了“全序列比較”的匹配方式。因此,在序列存儲(chǔ)和匹配時(shí),可以利用不同的編號(hào)(整數(shù))來(lái)替代各個(gè)互不相同的shell命令序列。同一些現(xiàn)有的主機(jī)型入侵檢測(cè)系統(tǒng)和檢測(cè)方法相比較,本發(fā)明所采用的序列匹配和存儲(chǔ)方法可以大大減小數(shù)據(jù)存儲(chǔ)量和檢測(cè)中的運(yùn)算量,從而降低對(duì)系統(tǒng)所安置的服務(wù)器的資源的消耗和影響。


圖1是機(jī)器學(xué)習(xí)系統(tǒng)的通用模型圖。
圖2是本發(fā)明基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)系統(tǒng)的結(jié)構(gòu)示意圖。
圖3是本發(fā)明用戶行為異常檢測(cè)系統(tǒng)的工作流程方框圖。
圖4是本發(fā)明基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)系統(tǒng)的檢測(cè)方法示意圖。
圖5是本發(fā)明中的學(xué)習(xí)模塊進(jìn)行學(xué)習(xí)的步驟方框圖。
圖6是本發(fā)明中的檢測(cè)模塊進(jìn)行檢測(cè)的步驟方框圖。
圖7是本發(fā)明中的檢測(cè)結(jié)果輸出模塊輸出的判決值曲線圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
參見(jiàn)圖2,本發(fā)明是一種基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)系統(tǒng),該系統(tǒng)為軟件產(chǎn)品,配置在需要監(jiān)控的服務(wù)器上,采用Unix平臺(tái)上的shell命令作為審計(jì)數(shù)據(jù),在用戶界面層分析用戶行為來(lái)檢測(cè)服務(wù)器中是否發(fā)生入侵。該系統(tǒng)由控制模塊、數(shù)據(jù)獲取和預(yù)處理模塊、學(xué)習(xí)模塊、序列存儲(chǔ)模塊、檢測(cè)模塊、檢測(cè)結(jié)果輸出模塊組成。
系統(tǒng)中的控制模塊負(fù)責(zé)設(shè)置系統(tǒng)的工作狀態(tài)和各種檢測(cè)參數(shù),并對(duì)數(shù)據(jù)獲取和預(yù)處理模塊、學(xué)習(xí)模塊、檢測(cè)模塊和整個(gè)系統(tǒng)的運(yùn)行進(jìn)行控制。數(shù)據(jù)獲取和預(yù)處理模塊負(fù)責(zé)從服務(wù)器中獲取原始的訓(xùn)練數(shù)據(jù)或?qū)徲?jì)數(shù)據(jù),即用戶執(zhí)行的shell命令行數(shù)據(jù),并將這些原始訓(xùn)練數(shù)據(jù)或?qū)徲?jì)數(shù)據(jù)處理成shell命令流的形式后,分別送入學(xué)習(xí)模塊或檢測(cè)模塊,用于學(xué)習(xí)或檢測(cè)。學(xué)習(xí)模塊利用機(jī)器學(xué)習(xí)技術(shù),從訓(xùn)練數(shù)據(jù)中獲取網(wǎng)絡(luò)系統(tǒng)中某個(gè)(某組)關(guān)鍵合法用戶的正常行為的知識(shí),并在此基礎(chǔ)上建立用于表示該合法用戶的正常行為輪廓的shell命令序列庫(kù)。序列存儲(chǔ)模塊用于存儲(chǔ)學(xué)習(xí)模塊所建立的shell命令序列庫(kù);在檢測(cè)時(shí),該shell命令序列庫(kù)可供檢測(cè)模塊進(jìn)行檢索比較。檢測(cè)模塊負(fù)責(zé)對(duì)該合法用戶在被監(jiān)測(cè)時(shí)間內(nèi)所執(zhí)行的shell命令進(jìn)行分析和處理,完成“行為模式序列”的挖掘、相似度計(jì)算(賦值)、相似度的加窗濾噪、判決值計(jì)算、用戶行為判決等工作。檢測(cè)結(jié)果輸出模塊負(fù)責(zé)顯示檢測(cè)模塊生成的判決值曲線,并在檢測(cè)模塊的驅(qū)動(dòng)下對(duì)異常行為進(jìn)行報(bào)警。
參見(jiàn)圖3,介紹本發(fā)明系統(tǒng)的工作流程如下(1)系統(tǒng)啟動(dòng);(2)系統(tǒng)等待指令的輸入;此時(shí),由控制模塊設(shè)置系統(tǒng)的工作狀態(tài)和檢測(cè)參數(shù),設(shè)置完畢后,可輸入“開(kāi)始工作”的指令;再由系統(tǒng)控制模塊自動(dòng)查看系統(tǒng)的設(shè)置情況,分別進(jìn)入兩種不同工作狀態(tài)如果系統(tǒng)被設(shè)置為學(xué)習(xí)狀態(tài),執(zhí)行后續(xù)操作;如果系統(tǒng)被設(shè)置為檢測(cè)狀態(tài),則跳轉(zhuǎn)執(zhí)行步驟(6);需要說(shuō)明的是,系統(tǒng)啟動(dòng)后有一組缺省的工作狀態(tài)和檢測(cè)參數(shù),即上一次運(yùn)行時(shí)所設(shè)置的工作狀態(tài)和檢測(cè)參數(shù);如果不需要更改以上的缺省設(shè)置,則可直接輸入“開(kāi)始工作”的指令使系統(tǒng)進(jìn)行相應(yīng)的步驟;
(3)在控制模塊驅(qū)動(dòng)下,數(shù)據(jù)獲取和預(yù)處理模塊從預(yù)先設(shè)定的數(shù)據(jù)接口載入原始訓(xùn)練數(shù)據(jù),并對(duì)該原始訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理,使其成為shell命令流的形式,再將其輸出至學(xué)習(xí)模塊;(4)學(xué)習(xí)模塊利用預(yù)處理后的shell命令流訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí),建立shell命令序列庫(kù),并將該序列庫(kù)存入序列存儲(chǔ)模塊后,向控制模塊發(fā)送“學(xué)習(xí)結(jié)束”的消息;(5)控制模塊接收到學(xué)習(xí)模塊的“學(xué)習(xí)結(jié)束”消息后,使系統(tǒng)返回步驟(2),等待輸入新的設(shè)置指令;(6)在控制模塊驅(qū)動(dòng)下,直接將系統(tǒng)的工作狀態(tài)切換為檢測(cè)狀態(tài),數(shù)據(jù)獲取和預(yù)處理模塊從預(yù)先設(shè)定的數(shù)據(jù)接口實(shí)時(shí)載入shell命令行的原始審計(jì)數(shù)據(jù),同時(shí)對(duì)該原始審計(jì)數(shù)據(jù)進(jìn)行實(shí)時(shí)預(yù)處理,并將預(yù)處理后的shell命令流審計(jì)數(shù)據(jù)實(shí)時(shí)輸出至檢測(cè)模塊;(7)檢測(cè)模塊對(duì)數(shù)據(jù)獲取和預(yù)處理模塊所提供的該審計(jì)數(shù)據(jù)進(jìn)行實(shí)時(shí)分析,生成檢測(cè)結(jié)果;(8)檢測(cè)結(jié)果輸出模塊顯示檢測(cè)結(jié)果判決值曲線,并對(duì)異常行為進(jìn)行實(shí)時(shí)報(bào)警。
由上述本發(fā)明系統(tǒng)的工作流程可見(jiàn),本發(fā)明作為一種基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)方法,主要包括三個(gè)步驟(參見(jiàn)圖3)獲取數(shù)據(jù)并對(duì)其進(jìn)行預(yù)處理、進(jìn)行學(xué)習(xí)或訓(xùn)練、檢測(cè)用戶行為并輸出檢測(cè)結(jié)果。下面對(duì)這三部分工作分別進(jìn)行具體介紹。
(一)獲取數(shù)據(jù)并對(duì)其進(jìn)行預(yù)處理本發(fā)明系統(tǒng)在學(xué)習(xí)和檢測(cè)時(shí)都需要獲取原始的訓(xùn)練數(shù)據(jù)或?qū)徲?jì)數(shù)據(jù),并對(duì)其進(jìn)行預(yù)處理,該工作由數(shù)據(jù)獲取和預(yù)處理模塊完成。
本發(fā)明采用Unix平臺(tái)上用戶執(zhí)行的shell命令行作為原始審計(jì)數(shù)據(jù)。其原因主要有三個(gè)(1)同其它審計(jì)數(shù)據(jù)(如CPU使用量、內(nèi)存占用率等)相比,shell命令行能夠更直接地反映用戶的行為;(2)在Unix平臺(tái)上,shell是終端用戶與操作系統(tǒng)之間最主要的界面,很大比例的用戶活動(dòng)都是利用shell完成的;(3)shell命令行比較容易收集,也便于分析。
Unix平臺(tái)上的shell有多種類型,如tcsh、ksh、bash。本發(fā)明系統(tǒng)實(shí)際應(yīng)用于tcsh;tcsh是具有類似C語(yǔ)法的命令解釋器,它的歷史機(jī)制可以將用戶輸入的shell命令行放入歷史清單中保存下來(lái)。由于不同類型的shell的命令輸入方式和歷史機(jī)制具有很多共性,因而本發(fā)明的用戶行為異常檢測(cè)方法(包括數(shù)據(jù)預(yù)處理方法、學(xué)習(xí)方法和檢測(cè)方法)也適用于tcsh之外的其它類型的shell。
本發(fā)明在學(xué)習(xí)和檢測(cè)時(shí)所需要的shell命令行原始輸入數(shù)據(jù)可以從tcsh的歷史文件中獲取。但是,shell命令行不能直接用于學(xué)習(xí)或檢測(cè),而是需要進(jìn)行預(yù)處理。預(yù)處理的目的主要有兩個(gè)(1)使數(shù)據(jù)在形式上便于存儲(chǔ)、分析和處理;(2)減小審計(jì)數(shù)據(jù)中互不相同的命令符號(hào)的個(gè)數(shù)。在學(xué)習(xí)和檢測(cè)時(shí),數(shù)據(jù)獲取和預(yù)處理模塊對(duì)原始輸入數(shù)據(jù)進(jìn)行預(yù)處理的方法是相同的。具體方法是1、提取出shell命令行中命令的名稱(names)、標(biāo)記(flags)及元字符(metacharacters)。
2、將文件名、服務(wù)器名、目錄、網(wǎng)址等信息替換為統(tǒng)一格式的標(biāo)識(shí)符號(hào)<n>,其中n表示文件名、服務(wù)器名、目錄或網(wǎng)址的個(gè)數(shù)。
3、在每個(gè)shell會(huì)話開(kāi)始和結(jié)束的時(shí)間點(diǎn)上分別插入表示起始和結(jié)束的標(biāo)識(shí)符號(hào)SOF和EOF。
4、將包括命令名稱、標(biāo)記和元字符的符號(hào)以及文件名、服務(wù)器名等信息的標(biāo)識(shí)符號(hào)的shell命令符號(hào)(shell command tokens)按照在shell會(huì)話中的出現(xiàn)次序進(jìn)行排列;并按照時(shí)間順序連接不同shell會(huì)話的命令符號(hào),且在上述數(shù)據(jù)中不添加時(shí)間戳。
原始輸入數(shù)據(jù)經(jīng)過(guò)該預(yù)處理后,在形式上成為shell命令流一串按時(shí)間順序排列的shell命令符號(hào),且一個(gè)shell命令流可包含多個(gè)shell會(huì)話的內(nèi)容。例如,某個(gè)用戶在tcsh上進(jìn)行的兩個(gè)時(shí)間上相鄰的shell會(huì)話的命令行#Start session 1cd~/games/xquake &fgvi scores.txtmailx john_doe@somewhere.comexit#End session 1 和#Start session 2cd~/private/docsls-laF|morecat foo.txt bar.txt zorch.txt>somewhereexit# End session 2經(jīng)預(yù)處理后成為如下的shell命令流(SOF,cd,<1>,xquake,&,fg,vi,<1>,mailx,<1>,exit,EOF,SOF,cd,<1>,ls,-laF,|,more,cat,<3>,>,<1>,exit,EOF)其中<1>、<3>是文件名、目錄、Email地址等內(nèi)容的標(biāo)識(shí)符號(hào),SOF和EOF分別是會(huì)話開(kāi)始和結(jié)束的標(biāo)識(shí)符號(hào)??梢?jiàn),shell命令流是一串按時(shí)間順序排列的shell命令符號(hào);一個(gè)shell命令流可以包含多個(gè)shell會(huì)話的內(nèi)容。
(二)進(jìn)行學(xué)習(xí)或訓(xùn)練系統(tǒng)在執(zhí)行檢測(cè)之前,首先需要進(jìn)行學(xué)習(xí)(訓(xùn)練),即從訓(xùn)練數(shù)據(jù)中獲取網(wǎng)絡(luò)系統(tǒng)中某個(gè)關(guān)鍵合法用戶的正常行為的知識(shí),并在該基礎(chǔ)上建立用于表示該用戶的正常行為輪廓的shell命令序列庫(kù),以供檢測(cè)模塊在檢測(cè)時(shí)進(jìn)行檢索比較。系統(tǒng)的學(xué)習(xí)工作由學(xué)習(xí)模塊完成。
參見(jiàn)圖5,介紹學(xué)習(xí)模塊的學(xué)習(xí)步驟如下(1)從數(shù)據(jù)獲取和預(yù)處理模塊得到該合法用戶的正常行為訓(xùn)練數(shù)據(jù)原始的正常行為訓(xùn)練數(shù)據(jù)是該合法用戶歷史上正常操作時(shí)執(zhí)行的shell命令行,這些命令行數(shù)據(jù)經(jīng)過(guò)預(yù)處理后成為一個(gè)shell命令流(該命令流代表了該合法用戶歷史上的正常行為)R=(s1,s2,.....,sr),它是一個(gè)長(zhǎng)度為r的shell命令流,其中sj表示按時(shí)間順序排列的第j個(gè)shell命令符號(hào)。
(2)從控制模塊中讀取學(xué)習(xí)參數(shù)用于表示該合法用戶的正常行為輪廓而需要建立的shell命令序列庫(kù)的個(gè)數(shù)W,以及W個(gè)序列長(zhǎng)度l(1)、l(2)、......、l(W);其中l(wèi)(i)是第i個(gè)shell命令序列庫(kù)中序列的長(zhǎng)度,且l(1)<l(2)<......<l(W)。
該系統(tǒng)在學(xué)習(xí)時(shí)用W種長(zhǎng)度不同的shell命令序列表示該合法用戶的各種行為模式,并將訓(xùn)練數(shù)據(jù)中的各種正常行為模式(即出現(xiàn)頻率較高的shell命令序列)集合在一起構(gòu)成該用戶的正常行為輪廓。在W確定的情況下,l(1)、l(2)、......、l(W)可有不同的選擇。例如W=3時(shí),l(1)、l(2)、l(3)可以分別為1、2、3(即3個(gè)序列庫(kù)中序列的長(zhǎng)度分別為1,2,3),也可以分別為3、6、9或其它組合。W和l(i)對(duì)檢測(cè)性能和檢測(cè)效率都有直接影響,W和l(i)越大,系統(tǒng)的數(shù)據(jù)存儲(chǔ)量和檢測(cè)中的運(yùn)算量也會(huì)越大。
(3)由shell命令流R生成W個(gè)序列長(zhǎng)度分別為l(1)、l(2)、......、l(W)的shell命令序列流S1、S2、......、SW,其中Si是序列長(zhǎng)度為l(i)的shell命令序列流Si=(Seq1i,Seq2i,......,Seqr-l(i)+1i),]]>式中Seqji=(sj,sj+1,......,sj+l(i)-1),]]>它是Si中按時(shí)間順序排列的第j個(gè)shell命令序列,i是區(qū)間[1,W]中的自然數(shù)。
下面舉例說(shuō)明shell命令序列流的生成過(guò)程。
例如W=3,l(1)、l(2)、l(3)分別為1、2、3,R=(s1,s2,......,s12)=(**SOF**,cd,<1>,xquake,&,fg,vi,<1>,mailx,<1>,exit,**EOF**),則由R可以生成序列長(zhǎng)度分別為1、2、3的3個(gè)shell命令序列流S1、S2、S3,其中 (<1>),(mailx),(<1>),(exit),(EOF****))]]>S2=(Seq12,Seq22,......,Seq112)=((SOF****,cd),(cd,<1>),(<1>,xquake),]]> EOF****))]]>S3=(Seq13,Seq23,......,Seq103)=((SOF****,cd,<1>),(cd,<1>,xquake),(<1>,]]> <1>),(mailx,<1>,exit),(<1>,exit,EOF****))]]>(4)計(jì)算shell命令序列流Si中的每個(gè)shell命令序列在Si中的出現(xiàn)頻率,其中i是區(qū)間[1,W]上的自然數(shù);即計(jì)算序列流Si中的每個(gè)shell序列在Si中的出現(xiàn)次數(shù)除以該序列流中各個(gè)序列出現(xiàn)次數(shù)之和。
下面舉例說(shuō)明計(jì)算過(guò)程。例如,在前面所示的序列流S1=((**SOF**),(cd),(<1>),(xquake),(&),(fg),(vi),(<1>),(mailx),(<1>),(exit),(**EOF**))中,序列(<1>)的出現(xiàn)頻率是1/4,序列(cd)的出現(xiàn)頻率是1/12。而在序列流S2=((**SOF**,cd),(cd,<1>),(<1>,xquake),(xquake,&),(&,fg),(fg,vi),(vi,<1>),(<1>,mailx),(mailx,<1>),(<1>,exit),(exit,**EOF**))中,序列(<1>,xquake)的出現(xiàn)頻率是1/11(其它序列的出現(xiàn)頻率也是1/11)。
(5)讀取控制模塊中的頻率門(mén)限參數(shù)用于建立W個(gè)shell命令序列庫(kù)的頻率門(mén)限η1、η2、......、ηW;其中ηi是建立序列長(zhǎng)度為l(i)的shell命令序列庫(kù)時(shí)所使用的頻率門(mén)限,i是區(qū)間[1,W]中的自然數(shù)。
(6)按照序列的出現(xiàn)頻率,從W個(gè)shell命令序列流S1、S2、......、SW中分別提取若干個(gè)shell命令序列用作樣例,建立W個(gè)序列庫(kù);其具體方法步驟是設(shè)W個(gè)用于表示該用戶正常行為輪廓的序列庫(kù)的集合L={L(1),L(2),......,L(W)},其中L(i)表示由長(zhǎng)度為l(i)的序列組成的序列庫(kù);按照自然數(shù)i從1到W的次序,分別將shell命令序列流Si中出現(xiàn)頻率大于或等于頻率門(mén)限ηi的shell命令序列提取出來(lái)作為樣例,即視為該合法用戶的正常行為模式的shell命令序列,并將這些序列集合在一起構(gòu)成序列庫(kù)L(i)。
需要特別說(shuō)明的是學(xué)習(xí)模塊在對(duì)輸入的原始訓(xùn)練數(shù)據(jù)進(jìn)行的學(xué)習(xí)過(guò)程中,如果有了新的訓(xùn)練數(shù)據(jù)時(shí),會(huì)自動(dòng)根據(jù)新數(shù)據(jù)重新計(jì)算各序列的出現(xiàn)頻率,進(jìn)而對(duì)序列庫(kù)進(jìn)行調(diào)整;即該系統(tǒng)能夠自動(dòng)適應(yīng)合法用戶正常行為的變化。
(三)檢測(cè)用戶行為并輸出檢測(cè)結(jié)果利用學(xué)習(xí)模塊建立的所述合法用戶的正常行為輪廓,對(duì)該用戶的當(dāng)前行為進(jìn)行實(shí)時(shí)監(jiān)測(cè)如果該用戶的當(dāng)前行為較大程度地偏離其歷史上的正常行為輪廓,即認(rèn)為發(fā)生異常,執(zhí)行相關(guān)處理;該異常是由該用戶執(zhí)行非授權(quán)操作或外部入侵者冒用該用戶的帳號(hào)執(zhí)行非法操作的結(jié)果。檢測(cè)工作主要由檢測(cè)模塊完成。
參見(jiàn)圖6,介紹檢測(cè)模塊的實(shí)時(shí)檢測(cè)步驟如下(1)從數(shù)據(jù)獲取和預(yù)處理模塊實(shí)時(shí)地獲取審計(jì)數(shù)據(jù);即在檢測(cè)時(shí),數(shù)據(jù)獲取和預(yù)處理模塊要從shell歷史文件中實(shí)時(shí)地獲取該被監(jiān)測(cè)合法用戶在被監(jiān)測(cè)時(shí)間內(nèi)執(zhí)行的shell命令行,并對(duì)這些命令行數(shù)據(jù)進(jìn)行預(yù)處理后,變換為一個(gè)shell命令流R={s1,s2,......,sr},其中sj表示按時(shí)間順序排列的第j個(gè)shell命令符號(hào),r為該命令流的長(zhǎng)度;數(shù)據(jù)獲取和預(yù)處理模塊按照時(shí)間順序?qū)崟r(shí)地將R={s1,s2,......,sr}中的每個(gè)shell命令符號(hào)依次輸出至檢測(cè)模塊。
(2)檢測(cè)模塊利用序列匹配方法來(lái)挖掘shell命令流R中的“行為模式序列”,并按照每個(gè)“行為模式序列”的長(zhǎng)度計(jì)算它與序列庫(kù)集合L={L(1),L(2),......,L(W)}的相似度,得到按時(shí)間順序排列的“行為模式序列”流P=(Seq1*,Seq2*,......,SeqM*),]]>以及相應(yīng)的相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L)),]]>其中Seqn*表示從R中挖掘到的第n個(gè)“行為模式序列”,Sim(Seqn*,L)表示Seqn*與序列庫(kù)集合的相似度,M是從R中挖掘到的“行為模式序列”的個(gè)數(shù),且int(r/l(W))≤M≤r-l(W)+1。
其中“行為模式序列”挖掘和相似度計(jì)算的方法具體步驟描述如下步驟1、設(shè)置三個(gè)變量j=1,i=W,n=1;步驟2、如果j≤r-l(W)+1,將Seqji與序列庫(kù)L(i)進(jìn)行比較,再執(zhí)行步驟3;如果j>r-l(W)+1,停止操作(“行為模式序列”挖掘和相似度計(jì)算過(guò)程結(jié)束);步驟3、如果S‾eqji∈L(i)]]>(即Seqji與L(i)中的某個(gè)序列相同),則第n個(gè)“行為模式序列”Seqn*:=S‾eqji,]]>Seqn*與序列庫(kù)集合L的相似度Sim(Seqn*,L):=2l(i)/2l(W),]]>j=j(luò)+l(i),i=W,n=n+1,并返回執(zhí)行步驟2;如果S‾eqji∉L(i)]]>(即Seqji與L(i)中的任何序列都不相同),則i=i-1,然后執(zhí)行步驟4;步驟4、如果i≠0,返回執(zhí)行步驟2;如果i=0,則Seqn*:=(sj),]]>Sim(Seqn*,L):=0,]]>j=j(luò)+1,i=W,n=n+1,并返回執(zhí)行步驟2。
以上的“行為模式序列”挖掘和相似度計(jì)算方法可以理解為以第一個(gè)shell命令(符號(hào))為起點(diǎn),組成W個(gè)長(zhǎng)度分別為l(W)、l(W-1)、......、l(1)的序列,并按照長(zhǎng)度從大到小的順序依次將這些序列與相應(yīng)的序列庫(kù)進(jìn)行比較(匹配),如果其中一個(gè)序列與相應(yīng)序列庫(kù)中的某個(gè)序列相同,則認(rèn)為該序列是該合法用戶的一個(gè)正常行為模式,將該序列定義為“行為模式序列”,并根據(jù)序列長(zhǎng)度計(jì)算該序列與序列庫(kù)集合的相似度,序列長(zhǎng)度越長(zhǎng),相似度的值也越大。如果任何一個(gè)序列與相應(yīng)序列庫(kù)中的序列都不相同,則將當(dāng)前shell命令(符號(hào))定義成長(zhǎng)度為1的“行為模式序列”,并將該序列對(duì)應(yīng)的相似度值賦為0,然后,再以該序列之后的下一個(gè)shell命令(符號(hào))為起點(diǎn)組成W個(gè)長(zhǎng)度不同的序列,按照以上方法繼續(xù)進(jìn)行序列比較和相似度計(jì)算,直到第r-l(W)+1個(gè)shell命令(符號(hào))為止。這種方法主要關(guān)心被監(jiān)測(cè)用戶的當(dāng)前命令序列是否能夠與該用戶歷史上的某個(gè)正常行為模式(正常序列)完全匹配。在上述步驟3中,公式Sim(Seqn*,L):=2l(i)/2l(W)]]>表示將長(zhǎng)度為l(i)的“行為模式序列”Seqn*與序列庫(kù)集合L的相似度Sim(Seqn*,L)賦為2l(i)/2l(W)。這里,“行為模式序列”對(duì)應(yīng)的相似度是關(guān)于其長(zhǎng)度的增函數(shù),該函數(shù)的最大值為1。例如,在W=3,C={l(1),l(2),l(3)}={1,2,3}的情況下,長(zhǎng)度為1、2、3的三種“行為模式序列”對(duì)應(yīng)的相似度分別為2/8、4/8、8/8。
按照以上方法進(jìn)行“行為模式序列”挖掘和相似度計(jì)算,可得到按時(shí)間順序排列的“行為模式序列”流P=(Seq1*,Seq2*,......,SeqM*),]]>以及相應(yīng)的相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L)),]]>其中M是從R中挖掘到的“行為模式序列”的個(gè)數(shù),int(r/l(W))≤M≤r-l(W)+1。(int表示取整運(yùn)算。)需要指出,從R中挖掘到的“行為模式序列”的長(zhǎng)度是不固定的。這些“行為模式序列”的長(zhǎng)度可以為1、l(1)、l(2)、......、l(W-1)或l(W)。當(dāng)從R中挖掘到的“行為模式序列”的長(zhǎng)度全部為l(W)時(shí)(這種情況下合法用戶在被監(jiān)測(cè)時(shí)間內(nèi)的行為與其歷史上正常行為輪廓的吻合程度最好),M取最小值int(r/l(W));當(dāng)從R中挖掘到的“行為模式序列”的長(zhǎng)度全部為1時(shí)(這種情況下該用戶在被監(jiān)測(cè)時(shí)間內(nèi)的行為同其歷史上正常行為輪廓的吻合程度最差),M取最大值r-l(W)+1。
(3)對(duì)相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L))]]>進(jìn)行加窗并取均值,將得到的相似度均值,即相似度判決值與判決門(mén)限進(jìn)行比較,進(jìn)而對(duì)該被監(jiān)測(cè)合法用戶的行為作出判決。此時(shí),有兩種可選擇的判決方法。
其中第一種判決方法是用固定的窗長(zhǎng)度對(duì)相似度流進(jìn)行加窗并取均值,得到的相似度均值,即相似度判決值,再利用相似度判決值和判決門(mén)限對(duì)該用戶的行為進(jìn)行判決;包括下列操作步驟
(101)首先讀取控制模塊中設(shè)置的參數(shù)窗長(zhǎng)度w和判決門(mén)限λ,當(dāng)從審計(jì)數(shù)據(jù)R中挖掘到第n個(gè)行為模式序列Seqn*,并計(jì)算出Sim(Seqn*,L)后,其中n≥w;以Sim(Seqn*,L)為終點(diǎn)對(duì)相似度流Z進(jìn)行加窗,計(jì)算以Sim(Seqn*,L)為終點(diǎn)的w個(gè)相似度,即Sim(Seqn-w+1*,L)、Sim(Seqn-w+2*,L)、......、Sim(Seqn*,L)的均值,得到Seqn*對(duì)應(yīng)的相似度判決值D(n)D(n)=1wΣm=n-w+1nSim(Seqm*,L);]]>(102)利用判決值D(n)和判決門(mén)限λ對(duì)該用戶的“當(dāng)前行為”進(jìn)行判決;如果D(n)>λ,將該用戶的“當(dāng)前行為”判為正常行為;如果D(n)≤λ,將該用戶的“當(dāng)前行為”判為異常行為;其中該用戶的“當(dāng)前行為”是相對(duì)于Seqn*而言的,是指該用戶執(zhí)行的以Seqn*為終點(diǎn)的w個(gè)“行為模式序列”,即Seqn-w+1*、Seqn-w+2*、......、Seqn*;D(n)中,n的初值為w,即n≥w,n的增長(zhǎng)步長(zhǎng)為1,在挖掘到第w個(gè)“行為模式序列”之后,每再挖掘到一個(gè)“行為模式序列”,就可以對(duì)該用戶的行為作出一次判決;當(dāng)n<w時(shí),不計(jì)算D(n),也不作判決。
其中第二種判決方法是采用可變的窗長(zhǎng)度對(duì)相似度流進(jìn)行加窗并取均值,得到的相似度均值,即相似度判決值,再利用相似度判決值和判決門(mén)限對(duì)該被監(jiān)測(cè)用戶的行為進(jìn)行判決;包括下列操作步驟(201)讀取控制模塊中設(shè)置的參數(shù),包括V個(gè)窗長(zhǎng)度w(1)、w(2)、......、w(V),V個(gè)判決上限u(1)、u(2)、......、u(V)和V個(gè)判決下限d(1)、d(2)、......、d(V),其中,w(1)<w(2)<......<w(V),u(k)和d(k)分別是第k個(gè)窗長(zhǎng)度c(k)所對(duì)應(yīng)的判決上限和判決下限,k是區(qū)間為[1,V]的自然數(shù),且u(1)>u(2)>......>u(V-1)>u(V)=d(V)>d(V-1)>......>d(2)>d(1);(202)當(dāng)從R中挖掘到第n個(gè)“行為模式序列”Seqn*,并計(jì)算出Sim(Seqn*,L)后,繼續(xù)計(jì)算Seqn*對(duì)應(yīng)的相似度判決值D(n),并對(duì)該用戶的“當(dāng)前行為”作出判決;具體包括下列操作步驟步驟1、設(shè)置變量k=1;步驟2、將n同w(k)進(jìn)行比較如果n≥w(k),執(zhí)行步驟3;如果n<w(k),則不計(jì)算D(n),也不對(duì)該用戶的“當(dāng)前行為”進(jìn)行判決,結(jié)束該操作;
步驟3計(jì)算相似度均值N(n,k)=1w(k)Σm=n-w(k)+1nSim(Seqm*,L),]]>該數(shù)值是對(duì)相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L))]]>中以Sim(Seqn*,L)為終點(diǎn)的w(k)個(gè)相似度Sim(Seqn-w(k)+1*,L)、Sim(Seqn-w(k)+2*,L)、......、Sim(Seqn*,L)進(jìn)行加窗,并取均值后得到的相似度均值。這里,w(k)為窗長(zhǎng)度,且w(k)≤n≤M。
步驟4、判斷是否滿足判決條件N(n,k)>u(k),如果滿足該條件,則Seqn*對(duì)應(yīng)的相似度判決值定義為D(n)=N(n,k),并將該用戶的“當(dāng)前行為”判為正常行為(這里,該用戶的“當(dāng)前行為”是相對(duì)于Seqn*而言的,它是指該用戶執(zhí)行的以Seqn*為終點(diǎn)的w(k)個(gè)“行為模式序列”,即Seqn-w(k)+1*、Seqn-w(k)+2*、......、Seqn*)。至此,結(jié)束對(duì)用戶“當(dāng)前行為”的判決操作,不再執(zhí)行后續(xù)步驟;如果不滿足判決條件N(n,k)>u(k),繼續(xù)執(zhí)行步驟5。
步驟5、判斷是否滿足判決條件N(n,k)≤d(k),如果滿足該條件,則D(n)=N(n,k),并將該用戶的“當(dāng)前行為”判為異常行為,結(jié)束對(duì)用戶“當(dāng)前行為”的判決,不再執(zhí)行后續(xù)步驟;如果不滿足判決條件N(n,k)≤d(k),繼續(xù)執(zhí)行步驟6。
步驟6、k=k+1,即k的值加1,并返回執(zhí)行步驟2,循環(huán)執(zhí)行后續(xù)操作。
上述第二種判決方法中,計(jì)算相似度判決值和對(duì)被監(jiān)測(cè)用戶當(dāng)前行為進(jìn)行判決的方法可以理解為當(dāng)計(jì)算出相似度流中的第n個(gè)相似度Sim(Seqn*,L)之后,首先將窗長(zhǎng)度設(shè)為最小值w(1),在n大于或等于窗長(zhǎng)度的情況下,以Sim(Seqn*,L)為終點(diǎn)對(duì)相似度流進(jìn)行加窗并取均值(窗內(nèi)相似度的個(gè)數(shù)等于窗長(zhǎng)度),然后將該相似度均值與該窗長(zhǎng)度對(duì)應(yīng)的判決上限和下限進(jìn)行比較,如果滿足判決條件(即該相似度均值大于窗長(zhǎng)度對(duì)應(yīng)的判決上限或小于等于窗長(zhǎng)度對(duì)應(yīng)的判決下限),則將該相似度均值定義為相似度判決值D(n),同時(shí)對(duì)被監(jiān)測(cè)用戶的當(dāng)前行為作出判決,判決方法為若該相似度均值(相似度判決值)大于相應(yīng)的判決上限,將被監(jiān)測(cè)用戶的“當(dāng)前行為”判為正常行為,若該相似度均值小于等于相應(yīng)的判決下限,則將其判為異常行為;如果不滿足判決條件(即該相似度均值大于窗長(zhǎng)度對(duì)應(yīng)的判決下限并且小于等于窗長(zhǎng)度對(duì)應(yīng)的判決上限),則按照w(2)、w(3)......w(V)的先后次序增加窗長(zhǎng)度,在n大于窗長(zhǎng)度的情況下,重復(fù)以上的相似度加窗、取均值和比較過(guò)程,直到滿足判決條件為止,從而得到D(n);同時(shí)根據(jù)判決條件對(duì)被監(jiān)測(cè)用戶的“當(dāng)前行為”作出判決(當(dāng)遇到n小于窗長(zhǎng)度的情況時(shí),則停止操作,不再計(jì)算D(n),也不對(duì)被監(jiān)測(cè)用戶的“當(dāng)前行為”進(jìn)行判決)。
按照上述第二種判決方法,當(dāng)n<w(1)時(shí),不計(jì)算相似度判決值D(n),也不對(duì)該用戶的“當(dāng)前行為”進(jìn)行判決。當(dāng)w(1)≤n<w(V)時(shí),不一定能夠得到D(n)并對(duì)該用戶的“當(dāng)前行為”作出判決。當(dāng)w(V)≤n≤M時(shí),總可以得到D(n),并能夠?qū)υ撚脩舻摹爱?dāng)前行為”作出判決(注u(V)=d(V));此時(shí),D(n)中n的增長(zhǎng)步長(zhǎng)為1,也就是說(shuō),每挖掘到一個(gè)“行為模式序列”就可以對(duì)該用戶的行為作出一次判決。而且,在實(shí)際應(yīng)用中,從R中挖掘到的“行為模式序列”的個(gè)數(shù)M通常遠(yuǎn)大于最長(zhǎng)的窗長(zhǎng)度w(V);所以,相對(duì)于w(V)≤n≤M來(lái)說(shuō),n<w(1)和w(1)≤n<w(V)都屬于少數(shù)情況。
需要指出,檢測(cè)模塊在進(jìn)行檢測(cè)時(shí),被監(jiān)測(cè)用戶所執(zhí)行的三個(gè)步驟shell命令行的獲取和預(yù)處理,“行為模式序列”的挖掘和相似度的計(jì)算,對(duì)相似度流的加窗處理,以及對(duì)用戶行為的判決都是同步進(jìn)行的。在檢測(cè)過(guò)程中,當(dāng)被監(jiān)測(cè)用戶執(zhí)行完若干個(gè)“行為模式序列”(其個(gè)數(shù)同窗長(zhǎng)度有關(guān))之后,每再執(zhí)行完一個(gè)“行為模式序列”,本發(fā)明檢測(cè)系統(tǒng)就可以對(duì)該“行為模式序列”進(jìn)行挖掘,并計(jì)算該“行為模式序列”對(duì)應(yīng)的相似度,然后以該相似度為終點(diǎn)對(duì)相似度流進(jìn)行加窗處理(得到該“行為模式序列”對(duì)應(yīng)的相似度判決值),進(jìn)而對(duì)被監(jiān)測(cè)用戶的“當(dāng)前行為”作出一次判決。
在以上檢測(cè)步驟(3)中,兩種判決方法的區(qū)別在于窗長(zhǎng)度和判決方法不同。在第一種判決方法中,窗長(zhǎng)度w是一個(gè)重要參數(shù),它決定了從被監(jiān)測(cè)用戶行為發(fā)生到檢測(cè)系統(tǒng)第一次對(duì)其行為做出判斷的時(shí)間(即檢測(cè)時(shí)間),該方案的最短檢測(cè)時(shí)間等于w個(gè)shell命令符號(hào)的最短持續(xù)時(shí)間(不考慮檢測(cè)中序列比較和判決值計(jì)算的時(shí)間)。所以,窗長(zhǎng)度w越小,檢測(cè)的實(shí)時(shí)性就越強(qiáng)。但在系統(tǒng)的實(shí)際應(yīng)用中,隨著窗長(zhǎng)度w的減小,檢測(cè)準(zhǔn)確度呈現(xiàn)降低的趨勢(shì)。第二種判決方法則兼顧了檢測(cè)時(shí)間和檢測(cè)準(zhǔn)確度;該方案采用可變窗長(zhǎng)度,與第一種判決方法相比較,能夠在保證同等檢測(cè)準(zhǔn)確度的前提下提高檢測(cè)的實(shí)時(shí)性,但該方案的復(fù)雜度相對(duì)要高一些。
需要說(shuō)明的是上述檢測(cè)方法只對(duì)計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中的某一個(gè)(而不是一組)合法用戶的行為進(jìn)行異常檢測(cè)。實(shí)際上,本發(fā)明檢測(cè)系統(tǒng)和方法還可以對(duì)網(wǎng)絡(luò)系統(tǒng)中一組(多個(gè))合法用戶的行為進(jìn)行異常檢測(cè)。這種情況下可以采用兩種做法(1)如果這些合法用戶的權(quán)限和行為特點(diǎn)相差比較大,可利用每個(gè)合法用戶的正常行為訓(xùn)練數(shù)據(jù)分別建立W個(gè)序列庫(kù),再分別利用各自的W個(gè)序列庫(kù)對(duì)每個(gè)用戶的行為進(jìn)行異常檢測(cè);(2)如果這些合法用戶具有同等的權(quán)限,而且行為特點(diǎn)比較接近,則可將這些用戶的訓(xùn)練數(shù)據(jù)組合在一起(即將這些用戶的shell命令流連接在一起)構(gòu)成總的訓(xùn)練數(shù)據(jù),利用該訓(xùn)練數(shù)據(jù)建立W個(gè)序列庫(kù),再利用該W個(gè)序列庫(kù)對(duì)每個(gè)用戶的行為進(jìn)行異常檢測(cè)。
下面介紹一個(gè)試驗(yàn)應(yīng)用實(shí)例來(lái)具體說(shuō)明本發(fā)明的實(shí)施方案。在該試驗(yàn)應(yīng)用實(shí)例中,本發(fā)明的用戶行為異常檢測(cè)系統(tǒng)配置在某公司局域網(wǎng)中的一個(gè)服務(wù)器上,用于監(jiān)測(cè)該局域網(wǎng)中某個(gè)關(guān)鍵程序員的行為,以防止該程序員進(jìn)行非授權(quán)操作,并防止外部入侵者冒用該程序員的帳號(hào)進(jìn)行惡意操作。該試驗(yàn)應(yīng)用實(shí)例包括系統(tǒng)的工作狀態(tài)為學(xué)習(xí)狀態(tài)(訓(xùn)練狀態(tài))和檢測(cè)狀態(tài)的兩個(gè)情況。
其中學(xué)習(xí)狀態(tài)的實(shí)施例操作步驟如下(1)啟動(dòng)系統(tǒng)。
(2)該局域網(wǎng)的安全管理員對(duì)系統(tǒng)的工作狀態(tài)和參數(shù)進(jìn)行配置將系統(tǒng)的工作狀態(tài)設(shè)為學(xué)習(xí)狀態(tài),shell命令序列庫(kù)的個(gè)數(shù)W設(shè)為5,序列長(zhǎng)度l(1)、l(2)、l(3)、l(4)、l(5)分別設(shè)為1、2、3、4、5,頻率門(mén)限η1、η2、......、ηW均設(shè)為0.0002。設(shè)置完畢后,安全管理員輸入“開(kāi)始工作”的指令,系統(tǒng)接受指令后即開(kāi)始自動(dòng)運(yùn)行。
(3)控制模塊自動(dòng)查看對(duì)系統(tǒng)的設(shè)置情況,發(fā)現(xiàn)系統(tǒng)的工作狀態(tài)被設(shè)為學(xué)習(xí)狀態(tài),于是將系統(tǒng)切換至學(xué)習(xí)狀態(tài)。
(4)控制模塊驅(qū)動(dòng)數(shù)據(jù)獲取和預(yù)處理模塊將原始訓(xùn)練數(shù)據(jù)從指定的位置載入。這些數(shù)據(jù)是該程序員8個(gè)月時(shí)間內(nèi)在該服務(wù)器上正常操作時(shí)所執(zhí)行的shell命令行。
(5)數(shù)據(jù)獲取和預(yù)處理模塊把原始訓(xùn)練數(shù)據(jù)(shell命令行)處理成shell命令流的形式,并將其輸出至學(xué)習(xí)模塊。對(duì)原始訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理后得到的shell命令流如下R=(**SOF**,cd,<1>,cd,<1>,......,vi,<1>,logout,**EOF**),該shell命令流中共包含9935個(gè)shell命令符號(hào)。
(6)學(xué)習(xí)模塊利用以上的shell命令流進(jìn)行學(xué)習(xí),建立shell命令序列庫(kù),并將序列庫(kù)存入序列存儲(chǔ)模塊。學(xué)習(xí)模塊所建立的序列長(zhǎng)度為1、2、3、4、5的序列庫(kù)L(1)、L(2)、L(3)、L(4)、L(5)分別由160、508、860、1015、1526個(gè)shell命令序列組成。
(7)學(xué)習(xí)模塊向控制模塊發(fā)送“學(xué)習(xí)結(jié)束”的消息,控制模塊接受到消息后使系統(tǒng)返回到等待指令的狀態(tài),即系統(tǒng)啟動(dòng)后的狀態(tài)。
(8)系統(tǒng)關(guān)閉。
在以上實(shí)施例中,系統(tǒng)進(jìn)行學(xué)習(xí)的核心是根據(jù)訓(xùn)練數(shù)據(jù)建立shell命令序列庫(kù),供檢測(cè)模塊在檢測(cè)時(shí)使用(檢索比較)。步驟(2)中所設(shè)置的頻率門(mén)限η1、η2、......、ηW是很重要的參數(shù),它們決定了5個(gè)序列庫(kù)L(1)、L(2)、L(3)、L(4)、L(5)中shell序列的個(gè)數(shù)。頻率門(mén)限越小,序列庫(kù)中的序列個(gè)數(shù)就越多,系統(tǒng)所要存儲(chǔ)的數(shù)據(jù)量就會(huì)越大,因此頻率門(mén)限不能太?。坏?,如果頻率門(mén)限過(guò)大,在建立序列庫(kù)時(shí)會(huì)漏掉一些能夠反映合法用戶操作規(guī)律的shell命令序列(行為模式),使得所建立的序列庫(kù)不能很好地代表用戶的正常行為輪廓,從而影響系統(tǒng)的檢測(cè)準(zhǔn)確率;所以,合理設(shè)置頻率門(mén)限是學(xué)習(xí)中的關(guān)鍵問(wèn)題。下面的表1給出了頻率門(mén)限設(shè)為不同數(shù)值時(shí),5個(gè)序列庫(kù)中的序列個(gè)數(shù)。

其中檢測(cè)狀態(tài)的實(shí)施例操作步驟如下(1)啟動(dòng)系統(tǒng)。
(2)該局域網(wǎng)的安全管理員對(duì)系統(tǒng)的工作狀態(tài)和參數(shù)進(jìn)行配置將系統(tǒng)的工作狀態(tài)設(shè)為檢測(cè)狀態(tài),將判決方法設(shè)為第二種判決方法,將該判決方法的窗長(zhǎng)度個(gè)數(shù)V設(shè)為3,將3個(gè)窗長(zhǎng)度分別設(shè)為w(1)=30,w(2)=60,w(3)=90,將3個(gè)判決上限分別設(shè)為u(1)=0.8,u(2)=0.7,u(3)=0.5,將3個(gè)判決下限分別設(shè)為d(1)=0.3,d(2)=0.4,d(3)=0.5。設(shè)置完畢后,安全管理員輸入“開(kāi)始工作”的指令,系統(tǒng)接受指令后即開(kāi)始自動(dòng)運(yùn)行。
(3)控制模塊自動(dòng)查看對(duì)系統(tǒng)的設(shè)置情況,發(fā)現(xiàn)系統(tǒng)的工作狀態(tài)被設(shè)為檢測(cè)狀態(tài),于是將系統(tǒng)切換至檢測(cè)狀態(tài)。
(4)控制模塊驅(qū)動(dòng)數(shù)據(jù)獲取和預(yù)處理模塊將原始審計(jì)數(shù)據(jù)從指定的位置載入;同時(shí),數(shù)據(jù)獲取和預(yù)處理模塊對(duì)原始審計(jì)數(shù)據(jù)(shell命令行)進(jìn)行預(yù)處理,并將預(yù)處理后的審計(jì)數(shù)據(jù)(shell命令流)輸出至檢測(cè)模塊。
(5)檢測(cè)模塊對(duì)數(shù)據(jù)獲取和預(yù)處理模塊所提供的審計(jì)數(shù)據(jù)機(jī)進(jìn)行分析,生成檢測(cè)結(jié)果。
(6)檢測(cè)結(jié)果輸出模塊顯示檢測(cè)結(jié)果(判決值曲線),并對(duì)異常行為進(jìn)行報(bào)警。圖7即為輸出模塊輸出的判決值曲線。圖中,上方的實(shí)線是系統(tǒng)在監(jiān)視該程序員的正常行為時(shí)檢測(cè)結(jié)果輸出模塊輸出的判決值曲線。如果將安全管理員執(zhí)行的shell命令行作為原始審計(jì)數(shù)據(jù)載入,檢測(cè)結(jié)果輸出模塊輸出的判決值曲線是圖中下方的虛線;該虛線可視為系統(tǒng)在監(jiān)視異常行為時(shí)輸出的判決值曲線,因?yàn)榘踩芾韱T在服務(wù)器中所進(jìn)行的操作對(duì)該程序員而言大都屬于非授權(quán)操作(異常行為),或者說(shuō),該程序員未被授權(quán)進(jìn)行安全管理員權(quán)限內(nèi)的很多操作。若該程序員越權(quán)進(jìn)行了安全管理員權(quán)限內(nèi)的操作,系統(tǒng)輸出的判決值曲線中各點(diǎn)的判決值將會(huì)比較小(如圖中虛線所示),當(dāng)判決值小于相應(yīng)的判決門(mén)限時(shí),系統(tǒng)就能夠檢測(cè)出這些非授權(quán)操作(異常行為)并進(jìn)行報(bào)警。
權(quán)利要求
1.一種基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)系統(tǒng),該系統(tǒng)配置在需要監(jiān)控的服務(wù)器上,采用Unix平臺(tái)上的用戶接口shell命令作為審計(jì)數(shù)據(jù),在用戶界面層分析用戶行為來(lái)檢測(cè)服務(wù)器中是否發(fā)生入侵;其特征在于所述系統(tǒng)包括有控制模塊,負(fù)責(zé)設(shè)置系統(tǒng)的工作狀態(tài)和各種檢測(cè)參數(shù),并對(duì)數(shù)據(jù)獲取和預(yù)處理模塊、學(xué)習(xí)模塊、檢測(cè)模塊和整個(gè)系統(tǒng)的運(yùn)行進(jìn)行控制;數(shù)據(jù)獲取和預(yù)處理模塊,負(fù)責(zé)從服務(wù)器中獲取原始的訓(xùn)練數(shù)據(jù)或?qū)徲?jì)數(shù)據(jù),即用戶執(zhí)行的shell命令行數(shù)據(jù),并將這些原始訓(xùn)練數(shù)據(jù)或?qū)徲?jì)數(shù)據(jù)處理成shell命令流的形式后,分別送入學(xué)習(xí)模塊或檢測(cè)模塊,用于學(xué)習(xí)或檢測(cè);學(xué)習(xí)模塊,采用機(jī)器學(xué)習(xí)技術(shù),從訓(xùn)練數(shù)據(jù)中獲取網(wǎng)絡(luò)系統(tǒng)中某個(gè)合法用戶正常行為的知識(shí),并在其基礎(chǔ)上建立用于表示該合法用戶的正常行為輪廓的shell命令序列庫(kù);序列存儲(chǔ)模塊,用于存儲(chǔ)學(xué)習(xí)模塊所建立的shell命令序列庫(kù),并在檢測(cè)時(shí),供檢測(cè)模塊進(jìn)行檢索比較;檢測(cè)模塊,負(fù)責(zé)對(duì)所述合法用戶在被監(jiān)測(cè)時(shí)間內(nèi)執(zhí)行的shell命令審計(jì)數(shù)據(jù)進(jìn)行分析處理,完成包括但不限于“行為模式序列”的挖掘、相似度計(jì)算或賦值、相似度的加窗濾噪、判決值計(jì)算和用戶行為判決的工作;檢測(cè)結(jié)果輸出模塊,負(fù)責(zé)顯示檢測(cè)模塊生成的判決值曲線,并在檢測(cè)模塊的控制下對(duì)異常行為進(jìn)行報(bào)警。
2.一種權(quán)利要求1的用戶行為異常檢測(cè)系統(tǒng)的檢測(cè)方法,其特征在于所述系統(tǒng)的檢測(cè)方法包括下列操作步驟(1)系統(tǒng)啟動(dòng);(2)系統(tǒng)等待指令的輸入時(shí),由控制模塊設(shè)置系統(tǒng)的工作狀態(tài)和工作參數(shù),以便在此后輸入“開(kāi)始工作”指令后,由控制模塊自動(dòng)查看系統(tǒng)的設(shè)置情況,分別進(jìn)入兩種不同工作狀態(tài)如果系統(tǒng)被設(shè)置為學(xué)習(xí)狀態(tài),執(zhí)行后續(xù)操作;如果系統(tǒng)被設(shè)置為檢測(cè)狀態(tài),則跳轉(zhuǎn)執(zhí)行步驟(6);(3)在控制模塊驅(qū)動(dòng)下,數(shù)據(jù)獲取和預(yù)處理模塊從預(yù)先設(shè)定的數(shù)據(jù)接口載入原始訓(xùn)練數(shù)據(jù),并對(duì)該原始訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理,使其成為shell命令流的形式,再將其輸出至學(xué)習(xí)模塊;(4)學(xué)習(xí)模決利用預(yù)處理后的shell命令流訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí),建立shell命令序列庫(kù),并將該序列庫(kù)存入序列存儲(chǔ)模塊后,向控制模塊發(fā)送“學(xué)習(xí)結(jié)束”的消息;(5)控制模塊接收到學(xué)習(xí)模塊的“學(xué)習(xí)結(jié)束”消息后,使系統(tǒng)返回步驟(2),等待輸入新的設(shè)置指令;或者直接將系統(tǒng)的工作狀態(tài)轉(zhuǎn)為檢測(cè)狀態(tài),執(zhí)行后續(xù)操作;(6)在控制模塊驅(qū)動(dòng)下,數(shù)據(jù)獲取和預(yù)處理模塊從預(yù)先設(shè)定的數(shù)據(jù)接口實(shí)時(shí)載入shell命令行的原始審計(jì)數(shù)據(jù),同時(shí)對(duì)該原始審計(jì)數(shù)據(jù)進(jìn)行實(shí)時(shí)預(yù)處理,并將預(yù)處理后的shell命令流審計(jì)數(shù)據(jù)實(shí)時(shí)輸出至檢測(cè)模塊;(7)檢測(cè)模塊對(duì)該審計(jì)數(shù)據(jù)進(jìn)行實(shí)時(shí)分析,生成檢測(cè)結(jié)果;(8)檢測(cè)結(jié)果輸出模塊顯示檢測(cè)結(jié)果判決值曲線,并對(duì)異常行為進(jìn)行實(shí)時(shí)報(bào)警。
3.根據(jù)權(quán)利要求2所述的用戶行為異常檢測(cè)系統(tǒng)的檢測(cè)方法,其特征在于所述步驟(2)中,如果系統(tǒng)的工作狀態(tài)被設(shè)置為學(xué)習(xí)狀態(tài),需要設(shè)置的工作參數(shù)包括用于表示該合法用戶的正常行為輪廓而需要建立的shell命令序列庫(kù)的個(gè)數(shù)W,以及W個(gè)序列長(zhǎng)度l(1)、l(2)、......、l(W);其中l(wèi)(i)是第i個(gè)shell命令序列庫(kù)中序列的長(zhǎng)度,且l(1)<l(2)<......<l(W);如果系統(tǒng)的工作狀態(tài)被設(shè)置為檢測(cè)狀態(tài),需要設(shè)置的工作參數(shù)有兩種,分別為第一種判決方法,窗長(zhǎng)度w,判決門(mén)限λ;或第二種判決方法,窗長(zhǎng)度的個(gè)數(shù)V,V個(gè)窗長(zhǎng)度w(1)、w(2)、......、w(V),V個(gè)判決上限u(1)、u(2)、......、u(V)和V個(gè)判決下限d(1)、d(2)、......、d(V);其中,w(1)<w(2)<......<w(V),u(k)和d(k)分別是第k個(gè)窗長(zhǎng)度c(k)所對(duì)應(yīng)的判決上限和判決下限,k是區(qū)間為[1,V]的自然數(shù),且u(1)>u(2)>......>u(V-1)>u(V)=d(V)>d(V-1)>......>d(2)>d(1)。
4.根據(jù)權(quán)利要求2所述的用戶行為異常檢測(cè)系統(tǒng)的檢測(cè)方法,其特征在于所述步驟(3)或步驟(6)中數(shù)據(jù)獲取和預(yù)處理模塊對(duì)原始訓(xùn)練數(shù)據(jù)或原始審計(jì)數(shù)據(jù)進(jìn)行的預(yù)處理包括下列步驟31、提取出shell命令行中命令的名稱names、標(biāo)記flags和元字符metacharacters;32、將包括但不限于文件名、服務(wù)器名、目錄、網(wǎng)址的信息替換為統(tǒng)一格式的標(biāo)識(shí)符號(hào)<n>,其中n表示文件名、服務(wù)器名、目錄或網(wǎng)址的個(gè)數(shù);33、在每個(gè)shell會(huì)話開(kāi)始和結(jié)束的時(shí)間點(diǎn)上分別插入表示起始和結(jié)束的標(biāo)識(shí)符號(hào)SOF和EOF;34、將包括命令的名稱、標(biāo)記和元字符的符號(hào)以及文件名、服務(wù)器名、目錄、網(wǎng)址的信息標(biāo)識(shí)符號(hào)的shell命令符號(hào)按照在shell會(huì)話中的出現(xiàn)次序進(jìn)行排列;并按照時(shí)間順序連接不同shell會(huì)話的命令符號(hào),且在上述數(shù)據(jù)中不添加時(shí)間戳,經(jīng)過(guò)該預(yù)處理后,原始輸入數(shù)據(jù)在形式上成為shell命令流一串按時(shí)間順序排列的shell命令符號(hào),且一個(gè)shell命令流可包含多個(gè)shell會(huì)話的內(nèi)容。
5.根據(jù)權(quán)利要求2所述的用戶行為異常檢測(cè)系統(tǒng)的檢測(cè)方法,其特征在于所述步驟(4)中學(xué)習(xí)模塊利用預(yù)處理后的shell命令流訓(xùn)練數(shù)據(jù)進(jìn)行的學(xué)習(xí)操作包括下列步驟41、從數(shù)據(jù)獲取和預(yù)處理模塊得到經(jīng)過(guò)預(yù)處理的、表示該合法用戶的正常行為的訓(xùn)練數(shù)據(jù)R=(s1,s2,......,sr),即一個(gè)長(zhǎng)度為r的shell命令流,其中sj表示按時(shí)間順序排列的第j個(gè)shell命令符號(hào);42、從控制模塊中讀取學(xué)習(xí)參數(shù)用于表示該合法用戶的正常行為輪廓而需要建立的shell命令序列庫(kù)的個(gè)數(shù)W,以及W個(gè)序列長(zhǎng)度l(1)、l(2)、......、l(W);其中l(wèi)(i)是第i個(gè)shell命令序列庫(kù)中序列的長(zhǎng)度,且l(1)<l(2)<......<l(W);43、由shell命令流R生成W個(gè)序列長(zhǎng)度分別為l(1)、l(2)、......、l(W)的shell命令序列流S1、S2、......、SW,其中Si是序列長(zhǎng)度為l(i)的shell命令序列流Si=(Seq1i,Seq2i,......,Seqr-l(i)+1i),]]>式中Seqji=(sj,sj+1,......,sj+l(i)-1),]]>它是Si中按時(shí)間順序排列的第j個(gè)shell命令序列,i是區(qū)間[1,W]中的自然數(shù);44、計(jì)算shell命令序列流Sj中的每個(gè)shell命令序列在Si中的出現(xiàn)頻率,其中i是區(qū)間[1,W]中的自然數(shù);即計(jì)算序列流Sj中的每個(gè)shell序列在Si中的出現(xiàn)次數(shù)除以該序列流中各個(gè)序列出現(xiàn)次數(shù)之和;45、讀取控制模塊中的頻率門(mén)限參數(shù)用于建立W個(gè)shell命令序列庫(kù)的頻率門(mén)限η1、η2、......、ηW;其中ηi是建立序列長(zhǎng)度為l(i)的shell命令序列庫(kù)時(shí)所使用的頻率門(mén)限,i是區(qū)間[1,W]中的自然數(shù);46、按照序列的出現(xiàn)頻率,從W個(gè)shell命令序列流S1、S2、......、SW中分別提取若干個(gè)shell命令序列用作樣例,建立W個(gè)序列庫(kù);其具體方法步驟是設(shè)W個(gè)用于表示該用戶正常行為輪廓的序列庫(kù)的集合L={L(1),L(2),......,L(W)},其中L(i)表示由長(zhǎng)度為l(i)的序列組成的序列庫(kù);按照自然數(shù)i從1到W的次序,分別將shell命令序列流Si中出現(xiàn)頻率大于或等于頻率門(mén)限ηl的shell命令序列提取出來(lái)作為樣例,即視為該合法用戶的正常行為模式的shell命令序列,并將這些序列集合在一起構(gòu)成序列庫(kù)L(i)。
6.根據(jù)權(quán)利要求2所述的用戶行為異常檢測(cè)系統(tǒng)的檢測(cè)方法,其特征在于所述步驟(7)中檢測(cè)模塊對(duì)審計(jì)數(shù)據(jù)進(jìn)行實(shí)時(shí)分析并生成檢測(cè)結(jié)果的實(shí)時(shí)檢測(cè)操作包括下列步驟71、從數(shù)據(jù)獲取和預(yù)處理模塊實(shí)時(shí)地獲取審計(jì)數(shù)據(jù);即在檢測(cè)時(shí),數(shù)據(jù)獲取和預(yù)處理模塊要從shell歷史文件中實(shí)時(shí)地獲取該被監(jiān)測(cè)合法用戶在被監(jiān)測(cè)時(shí)間內(nèi)執(zhí)行的shell命令行,并對(duì)這些命令行數(shù)據(jù)進(jìn)行預(yù)處理后,變換為一個(gè)shell命令流R={s1,s2,......,sr},其中sj表示按時(shí)間順序排列的第j個(gè)shell命令符號(hào),r為該命令流的長(zhǎng)度;數(shù)據(jù)獲取和預(yù)處理模塊按照時(shí)間順序?qū)崟r(shí)地將R={s1,s2,......,sr}中的每個(gè)shell命令符號(hào)依次輸出至檢測(cè)模塊;72、檢測(cè)模塊利用序列匹配方法來(lái)挖掘shell命令流R中的“行為模式序列”,并按照每個(gè)“行為模式序列”的長(zhǎng)度計(jì)算它與序列庫(kù)集合L={L(1),L(2),......,L(W)}的相似度,得到按時(shí)間順序排列的“行為模式序列”流P=(Seq1*,Seq2*,......,SeqM*),]]>以及相應(yīng)的相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L)),]]>其中Seqn*表示從R中挖掘到的第n個(gè)“行為模式序列”,Sim(Seqn*,L)表示Seqn*與序列庫(kù)集合的相似度,M是從R中挖掘到的“行為模式序列”的個(gè)數(shù),且int(r/l(W))≤M≤r-l(W)+1;73、對(duì)相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L))]]>進(jìn)行加窗并取均值,將得到的相似度均值,即相似度判決值與判決門(mén)限進(jìn)行比較,進(jìn)而對(duì)該被監(jiān)測(cè)合法用戶的行為作出判決;在實(shí)時(shí)檢測(cè)時(shí),所述三個(gè)步驟71、72、73是同步執(zhí)行的。
7.根據(jù)權(quán)利要求6所述的用戶行為異常檢測(cè)系統(tǒng)的檢測(cè)方法,其特征在于所述步驟72中檢測(cè)模塊利用序列匹配方法挖掘所述用戶shell命令流審計(jì)數(shù)據(jù)R中行為模式序列及每個(gè)行為模式序列與序列庫(kù)集合的相似度的計(jì)算進(jìn)一步包括下列步驟721、設(shè)置三個(gè)變量j=1,i=W,n=1;722、如果j≤r-l(W)+1,將Seqji與序列庫(kù)L(i)進(jìn)行比較,再執(zhí)行步驟723;如果j>r-l(W)+1,停止操作,即結(jié)束行為模式序列的挖掘和相似度計(jì)算;723、如果S‾eqji∈L(i),]]>即Seqji與序列庫(kù)L(i)中的某個(gè)序列相同,則第n個(gè)行為模式序列Seqn*:=S‾eqji,Seqn*]]>與序列庫(kù)集合L的相似度為Sim(Seqn*,L):=2l(i)/2l(W),]]>j=j(luò)+l(i),i=W,n=n+1,并返回執(zhí)行步驟722;如果S‾eqji∉L(i),]]>即Seqji與序列庫(kù)L(i)中的任何序列都不相同,則i=i-1,然后執(zhí)行步驟724;724、如果i≠0,返回執(zhí)行步驟722;如果i=0,則Seqn*:=(sj),Sim(Seqn*,L):=0,]]>j=j(luò)+1,i=W,n=n+1,并返回執(zhí)行步驟722。
8.根據(jù)權(quán)利要求6所述的用戶行為異常檢測(cè)系統(tǒng)的檢測(cè)方法,其特征在于所述步驟73中檢測(cè)模塊在對(duì)相似度流進(jìn)行加窗處理和對(duì)該用戶的行為進(jìn)行判決時(shí),有兩種判決方法可供用戶選擇;其中第一種判決方法是用固定的窗長(zhǎng)度對(duì)相似度流進(jìn)行加窗并取均值,得到的相似度均值,即相似度判決值,再利用相似度判決值和判決門(mén)限對(duì)該用戶的行為進(jìn)行判決;包括下列操作步驟7301、讀取控制模塊中設(shè)置的參數(shù)窗長(zhǎng)度w和判決門(mén)限λ,當(dāng)從審計(jì)數(shù)據(jù)R中挖掘到第n個(gè)行為模式序列Seqn*,并計(jì)算出Sim(Seqn*,L)后,其中n≥w;以Sim(Seqn*,L)為終點(diǎn)對(duì)相似度流Z進(jìn)行加窗,計(jì)算以Sim(Seqn*,L)為終點(diǎn)的w個(gè)相似度,即Sim(Seqn-w+1*,L)、Sim(Seqn-w+2*,L)、......、Sim(Seqn*,L)的均值,得到Seqn*對(duì)應(yīng)的相似度判決值D(n)D(n)=1wΣm=n-w+1nSim(Seqm*,L);]]>7302、利用判決值D(n)和判決門(mén)限λ對(duì)該用戶的“當(dāng)前行為”進(jìn)行判決;如果D(n)>λ,將該用戶的“當(dāng)前行為”判為正常行為;如果D(n)≤λ,將該用戶的“當(dāng)前行為”判為異常行為;其中第二種判決方法是采用可變的窗長(zhǎng)度對(duì)相似度流進(jìn)行加窗并取均值,得到的相似度均值,即相似度判決值,再利用相似度判決值和判決門(mén)限對(duì)該被監(jiān)測(cè)用戶的行為進(jìn)行判決;包括下列操作步驟7311、讀取控制模塊中設(shè)置的參數(shù)V個(gè)窗長(zhǎng)度w(1)、w(2)、......、w(V),V個(gè)判決上限u(1)、u(2)、......、u(V)和V個(gè)判決下限d(1)、d(2)、......、d(V),其中,w(1)<w(2)<......<w(V),u(k)和d(k)分別是第k個(gè)窗長(zhǎng)度c(k)所對(duì)應(yīng)的判決上限和判決下限,k是區(qū)間為[1,V]的自然數(shù),且u(1)>u(2)>......>u(V-1)>u(V)=d(V)>d(V-1)>......>d(2)>d(1);7312、當(dāng)從R中挖掘到第n個(gè)“行為模式序列”Seqn*,并計(jì)算出Sim(Seqn*,L)后,繼續(xù)計(jì)算Seqn*對(duì)應(yīng)的相似度判決值D(n),并對(duì)該用戶的“當(dāng)前行為”作出判決。
9.根據(jù)權(quán)利要求8所述的用戶行為異常檢測(cè)系統(tǒng)的檢測(cè)方法,其特征在于所述步驟7312進(jìn)行的計(jì)算和判決方法進(jìn)一步包括下列操作步驟步驟1、設(shè)置變量k=1;步驟2、將n同w(k)進(jìn)行比較如果n≥w(k),執(zhí)行后續(xù)步驟;如果n<w(k),則不計(jì)算D(n),也不對(duì)該用戶的“當(dāng)前行為”進(jìn)行判決,結(jié)束該操作;步驟3計(jì)算相似度均值N(n,k),該數(shù)值是對(duì)相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L))]]>中以Sim(Seqn*,L)為終點(diǎn)的w(k)個(gè)相似度Sim(Seqn-w(k)+1*,L)、Sim(Seqn-w(k)+2*,L)、......、Sim(Seqn*,L)進(jìn)行加窗并取均值后得到的N(n,k)=1w(k)Σm=n-w(k)+1nSim(Seqm*,L),]]>式中w(k)為窗長(zhǎng)度,且w(k)≤n≤M;步驟4、判斷是否滿足判決條件N(n,k)>u(k),如果滿足該條件,則Seqn*對(duì)應(yīng)的相似度判決值定義為D(n)=N(n,k),并將該用戶的“當(dāng)前行為”判為正常行為;如果不滿足判決條件N(n,k)>u(k),繼續(xù)執(zhí)行后續(xù)操作;步驟5、判斷是否滿足判決條件N(n,k)≤d(k),如果滿足該條件,則D(n)=N(n,k),并將該用戶的“當(dāng)前行為”判為異常行為,結(jié)束對(duì)用戶“當(dāng)前行為”的判決;如果不滿足判決條件N(n,k)≤d(k),繼續(xù)執(zhí)行后續(xù)操作。步驟6、k=k+1,即k的值加1,并返回執(zhí)行步驟2,循環(huán)執(zhí)行后續(xù)操作。
10.根據(jù)權(quán)利要求2所述的用戶行為異常檢測(cè)系統(tǒng)的檢測(cè)方法,其特征在于所述檢測(cè)方法用于對(duì)計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中的某一個(gè)合法用戶的行為進(jìn)行異常檢測(cè),或者對(duì)網(wǎng)絡(luò)系統(tǒng)中一組或多個(gè)合法用戶的行為進(jìn)行異常檢測(cè),對(duì)于后者,可采用兩種不同的方法如果一組或多個(gè)合法用戶的權(quán)限和行為特點(diǎn)相差比較大,則利用每個(gè)合法用戶的正常行為訓(xùn)練數(shù)據(jù)分別建立W個(gè)序列庫(kù),再分別利用各自的W個(gè)序列庫(kù)對(duì)每個(gè)用戶的行為進(jìn)行異常檢測(cè);如果一組或多個(gè)合法用戶具有同等的權(quán)限,而且行為特點(diǎn)比較接近,則將這些用戶的訓(xùn)練數(shù)據(jù)組合在一起,即將這些用戶的shell命令流連接在一起構(gòu)成總的訓(xùn)練數(shù)據(jù),利用該訓(xùn)練數(shù)據(jù)建立W個(gè)序列庫(kù),再利用該W個(gè)序列庫(kù)對(duì)每個(gè)用戶的行為進(jìn)行異常檢測(cè)。
全文摘要
一種基于機(jī)器學(xué)習(xí)的用戶行為異常檢測(cè)系統(tǒng)和方法,該系統(tǒng)由控制模塊、數(shù)據(jù)獲取和預(yù)處理模塊、學(xué)習(xí)模塊、序列存儲(chǔ)模塊、檢測(cè)模塊、檢測(cè)結(jié)果輸出模塊組成;該系統(tǒng)配置在需要監(jiān)控的服務(wù)器上,采用Unix平臺(tái)上的shell命令作為訓(xùn)練數(shù)據(jù)和審計(jì)數(shù)據(jù),在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理后,利用機(jī)器學(xué)習(xí)模型建立計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中關(guān)鍵合法用戶的正常行為輪廓,在檢測(cè)中通過(guò)比較關(guān)鍵合法用戶的當(dāng)前行為與其正常行為輪廓來(lái)識(shí)別異常行為,即是否發(fā)生入侵;如果該用戶的當(dāng)前行為較大程度地偏離了其歷史上的正常行為輪廓,即認(rèn)為發(fā)生了異常可能是關(guān)鍵合法用戶進(jìn)行了非授權(quán)操作,或是外部入侵者冒用關(guān)鍵合法用戶的帳號(hào)進(jìn)行了非法操作,以便引起網(wǎng)絡(luò)管理員的注意,采取措施保證安全。
文檔編號(hào)H04L12/24GK1649311SQ20051005693
公開(kāi)日2005年8月3日 申請(qǐng)日期2005年3月23日 優(yōu)先權(quán)日2005年3月23日
發(fā)明者田新廣, 隋進(jìn)國(guó), 李學(xué)春, 王輝柏, 鄒濤 申請(qǐng)人:北京首信科技有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
公主岭市| 宽甸| 神池县| 漯河市| 沙雅县| 康马县| 拜城县| 平舆县| 赞皇县| 蓬安县| 江达县| 湘阴县| 梁河县| 青海省| 修水县| 江川县| 凯里市| 闽侯县| 都兰县| 龙川县| 上饶市| 崇礼县| 德安县| 乌鲁木齐市| 改则县| 甘肃省| 阜平县| 虞城县| 镇远县| 鹤山市| 三亚市| 浏阳市| 集贤县| 白朗县| 武义县| 宜兰县| 天气| 翁牛特旗| 霞浦县| 安阳县| 肇东市|