王棟 張?jiān)讫? 唐琨
摘要:本文通過介紹服務(wù)器日志的內(nèi)涵、特點(diǎn)、用途以及當(dāng)前日志分析方式的現(xiàn)狀和存在的問題,分析了常用系統(tǒng)日志分析方法的優(yōu)缺點(diǎn)和存在問題,提出了一種基于KNN算法改進(jìn)型文本挖掘方法,并以此為基礎(chǔ)設(shè)計(jì)了服務(wù)器日志安全預(yù)警系統(tǒng)架構(gòu),為服務(wù)器系統(tǒng)的安全監(jiān)管提供了一種可行的解決方案。
Abstract: This paper introduces the connotation, characteristics, use of server logs, and the current status and problems of current log analysis methods. It analyzes the advantages and disadvantages and existing problems of common system log analysis methods, and proposes an improved text mining method based on KNN, and designs a server log security early warning system architecture is designed based on this, which provides a feasible solution for the security supervision of the server system.
關(guān)鍵詞:服務(wù)器日志;數(shù)據(jù)挖掘;KNN算法
Key words: server log;data mining;KNN algorithm
中圖分類號(hào):TP274? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào):1006-4311(2020)02-0222-02
0? 引言
伴隨著計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)的飛速發(fā)展,人們已經(jīng)進(jìn)入了一個(gè)信息量極為豐富、數(shù)據(jù)量極為海量的大數(shù)據(jù)時(shí)代。然而人們在享受大數(shù)據(jù)帶來的各種便利的同時(shí),信息安全事件也越來越多,如何預(yù)防和阻止安全事件的發(fā)生變得尤其重要。日志用于記錄系統(tǒng)日常運(yùn)行的狀態(tài),檢查發(fā)生錯(cuò)誤、入侵時(shí)的線索,可以有效實(shí)時(shí)的防止安全事件的發(fā)生,因此,利用日志來進(jìn)行系統(tǒng)安全分析是目前計(jì)算機(jī)科學(xué)的一個(gè)重要研究方向。
1? 日志分析現(xiàn)狀
系統(tǒng)日志信息安全審計(jì)想法是由Anderson在1980年提出的,他指出在入侵發(fā)生時(shí),向安全管理員提供已經(jīng)冗余過濾的信息以達(dá)到查找漏洞及相關(guān)責(zé)任人的目的[1]。目前在國際上已經(jīng)有通過基于機(jī)器學(xué)習(xí)能力的數(shù)據(jù)挖掘技術(shù)來進(jìn)行日志分析研究的方式。國內(nèi)在該方面的研究以國家自然科學(xué)基金會(huì)首次支持日志安全審計(jì)的研究為標(biāo)志于上世紀(jì)90年代初期開始,其主要通過高校課題研究而展開。
1.1 日志分析存在的問題? 由于服務(wù)器將所有的系統(tǒng)事件都記錄在日志中,這些事件包括系統(tǒng)異常、登陸注銷、用戶審計(jì)、硬件變動(dòng)、應(yīng)用改變、網(wǎng)絡(luò)狀況、系統(tǒng)更新等,致使日志的數(shù)據(jù)量巨大。系統(tǒng)對日志的存儲(chǔ)時(shí)間依賴于系統(tǒng)存儲(chǔ)劃分空間的大小,且由于日志的權(quán)限歸屬問題導(dǎo)致日志文件內(nèi)容易被修改、保存時(shí)間不確定、誤刪除概率大。系統(tǒng)無法對日志進(jìn)行安全有效的保護(hù)。目前的分析方法只對日志進(jìn)行收集和關(guān)建字或類別的篩選,然后將選出結(jié)果進(jìn)行字面意思的分析。這只是對表面所描述的問題進(jìn)行分析,并且分析方法單一化,缺少整合式的分析,致使日志間隱藏關(guān)系難以發(fā)現(xiàn),出現(xiàn)信息匱乏現(xiàn)象。
1.2 日志數(shù)據(jù)挖掘存在的難點(diǎn)? 服務(wù)器日志將服務(wù)器操作系統(tǒng)中的所有事件都進(jìn)行記錄,如何對這些記錄進(jìn)行合理的利用,得到其內(nèi)在的聯(lián)系和規(guī)律,并為系統(tǒng)的安全、應(yīng)用程序、系統(tǒng)硬件等方面應(yīng)用這些信息是大數(shù)據(jù)時(shí)代數(shù)據(jù)處理技術(shù)的一個(gè)重要研究方向。數(shù)據(jù)挖掘就是從大量的數(shù)據(jù)中發(fā)現(xiàn)隱含的規(guī)律性的內(nèi)容,解決數(shù)據(jù)的應(yīng)用質(zhì)量問題[2]。對服務(wù)器日志數(shù)據(jù)而言,形式上為描述性質(zhì)的文本格式,類別為已知有限的類別,主要的價(jià)值信息存在于文本內(nèi)容當(dāng)中。傳統(tǒng)的數(shù)據(jù)庫多為關(guān)系型類別,其中數(shù)據(jù)結(jié)構(gòu)性規(guī)范,易于計(jì)算機(jī)識(shí)別處理。因服務(wù)器操作系統(tǒng)版本各異導(dǎo)致系統(tǒng)日志結(jié)構(gòu)不同的文本數(shù)據(jù)為非結(jié)構(gòu)化數(shù)據(jù),難以進(jìn)行直接分析。如何處理異構(gòu)的非結(jié)構(gòu)化日志數(shù)據(jù)是日志數(shù)據(jù)挖掘的重點(diǎn)和難點(diǎn)[3]。
2? 數(shù)據(jù)挖掘技術(shù)簡介
數(shù)據(jù)挖掘可以看做信息技術(shù)自然進(jìn)化的結(jié)果。數(shù)據(jù)庫和數(shù)據(jù)管理產(chǎn)業(yè)在一些關(guān)建功能的開發(fā)上不斷推進(jìn),以數(shù)據(jù)收集和數(shù)據(jù)庫創(chuàng)建為基礎(chǔ)傳統(tǒng)的數(shù)據(jù)管理技術(shù)被不斷地研究和應(yīng)用,數(shù)據(jù)存儲(chǔ)、檢索以及查詢和事務(wù)處理的商業(yè)應(yīng)用遍地開花。隨著大數(shù)據(jù)時(shí)代的到來推進(jìn)數(shù)據(jù)處理技術(shù)發(fā)展到新的高級(jí)階段。該階段的數(shù)據(jù)處理技術(shù)不僅可以進(jìn)行傳統(tǒng)意義上對數(shù)據(jù)的查詢檢索,并且能夠從海量雜而無章的數(shù)據(jù)中提取出具有價(jià)值的知識(shí)和信息。今天,在互聯(lián)網(wǎng)、電子商務(wù)、傳媒界、公共事務(wù)管理、醫(yī)學(xué)界等領(lǐng)域,數(shù)據(jù)挖掘技術(shù)已經(jīng)開始扮演重要角色。以數(shù)據(jù)挖掘?yàn)榛A(chǔ)的決策支持、趨勢預(yù)測、網(wǎng)絡(luò)安全預(yù)警、內(nèi)容推薦等技術(shù)正在深刻的影響著人類社會(huì)。數(shù)據(jù)挖掘[4](Data Mining)可以定義為從大量的、不完全的、有噪聲的、模糊的、隨機(jī)的實(shí)際應(yīng)用數(shù)據(jù)中,提取隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識(shí)的過程。
2.1 數(shù)據(jù)挖掘的步驟? 不同于普通的數(shù)據(jù)分析如檢索、篩查和倉儲(chǔ)應(yīng)用,數(shù)據(jù)挖掘是新知識(shí)發(fā)現(xiàn)的一個(gè)過程,即在未知目標(biāo)前提條件下去挖掘未出現(xiàn)過的信息和知識(shí)。因此,數(shù)據(jù)挖掘得到的知識(shí)應(yīng)該是從前未有的、能反映出問題的、可直接使用的有價(jià)值信息。數(shù)據(jù)挖掘的過程類似于在數(shù)據(jù)庫中發(fā)現(xiàn)知識(shí),其步驟如圖1所示。
由圖1中可以看到數(shù)據(jù)挖掘的過程為:首先,對雜亂的無規(guī)律的源數(shù)據(jù)進(jìn)行規(guī)范化處理,將處理后形成的規(guī)格化的數(shù)據(jù)存入數(shù)據(jù)倉庫中;然后,將數(shù)據(jù)倉庫中存留的規(guī)格化的數(shù)據(jù)通過一定的算法進(jìn)行挖掘處理,形成所預(yù)定的模式;最后,對挖掘后的結(jié)果根據(jù)一定的標(biāo)準(zhǔn)進(jìn)行取值篩選,選出符合要求的結(jié)果進(jìn)而表達(dá)成為最終的知識(shí)。其中數(shù)據(jù)清理的工作就是將非結(jié)構(gòu)化的數(shù)據(jù)如文本、音視頻、圖像進(jìn)行提取,形成可以被計(jì)算機(jī)理解和處理的結(jié)構(gòu)化的數(shù)據(jù),而數(shù)據(jù)挖掘工作就是將這些結(jié)構(gòu)化之后的數(shù)據(jù)通過特定的挖掘算法計(jì)算形成特定的模式,評估表示工作既對挖掘結(jié)果進(jìn)行優(yōu)劣的排序選擇出滿足用戶需要的知識(shí)。
2.2 KNN算法介紹及改進(jìn)? KNN算法基于類比學(xué)習(xí),它廣泛用于模式識(shí)別領(lǐng)域。該算法的原理是:在特征空間中,如果待分類元組周圍有K個(gè)最相近(近似)的元組,那么待分類元組的類別就是這些最近似元組中數(shù)量最多的類別,待分類元組和其近鄰元組的遠(yuǎn)近常用歐幾里得距離來計(jì)算。在特征空間中用兩個(gè)點(diǎn)來表示兩個(gè)元組P1=(x1,x2,…,xn)和P2=(y1,y2,…,yn)他們之間的歐幾里得距離為:
而相似度為其倒數(shù):
在實(shí)際應(yīng)用中,除了計(jì)算K近鄰訓(xùn)練元組個(gè)數(shù)最大類別以外還常用一種最相似類方法,該方法將待分類文本的K個(gè)近鄰訓(xùn)練文本相似度計(jì)算出,然后將其劃分到這些最相似訓(xùn)練文本的類別中所用計(jì)算公式為:
在式(3)中sim(d,ti)是待分類元組d和其近鄰元組ti的相似度,f(ti,cj)是一個(gè)二值函數(shù),當(dāng)訓(xùn)練元組ti屬于類別cj時(shí)其值為1,否則其值為0。
2.3 KNN算法的改進(jìn)? KNN算法具有穩(wěn)定性好、分類精度高、實(shí)現(xiàn)建議、調(diào)整速度快等優(yōu)點(diǎn),但其分類受到K值選取影響和訓(xùn)練樣本分布密度較大。在樣本分布不均情況下易出現(xiàn)誤分類狀況。為了減少訓(xùn)練樣本密度對待分類日志文本所造成的誤差可對KNN算法進(jìn)行改造。
算法改進(jìn)思路為:在求出待分類樣本臨近的K個(gè)訓(xùn)練日志文本后,按類別計(jì)算它們之間的相似度,然后除以K得到平均值M,在計(jì)算這個(gè)待分類日志文本和不同類別樣本日志中心的相似度(訓(xùn)練樣本類別中心距離)L,然后求兩者的比例:M/L,值最大的類別即為所求的結(jié)果。
設(shè)Cj為樣本日志類別,d為待分類樣本,tj為待分類樣本周圍的訓(xùn)練日志,sim(d,Sj)為待分類樣本到類別中心的相似度,則L/M可表示為:
改進(jìn)的KNN算法的實(shí)現(xiàn)步驟為:
首先,對日志訓(xùn)練集合中的文本進(jìn)行包括分詞,正規(guī)化在內(nèi)的數(shù)據(jù)清理。其中訓(xùn)練集合中的類別已經(jīng)處理完畢。其次,利用處理完成后的訓(xùn)練集合中的樣本詞匯組成一個(gè)多維度的空間,每個(gè)樣本用該緯度空間的向量表示。第三,讓待分類日志經(jīng)過數(shù)據(jù)清理后,同樣表示為樣本集多維空間中的向量。計(jì)算訓(xùn)練樣本中每個(gè)類別的中心向量。第四,計(jì)算待分類向量和各類別中心向量的距離,計(jì)算待分類樣本和周圍不同類別K個(gè)向量的平均值。第五,將第四步計(jì)算的相同類別的結(jié)果進(jìn)行相除。并將不同類別的計(jì)算結(jié)果進(jìn)行排序,值最大的類別即為待分類樣本的類別。
在服務(wù)器系統(tǒng)日志得到相應(yīng)的類別之后進(jìn)行歸類,并利用專家系統(tǒng)進(jìn)行對比就可以分析出系統(tǒng)的狀態(tài)并進(jìn)行預(yù)警。
3? 服務(wù)器日志挖掘預(yù)警系統(tǒng)的設(shè)計(jì)
利用我們提出的數(shù)據(jù)挖掘方法對日志挖掘預(yù)警系統(tǒng)進(jìn)行設(shè)計(jì)。需要一個(gè)專用的存儲(chǔ)和處理日志文本的服務(wù)器來對源數(shù)據(jù)進(jìn)行收集和清理并將結(jié)果進(jìn)行存儲(chǔ),需要一臺(tái)處理能力較強(qiáng)的服務(wù)器對規(guī)格化的數(shù)據(jù)進(jìn)行多維空間的建立和向量化的表示,然后利用計(jì)算平臺(tái)對向量化后的數(shù)據(jù)進(jìn)行計(jì)算和排序,將結(jié)果提交給一臺(tái)管理計(jì)算機(jī),管理計(jì)算機(jī)根據(jù)收到的數(shù)據(jù)對比專家知識(shí)系統(tǒng)進(jìn)行預(yù)警。系統(tǒng)架構(gòu)如圖2所示。
經(jīng)過實(shí)驗(yàn)部署測試,服務(wù)器日志挖掘預(yù)警系統(tǒng)可以有效的對服務(wù)器群所產(chǎn)生的日志進(jìn)行分析挖掘,根據(jù)具體的日志內(nèi)容進(jìn)行分類對比并對系統(tǒng)出現(xiàn)的故障等狀況進(jìn)行預(yù)警。極大的幫助管理員實(shí)時(shí)掌握服務(wù)器的動(dòng)態(tài)狀況。
4? 結(jié)束語
總之,服務(wù)器日志分析是一種有效的服務(wù)器系統(tǒng)檢測手段,日志分析方法眾多,利用數(shù)據(jù)挖掘技術(shù)對海量的日志進(jìn)行基于內(nèi)容的分析對比可以查找到日志背后所隱藏的系統(tǒng)狀態(tài)。本文所提出的利用基于KNN的改進(jìn)算法所設(shè)計(jì)的服務(wù)器日志挖掘預(yù)警系統(tǒng)可以有效的幫助管理者分析和歸類日志,實(shí)時(shí)的對服務(wù)器群的工作狀態(tài)進(jìn)行掌控。
參考文獻(xiàn):
[1]盧鵬.計(jì)算機(jī)網(wǎng)絡(luò)安全及其防護(hù)策略探析[J].硅谷,2009(12):62-63.
[2]馮綠音.網(wǎng)絡(luò)信息系統(tǒng)日志分析與審計(jì)技術(shù)研究[D].上海:上海交通大學(xué),2007.
[3]李村合.網(wǎng)絡(luò)信息挖掘技術(shù)及其應(yīng)用研究[J].情報(bào)科學(xué),2002,20(11).
[4]毛國君,段立娟,王實(shí),等.數(shù)據(jù)挖掘原理與算法[M].二版.北京:清華大學(xué)出版社,2007.