999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

多節點系統異常日志流量模式檢測方法?

2020-01-02 03:46:04王曉東趙一寧肖海力遲學斌王小寧
軟件學報 2020年10期
關鍵詞:檢測

王曉東,趙一寧,肖海力,遲學斌,王小寧

1(中國科學院 計算機網絡信息中心,北京 100190)

2(中國科學院大學,北京 100049)

系統日志是由Linux 系統syslog 服務產生的日志,用于記錄系統中發生的各類事件信息,在大規模系統中具有很重要的意義.中國國家高性能計算環境是由國內眾多超算中心和高校的計算集群組成的國家級大型高性能計算環境,采用中國科學院計算機網絡信息中心自主研發的網格環境中間件SCE[1]聚合了大量的通用計算資源,為全國眾多高校和研究機構的用戶提供了優質的計算服務.由于環境的系統中存在種類繁多的應用和服務,使得每個節點都會產生大量的系統日志,這使得最終的日志文件變得極為龐大,直接采用人工的方法處理這些日志顯然是一項不可能的任務.而這些日志中往往包括各種異常現象的信息,為了從大量的日志中提取出這些異常的流量信息,我們需要使用一些異常檢測方法對其進行分析.

傳統的流量異常檢測方法基于簽名,這種方法有一個顯著的局限性,它們的本質是利用以前出現過的攻擊來過濾發現異常,即它們無法檢測出可能會出現的新異常.此外,即使一個新的攻擊被檢測到了,對應的簽名也得到了開發,但是該簽名在網絡上的部署通常會有延遲.這些限制使得基于機器學習的入侵檢測技術越來越受到關注.基于機器學習的檢測技術主要分為兩大類:誤用檢測和異常檢測[2].誤用檢測屬于機器學習中的有監督算法,這種算法在使用時需要將所有訓練樣本標記為“正常”和“異常”,然后通過輸入這些有標簽的數據進行學習訓練,更新模型參數.當新的流量特征輸入時,就可以通過學習到的模型預測對應時刻的流量為“正常”還是“異常”.誤用檢測的主要優點是在檢測已知類型的異常時具有很高的精度,但其缺點是無法檢測未知的流量異常.而異常檢測在使用時不需要提前得到數據的標簽類型,屬于無監督學習算法.其主要思想是:根據已知的大量數據進行模型建立,然后自動地從這些數據中找到偏離數據中心的少量數據作為潛在可能的異常.因此,此類異常檢測技術可以自動地識別任何新的異常,但其缺點是可能出現誤判的情況,即將正常的流量標記為異常.高性能計算環境中,多節點產生的日志復雜,內容豐富,迭代性強,因此使用無監督學習算法較為合適.

Vaarandi[3]提出了一個輕量級的、開源的、與平臺無關的基于規則的事件相關的工具,稱為SEC(簡單事件相關器),并在文獻[4,5]中描述了它的應用經驗.該工具的主要思想是:通過寫配置文件對日志中的不同日志類型進行匹配,然后通過匹配的類型出現順序來進行模式判定.比如匹配出一條端口掃描的日志,隨后匹配出一條防火墻生成的拒絕日志,則代表有人企圖訪問一臺主機的一種流量異常.因此,不同類型的日志按照一定順序出現,可能代表一種異常的流量模式.其不足之處是:所有配置文件都必須自己完成,對于不同的日志系統都需要修改配置文件.

本文在對日志進行分析時,首先自動地將日志分類,然后通過無監督異常檢測方法得到異常日志類型的序列,并將這些序列所代表的異常日志流量模式進行聚類,最后分析結果并得出結論.本文的整體流程除了設定少量閾值外,得到異常日志流量模式的過程全自動化進行,這樣使得系統管理員對系統日志流量的監控變得簡單.

本文第1 節介紹相關研究內容.第2 節描述系統日志前期的分類研究和后續討論中使用的數學符號.第3節對整體方法進行描述.第4 節設置實驗并對實驗結果進行分析.最后在第5 節進行總結和展望.

1 相關研究

本節簡單討論一下日志模式分類、日志后驗分析以及日志類型序列度量的相關研究.

(1)日志模式分類

