薛 瑩,金景峰
(1. 陜西警官職業學院,陜西 西安 710021;2. 陸軍裝備部裝備項目管理中心,北京 100072)
異常讀數是與同一數據集中絕大多數讀數偏離的數據,通常與常規數據表現出不同的屬性[1],可由執行錯誤、度量誤差、數據變異等眾多原因造成。異常讀數檢測是在大量數據中提取極少部分數據的操作,但這部分數據能夠提供極高價值,其中包含的信息在網絡入侵檢測[2]、疾病診斷、災害預測、金融欺詐等多種領域中均具有重要作用[3],在新事物、新規律的分析與掌握中也是不容忽視的存在。目前國內外業界學者在異常讀數檢測中投入極大的關注,對異常讀數檢測深入研究十分必要。
張倩倩[4]等人引入孤立度模塊和放大因子優化傳統AP聚類算法,采用優化后的APO算法,放大異常讀數與正常數據之間的差別,完成數據離群點檢測。張忠平[5]等人結合熵權距離和自然鄰居估計網絡讀數的高斯核密度,采用相對距離檢測讀數偏離鄰域的程度,加入相對熵權密度離群因子檢測網絡異常讀數。邱華[6]等人采用極限學習機訓練網絡數據,獲取局部離群因子閾值,應用該閾值聚類處理數據,完成網絡異常讀數檢測。以上方法沒有在檢測異常讀數前對大規模數據加以處理,導致存在準確率和檢測率低、誤判率高、檢測時間長的問題。
為了解決上述方法中存在的問題,提出基于日志信息的大規模網絡異常讀數檢測方法。
由于網絡日志信息大規模、高維度、強時間關聯、非結構化等特性,使其在直接用于網絡異常讀數檢測時存在一定困難,預處理網絡日志信息能夠降低后續檢測難度。
由于網絡日志信息并非統一格式,若單獨分析全部格式,會導致工作量大幅度提升,造成大量時間和資源的浪費,因此引入抽象算法合并不同格式日志信息并提取其中統一的網絡事件,從而提高日志信息的可靠性,減少冗余信息造成的工作量。提取網絡事件需要建立包括對象和時間的提取目標并采用該目標搜尋相關日志信息,抽象化網絡事件。

1)建立事件提取源Q搜尋準則:對于日志信息集合中的任意信息,若該信息同時具有不同記錄時間、源位置和目標位置[7],則認為該信息的結構為一個Q。依據搜尋準則,若成功實現Q的提取,則執行步驟2),反之算法結束;


(1)
其中,t、src和des分別表示Ui和Q對應的時間、源位置和目標位置指標。
3)通過δi和λi計算時間t對應的安全系數SQ如下所示

(2)


(3)
5)根據步驟1)到4),得到新事件,由參數SQ和Lr構成;
6)采用全部構成新事件集合{}。
通過以上方法,將日志信息統一為規范的事件。
由于算法的局限性,對網絡事件提取后,仍有冗余數據存在,因此還需對事件融合處理[8]。設定融合距離,若事件a與事件b之間的距離小于融合距離,則融合事件a與事件b為新事件。事件融合具體流程如下所示:
1)設置計數器a=0、b=1和融合距離φ;
2){}中共包含m個新事件,若m>b,則計算a與b之間距離φ,反之結束計算;
3)若φ<φ,則執行步驟4),若φ≥φ,則執行步驟5);

5)a+1,b+1,返回步驟1)。
通過以上方法融合日志信息中較為相似的網絡事件,減輕后續計算負擔。
在日志信息中存在“維數災難”的問題,解決該問題的必要途徑就是降維[9],從而提高樣本密度,降低信息損失。引入核主成分分析算法對提取融合后的日志信息降維處理[10],用gk表示屬性空間m個數據中的第k個數據,Ψ(gk)和Ψ(gj)分別表示gk和gj在高維空間中映射的像,計算中心化后數據協方差矩陣[11]

(4)
用τ和ξ分別表示H的特征值和特征向量,ck表示gk的數據中心,τ和ξ存在如下關系
τH=ξH
(5)
將另一像Ψ(gi),i∈[1,m]與式(5)作內積,得到

(6)
用ε表示gk和gj的核,Φ表示核矩陣,計算方式如下所示

(7)
常用核函數主要為高斯核函數ε(gk,gj)1和多項式核函數ε(gk,gj)2[12],對應表達式如下所示

(8)
式中,σ為高斯核帶寬,σ>0,r為[1,m]中的整數。根據以上計算,得到日志信息數據在低維空間中的投影,完成數據降維。
為了檢測日志信息的大規模網絡異常讀數,提出結合時空關聯性的分階段計算與過濾異常讀數檢測算法。


(9)


