羅文華,張 艷
(中國刑事警察學(xué)院 網(wǎng)絡(luò)犯罪偵查系,沈陽 110035)
檢測數(shù)據(jù)集中的異常是一項至關(guān)重要的任務(wù),在安全、財務(wù)、司法等領(lǐng)域具有高影響力的應(yīng)用.傳統(tǒng)入侵行為檢測的目的在于及時發(fā)現(xiàn)網(wǎng)絡(luò)或系統(tǒng)中存在的違反安全策略的行為和被攻擊的跡象,以便積極主動地進行安全防護.基于此類目的的入侵檢測技術(shù)更加側(cè)重于實踐通用性,強調(diào)利用模式特征通過統(tǒng)計分析、數(shù)據(jù)挖掘、機器學(xué)習(xí)等方法予以實現(xiàn)[1],通常并不針對特定類型的主機及網(wǎng)絡(luò)日志進行深入剖析.信息技術(shù)的飛速發(fā)展催生了層出不窮的新型犯罪,隨著涉網(wǎng)犯罪案件的逐年增多,很多情況下需要將行為痕跡轉(zhuǎn)化為電子證據(jù).傳統(tǒng)檢測技術(shù)難以在發(fā)現(xiàn)入侵跡象的同時,精準(zhǔn)定位嫌疑人的犯罪行為,無法完整重現(xiàn)犯罪過程并構(gòu)建證據(jù)鏈條,在日漸增多的司法應(yīng)用需求面前顯得力不從心.因此,將數(shù)據(jù)集的內(nèi)容特征與語義情境納入證據(jù)考量范疇就顯得尤為必要.
聚類分析是常用的異常檢測方法,其實質(zhì)是把整體數(shù)據(jù)集按照特定規(guī)則劃分為若干數(shù)據(jù)子集,劃分于同一子集中的數(shù)據(jù)擁有更多的相似性.以典型聚類算法K-Means為例,該算法首先會選定k作為最終確定的簇數(shù)目,先是隨機生成K個簇并選定各簇中心,之后將節(jié)點分配給離其最“近”的簇中心,通過迭代完善簇中心及簇中的節(jié)點,最終實現(xiàn)理想的分類效果.該算法的優(yōu)勢在于實現(xiàn)簡單,并在處理大規(guī)模數(shù)據(jù)時展現(xiàn)出較高效率,成為目前應(yīng)用最為廣泛的聚類算法之一[2].但也存在諸多缺陷,如K值需事先給定,但實踐中卻難以估計.另外,中心的選擇是隨機的,處理結(jié)果可能每次并不完全相同,確定最佳處理結(jié)果由此成為難題.K-Means過于注重針對節(jié)點進行考慮,卻忽略了對圖形自身屬性(如權(quán)重與規(guī)模)的考量,特別是在不同類別間不存在確切邊界的情況下,K-Means之類的算法無法取得理想的聚類效果.
MajorClust是1999年由Benno Stein與Oliver Niggemann發(fā)明的基于密度的聚類算法[3],目前已發(fā)展成為無監(jiān)督文檔聚類中最有前途和最成功的算法之一.MajorClust能夠自動地對數(shù)據(jù)進行分類,不必像K-Means算法那樣事先給定簇的數(shù)目,而是通過計算簇間節(jié)點的聯(lián)結(jié)度,進而改變簇的形狀以提升聚類效率.該算法根據(jù)“最大吸引制勝”原則,以邊權(quán)重為量度將節(jié)點迭代傳到簇中.首先初始集中的每個點會被分配到其原始所屬的簇中;在重新標(biāo)記步驟中,在其“鄰居的加權(quán)和最大值”范圍內(nèi)的節(jié)點使用相同的簇標(biāo)簽;如果存在多個滿足條件的簇,則隨機選擇其中一個;直到?jīng)]有節(jié)點再需要改變其簇成員資格,算法結(jié)束.其在聚類推導(dǎo)過程中,由于只考慮節(jié)點的鄰居,從而擁有了良好的運行時效率.
MajorClust也并非十全十美,由于其總是忽略諸如連通性之類的全局準(zhǔn)則,因此并不能保證總是找到最優(yōu)解.特別是應(yīng)用于行為證據(jù)發(fā)現(xiàn)時,單次MajorClust的處理結(jié)果顯得較為粗糙,對于異常行為抽象出的規(guī)律不夠明顯,也無法快速準(zhǔn)確定位核心關(guān)鍵節(jié)點.但MajorClust側(cè)重于對圖形自身屬性進行考量的特性卻為進行行為檢測提供了嶄新的思路.為此特意對原有的MajorClust算法進行了改進,實驗結(jié)果表明改進后的算法不僅能夠檢測數(shù)據(jù)對象中是否有異常行為的存在,同時還可以實現(xiàn)關(guān)鍵異常點的準(zhǔn)確定位,從而滿足更為深入具體的司法取證需求.
Hudan Studiawan、Christian Payne等人改進了Majorcluter[4]:通過使用改進的Marjorcluter來實現(xiàn)聚類,并對聚類結(jié)果中的每個簇計算異常參數(shù),引入閾值來檢測異常,但在判斷入侵行為存在的同時卻無法實現(xiàn)關(guān)鍵行為信息的定位.
本文對Marjorcluter算法進行了進一步改進,著重強調(diào)了如何在異常檢測的同時實現(xiàn)異常行為的定位.本文按如下結(jié)構(gòu)進行組織,除“引言”部分外,在第1節(jié)將介紹基于取證需求的數(shù)據(jù)集處理方法與注意事項,并說明了數(shù)據(jù)節(jié)點相似度計算的具體步驟;第2節(jié)重點說明改進MajorClust算法的原因與具體方法;第3節(jié)描述如何通過閾值的設(shè)定進行異常行為的檢測;第4節(jié)依靠找尋簇中心點實現(xiàn)核心證據(jù)的定位;第5節(jié)總結(jié)了本文的主要工作,并提出了未來研究的方向.
與傳統(tǒng)行為檢測強調(diào)功能通用性不同[5],司法取證強調(diào)的是對象針對性,需要結(jié)合具體的格式、內(nèi)容甚至語義特征才能挖掘出真正有價值的信息.數(shù)據(jù)集的深入分析有助于提升聚類乃至異常入侵檢測的準(zhǔn)確性,以Linux操作系統(tǒng)環(huán)境下的用戶認(rèn)證日志auth.log1SecRepo.com: Security Data Samples Repository. URL:http://www.secrepo.com/.為例,其通常包含有日期(date)、時間(time)、進程名稱(process name)與ID(PID)、主機名稱(hostname)以及具體的事件(event)信息,異常入侵行為會在其中(特別是事件信息)表現(xiàn)出較強的特征.表1描述了當(dāng)非法用戶嘗試越權(quán)登陸系統(tǒng)時其操作可能表現(xiàn)出的行為特征.
從表1可以看出事件信息會對行為予以充分描述,提供了更為充分的線索幫助在海量信息中進行行為檢測.同時因為事件信息中有的已經(jīng)包含了日期、事件、用戶名等,因此考慮將數(shù)據(jù)集中每條記錄作為節(jié)點[6],并以節(jié)點中的事件內(nèi)容作為聚類主要依據(jù),進而實現(xiàn)異常行為檢測.
表1 auth.log中的異常行為特征
Table 1 Abnormal behavior characteristics in auth.log
特點說明事件信息示例用戶操作通常具有關(guān)聯(lián)性與順序性嫌疑人嘗試用戶認(rèn)證,系統(tǒng)會記錄連接失敗Invaliduserxxxfromxxxinput_userauth_request:invaliduserxxxReceiveddisconnectfromxxx:ByeBye用戶操作多次重復(fù)且時間連續(xù)嫌疑人會嘗試通過不同的用戶登錄系統(tǒng)Dec2302:41:39ip-172-31-27-153sshd[7463]:InvaliduserPlcmSpIpfrom218.77.121.69Dec2302:41:48ip-172-31-27-153sshd[7465]:Invaliduservyattafrom218.77.121.69Dec2302:41:51ip-172-31-27-153sshd[7467]:Invaliduserubntfrom218.77.121.69服務(wù)器與用戶產(chǎn)生交互用戶多次無效登陸,服務(wù)器會反向檢查地址信息Invaliduserftpuserfrom211.72.198.126reversemappingcheckinggetaddrinfofor211-72-198-126.hinet-ip.hinet.net[211.72.198.126]failed-POSSIBLEBREAK-INATTEMPT!
傳統(tǒng)方式在預(yù)處理時會把字符串中出現(xiàn)的常見詞作為停用詞(Stopword)去掉.實驗發(fā)現(xiàn),基于MajorClust算法的聚類分析[7]受停用詞的影響較大,需要針對特定的日志內(nèi)容選擇其適合的停用詞.圖1所示即為處理auth.log數(shù)據(jù)集時是否將單詞“from”作為停用詞的處理結(jié)果比較.當(dāng)“from”作為停用詞時,數(shù)據(jù)集的處理結(jié)果顯示只形成了一個由數(shù)目眾多的節(jié)點構(gòu)成的聚類(圖1(a));但當(dāng)“from”不作為停用詞時,數(shù)據(jù)集卻形成了兩個類似的聚類(圖1(b)),從而直接影響了后續(xù)的處理分析.因此在確定停用詞時,除傳統(tǒng)選擇外,對于不能認(rèn)定效果的停用詞最好通過實驗驗證后再抉擇.本文所討論的預(yù)處理是將preauth、from、for、port、sshd、ssh、root作為停用詞并連同日期、時間一并去除.日期、時間等雖然信息暫時不在聚類的考慮范疇內(nèi),但在后續(xù)的異常檢測及閥值設(shè)定中會重新綜合曾經(jīng)被忽略的信息.
之后使用TF-IDF算法計算每個節(jié)點的數(shù)字表征.對于特定詞w,其在記錄r中詞頻被定義為該詞在記錄中出現(xiàn)的次數(shù)與該記錄中所有詞出現(xiàn)的總次數(shù)之商,即tfw,r=tf/len(r).常規(guī)的逆文檔頻率定義為數(shù)據(jù)集中的記錄總數(shù)與微調(diào)后包含該詞的記錄數(shù)之商的對數(shù),即idfw=log(N/dfw+1).此處分母之所以需要加1,目的在于規(guī)避特定詞不在語料庫內(nèi)而出現(xiàn)的除數(shù)為0情況.基于收集證據(jù)與線索目的的聚類分析針對的是具體日志內(nèi)容,不會出現(xiàn)特定詞存在于語料庫范圍之外的情況,在此將逆文檔頻率計算進行簡化,即idfw=log(N/dfw).分別計算完tfw,r與idfw之后,再依據(jù)公式TF-IDF=tfw,r*idfw計算每個節(jié)點的表征.
圖1 停用詞的不同造成處理結(jié)果的巨大差異Fig.1 Differences in stop words cause huge differences in processing results
鑒于節(jié)點事件信息中語句長度通常較短,由此采用cos相似度計算方法,依據(jù)節(jié)點表征得到節(jié)點間的相關(guān)系數(shù)[8].之后利用相關(guān)系數(shù)構(gòu)造圖G=
圖2 依據(jù)cos相似度算法計算事件節(jié)點間的相關(guān)系數(shù)Fig.2 Calculating the correlation coefficient between event nodes based on the cos similarity algorithm
傳統(tǒng)的MajorClust算法強調(diào)依靠權(quán)重實現(xiàn)節(jié)點聚合,逐次迭代篩選目標(biāo)數(shù)據(jù)集中擁有最大權(quán)重和的節(jié)點,并將其與直接連接的節(jié)點形成聚類.但這種算法存在一個明顯缺陷就是,擁有最大權(quán)重和的節(jié)點往往可能是因為其個別連接邊的權(quán)重大,強制了其他與該節(jié)點關(guān)聯(lián)并不緊密的節(jié)點被聚類于該節(jié)點,由此對異常檢測的判斷造成嚴(yán)重干擾.為此需要通過提供額外的要求來改進MajorClust算法,即當(dāng)前群集與最重的鄰居節(jié)點不同時,強制節(jié)點跟隨最重的群集.在找尋到權(quán)重和最大的節(jié)點之后,如果存在對權(quán)重和起絕對影響的邊,則將該邊對應(yīng)的節(jié)點單獨聚類,其方程式如下:
(1)
其中s是考慮附加檢查的當(dāng)前簇,h是具有最大邊權(quán)重的鄰居節(jié)點,并且s(h)是h的簇標(biāo)簽,si是第i個簇,s*是具有最大權(quán)重的聚合.通過這樣部署,事件將僅跟隨最相似的事件,而不是跟隨其他那些并不非常相似但卻被強制關(guān)聯(lián)的事件.
經(jīng)初步改進后,節(jié)點間的關(guān)系得到進一步明確,強關(guān)聯(lián)的事件被聚合成簇.但由此卻引發(fā)了另一問題,即聚類后的生成的簇中節(jié)點數(shù)量過少,往往只有2到3個,很難基于這樣的聚類挖掘行為模式.為此針對圖形進一步凝練,將簇抽象為單一節(jié)點,節(jié)點的事件內(nèi)容為原有簇中節(jié)點事件內(nèi)容的最長子句.比如原有簇由三個節(jié)點組成,事件信息分別為“Invalid user admin 221.208.245.210”、“Invalid user admin 187.12.80.202”、“Invalid user admin 122.205.109.208”,則其新抽象出的節(jié)點事件信息即為“Invalid user admin”;之后再對二次生成的圖形依據(jù)第1節(jié)算法做MajorClust處理,進而得到關(guān)于事件關(guān)系的新圖示.抽象的同時要保留原有節(jié)點的屬性信息,以便追溯使用;節(jié)點處理之后即被標(biāo)記,之后便轉(zhuǎn)入其他節(jié)點的處理,從而保證了在有限步驟內(nèi)完成圖形處理.
改進的MajorClust算法完整步驟描述如下:
輸入:日志記錄集L;
輸出:聚類處理之后生成的若干簇;
Step 1.根據(jù)日志記錄集的“事件”域進行去重,只取去重后的“事件”域生成新的記錄集Ln;
Step 2.依據(jù)TF-IDF算法計算數(shù)據(jù)集Ln中每個節(jié)點的數(shù)字表征;
Step 3.根據(jù)節(jié)點的數(shù)字表征計算節(jié)點間的cos相關(guān)系數(shù),并將相關(guān)系數(shù)作為權(quán)重賦值給節(jié)點之間的連接邊;
Step 4.計算每個節(jié)點與其他節(jié)點的連接邊權(quán)重之和,并篩選出擁有最大權(quán)重和的節(jié)點;
Step 5.將該節(jié)點與其最大權(quán)重邊對應(yīng)的節(jié)點聚類,如果存在多條邊的最大權(quán)重相等,則將這些節(jié)點一同聚類;
Step 6.將已完成聚類的節(jié)點從數(shù)據(jù)集Ln中去除,針對剩余的節(jié)點循環(huán)Step4與Step5直至目標(biāo)函數(shù)收斂;
Step 7.生成的每一個聚類都使用一個節(jié)點來替代,節(jié)點的內(nèi)容信息為聚類中“事件”信息的“最長子串”;
Step 8.針對抽象出的節(jié)點使用TF-IDF算法其數(shù)字表征;
Step 9.根據(jù)數(shù)字表征計算節(jié)點間的cos相關(guān)系數(shù),將相關(guān)系數(shù)作為權(quán)重賦值給節(jié)點間的連接邊,生成最終的圖形.
圖3所示即為Security Repository數(shù)據(jù)集中2014年11月30日當(dāng)天的日志記錄最終處理結(jié)果.基于事件信息處理后形成了多個簇,其中節(jié)點數(shù)量最多的簇由含有“invalid user”子串的日志記錄組成,含有“pam_unix(cron:session)”字樣的記錄構(gòu)成的簇中節(jié)點數(shù)量是最少的,只有兩個節(jié)點.關(guān)聯(lián)度高的事件聚類之后,便可通過算法檢測與閾值設(shè)定判別事件中是否存在異常.
圖3 改進的MajorClust算法處理2014年11月30日當(dāng)天日志記錄的最終結(jié)果Fig.3 Improved MajorClust algorithm to process the final results of the log on November 30,2014
聚類時只重點針對事件內(nèi)容信息進行了考察,在確定是否存在異常時則需要將事件的時間間隔、頻度納入考量范疇.有的檢測方法依靠聚類中節(jié)點的數(shù)量推斷是否有異常存在[9],但這種方法能夠適用的現(xiàn)實場景較少,并且未涉及至關(guān)重要的時間因素.異常行為事件組成的簇總是在特定方面體現(xiàn)出與正常行為簇的不同,傳統(tǒng)觀點認(rèn)為異常簇中節(jié)點的數(shù)量一定會小于正常的簇,但實驗發(fā)現(xiàn)并非如此.因此不能單純依靠節(jié)點數(shù)量判斷是否存在異常,節(jié)點數(shù)目過多或過少都有可能是異常行為造成的結(jié)果[10].
為更準(zhǔn)確地進行異常檢測,需要針對兩次MajorClust聚類處理后生成簇的頻率進行深度分析.簇中每個節(jié)點在原始數(shù)據(jù)集中的出現(xiàn)頻度是易得的(即出現(xiàn)次數(shù)之和除以總記錄數(shù)),將簇的頻度μc定義為簇中節(jié)點頻度之和與節(jié)點對應(yīng)事件之和的商,這樣定義的μc在一定程度上表現(xiàn)出該簇整體上的頻度特征.鑒于μc未將時間因素納入考量,由此定義簇的到達(dá)區(qū)間(Inter-arrival)比率Ic為簇中節(jié)點頻度之和與簇的整體時間間隔(即末次事件發(fā)生時間與首次事件發(fā)生時間之差,以秒計)之商.在μc與Ic的基礎(chǔ)上將簇的異常參數(shù)定義為:
(2)
?′=(?-Min?)/(Max?-Min?)
(3)
依照前述計算步驟,針對Security Repository數(shù)據(jù)集中前20天的日志記錄運用改進的MajorClust算法進行了處理,得到當(dāng)日每個簇的異常參數(shù)值.實驗發(fā)現(xiàn),invalid user 、received disconnect from 以及reverse mapping checking getaddrinfo for failed-possible break-in attempt!這三類事件的異常參數(shù)大于其他事件的概率較大;connection closed和pam_unix(cron:session):session for user root這兩類事件的異常參數(shù)通常很小.事實上,這也符合日常經(jīng)驗的認(rèn)知,非法用戶往往通過不斷地連接與登陸嘗試實現(xiàn)系統(tǒng)入侵[11].
表2 異常參數(shù)最高與次高的事件類型及具體參數(shù)值
Table 2 Highest and second highest event type and specific parameter value of the abnormal parameter
日期最高異常參數(shù)次高異常參數(shù)對應(yīng)事件參數(shù)值對應(yīng)事件參數(shù)值November30,2014invaliduser1.0didnotreceiveidentificationstringfrom0.039December1,2014invaliduser1.0receiveddisconnectfrom0.4283December2,2014receiveddisconnectfrom1.0invaliduser0.9587December3,2014invaliduser1.0receiveddisconnectfrom0.8825December4,2014invaliduser1.0receiveddisconnectfrom0.0057December5,2014invaliduser1.0receiveddisconnectfrom0.0077December6,2014receiveddisconnectfrom1.0invaliduser0.5649December7,2014invaliduser1.0reversemappingcheckinggetaddrinfoforfailed-possiblebreak-inattempt!0.8168December8,2014invaliduser1.0didnotreceiveidentificationstringfrom0.0872December9,2014invaliduser1.0receiveddisconnectfrom0.4172December10,2014invaliduser1.0receiveddisconnectfrom0.0350December11,2014invaliduser1.0receiveddisconnectfrom0.3191December12,2014invaliduser1.0receiveddisconnectfrom0.0939December13,2014invaliduser1.0receiveddisconnectfrom0.0563December14,2014receiveddisconnectfrom1.0reversemappingcheckinggetaddrinfoforfailed-possiblebreak-inattempt!0.2707December15,2014receiveddisconnectfrom1.0reversemappingcheckinggetaddrinfoforfailed-possiblebreak-inattempt!0.0021December16,2014invaliduser1.0receiveddisconnectfrom0.1526December17,2014reversemappingcheckinggetaddrinfoforfailed-possiblebreak-inattempt!1.0invaliduser0.2949December18,2014invaliduser1.0receiveddisconnectfrom0.0436December19,2014invaliduser1.0receiveddisconnectfrom0.1752
表2列出了20天記錄中異常參數(shù)最高與次高的事件類型及其對應(yīng)的異常參數(shù)(因為已對異常參數(shù)做了標(biāo)準(zhǔn)化處理,所以最高異常參數(shù)值總為1).從表2可以看出,擁有最高異常參數(shù)的事件多為“invalid user”,之后是“received disconnect from”和“reverse mapping checking getaddrinfo for failed-possible break-in attempt!”;另外,次高的異常參數(shù)變動幅度較大,從0.0021跨越到0.9587.傳統(tǒng)異常檢測只是考量單一事件的異常參數(shù)是否超過預(yù)設(shè)閾值,但事實上異常行為所催生的事件往往是相互關(guān)聯(lián)的,真正有威脅的事件產(chǎn)生時必然會引發(fā)多個事件的.因此綜合考慮多個事件的異常參數(shù)將更有利于提升檢測的準(zhǔn)確度.如果某日的次高異常參數(shù)大于0.5,則該日出現(xiàn)異常入侵行為的概率是極大的.
判斷出存在異常行為之后,需要挖掘出重點異常事件與核心證據(jù)線索.雖然根據(jù)閾值可以推測哪個簇存在異常行為的可能[12],但異常簇往往由多個節(jié)點構(gòu)成,很多情況下節(jié)點數(shù)量會超出人工分析所能承受的范圍.為此需要進一步確定簇的中心點以實現(xiàn)快速準(zhǔn)確定位關(guān)鍵證據(jù)或線索的目的[13].選擇三種類型的節(jié)點作為簇中心點的備選,分別是簇中頻率最高的節(jié)點、到達(dá)率最高的節(jié)點以及MajorClust算法核心處理的節(jié)點(即鄰邊權(quán)重之和最大的節(jié)點).在Security Repository數(shù)據(jù)集的30天記錄中共出現(xiàn)了6次次高異常參數(shù)大于0.5的情況,表3梳理出了這6天記錄形成的“invalid user”簇中三種類型節(jié)點的分布情況.
實驗發(fā)現(xiàn),雖然頻率最高的節(jié)點與鄰邊權(quán)重之和最大的節(jié)點(即改進MajorClust算法核心處理節(jié)點)的計算依據(jù)完全不同,但算出的節(jié)點指向卻出現(xiàn)了重合,由此可以把此類節(jié)點當(dāng)作簇的中心點予以著重關(guān)注.在改進MajorClust算法進行處理時已經(jīng)保留了鄰邊權(quán)重之和最大的節(jié)點信息,因此無需再另行計算頻率最高的節(jié)點,即可實現(xiàn)關(guān)鍵證據(jù)的定位.
表3 三種類型節(jié)點在“invalid user”簇中的分布情況
Table 3 Distribution of three types of nodes in the "invalid user" cluster
日期頻率最高達(dá)到率最高鄰邊權(quán)重之和最大December 2,2014input_userauth_request:invalidusertest[preauth]invalidusernagiosfrom218.25.17.234input_userauth_request:invaliduseruser[preauth]December 3,2014input_userauth_request:invaliduseradmin[preauth]input_userauth_request:invaliduseradmin[preauth]input_userauth_request:invaliduseradmin[preauth]December 6,2014input_userauth_request:invalidusertest[preauth]invalidusertestfrom61.197.203.243input_userauth_request:invalidusertest[preauth]December 7,2014input_userauth_request:invaliduseradmin[preauth]input_userauth_request:invaliduserftp_user[preauth]input_userauth_request:invaliduseradmin[preauth]December20,2014input_userauth_request:invaliduseradmin[preauth]invaliduserxbmcfrom211.25.49.250input_userauth_request:invaliduseradmin[preauth]December21,2014input_userauth_request:invaliduseradmin[preauth]input_userauth_request:invaliduserpostgres[preauth]input_userauth_request:invaliduseradmin[preauth]
表4 異常參數(shù)最高與異常參數(shù)次高簇的核心節(jié)點的信息相互印證
Table 4 Information of the cluster core node with the highest abnormal parameter and the second highest abnormal parameter is mutually confirmed
異常參數(shù)最高與異常參數(shù)次高簇的核心節(jié)點還可以實現(xiàn)相互印證關(guān)系,如在invalid user簇中確定出的具體用戶名信息也會體現(xiàn)在其他簇的核心節(jié)點中,同時其他記錄內(nèi)容的獨立性還會輔助提供IP等重要信息.具體情況如表4所示.
異常行為檢測一旦涉及特定的記錄內(nèi)容分析挖掘,勢必會增添大量的額外工作量[14],以至于目前并未得到廣泛的現(xiàn)實應(yīng)用.但本文的實驗結(jié)果充分說明在面向司法應(yīng)用的取證分析中,針對內(nèi)容與語境的分析至關(guān)重要,有助于快速準(zhǔn)確地定位關(guān)鍵證據(jù)或線索.傳統(tǒng)步驟往往是在探測到異常行為之后,再針對可疑數(shù)據(jù)集進行深度分析,以發(fā)現(xiàn)核心異常點.使用改進后的MajorClust算法不僅可以判斷出異常行為是否存在,并在處理過程中能夠自動篩選出最核心的證據(jù)與線索,以滿足司法應(yīng)用需求.在關(guān)聯(lián)度計算的基礎(chǔ)上,經(jīng)過兩次MajorClust算法處理更精準(zhǔn)地挖掘出了記錄間的關(guān)系,綜合多個簇的異常參數(shù)實現(xiàn)了異常行為的檢測,并通過簇核心點的定位,在海量記錄中挖掘出最有價值的信息.同時,本論文提出的方法并沒有沿襲傳統(tǒng)的以單一異常參數(shù)進行判定的思路,而是基于異常行為之間的關(guān)聯(lián)特性連帶次高異常參數(shù)予以綜合判斷,進一步提升了檢測結(jié)果的可信度.
本論文雖然以Auth日志為處理分析對象,但所描述的方法也適用于多種操作系統(tǒng)環(huán)境下的其他類型日志.論文實驗則主要依托自編的Python腳本實現(xiàn),使用了Python自帶的函數(shù)及插件功能[15].處理時間主要消耗在計算事件記錄相似度、第一次MajorClust抽象、基于“最長子句”生成新節(jié)點、第二次MajorClust抽象等四個步驟.實驗證明這些步驟的計算時長與數(shù)據(jù)增長呈線性關(guān)系,其中“第一次MajorClust抽象”這個環(huán)節(jié)最為耗時,在Intel Core I7-6500U及8GB RAM的硬件條件下處理10萬條以上的記錄消耗時間需要以小時計,未來需要進一步完善數(shù)據(jù)結(jié)構(gòu)與優(yōu)化算法,以提升處理效率.