Vaarandi[6]對于日志文件數據展示了一種創新的聚類算法SLCT,該聚類算法基于Apriori 頻繁項集,需要使用者提供支持閾值作為輸入.這個支持閾值既要控制這些算法的輸出,同時也是其內部實現機理的基礎.之后,他又在文獻[7]中改進了日志的聚類算法,得到名為LogHound 的算法.這一算法是一種基于廣度優先搜索的頻繁項集挖掘算法,用于從事件日志中挖掘頻繁模式.該算法結合了廣度優先和深度優先算法的特點,同時考慮了事件日志數據的特殊屬性,因此比SLCT 更接近地反映Apriori 算法.SLCT 和Loghound 兩種算法都將那些不匹配任何頻繁模式的日志分類為離群值.Makanju 等人[8]引入了IPLoM 算法,這是一種用于挖掘事件日志簇的新算法.與SLCT 不同的是,IPLoM 是一種層次聚類算法,它以整個事件日志作為單個分區開始,并在3 個步驟中迭代分割分區.與SLCT 類似,IPLoM 將事件日志行中的位置視為單詞,因此對單詞位置的移位敏感.由于其分層性,IPLoM 不需要支持閾值,而是需要其他一些參數(如分區支持閾值和簇優度閾值),這些參數對分區的劃分進行了細粒度的控制.IPLoM 相對于SLCT 的一個優點是能夠使用通配符尾部(例如Interface * *)來檢測日志行模式,其作者將IPLoM 算法與SLCT 和LogHound 算法進行比較,并得出其效果優于上述兩種聚類算法的結論.此后,Vaarandi 和Pihelgas[9]提出了logcluster 算法,該算法對于文本事件日志進行數據聚類和日志行模式挖掘,并修復現有聚類算法的一些缺點.而本文使用基于字符匹配的分類算法,針對于國家高性能計算環境的系統日志進行分類,代碼壓縮率和后續特征創建都顯示出了不錯的效果.

(2)日志后驗分析

一些學者在分析日志尋找相關異常方面進行了研究,比如,Xu 等人[10]通過源代碼匹配日志的格式找出相關變量,通過詞袋模型提取對應日志變量的特征,然后使用這些特征,通過主成分分析方法降維,根據主成分分析的最大可分性檢測異常的日志文件,最后使用決策樹可視化該結果.Fronza 等人[11]使用隨機索引為代表的操作序列,根據其上下文為每個日志中的操作特征化,然后使用支持向量機關聯序列到故障或無故障的類別上,以此來預測系統故障.Weiss 等人[12]研究了從有標簽特征的事件序列中預測稀少事件的問題,基于遺傳算法的機器學習系統,能夠在預測稀有任務上達到比較好的結果.Yamanishi 和Maruyama[13]提出了一種新的動態系統日志挖掘方法,以更高的置信度檢測故障癥狀,并發現計算機設備間的連續報警模式.Yuan、Mai 和Xiong[14]提出了一個名為Sher-Log 的工具,它利用運行時日志提供的信息來分析源代碼,以推斷在失敗的生產運行期間必須或可能發生的事情.它不需要重新執行程序,也不需要知道日志的語義.它推斷關于執行失敗的控制和數據值信息.Peng、Li 和Ma[15]應用文本挖掘技術將日志文件中的消息分類為常見情況,通過考慮日志消息的時間特性來提高分類的準確性,并利用可視化工具來評估和驗證用于系統管理的有趣的時間模式.Wang[16]也使用機器學習方法對日志進行后驗分析,但是主要突出的是日志線上的可視化展示.本文使用文獻[10]中描述的異常檢測方法,但是輸入的日志類別對應于基于字符匹配生成的分類結果,同時,研究對象為日志類型的有序排列,在得到未知的異常日志流量模式上更有優勢.

(3)日志類型序列度量的研究

日志類型序列的分類問題,實際上可以歸類為字符匹配模式.在字符匹配中,為了判別兩個序列的相似度,Hamming[17]在對兩個字符串之間進行比較時使用了最直接的一對一匹配法,以兩個序列匹配的字符數目作為兩個序列之間的相似度衡量指標.Damerau 和Levenshtein[18]使用兩個序列之間的最小操作數(包括序列的插入、刪除、替換或兩個相鄰字符之間的轉換)作為兩個序列之間的相似度衡量指標.在序列對比方面,Needleman[19]和Smith[20]分別對序列進行全局對比和局部對比,用以得到最符合兩個序列的全局序列和局部序列.本文在選擇日志序列特征時考慮到了字符串序列的特點.根據Seker[21]在字符串匹配算法中對人名字符度量上選擇的方法,即前K個頻繁出現次數的字母項和其對應數量作為識別序列的關鍵要素.將不同類型的日志抽象為不同的字符,根據其特點實現自適應K值的挑選,在日志類型序列的比較上更為適合.

2 背 景

2.1 系統環境日志前期分類研究