(10)
通過式(10)可以獲取讀數相異程度,設定閾值k,選取式(10)計算結果中前k個讀數建立候選異常讀數集W,具體流程如下所示:
1)在第一個時間區間T1內,利用式(9)分別求解ω、gmin和gmax,通過式(10)計算γ(·)并保存前k個(k (11) 利用式(11)和式(10)分別計算增量和距離,若候選異常讀數集中距離最小值小于γ(·),則采用新讀數替換原候選異常讀數。 存儲讀數并發送至空間鄰居,重復步驟2),直至完成全部時間區間內的讀數計算。 (12) 式中,σ取值越大,則γ(·)所占比例越高,γ′占比越低,μ的主要作用是檢測候選異常讀數點集中某點是否為真正異常讀數,通常σ∈[0,0.5)。 在M個讀數集中,采用μ最大的k個讀數構成局部異常讀數點集。 網絡節點通過網絡拓撲結構傳遞k個局部異常讀數點至sink節點,傳遞采用多跳通信方式,sink節點將全部收到局部異常讀數μ排序,其中最大的k個讀數即為全局異常讀數。 通過以上計算,完成基于日志信息的大規模網絡異常讀數檢測。 為了驗證基于日志信息的大規模網絡異常讀數檢測方法整體有效性,需要對其加以測試。 采用4個不同日志信息集作為實驗數據對比所提方法、文獻[4]方法和文獻[5]方法的大規模網絡異常讀數檢測效果,日志信息數據特征如表1所示: 表1 日志信息數據特征 對日志信息集1、日志信息集2、日志信息集3和日志信息集4展開實驗,以準確率、檢測率、誤報率和檢測時間為指標統計實驗結果對比3種方法的有效性。 用NTP表示異常讀數被正確判定為異常的數量,NTN表示非異常讀數被正確判定為非異常的數量,NFP表示非異常讀數被錯誤判定為異常的數量,NFN表示異常讀數被錯誤判定為非異常的數量,準確率ACC、檢測率DR、誤報率FAR的計算公式如下所示 (13) 統計實驗結果并加以計算,得到準確率、檢測率和誤報率實驗結果如圖1、圖2和圖3所示。 由圖1可以看出,所提方法在4個日志信息集的實驗中,準確率均高于文獻[4]方法和文獻[5]方法,在日志信息集1中準確率最高,達到93%以上,在日志信息集2中為4次實驗最低,但仍保持在88%以上,而文獻[4]方法和文獻[5]方法的準確率大部分在70%到85%之間,僅有文獻[4]方法在日志信息集1中的檢測結果高于90%,可見文獻[4]方法和文獻[5]方法對異常讀數檢測的準確率均低于所提方法,因為所提方法在檢測網絡異常讀數前對大量日志信息提取、融合并降維處理,降低后續異常讀數檢測的復雜度,提高檢測準確率。 圖1 準確率實驗結果 圖2 檢測率實驗結果 由圖2可以看出,對于檢測率而言,所提方法的檢測率均高于88%,最高達到97%左右,文獻[4]方法最高為84%左右,最低未達到60%,文獻[5]方法最高為85%左右,最低在65%左右,兩者檢測率均低于所提方法,說明所提方法對異常讀數檢測具有更高的廣泛性,能夠適用于多類型日志信息。 分析圖3可知,所提方法具有明顯低于文獻[4]方法和文獻[5]方法的誤報率,即所提方法對異常讀數的判定更為準確,有效性更高,有助于提取更準確的異常讀數用于后續數據分析,更適合應用于實際的網絡異常讀數檢測之中。 圖3 誤報率實驗結果 統計三種方法在4個日志信息集中檢測異常讀數所用時間,實驗結果如圖4所示。由圖4可以看出,所提方法在4個日志信息集中的檢測時間均少于文獻[4]方法和文獻[5]方法,即所提方法在相同條件下具有更高的效率,完成同樣工作能夠節省更多的時間,可以有效避免時間和精力的浪費。 圖4 檢測時間實驗結果 在傳統數據預處理中,通常會在處理時舍棄異常讀數,或將異常讀數作為噪聲對其去噪處理,或將其平滑處理,降低其對數據集的影響,但異常讀數并非無意義數據,其中蘊含著重要的信息,異常讀數檢測在數據挖掘中占據重要位置。為了解決目前準確率和檢測率低、誤判率高、檢測時間長的問題,提出基于日志信息的大規模網絡異常讀數檢測方法,預處理原始日志信息,獲取更利于計算的低冗余低維度數據,結合時空關聯性分段檢測大規模網絡異常讀數。該方法能夠有效地提高準確率和檢測率、降低誤報率、節省檢測時間,有助于更好的挖掘網絡異常讀數用于研究之中。




4 實驗與結果
4.1 實驗數據與評價指標


4.2 實驗結果分析




5 結束語