新四季網

基於機器學習的用戶行為異常檢測系統和方法

2023-09-23 09:14:50 2

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

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


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

其中檢測狀態的實施例操作步驟如下(1)啟動系統。
(2)該區域網的安全管理員對系統的工作狀態和參數進行配置將系統的工作狀態設為檢測狀態,將判決方法設為第二種判決方法,將該判決方法的窗長度個數V設為3,將3個窗長度分別設為w(1)=30,w(2)=60,w(3)=90,將3個判決上限分別設為u(1)=0.8,u(2)=0.7,u(3)=0.5,將3個判決下限分別設為d(1)=0.3,d(2)=0.4,d(3)=0.5。設置完畢後,安全管理員輸入「開始工作」的指令,系統接受指令後即開始自動運行。
(3)控制模塊自動查看對系統的設置情況,發現系統的工作狀態被設為檢測狀態,於是將系統切換至檢測狀態。
(4)控制模塊驅動數據獲取和預處理模塊將原始審計數據從指定的位置載入;同時,數據獲取和預處理模塊對原始審計數據(shell命令行)進行預處理,並將預處理後的審計數據(shell命令流)輸出至檢測模塊。
(5)檢測模塊對數據獲取和預處理模塊所提供的審計數據機進行分析,生成檢測結果。
(6)檢測結果輸出模塊顯示檢測結果(判決值曲線),並對異常行為進行報警。圖7即為輸出模塊輸出的判決值曲線。圖中,上方的實線是系統在監視該程式設計師的正常行為時檢測結果輸出模塊輸出的判決值曲線。如果將安全管理員執行的shell命令行作為原始審計數據載入,檢測結果輸出模塊輸出的判決值曲線是圖中下方的虛線;該虛線可視為系統在監視異常行為時輸出的判決值曲線,因為安全管理員在伺服器中所進行的操作對該程式設計師而言大都屬於非授權操作(異常行為),或者說,該程式設計師未被授權進行安全管理員權限內的很多操作。若該程式設計師越權進行了安全管理員權限內的操作,系統輸出的判決值曲線中各點的判決值將會比較小(如圖中虛線所示),當判決值小於相應的判決門限時,系統就能夠檢測出這些非授權操作(異常行為)並進行報警。
權利要求
1.一種基於機器學習的用戶行為異常檢測系統,該系統配置在需要監控的伺服器上,採用Unix平臺上的用戶接口shell命令作為審計數據,在用戶界面層分析用戶行為來檢測伺服器中是否發生入侵;其特徵在於所述系統包括有控制模塊,負責設置系統的工作狀態和各種檢測參數,並對數據獲取和預處理模塊、學習模塊、檢測模塊和整個系統的運行進行控制;數據獲取和預處理模塊,負責從伺服器中獲取原始的訓練數據或審計數據,即用戶執行的shell命令行數據,並將這些原始訓練數據或審計數據處理成shell命令流的形式後,分別送入學習模塊或檢測模塊,用於學習或檢測;學習模塊,採用機器學習技術,從訓練數據中獲取網絡系統中某個合法用戶正常行為的知識,並在其基礎上建立用於表示該合法用戶的正常行為輪廓的shell命令序列庫;序列存儲模塊,用於存儲學習模塊所建立的shell命令序列庫,並在檢測時,供檢測模塊進行檢索比較;檢測模塊,負責對所述合法用戶在被監測時間內執行的shell命令審計數據進行分析處理,完成包括但不限於「行為模式序列」的挖掘、相似度計算或賦值、相似度的加窗濾噪、判決值計算和用戶行為判決的工作;檢測結果輸出模塊,負責顯示檢測模塊生成的判決值曲線,並在檢測模塊的控制下對異常行為進行報警。
2.一種權利要求1的用戶行為異常檢測系統的檢測方法,其特徵在於所述系統的檢測方法包括下列操作步驟(1)系統啟動;(2)系統等待指令的輸入時,由控制模塊設置系統的工作狀態和工作參數,以便在此後輸入「開始工作」指令後,由控制模塊自動查看系統的設置情況,分別進入兩種不同工作狀態如果系統被設置為學習狀態,執行後續操作;如果系統被設置為檢測狀態,則跳轉執行步驟(6);(3)在控制模塊驅動下,數據獲取和預處理模塊從預先設定的數據接口載入原始訓練數據,並對該原始訓練數據進行預處理,使其成為shell命令流的形式,再將其輸出至學習模塊;(4)學習模決利用預處理後的shell命令流訓練數據進行學習,建立shell命令序列庫,並將該序列庫存入序列存儲模塊後,向控制模塊發送「學習結束」的消息;(5)控制模塊接收到學習模塊的「學習結束」消息後,使系統返回步驟(2),等待輸入新的設置指令;或者直接將系統的工作狀態轉為檢測狀態,執行後續操作;(6)在控制模塊驅動下,數據獲取和預處理模塊從預先設定的數據接口實時載入shell命令行的原始審計數據,同時對該原始審計數據進行實時預處理,並將預處理後的shell命令流審計數據實時輸出至檢測模塊;(7)檢測模塊對該審計數據進行實時分析,生成檢測結果;(8)檢測結果輸出模塊顯示檢測結果判決值曲線,並對異常行為進行實時報警。
3.根據權利要求2所述的用戶行為異常檢測系統的檢測方法,其特徵在於所述步驟(2)中,如果系統的工作狀態被設置為學習狀態,需要設置的工作參數包括用於表示該合法用戶的正常行為輪廓而需要建立的shell命令序列庫的個數W,以及W個序列長度l(1)、l(2)、......、l(W);其中l(i)是第i個shell命令序列庫中序列的長度,且l(1)<l(2)<......<l(W);如果系統的工作狀態被設置為檢測狀態,需要設置的工作參數有兩種,分別為第一種判決方法,窗長度w,判決門限λ;或第二種判決方法,窗長度的個數V,V個窗長度w(1)、w(2)、......、w(V),V個判決上限u(1)、u(2)、......、u(V)和V個判決下限d(1)、d(2)、......、d(V);其中,w(1)<w(2)<......<w(V),u(k)和d(k)分別是第k個窗長度c(k)所對應的判決上限和判決下限,k是區間為[1,V]的自然數,且u(1)>u(2)>......>u(V-1)>u(V)=d(V)>d(V-1)>......>d(2)>d(1)。
4.根據權利要求2所述的用戶行為異常檢測系統的檢測方法,其特徵在於所述步驟(3)或步驟(6)中數據獲取和預處理模塊對原始訓練數據或原始審計數據進行的預處理包括下列步驟31、提取出shell命令行中命令的名稱names、標記flags和元字符metacharacters;32、將包括但不限於文件名、伺服器名、目錄、網址的信息替換為統一格式的標識符號n,其中n表示文件名、伺服器名、目錄或網址的個數;33、在每個shell會話開始和結束的時間點上分別插入表示起始和結束的標識符號SOF和EOF;34、將包括命令的名稱、標記和元字符的符號以及文件名、伺服器名、目錄、網址的信息標識符號的shell命令符號按照在shell會話中的出現次序進行排列;並按照時間順序連接不同shell會話的命令符號,且在上述數據中不添加時間戳,經過該預處理後,原始輸入數據在形式上成為shell命令流一串按時間順序排列的shell命令符號,且一個shell命令流可包含多個shell會話的內容。
5.根據權利要求2所述的用戶行為異常檢測系統的檢測方法,其特徵在於所述步驟(4)中學習模塊利用預處理後的shell命令流訓練數據進行的學習操作包括下列步驟41、從數據獲取和預處理模塊得到經過預處理的、表示該合法用戶的正常行為的訓練數據R=(s1,s2,......,sr),即一個長度為r的shell命令流,其中sj表示按時間順序排列的第j個shell命令符號;42、從控制模塊中讀取學習參數用於表示該合法用戶的正常行為輪廓而需要建立的shell命令序列庫的個數W,以及W個序列長度l(1)、l(2)、......、l(W);其中l(i)是第i個shell命令序列庫中序列的長度,且l(1)<l(2)<......<l(W);43、由shell命令流R生成W個序列長度分別為l(1)、l(2)、......、l(W)的shell命令序列流S1、S2、......、SW,其中Si是序列長度為l(i)的shell命令序列流Si=(Seq1i,Seq2i,......,Seqr-l(i)+1i),]]>式中Seqji=(sj,sj+1,......,sj+l(i)-1),]]>它是Si中按時間順序排列的第j個shell命令序列,i是區間[1,W]中的自然數;44、計算shell命令序列流Sj中的每個shell命令序列在Si中的出現頻率,其中i是區間[1,W]中的自然數;即計算序列流Sj中的每個shell序列在Si中的出現次數除以該序列流中各個序列出現次數之和;45、讀取控制模塊中的頻率門限參數用於建立W個shell命令序列庫的頻率門限η1、η2、......、ηW;其中ηi是建立序列長度為l(i)的shell命令序列庫時所使用的頻率門限,i是區間[1,W]中的自然數;46、按照序列的出現頻率,從W個shell命令序列流S1、S2、......、SW中分別提取若干個shell命令序列用作樣例,建立W個序列庫;其具體方法步驟是設W個用於表示該用戶正常行為輪廓的序列庫的集合L={L(1),L(2),......,L(W)},其中L(i)表示由長度為l(i)的序列組成的序列庫;按照自然數i從1到W的次序,分別將shell命令序列流Si中出現頻率大於或等於頻率門限ηl的shell命令序列提取出來作為樣例,即視為該合法用戶的正常行為模式的shell命令序列,並將這些序列集合在一起構成序列庫L(i)。
6.根據權利要求2所述的用戶行為異常檢測系統的檢測方法,其特徵在於所述步驟(7)中檢測模塊對審計數據進行實時分析並生成檢測結果的實時檢測操作包括下列步驟71、從數據獲取和預處理模塊實時地獲取審計數據;即在檢測時,數據獲取和預處理模塊要從shell歷史文件中實時地獲取該被監測合法用戶在被監測時間內執行的shell命令行,並對這些命令行數據進行預處理後,變換為一個shell命令流R={s1,s2,......,sr},其中sj表示按時間順序排列的第j個shell命令符號,r為該命令流的長度;數據獲取和預處理模塊按照時間順序實時地將R={s1,s2,......,sr}中的每個shell命令符號依次輸出至檢測模塊;72、檢測模塊利用序列匹配方法來挖掘shell命令流R中的「行為模式序列」,並按照每個「行為模式序列」的長度計算它與序列庫集合L={L(1),L(2),......,L(W)}的相似度,得到按時間順序排列的「行為模式序列」流P=(Seq1*,Seq2*,......,SeqM*),]]>以及相應的相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L)),]]>其中Seqn*表示從R中挖掘到的第n個「行為模式序列」,Sim(Seqn*,L)表示Seqn*與序列庫集合的相似度,M是從R中挖掘到的「行為模式序列」的個數,且int(r/l(W))≤M≤r-l(W)+1;73、對相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L))]]>進行加窗並取均值,將得到的相似度均值,即相似度判決值與判決門限進行比較,進而對該被監測合法用戶的行為作出判決;在實時檢測時,所述三個步驟71、72、73是同步執行的。
7.根據權利要求6所述的用戶行為異常檢測系統的檢測方法,其特徵在於所述步驟72中檢測模塊利用序列匹配方法挖掘所述用戶shell命令流審計數據R中行為模式序列及每個行為模式序列與序列庫集合的相似度的計算進一步包括下列步驟721、設置三個變量j=1,i=W,n=1;722、如果j≤r-l(W)+1,將Seqji與序列庫L(i)進行比較,再執行步驟723;如果j>r-l(W)+1,停止操作,即結束行為模式序列的挖掘和相似度計算;723、如果SeqjiL(i),]]>即Seqji與序列庫L(i)中的某個序列相同,則第n個行為模式序列Seqn*:=Seqji,Seqn*]]>與序列庫集合L的相似度為Sim(Seqn*,L):=2l(i)/2l(W),]]>j=j+l(i),i=W,n=n+1,並返回執行步驟722;如果SeqjiL(i),]]>即Seqji與序列庫L(i)中的任何序列都不相同,則i=i-1,然後執行步驟724;724、如果i≠0,返回執行步驟722;如果i=0,則Seqn*:=(sj),Sim(Seqn*,L):=0,]]>j=j+1,i=W,n=n+1,並返回執行步驟722。
8.根據權利要求6所述的用戶行為異常檢測系統的檢測方法,其特徵在於所述步驟73中檢測模塊在對相似度流進行加窗處理和對該用戶的行為進行判決時,有兩種判決方法可供用戶選擇;其中第一種判決方法是用固定的窗長度對相似度流進行加窗並取均值,得到的相似度均值,即相似度判決值,再利用相似度判決值和判決門限對該用戶的行為進行判決;包括下列操作步驟7301、讀取控制模塊中設置的參數窗長度w和判決門限λ,當從審計數據R中挖掘到第n個行為模式序列Seqn*,並計算出Sim(Seqn*,L)後,其中n≥w;以Sim(Seqn*,L)為終點對相似度流Z進行加窗,計算以Sim(Seqn*,L)為終點的w個相似度,即Sim(Seqn-w+1*,L)、Sim(Seqn-w+2*,L)、......、Sim(Seqn*,L)的均值,得到Seqn*對應的相似度判決值D(n)D(n)=1wm=n-w+1nSim(Seqm*,L);]]>7302、利用判決值D(n)和判決門限λ對該用戶的「當前行為」進行判決;如果D(n)>λ,將該用戶的「當前行為」判為正常行為;如果D(n)≤λ,將該用戶的「當前行為」判為異常行為;其中第二種判決方法是採用可變的窗長度對相似度流進行加窗並取均值,得到的相似度均值,即相似度判決值,再利用相似度判決值和判決門限對該被監測用戶的行為進行判決;包括下列操作步驟7311、讀取控制模塊中設置的參數V個窗長度w(1)、w(2)、......、w(V),V個判決上限u(1)、u(2)、......、u(V)和V個判決下限d(1)、d(2)、......、d(V),其中,w(1)<w(2)<......<w(V),u(k)和d(k)分別是第k個窗長度c(k)所對應的判決上限和判決下限,k是區間為[1,V]的自然數,且u(1)>u(2)>......>u(V-1)>u(V)=d(V)>d(V-1)>......>d(2)>d(1);7312、當從R中挖掘到第n個「行為模式序列」Seqn*,並計算出Sim(Seqn*,L)後,繼續計算Seqn*對應的相似度判決值D(n),並對該用戶的「當前行為」作出判決。
9.根據權利要求8所述的用戶行為異常檢測系統的檢測方法,其特徵在於所述步驟7312進行的計算和判決方法進一步包括下列操作步驟步驟1、設置變量k=1;步驟2、將n同w(k)進行比較如果n≥w(k),執行後續步驟;如果n<w(k),則不計算D(n),也不對該用戶的「當前行為」進行判決,結束該操作;步驟3計算相似度均值N(n,k),該數值是對相似度流Z=(Sim(Seq1*,L),Sim(Seq2*,L),......,Sim(SeqM*,L))]]>中以Sim(Seqn*,L)為終點的w(k)個相似度Sim(Seqn-w(k)+1*,L)、Sim(Seqn-w(k)+2*,L)、......、Sim(Seqn*,L)進行加窗並取均值後得到的N(n,k)=1w(k)m=n-w(k)+1nSim(Seqm*,L),]]>式中w(k)為窗長度,且w(k)≤n≤M;步驟4、判斷是否滿足判決條件N(n,k)>u(k),如果滿足該條件,則Seqn*對應的相似度判決值定義為D(n)=N(n,k),並將該用戶的「當前行為」判為正常行為;如果不滿足判決條件N(n,k)>u(k),繼續執行後續操作;步驟5、判斷是否滿足判決條件N(n,k)≤d(k),如果滿足該條件,則D(n)=N(n,k),並將該用戶的「當前行為」判為異常行為,結束對用戶「當前行為」的判決;如果不滿足判決條件N(n,k)≤d(k),繼續執行後續操作。步驟6、k=k+1,即k的值加1,並返回執行步驟2,循環執行後續操作。
10.根據權利要求2所述的用戶行為異常檢測系統的檢測方法,其特徵在於所述檢測方法用於對計算機網絡系統中的某一個合法用戶的行為進行異常檢測,或者對網絡系統中一組或多個合法用戶的行為進行異常檢測,對於後者,可採用兩種不同的方法如果一組或多個合法用戶的權限和行為特點相差比較大,則利用每個合法用戶的正常行為訓練數據分別建立W個序列庫,再分別利用各自的W個序列庫對每個用戶的行為進行異常檢測;如果一組或多個合法用戶具有同等的權限,而且行為特點比較接近,則將這些用戶的訓練數據組合在一起,即將這些用戶的shell命令流連接在一起構成總的訓練數據,利用該訓練數據建立W個序列庫,再利用該W個序列庫對每個用戶的行為進行異常檢測。
全文摘要
一種基於機器學習的用戶行為異常檢測系統和方法,該系統由控制模塊、數據獲取和預處理模塊、學習模塊、序列存儲模塊、檢測模塊、檢測結果輸出模塊組成;該系統配置在需要監控的伺服器上,採用Unix平臺上的shell命令作為訓練數據和審計數據,在對數據進行預處理後,利用機器學習模型建立計算機網絡系統中關鍵合法用戶的正常行為輪廓,在檢測中通過比較關鍵合法用戶的當前行為與其正常行為輪廓來識別異常行為,即是否發生入侵;如果該用戶的當前行為較大程度地偏離了其歷史上的正常行為輪廓,即認為發生了異常可能是關鍵合法用戶進行了非授權操作,或是外部入侵者冒用關鍵合法用戶的帳號進行了非法操作,以便引起網絡管理員的注意,採取措施保證安全。
文檔編號H04L12/24GK1649311SQ20051005693
公開日2005年8月3日 申請日期2005年3月23日 優先權日2005年3月23日
發明者田新廣, 隋進國, 李學春, 王輝柏, 鄒濤 申請人:北京首信科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