日志預處理需要完成的主要任務是如何將日志內容壓縮并分類,這樣做既可以減少數據量,又有利于后續使用相關機器學習算法進行分析.我們在前期工作中,使用了一種基于字符匹配的方法對系統日志的分類問題進行研究,主要方法是根據字符匹配原則對系統日志進行分類[22].日志模式匹配的核心思想是字符一一對應,即:將整體匹配的字符數與總字符數進行比值,并將得到的數值與設定的閾值進行對比,如果結果超過設定的閾值,則將這兩行日志定義為一類[22].

我們在對日志類型進行字符對比分類時,為了減少分類的模式,在字符匹配時引入了最長公共子序列的概念[23],這樣使得計算時得到的匹配模式大量減少.得到分類結果后,可以驗證日志的壓縮率達到99%以上.

2.2 后續內容中基本符號解釋

后續系統設計和分析時,我們為了簡化討論,將定義一些數學符號,具體解釋見表1.

Table 1 Mathematical notation and interpretation表1 數學符號與解釋

3 方法結構

為了適應高性能計算環境下出現的流量異常檢測問題,我們根據系統中產生的日志特性,選擇適當的預處理和無監督機器學習算法來對系統日志的分析過程進行整體的構建與規劃,設計出一種異常流量模式檢測的方法,該方法的結構主要包含3 部分:預處理模塊、異常處理模塊、分類模塊.各部分的功能簡述如下.

(1)預處理模塊:根據日志匹配算法對輸入的大量日志進行分類,輸出日志類別文件;

(2)異常處理模塊:根據輸入的待分析日志以及上一步得到的日志類別文件,使用基于主成分分析的異常檢測方法,得出異常的時間片內不同節點的異常類型序列;

(3)分類模塊:根據輸入的大量異常類別序列,使用基于最長公共子序列的距離度量進行層次聚類,得出不同的異常日志流量模式.

根據各個功能的作用,我們得到日志整體結構圖,如圖1 所示.

Fig.1 Flow chart of log overall structure圖1 日志整體結構流程圖

3.1 預處理模塊

異常流量模式檢測方法進行預處理的目的是將日志類型記錄在本地的日志類型倉庫中,以便后期分析.日志類型提取的具體方法[23]是讀取一行日志,并與日志倉庫中的日志類型逐一進行比較.設該條日志l包含n個單詞,日志倉庫中取出的待比較日志類型l′包含m個單詞,則定義l與l′的相似度為

其中,|LCS(l,l′)|表示l與l′的最長公共子序列的單詞數量.計算出S(l,l′)后,即可將該值和預定義閾值t(0<t<1)進行比較:如果結果小于該閾值,則將該類型加入到日志類型倉庫中;否則,讀取下一條日志進行比較.其處理流程如圖2 所示.

Fig.2 Flow chart of preprocessing module圖2 預處理模塊流程圖

需要指出的是:預處理模塊分析的對象是所有待分析的系統日志,并根據這些日志進行模式匹配,得到不同的日志類型,然后根據這些日志類型建立日志倉庫.其目的是化簡日志類型的維度,本身并沒有過濾掉任何待分析的日志.在后續進行實際流量分析時,可以將每個時間片內出現的日志與日志倉庫中的日志類型進行對比,抽象出不同類型的日志在對應時間片內出現次數的一個向量,以利于使用相關機器學習算法進行分析.

3.2 異常處理模塊

日志的異常處理輸入需要用到上一小節得到的日志類型.我們首先根據日志倉庫中不同日志的類型生成日志類別文件,然后基于該日志類別文件,將需要具體分析的日志文件進行特征創建,得到日志時間片向量,之后根據待分析日志的格式特點將日志文件的每一行數據按照數據表的格式存儲,得到結構化的日志數據,最后將上述得到的3 個文件加載,并使用無監督異常檢測方法進行分析,即可得到對應具有異常流量特征的時間片.具體實現方法如下.

(1)特征創建

我們首先在內存中加載待分析日志,然后根據日志的時間計算出時間戳,在得到時間戳后,即可根據時間戳的大小將日志按時間順序進行排序,并根據實際情況把日志按照給定的時間片進行拆分,每一個時間片可以作為一個樣本的輸入向量.該向量的每一個維度代表一種類型的日志,而其對應的數值等于該類型在當前時間片段內出現的次數.例如:如果取時間片為5 分鐘,并且假設在t1時間片內得到的日志可見表2.

Table 2 Log in t1 time slice表2 t1 時間片內得到的日志

根據該時間片內不同類型日志出現的次數,可以得到的樣本輸入向量見表3 中的t1行.

Table 3 Log type’s vector of time slice表3 時間片日志類型向量

