專利名稱:日志檢測方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種日志檢測方法及系統(tǒng)。
背景技術(shù):
隨著日志容量增大,從高度冗余的日志中通過異常檢測找出值得關(guān)注的部分,對調(diào)試、診斷而言變得更加重要。關(guān)于異常檢測的研究有很長歷史。異常檢測算法一般被用于攻擊檢測、網(wǎng)絡(luò)安全等方面?,F(xiàn)有的異常檢測機制大部分是基于統(tǒng)計模型和馬爾可夫模型,但是它們都存在各自的問題。異常檢測系統(tǒng)分為兩個階段在訓(xùn)練階段,為正常樣本建立一個基準模型;在檢測階段,對候選樣本與基準模型之間的區(qū)別進行評價。異常檢測的基本技術(shù)路線有統(tǒng)計、機器學(xué)習和數(shù)據(jù)挖掘。統(tǒng)計模型和馬爾可夫模型是最普遍的兩種模型。其它模型如貝葉斯網(wǎng) 絡(luò)和支持向量機等在實際應(yīng)用中使用較少。這些方法雖然背后有復(fù)雜精巧的數(shù)學(xué)基礎(chǔ),但是通常帶有很多參數(shù)。在實際應(yīng)用中這些參數(shù)需要調(diào)校,使用比較復(fù)雜。另外,一旦數(shù)據(jù)集發(fā)生變化,原先的參數(shù)就失效了,需要重新調(diào)校一次?;诮y(tǒng)計模型的異常檢測機制假設(shè)檢測的對象遵從某種分布。它的基本方法是在訓(xùn)練階段,根據(jù)訓(xùn)練集對分布的參數(shù)進行估計;在檢測階段,用確定了參數(shù)的模型和概率學(xué)上的方法估計候選樣本,由該模型生成這一事件的置信度。馬爾可夫模型是異常檢測領(lǐng)域另一種被廣泛使用的方法。馬爾可夫模型假設(shè)底層系統(tǒng)是一個馬爾可夫隨機過程,一個事件發(fā)生的概率僅與其前一個事件(或η個事件)有關(guān)。和統(tǒng)計模型不同,馬爾可夫模型考慮了事件的順序。但是馬爾可夫模型受到計算開銷、數(shù)據(jù)稀疏等問題的限制。最主要的問題在于,對于目標數(shù)據(jù)集,馬爾可夫模型的基本假設(shè)-一個事件發(fā)生的概率僅與其前一個事件(或η個事件)有關(guān),不一定成立。綜上所述,信息論的觀點更加接近異常檢測問題的本質(zhì)。但是直接計算熵是不可能的,只能進行估計。一個字母表上的信源的熵可以用極限熵進行估計,可以定義Gn為長度為η的序列的信息含量。但是極限熵公式僅有理論意義。在實際使用中,需要將該公式簡化。但是上文討論過,這兩種方法都不適合日志異常檢測。Shannon在其劃時代的工作中揭示了無損壓縮和熵之間的關(guān)系,得出重要的結(jié)論熵是無損編碼的下界,即一個理想的無損壓縮編碼方法得到的數(shù)據(jù)長度應(yīng)該能夠反映。在無損壓縮方面,有很多工作利用了序列結(jié)構(gòu)信息,例如應(yīng)用最為廣泛的LZ77算法依賴于發(fā)現(xiàn)和利用被壓縮序列中重復(fù)的成份,文法編碼則致力于尋找序列的層次結(jié)構(gòu)。這些方法超越了統(tǒng)計模型和馬爾可夫假設(shè)。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種日志檢測方法及系統(tǒng),不需要設(shè)置復(fù)雜的參數(shù),簡單有效。為解決上述技術(shù)問題,本發(fā)明提出了一種日志檢測方法,包括
采用預(yù)設(shè)的文法壓縮算法,對待檢測日志數(shù)據(jù)和訓(xùn)練集數(shù)據(jù)進行壓縮;計算壓縮后所得數(shù)據(jù)的信息密度;對所述待檢測日志數(shù)據(jù)按照所述信息密度由大到小進行排列,排列后的前η個日志數(shù)據(jù)為異常數(shù)據(jù),其中,η為預(yù)設(shè)的異常數(shù)據(jù)個數(shù)。進一步地,上述日志檢測方法還可具有以下特點,所述文法壓縮算法為基本文法算法BaseTranfer,該基本文法算法BaseTranfer的算法流程包括將產(chǎn)生式集合G賦空,設(shè)待檢測的日志串為X,設(shè)置返回結(jié)果集Px為空,其中Px和X滿足自同態(tài);從日志串χ中依次彈出各個符號,將彈出符號作為非終結(jié)符添加到返回結(jié)果集Px右側(cè); 在產(chǎn)生式集合G和返回結(jié)果集Px上應(yīng)用產(chǎn)生式化簡規(guī)則,直到不能化簡為止,得到新產(chǎn)生式,并將該新產(chǎn)生式添加到產(chǎn)生式集合G中。進一步地,上述日志檢測方法還可具有以下特點,所述文法壓縮算法為加入貪婪匹配后的改進文法壓縮算法SeqTranfer,該改進文法壓縮算法SeqTranfer的算法流程包括將產(chǎn)生式集合G賦空,設(shè)待檢測的日志串為χ ;日志串χ非空時,掃描產(chǎn)生式集合G中的每一個產(chǎn)生式ρ,設(shè)置V為產(chǎn)生式ρ的左邊,若以V為輸入的自同態(tài)是日志串χ的前綴,將V加入到集合M中;若M非空,設(shè)置Vm為M中最大的V,將Vm追加到ρ的右偵彳,從日志串χ中彈出f(v)個符號,若M為空則從日志串χ中彈出一個符號t,將t作為非終結(jié)符添加到ρ右偵!|,其中,f (v)即為下式中的f :定義一組自同態(tài){fk k=0, I, 2,…},則對任何X, f°G(x) =X,
(χ) =fG (χ),fkG (χ) =fG ( *Λ (x));將ρ添加到產(chǎn)生式集合G中,然后在其上應(yīng)用產(chǎn)生式化簡規(guī)則,直到不能應(yīng)用化簡為止。進一步地,上述日志檢測方法還可具有以下特點,所述文法壓縮算法為分離樣本后的改進文本壓縮算法LogTranfer,該改進文本壓縮算法LogTranfer的算法流程包括設(shè)置L為樣本集合,G為產(chǎn)生式集合,G初始化為空,并設(shè)置PO=SO ;對于每個在樣本集合L中的樣本,設(shè)置Pn=SeqTransform (seq, G),其中,SeqTransform為改進文法壓縮算法SeqTranfer的函數(shù)公式;若Pn的右邊僅含有一個符號,則拋棄Pn,否則將Pn加入到G中,將Pn的左側(cè)加入到PO的右側(cè)。進一步地,上述日志檢測方法還可具有以下特點,在所述采用預(yù)設(shè)的文法壓縮算法對待檢測日志數(shù)據(jù)和訓(xùn)練集數(shù)據(jù)進行壓縮之前,還包括選取已知的正常日志組成訓(xùn)練集。為解決上述技術(shù)問題,本發(fā)明提出了一種日志檢測系統(tǒng),包括壓縮模塊,用于采用預(yù)設(shè)的文法壓縮算法,對待檢測日志數(shù)據(jù)和訓(xùn)練集數(shù)據(jù)進行壓縮;計算模塊,用于計算所述壓縮模塊壓縮后所得數(shù)據(jù)的信息密度;
排序模塊,用于對所述待檢測日志數(shù)據(jù)按照所述計算模塊計算所得的信息密度由大到小進行排列,排列后的前η個日志數(shù)據(jù)為異常數(shù)據(jù),其中,η為預(yù)設(shè)的異常數(shù)據(jù)個數(shù)。進一步地,上述日志檢測系統(tǒng)還可具有以下特點,所述文法壓縮算法為基本文法算法BaseTranfer,該基本文法算法BaseTranfer的算法流程包括將產(chǎn)生式集合G賦空,設(shè)待檢測的日志串為χ,設(shè)置返回結(jié)果集Px為空,其中Px和X滿足自同態(tài);從日志串χ中依次彈出各個符號,將彈出符號作為非終結(jié)符添加到返回結(jié)果集Px右側(cè);在產(chǎn)生式集合G和返回結(jié)果集Px上應(yīng)用產(chǎn)生式化簡規(guī)則,直到不能化簡為止,得到新產(chǎn)生式,并將該新產(chǎn)生式添加到產(chǎn)生式集合G中。進一步地,上述日志檢測系統(tǒng)還可具有以下特點,所述文法壓縮算法為加入貪婪 匹配后的改進文法壓縮算法SeqTranfer,該改進文法壓縮算法SeqTranfer的算法流程包括將產(chǎn)生式集合G賦空,設(shè)待檢測的日志串為χ ;日志串χ非空時,掃描產(chǎn)生式集合G中的每一個產(chǎn)生式ρ,設(shè)置V為產(chǎn)生式ρ的左邊,若以V為輸入的自同態(tài)是日志串χ的前綴,將V加入到集合M中;若M非空,設(shè)置Vm為M中最大的V,將Vm追加到ρ的右偵彳,從日志串χ中彈出f(v)個符號,若M為空則從日志串χ中彈出一個符號t,將t作為非終結(jié)符添加到ρ右偵!|,其中,f (v)即為下式中的f :定義一組自同態(tài){fk k=0, I, 2,…},則對任何X, f°G(x) =X,
(χ) =fG (χ),fkG (χ) =fG ( *Λ (x));將ρ添加到產(chǎn)生式集合G中,然后在其上應(yīng)用產(chǎn)生式化簡規(guī)則,直到不能應(yīng)用化簡為止。進一步地,上述日志檢測系統(tǒng)還可具有以下特點,所述文法壓縮算法為分離樣本后的改進文本壓縮算法LogTranfer,該改進文本壓縮算法LogTranfer的算法流程包括設(shè)置L為樣本集合,G為產(chǎn)生式集合,G初始化為空,并設(shè)置PO=SO ;對于每個在樣本集合L中的樣本,設(shè)置Pn=SeqTransform (seq, G),其中,SeqTransform為改進文法壓縮算法SeqTranfer的函數(shù)公式;若Pn的右邊僅含有一個符號,則拋棄Pn,否則將Pn加入到G中,將Pn的左側(cè)加入到PO的右側(cè)。進一步地,上述日志檢測系統(tǒng)還可具有以下特點,還包括訓(xùn)練模塊,用于選取已知的正常日志組成訓(xùn)練集,傳送給所述壓縮模塊。本發(fā)明的日志檢測方法及系統(tǒng),將文法壓縮引入到日志檢測中,避免了通用壓縮帶來的各種問題。并且,本發(fā)明利用日志數(shù)據(jù)連續(xù)性的特點,使用信息密度來判定日志有沒有出現(xiàn)異常,不僅可以避免傳統(tǒng)的統(tǒng)計和馬爾可夫方法帶來的缺陷,而且不需要設(shè)置復(fù)雜的參數(shù),簡單有效,且預(yù)測準確。
圖I為本發(fā)明實施例中日志檢測方法的流程圖2為基本文法壓縮算法BaseTranfer的算法流程圖;圖3為加入貪婪匹配后的改進文法壓縮算法SeqTranfer的算法流程圖;圖4為分離樣本后的改進文本壓縮算法LogTranferr的算法流程圖;圖5為本發(fā)明實施例中日志檢測系統(tǒng)的結(jié)構(gòu)框圖。
具體實施例方式以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。圖I為本發(fā)明實施例中日志檢測方法的流程圖。如圖I所示,本實施例中,日志檢測方法的流程可以包括如下步驟
步驟11,采用預(yù)設(shè)的文法壓縮算法,對待檢測日志數(shù)據(jù)和訓(xùn)練集數(shù)據(jù)進行壓縮;其中,壓縮算法為文法壓縮算法,文法壓縮的核心思想是將待檢測字符串中的每個字符作為非終結(jié)符,然后利用文法化簡規(guī)則合并產(chǎn)生式,最后生成產(chǎn)生式集合。文法壓縮避免了通用壓縮帶來的參數(shù)設(shè)置復(fù)雜、應(yīng)用數(shù)據(jù)集受限等問題。本發(fā)明可以采用的具體的文法壓縮算法將在下文闡述。在步驟11之前,還可以包括訓(xùn)練的步驟,即選取已知的正常日志組成訓(xùn)練集,以供步驟11中使用。步驟12,計算壓縮后所得數(shù)據(jù)的信息密度;步驟13,按照信息密度對待檢測日志數(shù)據(jù)進行倒序排列,則信息密度最大的η個日志數(shù)據(jù)(即排列后的前η個日志數(shù)據(jù))為異常數(shù)據(jù),其中,η為預(yù)設(shè)的異常數(shù)據(jù)個數(shù),η為自然數(shù)。其中,η值可以通過經(jīng)驗值來確定。其中,倒序排列是指由大到小進行排列。倒序排列后,排在最前面的日志數(shù)據(jù)是最異常的日志數(shù)據(jù)。選取排列后的前η個日志數(shù)據(jù)作為異常數(shù)據(jù)是通常的做法,在其他實施例中,也可以按照設(shè)置的其他的標準來選取異常數(shù)據(jù),例如設(shè)定密度閾值,將信息密度超過該密度閾值的日志數(shù)據(jù)認定為異常數(shù)據(jù)。假設(shè)Q為壓縮后的數(shù)據(jù)大小,對待檢測日志中的每個數(shù)據(jù)S,將它與訓(xùn)練集S —起使用壓縮算法壓縮。令Qn=IC(S并s)}-Q為信息總量,Dn=Qn/s為信息密度,C為壓縮算法;根據(jù)Qn或者Dn將待檢測日志數(shù)據(jù)倒序排列,輸出最大的η個數(shù)據(jù)作為異常日志。這里舉例說明步驟11中的文法壓縮算法。步驟11中的文法壓縮算法可以有如下幾種第一種基本文法壓縮算法BaseTranfer基本壓縮算法是指將待壓縮串轉(zhuǎn)化成上下文無關(guān)文法。圖2為基本文法壓縮算法BaseTranfer的算法流程圖。如圖2所示,基本文法壓縮算法BaseTranfer的算法流程包括步驟21,初始化,將產(chǎn)生式集合G賦空,設(shè)待檢測的日志串為χ,設(shè)置返回結(jié)果集Px為空,其中Px和χ滿足自同態(tài);自同態(tài)的概念將在后面進行解釋。步驟22,判斷日志串χ是否為空,如果是,則執(zhí)行步驟27,否則執(zhí)行步驟23 ;
步驟23,從日志串χ中彈出一個符號t ;步驟24,將t作為非終結(jié)符添加到返回結(jié)果集Px右側(cè);步驟25,在產(chǎn)生式集合G和返回結(jié)果集Px上應(yīng)用產(chǎn)生式化簡規(guī)則,直到不能化簡為止,得到新產(chǎn)生式;步驟26,將得到的新產(chǎn)生式添加到產(chǎn)生式集合G中,跳轉(zhuǎn)到步驟22 ;步驟27,結(jié)束退出。依據(jù)上述基本文法壓縮算法BaseTranfer的算法流程進行的壓縮具有一定的局限性,其產(chǎn)生的文法不夠緊湊。因此,本發(fā)明又在基本文法壓縮的基礎(chǔ)上加上了貪婪匹配的步驟,提出了一個改進的文法壓縮算法,即下述的加入貪婪匹配后的改進的文法壓縮算法SeqTranfer0
第二種加入貪婪匹配后的改進文法壓縮算法SeqTranfer圖3為加入貪婪匹配后的改進文法壓縮算法SeqTranfer的算法流程圖。如圖3所示,加入貪婪匹配后的改進的文法壓縮算法SeqTranfer的算法流程包括步驟31,初始化,將產(chǎn)生式集合G賦空,設(shè)待檢測的日志串為χ ;步驟32,判斷日志串χ是否為空,如果為空則結(jié)束,退出程序,否則執(zhí)行步驟33 ;步驟33,掃描產(chǎn)生式集合G中的每一個產(chǎn)生式p,設(shè)置V為產(chǎn)生式ρ的左邊;步驟34,判斷以V為輸入的自同態(tài)是否是χ的前綴,若是執(zhí)行步驟35,否則執(zhí)行步驟36 ;步驟35,將V加入到集合M中;步驟36,判斷M是否為空,若是則執(zhí)行步驟37,否則執(zhí)行步驟38 ;步驟37,設(shè)置Vm為M中最大的V,將Vm追加到ρ的右側(cè),從χ中彈出f (V)個符號,跳轉(zhuǎn)到步驟39 ;這里,對自同態(tài)的概念以及步驟37中f(v)的表達式進行說明一個文法G為四元組G=(V,T, P, S),其中V、T、P和S分別代表文法的非終結(jié)符、終結(jié)符、產(chǎn)生式集合起始符號。如果一個文法G的預(yù)言中只含有一個串X,則稱為該文法為容許文法(admissible grammar)。P是一個產(chǎn)生式的有限集合。一個產(chǎn)生式如A—>@。其中 A 屬于 V(G),@ 屬于(T 并 V)。定義 Left(A—>@)=A,Right(A—>@)=@。在容許文法G中,對任何A屬于V(G),有且僅有一個產(chǎn)生式P屬于P (G)滿足Left (ρ) =Α。稱ρ為A對應(yīng)的產(chǎn)生式,定義Prod (A) =p。定義fe為(V(G)并T (G))上的一個自同態(tài),滿足fG (a) =a, a 屬于 T (G)fjA)=a,A 屬于 V(G)并且 A—>@ 屬于 P (G)fG( £)= £fG (U1U2 · · · un) =fG (U1) fG (u2)…fG(un)定義一組自同態(tài){fk k=0, 1,2,…}滿足對任何x,f°c(x)=x(χ) =fG (χ)fkG (χ)(χ))上式中的f即步驟37中提到的f (V)。
步驟38,從χ中彈出一個符號t,將t作為非終結(jié)符添加到P右側(cè);步驟39,將ρ添加到G中,然后在其上應(yīng)用產(chǎn)生式化簡規(guī)則,直到不能應(yīng)用化簡為
止;結(jié)束。上述算法SeqTransform能夠避免滑動窗口和靜態(tài)字母表的問題。第三種分離樣本后的改進文本壓縮算法LogTranfer為了解決跨樣本模式的問題,在對集合進行文法轉(zhuǎn)化的時候?qū)颖痉珠_處理,生成一個新的算法LogTransform,該算法利用了 SeqTransform算法能夠分階段處理的特點,為每個樣本分別進行處理。這樣可以確保G中不存在跨越樣本生成的規(guī)則。圖4為分離樣本后的改進文本壓縮算法LogTranferr的算法流程圖。如圖4所示,分離樣本后的改進文本壓縮算法LogTranferr的算法流程包括 步驟41,初始化,設(shè)置L為樣本集合,G為產(chǎn)生式集合,G初始化為空,設(shè)置PO=SO ;步驟42,對于每個在L中的樣本,設(shè)置Pn=SeqTransform(seq, G),所有樣本執(zhí)行完畢后跳轉(zhuǎn)到步驟47 ;其中,SeqTransform為改進文法壓縮算法SeqTranfer的函數(shù)公式。步驟43,判斷Pn的右邊是否僅含有I個符號,若是執(zhí)行步驟44,否則執(zhí)行步驟45 ;步驟44,拋棄Pn,跳轉(zhuǎn)到步驟42 ;步驟45,將Pn加入到G中;步驟46,將Pn的左側(cè)加入到PO的右側(cè),跳轉(zhuǎn)到步驟42 ;步驟47,所有樣本執(zhí)行完畢,結(jié)束。采用上述兩種改進的文法壓縮算法,可以得到更加緊湊的文法。本發(fā)明的日志檢測方法,將文法壓縮引入到日志檢測中,避免了通用壓縮帶來的各種問題。并且,本發(fā)明的日志檢測方法利用日志數(shù)據(jù)連續(xù)性的特點,使用信息密度來判定日志有沒有出現(xiàn)異常,這種方法不僅可以避免傳統(tǒng)的統(tǒng)計和馬爾可夫方法帶來的缺陷,而且不需要設(shè)置復(fù)雜的參數(shù),簡單有效,且預(yù)測準確。本發(fā)明還提出了一種日志檢測系統(tǒng),用以實施上述的日志檢測方法。圖5為本發(fā)明實施例中日志檢測系統(tǒng)的結(jié)構(gòu)框圖。如圖5所示,本實施例中,日志檢測系統(tǒng)包括壓縮模塊51、計算模塊52和排序模塊53。其中,壓縮模塊51用于采用預(yù)設(shè)的文法壓縮算法,對待檢測日志數(shù)據(jù)和訓(xùn)練集數(shù)據(jù)進行壓縮。計算模塊52用于計算壓縮模塊51壓縮后所得數(shù)據(jù)的信息密度。排序模塊53對待檢測日志數(shù)據(jù)按照計算模塊52計算所得的信息密度由大到小進行排列(即倒序排列),排列后的前η個日志數(shù)據(jù)為異常數(shù)據(jù)。,其中,η為預(yù)設(shè)的異常數(shù)據(jù)個數(shù),η為自然數(shù)。其中,η值可以通過經(jīng)驗值來確定。如前所述,倒序排列是指由大到小進行排列。倒序排列后,排在最前面的日志數(shù)據(jù)是最異常的日志數(shù)據(jù)。選取排列后的前η個日志數(shù)據(jù)作為異常數(shù)據(jù)是通常的做法,在其他實施例中,也可以按照設(shè)置的其他的標準來選取異常數(shù)據(jù),例如設(shè)定密度閾值,將信息密度超過該密度閾值的日志數(shù)據(jù)認定為異常數(shù)據(jù)。在本發(fā)明的其他實施例中,日志檢測系統(tǒng)還可以包括訓(xùn)練模塊。訓(xùn)練模塊用于選取已知的正常日志組成訓(xùn)練集,傳送給壓縮模塊51。訓(xùn)練模塊也可以進一步分為訓(xùn)練單元和輸入單元,訓(xùn)練單元用于選取已知的正常日志組成訓(xùn)練集,輸入單元用于將訓(xùn)練單元得到的訓(xùn)練集傳送給壓縮模塊51。
其中,壓縮模塊51所采用的文法壓縮算法可以是前述的基本文法壓縮算法BaseTranfer、加入貪婪匹配后的改進文法壓縮算法SeqTranfer、分離樣本后的改進文本壓縮算法LogTranfer等,這些算法的具體流程如前所述,此處不再重復(fù)。本發(fā)明的日志檢測系統(tǒng),將文法壓縮引入到日志檢測中,避免了通用壓縮帶來的各種問題。并且,本發(fā)明的日志檢測系統(tǒng)利用日志數(shù)據(jù)連續(xù)性的特點,使用信息密度來判定日志有沒有出現(xiàn)異常,不僅可以避免傳統(tǒng)的統(tǒng)計和馬爾可夫方法帶來的缺陷,而且不需要設(shè)置復(fù)雜的參數(shù),簡單有效,且預(yù)測準確。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種日志檢測方法,其特征在于,包括 采用預(yù)設(shè)的文法壓縮算法,對待檢測日志數(shù)據(jù)和訓(xùn)練集數(shù)據(jù)進行壓縮; 計算壓縮后所得數(shù)據(jù)的信息密度; 對所述待檢測日志數(shù)據(jù)按照所述信息密度由大到小進行排列,排列后的前η個日志數(shù)據(jù)為異常數(shù)據(jù),其中,η為預(yù)設(shè)的異常數(shù)據(jù)個數(shù)。
2.根據(jù)權(quán)利要求I所述的日志檢測方法,其特征在于,所述文法壓縮算法為基本文法算法BaseTranfer,該基本文法算法BaseTranfer的算法流程包括 將產(chǎn)生式集合G賦空,設(shè)待檢測的日志串為X,設(shè)置返回結(jié)果集Px為空,其中Px和X滿足自同態(tài); 從日志串X中依次彈出各個符號,將彈出符號作為非終結(jié)符添加到返回結(jié)果集Px右側(cè); 在產(chǎn)生式集合G和返回結(jié)果集Px上應(yīng)用產(chǎn)生式化簡規(guī)則,直到不能化簡為止,得到新產(chǎn)生式,并將該新產(chǎn)生式添加到產(chǎn)生式集合G中。
3.根據(jù)權(quán)利要求I所述的日志檢測方法,其特征在于,所述文法壓縮算法為加入貪婪匹配后的改進文法壓縮算法SeqTranfer,該改進文法壓縮算法SeqTranfer的算法流程包括 將產(chǎn)生式集合G賦空,設(shè)待檢測的日志串為X ; 日志串X非空時,掃描產(chǎn)生式集合G中的每一個產(chǎn)生式ρ,設(shè)置V為產(chǎn)生式P的左邊, 若以V為輸入的自同態(tài)是日志串X的前綴,將V加入到集合M中; 若M非空,設(shè)置Vm為M中最大的V,將Vm追加到ρ的右側(cè),從日志串χ中彈出f (V)個符號,若M為空則從日志串χ中彈出一個符號t,將t作為非終結(jié)符添加到P右側(cè),其中,f (V)即為下式中的f :定義一組自同態(tài){fk :k=0, 1,2,···},則對任何χ, f°G(x) =x, f、(χ) =fe(χ),fkG (x) =fG (fk_1G (χ)); 將P添加到產(chǎn)生式集合G中,然后在其上應(yīng)用產(chǎn)生式化簡規(guī)則,直到不能應(yīng)用化簡為止。
4.根據(jù)權(quán)利要求3所述的日志檢測方法,其特征在于,所述文法壓縮算法為分離樣本后的改進文本壓縮算法LogTranfer,該改進文本壓縮算法LogTranfer的算法流程包括 設(shè)置L為樣本集合,G為產(chǎn)生式集合,G初始化為空,并設(shè)置PO=SO ; 對于每個在樣本集合L中的樣本,設(shè)置Pn=SeqTransform(seq, G),其中,SeqTransform為改進文法壓縮算法SeqTranfer的函數(shù)公式; 若Pn的右邊僅含有一個符號,則拋棄Pn,否則將Pn加入到G中,將Pn的左側(cè)加入到PO的右側(cè)。
5.根據(jù)權(quán)利要求I所述的日志檢測方法,其特征在于,在所述采用預(yù)設(shè)的文法壓縮算法對待檢測日志數(shù)據(jù)和訓(xùn)練集數(shù)據(jù)進行壓縮之前,還包括 選取已知的正常日志組成訓(xùn)練集。
6.一種日志檢測系統(tǒng),其特征在于,包括 壓縮模塊,用于采用預(yù)設(shè)的文法壓縮算法,對待檢測日志數(shù)據(jù)和訓(xùn)練集數(shù)據(jù)進行壓縮; 計算模塊,用于計算所述壓縮模塊壓縮后所得數(shù)據(jù)的信息密度;排序模塊,用于對所述待檢測日志數(shù)據(jù)按照所述計算模塊計算所得的信息密度由大到小進行排列,排列后的前η個日志數(shù)據(jù)為異常數(shù)據(jù),其中,η為預(yù)設(shè)的異常數(shù)據(jù)個數(shù)。
7.根據(jù)權(quán)利要求6所述的日志檢測系統(tǒng),其特征在于,所述文法壓縮算法為基本文法算法BaseTranfer,該基本文法算法BaseTranfer的算法流程包括 將產(chǎn)生式集合G賦空,設(shè)待檢測的日志串為χ,設(shè)置返回結(jié)果集Px為空,其中Px和χ滿足自同態(tài); 從日志串χ中依次彈出各個符號,將彈出符號作為非終結(jié)符添加到返回結(jié)果集Px右側(cè); 在產(chǎn)生式集合G和返回結(jié)果集Px上應(yīng)用產(chǎn)生式化簡規(guī)則,直到不能化簡為止,得到新產(chǎn)生式,并將該新產(chǎn)生式添加到產(chǎn)生式集合G中。
8.根據(jù)權(quán)利要求6所述的日志檢測系統(tǒng),其特征在于,所述文法壓縮算法為加入貪婪匹配后的改進文法壓縮算法SeqTranfer,該改進文法壓縮算法SeqTranfer的算法流程包括 將產(chǎn)生式集合G賦空,設(shè)待檢測的日志串為χ ; 日志串χ非空時,掃描產(chǎn)生式集合G中的每一個產(chǎn)生式ρ,設(shè)置V為產(chǎn)生式ρ的左邊, 若以V為輸入的自同態(tài)是日志串χ的前綴,將V加入到集合M中; 若M非空,設(shè)置Vm為M中最大的V,將Vm追加到ρ的右側(cè),從日志串χ中彈出f (V)個符號,若M為空則從日志串χ中彈出一個符號t,將t作為非終結(jié)符添加到P右側(cè),其中,f (V)即為下式中的f :定義一組自同態(tài){fk :k=0, 1,2,···},則對任何χ, f°G(x) =x, f、(χ) =fe(χ),fke(X);將?添加到產(chǎn)生式集合G中,然后在其上應(yīng)用產(chǎn)生式化簡規(guī)則,直到不能應(yīng)用化簡為止。
9.根據(jù)權(quán)利要求8所述的日志檢測系統(tǒng),其特征在于,所述文法壓縮算法為分離樣本后的改進文本壓縮算法LogTranfer,該改進文本壓縮算法LogTranfer的算法流程包括 設(shè)置L為樣本集合,G為產(chǎn)生式集合,G初始化為空,并設(shè)置PO=SO ; 對于每個在樣本集合L中的樣本,設(shè)置Pn=SeqTransform(seq, G),其中,SeqTransform為改進文法壓縮算法SeqTranfer的函數(shù)公式; 若Pn的右邊僅含有一個符號,則拋棄Pn,否則將Pn加入到G中,將Pn的左側(cè)加入到PO的右側(cè)。
10.根據(jù)權(quán)利要求6所述的日志檢測系統(tǒng),其特征在于,還包括 訓(xùn)練模塊,用于選取已知的正常日志組成訓(xùn)練集,傳送給所述壓縮模塊。
全文摘要
本發(fā)明涉及一種日志檢測方法及系統(tǒng)。日志檢測方法包括采用預(yù)設(shè)的文法壓縮算法,對待檢測日志數(shù)據(jù)和訓(xùn)練集數(shù)據(jù)進行壓縮;計算壓縮后所得數(shù)據(jù)的信息密度;對所述待檢測日志數(shù)據(jù)按照所述信息密度由大到小進行排列,排列后的前n個日志數(shù)據(jù)為異常數(shù)據(jù),其中,n為預(yù)設(shè)的異常數(shù)據(jù)個數(shù)。本發(fā)明的日志檢測方法及系統(tǒng),將文法壓縮引入到日志檢測中,避免了通用壓縮帶來的各種問題。并且,本發(fā)明利用日志數(shù)據(jù)連續(xù)性的特點,使用信息密度來判定日志有沒有出現(xiàn)異常,不僅可以避免傳統(tǒng)的統(tǒng)計和馬爾可夫方法帶來的缺陷,而且不需要設(shè)置復(fù)雜的參數(shù),簡單有效,且預(yù)測準確。
文檔編號H03M7/30GK102831020SQ20121026287
公開日2012年12月19日 申請日期2012年7月26日 優(yōu)先權(quán)日2012年7月26日
發(fā)明者王楠, 周薇, 韓冀中 申請人:中國科學(xué)院信息工程研究所