表3 代表待處理日志經分析后得到的輸入矩陣,其中,n代表預處理模塊中使用日志模式匹配得到的日志類型數量,m代表待分析日志按照固定時間片分割的時間片個數.假設待分析日志的總時間跨度為T,則可得到.根據上述方法即可將待分析日志轉換為m行、n列的數據矩陣,該矩陣每行代表一個樣本數據,每列代表一個樣本的特征段位.

(2)基于主成分分析的流量異常檢測

主成分分析是一種常用的機器學習算法,該算法在推導過程中使用了最近重構性原理,即:將高維的數據映射到低維空間中,使得每個高維空間中的數據映射到低維空間后的距離之和達到最小.這樣做使得原始數據投影到低維空間時的距離最小,所以當找到這個最近重構的低維空間后,計算出原空間樣本點到低維空間的距離,該距離即可以作為異常與否的度量標準.即:該距離越大,原來數據更可能是異常數據.該方法的具體實現步驟如下.

步驟1 將m行n列的數據矩陣A輸入,將所有數據中心化得到矩陣B.

步驟2 解得BTB的特征值λi(i=0,1,…,n).注意:這里需要自己選擇降維后的方差比重,這里我們選擇90%為方差比重.帶入計算使得>90%.

步驟3 將得到數值最高的k個特征向量V1,V2,…,Vk組成矩陣P=[V1,V2,…,Vk],計算該矩陣的正交投影矩陣為VP=P(PTP)-1PT=PPT.

步驟4 如果原來的向量為y,則該向量到其映射的子空間的歐幾里德距離可以通過計算平方預測誤差SPE=||ya||2得到.注意:其中,ya是y到異常子空間sa上的投影,并且可以通過式子ya=(I-VP)y=(I-PPT)y計算得到.

步驟5 根據上述算法計算出每一個點到子空間的距離,將其與檢測閾值Qα進行比較:如果SPE=||ya||>Qα,則標記y是異常的.其中,Qα表示在(1-α)置信水平下SPE 殘差函數的閾值統計量.基于主成分分析檢測的方法來源于文獻[10],其檢測的異常數值Qα可用如下公式得到[24]:

公式中的λj代表樣本數據協方差矩陣第j個主成分投影在子空間的特征值.Cα表示標準正態分布的1-α百分位數.

上述方法進行異常檢測的基本原理是:系統在產生不同類型的日志時,在正常情況下,各個類型日志出現的比例趨于穩定.如果各個類型日志在某些時間段內出現大量的比例失衡的情況,則很有可能在這個時間片內有異常的情況發生,則這些時間片段需要重點關注和分析.

3.3 分類模塊

日志異常模式是由不同類型的日志有序連接而成的.單個節點的異常日志流量模式可定義為日志類型的有序排列.單獨一種日志類型的出現并不能說明什么問題,比如單獨出現一次T7(認證失敗)類型的日志,可能是由于用戶不小心密碼輸入錯誤引起的.但是如果在一定的時間片內,同一個主機頻繁出現T7(認證失敗)類型日志、T11(密碼錯誤)類型日志、T3(連接斷開)類型日志,則說明該類型序列可能是一種暴力破解登錄的嘗試.因此,異常模式提取的思想就是在異常時間片內找到同一個主機產生的日志類型的關聯規則,然后得到異常日志流量模式.

(1)異常流量篩選

將日志時間片向量帶入上一小節中介紹的方法,即可得到日志流量中對應的異常時間片.我們統計出正常、異常時間片中不同類型日志出現數量的分布,計算出其對應正常、異常日志和出現數量的中位數來進行后續比較.根據比較的差值來得出正常、異常時間片主要差異的日志類型.

為了將時間片內所有的日志類型序列得到,我們單獨將每個異常時間片進行抽離.對于每個單獨的異常時間片,根據不同節點將對應的日志類型序列記錄下來.比如某個時間片內出現了異常,我們將時間片內的全部日志提取出來,根據這些日志數據得到所有節點名,之后根據節點名單獨挑選出每個節點在對應時間片內的所有日志類型,組成一個日志類型序列.這些序列中有許多并非異常流量的數據,因此我們根據兩個規則進行異常類型序列的篩選,具體規則如下.

A 該主機日志數量超過給定閾值HTN(host threshold number);

B 該主機日志的類型包含前面檢測出的主要差異的日志類型.

選擇機制A 的主要原因是:如果時間片內出現的日志數量比較少,則說明該節點并沒有發生流量異常現象,因此可以不予考慮.選擇機制B 的主要原因是,根據正常異常類型分布得到的是最能區別出正常與異常的日志類型.

例如:檢測出的某一個異常時間片內出現的日志見表2,則根據節點名得到3 個不同的日志類型序列:Node1產生的序列S1=T1,T3,T1,Node2 產生的序列S2=T0,T2,T1,Node3 產生的序列S3=T3,T1.假如設定的閾值為HTN=2,根據中位數得到的異常比正常多的日志類型為T3,則根據過濾規則A 將會把S3過濾掉,根據過濾規則B 將會把S2過濾掉,這樣過濾后留下的日志類型序列是S1.

使用這兩種過濾機制篩選后,依然可以得到大量的異常流量類型序列.其中,各個序列之間有大量重復的流量序列特征,因此需要對這些日志類型序列進行模式分類,建立異常日志流量模式庫.

(2)基于最長公共子序列距離度量的層次聚類方法進行異常流量分類

層次聚類法是一種基于距離度量的聚類算法,其特點是可以根據距離閾值的變化得到原始數據的分類數目,因其顯示效果和解釋效果好,而在機器學習中非常常用.我們使用基于最長公共子序列的相似度算法對兩個日志類型序列計算距離,然后將上一小節得到的大量異常流量類型序列進行層次聚類.使用最長公共子序列度量兩條日志類型序列,是因為日志類型的有序排列可以決定一個節點的異常日志流量模式.在實際運算時,我們認為最長公共子序列匹配的日志類型數目越大,則代表兩條日志序列匹配的效果越好.為了使得兩個類型序列的相似度越高,距離越近,我們以如下方法定義兩條日志類型序列的距離.

設兩個待比較日志類型的序列為S1和S2,通過最長公共子序列得到匹配的類型序列為S,則距離計算公式為

例如,有兩條日志類型序列分別是S1=T7,T11,T7,T11,T3,T2,T1和S2=T7,T11,T7,T11,T2,則對這兩條日志類型序列進行最長公共子序列比較后的結果見表4.

Table 4 Comparison results of the longest common subsequence表4 最長公共子序列比較結果

可以看出,得到的匹配序列為S=T7,T11,T7,T11,T2.根據上述公式,我們可以得到當前變量:|S1|=7,|S2|=5,|S|=5,則計算得到這兩個序列之間的距離為.

3.4 基于自適應K項集的標準進行類別選擇

層次聚類中,我們選擇的距離度量僅能計算出兩條日志類型序列的距離,但無法將任意一個日志類型的序列映射到向量空間,這樣就無法通過求日志類型序列的幾何中心得到中心位置的日志類型序列.因此,我們需要從其他角度來處理這個問題.

日志類型序列可以看成字符串數據.Seker[21]在使用字符串匹配算法匹配人名時,通過選擇人名中前K個頻繁出現次數的字母項和其對應數量作為識別人名的關鍵要素.我們也可以使用相似的方法來確定日志類型序列的中心位置和單條日志距離其中心位置的距離.即,將同一種異常日志流量模式中所有出現的日志類型數量的平均值作為該異常日志流量模式的中心數量.在尋找最靠近中心數量的日志類型序列時,考慮到日志序列類型較多,數量分布不均勻的特點,因此不適合使用原文中固定K值法對序列進行比較.在實踐中,我們提出一種自適應K值的算法,該算法在計算不同類型日志中心距離時,采用了平均流量的數值進行比較,而對進行比較的類型數目K的選擇采用如下公式:

K=CountIf(AverageNumx>AverageTotalNum×Threshold),x=1,…,n.

AverageNumx代表第x類型日志在該異常日志流量模式中出現次數的平均值,AverageTotalNum代表所有類別日志在該異常日志流量模式中出現的平均值之和,Threshold代表異常百分比閾值.在實際操作時,我們將Threshold取值為.這樣選擇是因為在異常流量篩選時,我們確定的日志數量閾值為HTN,即保證了篩選出來的每條日志異常流量所包含的日志數目大于HTN.因此,設定就保證挑選出的前K個頻繁類型的日志數量至少超過1 條.因為如果一種類型的日志數量低于1 條,則顯然為不頻繁類型.日志數目超過1條證明如下:

在確定K值后,即可根據平均流量計算每條日志模式序列與中心流量之間的距離,第m個日志類型序列與中心之間的距離公式為

其中,AverageNumi代表第i種類型日志在該日志類型序列集合中出現數量的平均值,TypeNummi代表第m個序列中第i種類別日志出現的數量.根據距離公式將所有距離值計算出來后,將所有序列計算的d值中結果最小的序列作為該類型異常流量的特征序列代表.

假設上一小節聚類后得到的m類異常日志流量模式記為{Y1,Y2,…,Ym},第m類異常日志流量模式Ym包含的日志類型序列的集合記為,則自適應最大k項集算法具體步驟如下.

步驟1 讀取第w類日志流量模式的全部日志類型序列集合Yw=;

步驟2 統計Yw包含的所有日志類型{Tw1,Tw2,…,Twt};

步驟4 得到前K種頻繁日志類型∈{Tw1,Tw2,...,Twt},滿足在集合Yw包含的日志類型序列中出現數量的平均值大于閾值AT;

步驟5 根據公式dm=計算所有序列對應的距離{d1,d2,…,dnw};

步驟6 得到最小距離dxw=argmin{d1,d2,…,dnw}對應的序列Sxw即為該異常日志流量模式NMw;

步驟7 返回步驟1 并重復,直至得到所有異常流量模式NM1,NM2,…,NMm.

4 實驗結果與分析評價

本節我們將第3 節介紹的方法用于國家高性能計算環境系統在實際工作中產生的系統日志中.我們選取其系統日志的secure 類別日志作為數據輸入.在日志分類時使用了2017 年7 月~2017 年12 月的日志進行分類,得到了84 種類型的日志.考慮到日志在每天不同的時間段產生的異常日志流量模式的不同,因此我們將日志按照3 個時間段分段,即白天、晚上、深夜(參見表1).我們將時間片跨度設定為5 分鐘,然后按照上一小節介紹的方式得到輸入矩陣并進行測試.

4.1 日志異常檢測和篩選的分析評價

本小節我們使用第3.2 節中介紹的基于主成分分析的異常檢測技術對實驗日志進行檢測,得到各個時間片的Q值并與模型的閾值Qα進行比較,從而得到異常時間片.各個時間片的Q值和閾值Qα如圖3 所示.

Fig.3 Q-value and threshold Qα figure of secure logs圖3 Secure 類型日志的白天模型Q 值和閾值Qα圖

從圖3 可以看出,異常類型時間片均勻地分布在整個日志周期時間片內.根據得到的異常時間片,我們可以統計正、異常時間片內不同類型日志的中位數的差異,經過實驗分析,異常比正常時間片內日志類型的中位數差值為1 進行區分,即可達到很好的過濾效果.通過該差異,我們進行了第1 步過濾.第2 步過濾使用基于數量的過濾,實際過濾時我們取主機閾值數HTN=10 即可達到很好的過濾效果.根據這兩條規則進行篩選后,最后得出的所有異常流量數目見表5.

Table 5 Number of abnormal flow and its filtered表5 異常流量與過濾后的數目

由表5 可以看出:通過我們的異常檢測方法和過濾規則,使得大量的流量片段數據壓縮成少量的日志類型序列,大大降低了后續分析的難度.

4.2 日志層次聚類和關鍵類型挑選的分析評價

本節介紹由上一小節得到的大量異常日志流量序列按照第3.3 節的方法進行層次聚類的相關實驗.使用層次聚類時有兩個關鍵參數需要定義:一是不同數據之間的距離度量方法,二是不同簇之間的距離度量方法.不同數據之間的距離定義我們按照第3.3 節中介紹的距離公式進行計算,而不同簇間距離度量方法具有多種不同的選擇.在實驗中,我們先使用不同簇間距離度量方法進行計算,然后根據結果計算其對應的共表性相關系數(cophenetic correlation coefficient)[25]來進行評價.共表相關系數越大,表明效果越好.我們使用半年secure 類型日志的白天模型進行計算,得到不同的簇間距離計算方法對應的共表相關系數,見表6.

Table 6 Cophenetic correlation coefficient obtained by calculating the distance between different clusters表6 不同簇間距離計算方法得到的共表相關系數

根據表6,我們選擇使用基于平均值距離標準方法進行簇間距離的計算,因為該方法對應的共表相關系數為最大值0.55.最終得到的層次聚類圖如圖4 所示.

Fig.4 Hierarchical clustering of the secure logs’ daytime sequence圖4 Secure 類型日志白天序列的層次聚類圖

通過圖4 可以看出:所有數據在橫坐標為1~3 內大量且迅速地聚集,之后趨于穩定.因此,選擇層次聚類的距離度量的閾值大致在相對較高的位置.在實際計算時,我們選擇的閾值為3.5.使用該值進行層次聚類得到的聚類結果既可以保證類別較少,又可以使得每個小類別的聚集程度比較高.按照該閾值,我們將半年的secure 日志早、晚、夜數據分別進行層次聚類,得到日志流量類型序列.之后使用第3.4 節中所描述的自適應K項集的方法進行類別選擇,得到3 個時間區間內日志異常類型序列的代表.結果得到的前K項類別數量平均值以及對應的K值見表7.其中,距離幾何中心最近的日志異常類型序列比較長,這里就不再羅列.

Table 7 Table of secure logs’ sequence表7 Secure 日志類型序列表

由表7 可以看出,使用半年secure 類別日志產生的類型序列根據白天、晚上和半夜分別生成了5、3、3 類的異常序列.我們將這11 條異常序列繼續進行層次聚類,結果如圖5 所示.根據該圖可以看出:白天的模式代表包含了大部分夜晚和半夜的模式代表,在滿足將所有原本模式代表都分開的前提下,一共可分為7 種異常日志流量模式,見表8.

Fig.5 Hierarchical clustering of type sequences of secure log in day,night,and midnight圖5 Secure 類型日志的白天、晚上和半夜代表類型序列的層次聚類圖

Table 8 Table of sequence type of secure logs表8 Secure 日志序列類型表

我們將找出的6 大類異常日志流量模式NM0、NM1、NM2、NM3、NM4、NM5序列對應的日志類型代表D0、D1、D2、D3、D4、N0的各個類型數量繪制的梯形圖繪制出來,結果如圖6 所示.

Fig.6 Type number trapezoid diagram of secure logs圖6 Secure 型日志的類型數量梯形圖

根據圖示,我們可以分析以下異常流量情景.

· 情景0:流量序列中占據異常最重要比重的日志類型是T11(failed password for invalid user 0000 from〈IP〉 port 〈PORT〉 ssh2)和T7(pam_unix(sshd:auth):authentication failure).該種異常日志流量模式表明,此時間段內可能有人進行暴力破解密碼的行為;

· 情景1:流量序列中占據異常最重要比重的日志類型是T11(同上)和T6(pam_unix(sshd:auth):check pass;user unknown).該種異常日志流量模式表明,此時間段內出現大量登錄的行為,并且檢測通過了,說明系統密碼可能已經被攻破;

· 情景2:流量序列中占據異常最重要比重的日志類型是T7(同上)和T2(pam_unix(sshd:session):session opened/closed for user).該種異常日志流量模式表明時間段內會話數量突然增多;

· 情景3:流量序列中占據異常最重要比重的日志類型是T1(connection closed by 〈IP〉)和T11(failed password for root from 〈IP〉 port 〈port〉 ssh2).該種異常日志流量模式表明,此時間段內可能有人進行暴力破解密碼的行為;

· 情景4:流量序列中占據異常最重要比重的日志類型是T1(同上)和T28(usr1:TTY=pts/0; PWD=〈PATH〉;USER=root; COMMAND=/bin/tail -f/var/log/messages).該種異常日志流量模式表明,該時間段內用戶使用的命令突然增多;

· 情景5:流量序列中占據異常最重要比重的日志類型是T11(同上)和T7(同上).該種異常日志流量模式與情景1 相同,但是出現的數量比情景1 高出很多.

需要指出的是:由該方法得出的日志流量異常模式僅代表由機器輔助分析得出的流量異常情況,并不等同于該時間片內發生了實際的用戶非法行為或系統錯誤.具體是否存在需要處理的異常狀況,仍需要人工判斷.但該方法可以自動縮小異常狀況的觀測范圍,極大地減小了人工處理所需的工作量.

4.3 算法效率方面的分析評價

本小節統計出進行日志異常檢測算法時在早、晚、深夜這3 個不同時間段的不同操作中各個步驟所用的時間,并對結果進行分析與對比.上述討論中,半年的日志數據在不同時間段進行檢測時各個階段所用時間詳見表9.

Table 9 Time spent in each stage of the test in different time periods表9 不同時間段在進行檢測的各個階段所用時間

由表9 我們可以分析得出如下結論.

(1)通過總時間的縱向對比我們可以發現,本文系統在處理白天產生的流量數據所用的時間明顯多于晚上和夜里.這說明從總體來看,白天訪問高性能計算環境的人數較多,進行的操作也較多,因此容易出現異常流量;

(2)通過不同檢測階段的橫向對比我們可以看出,層次聚類步驟消耗的時間較多.因為層次聚類算法本身的時間復雜度是O(n2logn)(這里的n代表待聚類序列的數量),同時,我們選擇的距離度量基于最長公共子序列算法,該算法僅需得到子序列長度,無需構造出最長公共子序列,其時間復雜度是O(mn)(這里的m和n分別代表待比較的兩個序列的長度).根據以上分析我們可以看出,層次聚類模塊處理流量數據時受到待分析日志的數量以及每個流量序列的長度影響較大.對比白天和晚上層次聚類算法的占比也可以看出:當總時間較長時(白天>晚上),層次聚類所用時間的占比也會變大.

需要指出的是:雖然本文介紹的方法在計算時較為費時,但是該方法所進行的異常流量判別可以得到各個異常流量的情景,該步驟屬于異常流量情景數據建模.當建模結束后即可得到各種異常流量情景,此時即可根據新的流量的數字特征與已經得到的異常流量情景進行對比,從而較快速地分析出流量的異常與否以及其所屬的異常流量情景.因此,后續可關注的一個研究方向是,如何將該方法得到的異常檢測模型運用于實時線上的異常流量檢測中.

5 總結和展望

本文介紹了一個無監督異常檢測方法自動挖掘系統日志的異常日志流量模式,該檢測方法可以自動找到系統日志的異常時間段,并統計時間段內不同節點的日志出現序列.本文定義了日志類型序列代表異常日志流量模式,且基于日志類型序列的相似度進行層次聚類.聚類過程中,可以全自動地得到最優參數.聚類結果根據日志類型的平均數量得到易于判斷的異常日志流量模式.我們使用該系統對國家高性能計算環境下半年產生的系統secure 類型日志進行測試,最終得到6 種異常日志流量模式.本文在處理日志分類時,采用的是字符串比較法.所以理論上,只要是ASCII 碼格式的日志都可以自動進行分類,然后即可將單位時間的日志流量抽象成向量進行后續的異常檢測處理.在實際使用中,本方法對于自然語言文本類型的日志適用性更好(該類型日志內容通常為一個英文句子,易于分類),而對于純變量類型的日志適用性相對一般(例如tomcat 的access log).

本文只是針對單一日志異常流量做了一些前期探索工作,未來還有很多值得關注的研究點.今后的工作主要針對以下幾個方面:將該異常模式得出的結果運用在流量的監控和預測上;該方法用于不同種類的日志,通過不同種類日志的關聯關系進行分析,以找到更全面的異常日志流量模式;基于日志類型序列的角度進行更多不同維度的日志分析方法研究,例如日志類型序列的關聯性分析等.

猜你喜歡
檢測
QC 檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
“有理數的乘除法”檢測題
“有理數”檢測題
“角”檢測題
“幾何圖形”檢測題
主站蜘蛛池模板: 欧美日韩精品一区二区在线线| 久久综合色88| 国产综合另类小说色区色噜噜| 欧美午夜视频在线| 日韩激情成人| 乱色熟女综合一区二区| 久青草免费视频| 久久精品亚洲热综合一区二区| 高潮爽到爆的喷水女主播视频 | 日本尹人综合香蕉在线观看| 久草性视频| 免费播放毛片| 国产精品手机视频| 精品福利视频网| 色视频国产| 色综合中文| 免费又黄又爽又猛大片午夜| 99re在线免费视频| 她的性爱视频| 亚洲av色吊丝无码| 亚洲无码高清免费视频亚洲| 视频在线观看一区二区| 欧美激情成人网| 中文字幕无码电影| 国产精品无码制服丝袜| 国产成人精品在线1区| 91国内外精品自在线播放| 国产在线拍偷自揄拍精品| 狠狠色丁香婷婷| 高清不卡毛片| 欧美性色综合网| 四虎影院国产| 天天爽免费视频| 麻豆精品国产自产在线| 在线观看视频一区二区| 正在播放久久| 亚洲天堂网视频| 狠狠操夜夜爽| 亚洲国产精品不卡在线 | 99re视频在线| 久久视精品| 美女内射视频WWW网站午夜| 色妞www精品视频一级下载| 欧美中文字幕一区| 亚洲天堂久久| 四虎国产永久在线观看| 黄色在线不卡| 久久久久免费看成人影片| 天天综合天天综合| 日韩精品毛片| 国产精品第三页在线看| 亚洲中文字幕23页在线| 美美女高清毛片视频免费观看| а∨天堂一区中文字幕| 91人妻在线视频| 色综合天天视频在线观看| AⅤ色综合久久天堂AV色综合| 久久久久国产一区二区| 在线网站18禁| 亚洲V日韩V无码一区二区| 九色视频最新网址| 91综合色区亚洲熟妇p| 午夜欧美在线| 亚洲人成网站在线播放2019| 亚洲第一成人在线| 亚洲欧洲一区二区三区| 欧美精品一区二区三区中文字幕| 久久久噜噜噜| 国产超碰一区二区三区| 亚洲国产欧洲精品路线久久| 婷婷综合亚洲| 91亚洲精选| 久久大香伊蕉在人线观看热2| 无码乱人伦一区二区亚洲一| 欧美综合在线观看| 久久综合干| 欧洲高清无码在线| 四虎永久免费地址| 国产精品亚洲片在线va| 国产精品一区在线观看你懂的| 在线国产91| 日本在线欧美在线|