◆賈王晶
(山西警察學院 山西 030000)
面向網(wǎng)絡(luò)犯罪偵查的日志關(guān)聯(lián)取證技術(shù)研究
◆賈王晶
(山西警察學院 山西 030000)
目前計算機網(wǎng)絡(luò)在人們的工作、生活等方方面面都得到了廣泛的應(yīng)用,但由于網(wǎng)絡(luò)的虛擬性、開放性,以及相關(guān)立法工作的滯后性,利用計算機網(wǎng)絡(luò)為工具的犯罪活動日益增多。計算機取證技術(shù)的目的是對計算機系統(tǒng)和計算機網(wǎng)絡(luò)中發(fā)生的犯罪行為進行取證分析,獲取網(wǎng)絡(luò)犯罪事件的電子證據(jù)。日志取證是計算機取證研究中非常重要的一個研究領(lǐng)域,本文就是在已有日志關(guān)聯(lián)技術(shù)的基礎(chǔ)上,提出能夠應(yīng)用在網(wǎng)絡(luò)犯罪取證中的新的取證方案。
計算機取證技術(shù);犯罪行為;取證分析;電子證據(jù)
計算機取證這門學科,是伴隨著計算機技術(shù)的發(fā)展和網(wǎng)絡(luò)犯罪這一新的犯罪形式出現(xiàn)而出現(xiàn)的。而大量計算機網(wǎng)絡(luò)犯罪的操作痕跡被日志記錄下來,構(gòu)成了發(fā)生在計算機本地系統(tǒng)或者網(wǎng)絡(luò)中的事件的重要審計憑據(jù),為打擊計算機犯罪提供了非常重要的線索和證據(jù)。怎樣充分利用系統(tǒng)日志資源在相關(guān)范圍內(nèi)挖掘?qū)崟r有效的數(shù)據(jù)作為犯罪證據(jù),重新構(gòu)建網(wǎng)絡(luò)犯罪事件的整體流程,追蹤肇事者,是我們在網(wǎng)絡(luò)犯罪取證方面研究的重點方向。[1]
根據(jù)目前的研究成果,基于日志取證的取證分析方法有:
(1)建立日志規(guī)則庫,即通過收集網(wǎng)絡(luò)犯罪的相關(guān)日志知識來構(gòu)成日志知識庫,并利用日志知識尋找犯罪事件相關(guān)的證據(jù)信息;
(2)日志審計方法,即根據(jù)海量的正常用戶的系統(tǒng)日志來定義正常用戶的一般行為模式,然后對當前用戶行為模式與正常歷史用戶行為的偏差進行分析;
(3)機器學習方法,即利用用戶過往日志記錄的信息來學習用戶的正常行為模式,通過使用一些學習算法來分析日志的歷史事件,并預(yù)測用戶的未來行為;
(4)數(shù)據(jù)挖掘方法,即從海量日志數(shù)據(jù)中提取出與相關(guān)案件的數(shù)據(jù)信息,并從具體的數(shù)據(jù)中抽象出有利于進行判斷和比較的特征模型,采用相應(yīng)的數(shù)據(jù)挖掘算法來分析整個證據(jù)文件的性質(zhì)及內(nèi)容。[2]
以上這幾種方法都可以有效地對各自類型的日志數(shù)據(jù)進行取證分析,并得到相關(guān)的分析結(jié)果。但這些結(jié)果相對來說是比較片面的,因為各種日志信息沒有被關(guān)聯(lián)起來,這樣可能會造成某些關(guān)鍵信息的遺漏。在已有的日志關(guān)聯(lián)技術(shù)上做出改進是本文的目的。
將各種系統(tǒng)中的日志以統(tǒng)一格式綜合到一起進行觀察就叫做日志關(guān)聯(lián),而日志關(guān)聯(lián)分析是指對取證所得日志數(shù)據(jù)進行自動、連續(xù)地分析。根據(jù)用戶定義的、可配置的規(guī)則來識別網(wǎng)絡(luò)中的各種證據(jù)文件,從而可以確定事件真實性并進行有效取證。日志關(guān)聯(lián)取證分析與傳統(tǒng)的犯罪調(diào)查取證分析有很大的不同,一般來說傳統(tǒng)的取證分析要從已得的有限的證據(jù)樣本中獲取盡可能多的信息,而日志關(guān)聯(lián)取證分析面臨的是海量的日志數(shù)據(jù),沒有辦法人工逐條分析,需要借助關(guān)聯(lián)規(guī)則自動、連續(xù)的特點,從中篩選出與計算機犯罪相關(guān)的證據(jù)材料。日志關(guān)聯(lián)分析可以用來提高網(wǎng)絡(luò)取證操作的可靠性、效率以及可視化程度,并為證據(jù)數(shù)據(jù)的安全管理和統(tǒng)計分析提供技術(shù)手段。[3]
日志關(guān)聯(lián)分析需要將各系統(tǒng)中的原始數(shù)據(jù)采集起來,然后數(shù)把它們進行集中統(tǒng)一管理,最后根據(jù)我們指定的相關(guān)規(guī)則進行分析,得到相應(yīng)的結(jié)果。[4]
(1)案件相關(guān)日志數(shù)據(jù)的采集及存儲
我們應(yīng)按照以下的方法來采集日志數(shù)據(jù):根據(jù)所找日志文件的內(nèi)容要求來配置采集參數(shù),按照設(shè)定的頻率從各個日志數(shù)據(jù)源采集原始日志數(shù)據(jù),對原始日志數(shù)據(jù)進行一定處理,轉(zhuǎn)換為標準格式;建立安全通道并通過安全通道傳輸數(shù)據(jù),記錄數(shù)據(jù)采集、傳輸?shù)倪^程。
日志數(shù)據(jù)在存儲管理時遇到的主要問題是對于來自不同數(shù)據(jù)源的日志,它們對應(yīng)的系統(tǒng)及應(yīng)用程序各有不同,記錄的數(shù)據(jù)類型也不一樣,因此,需要使用分類存儲的方式。可以將這些采集到的數(shù)據(jù)根據(jù)按照不同的標準(如接收時間、源IP地址、日志類型等)進行分類存儲。除此之外,還要提供專用數(shù)據(jù)庫來記錄關(guān)聯(lián)規(guī)則,以及關(guān)聯(lián)前的日志記錄和關(guān)聯(lián)后的分析結(jié)果。
(2)日志的關(guān)聯(lián)取證分析
面對海量的日志數(shù)據(jù),我們不可能通過人工逐條判讀日志記錄來發(fā)現(xiàn)與事件相關(guān)的證據(jù)信息。目前的趨勢是利用數(shù)據(jù)庫提供的強大的掃描和統(tǒng)計功能來進行取證分析。關(guān)聯(lián)分析可以幫助取證人員構(gòu)建網(wǎng)絡(luò)用戶操作的正常行為規(guī)律;可以對日志記錄進行聚類,利用算法縮小分析的范圍,檢測出與犯罪案件相關(guān)的日志記錄;此外,關(guān)聯(lián)分析還可以對來自多個數(shù)據(jù)源的不同類型的日志數(shù)據(jù)進行聚合、規(guī)范化處理,然后運用各種關(guān)聯(lián)方法從相互獨立的數(shù)據(jù)源中提取相關(guān)信息,用于整體案件的分析與處理。
日志關(guān)聯(lián)取證的關(guān)鍵在于關(guān)聯(lián)規(guī)則的挖掘,關(guān)聯(lián)規(guī)則的目的就是在一個數(shù)據(jù)集中找出項與項之間的關(guān)系,Apriori算法是關(guān)聯(lián)規(guī)則領(lǐng)域中的一項具有代表性的算法。目前大部分的日志關(guān)聯(lián)技術(shù)都是使用Apriori算法來實現(xiàn)日志證據(jù)之間的相互關(guān)聯(lián)的。
Apriori算法的基本思想是:如果某個項集不是頻繁的,那么包含這個項集的項集也不是頻繁的,這個原理可作為減枝的依據(jù)。Apriori算法將發(fā)現(xiàn)關(guān)聯(lián)規(guī)則的過程分為兩個步驟:第一步通過迭代,檢索出事務(wù)數(shù)據(jù)庫中的所有頻繁項集,即支持度不低于用戶設(shè)定的閾值的項集,低于這個次數(shù)的項集就可以減枝減掉;第二步利用頻繁項集構(gòu)造出滿足用戶最小信任度的規(guī)則,先生成1-頻繁項目集,再由1-頻繁項目集生成2-頻繁項目集,依次類推,直到生成所有的頻繁項目集。然后遍歷所有的頻繁項目集,計算該規(guī)則的置信度進行篩選即可。這樣就從頻繁項目集中找出了符合條件的關(guān)聯(lián)規(guī)則。
從整個運算流程看出,使用 Apriori算法尋找關(guān)聯(lián)規(guī)則時,可能產(chǎn)生大量的候選集,而且可能需要多次重復(fù)掃描數(shù)據(jù)庫。
目前的日志關(guān)聯(lián)取證技術(shù)存在著種種缺陷,我們將從Apriori算法、安全信道建立等方面提出幾點改進措施。
Apriori算法多次掃描交易數(shù)據(jù)庫,每次利用候選頻繁集產(chǎn)生頻繁集,算法效率不高。針對Apriori算法的固有缺陷,我們可以使用Fp-growth算法,采用分而治之的策略,在經(jīng)過第一遍掃描之后,把數(shù)據(jù)庫中的頻集壓縮進一棵頻繁模式樹(Fp-Tree),然后再對Fp-Tree進行挖掘。該算法和Apriori算法最大的不同有兩點:第一,不產(chǎn)生候選集;第二,只需要兩次遍歷數(shù)據(jù)庫,大大提高了效率。[5]
Fp-growth算法的工作流程如下:
(1)按以下步驟構(gòu)造Fp-Tree
Step 1:掃描數(shù)據(jù)記錄,生成一級頻繁項集,統(tǒng)計各元素項出現(xiàn)次數(shù),創(chuàng)建頭指針表,并按出現(xiàn)次數(shù)由多到少排序。樹中每條路徑代表一個項集,因為許多項集有公共項,而且出現(xiàn)次數(shù)越多的項越可能是公共項,因此按出現(xiàn)次數(shù)由多到少的順序可以節(jié)省空間,實現(xiàn)壓縮存儲,遍歷數(shù)據(jù)集。
Step 2:再次掃描數(shù)據(jù)記錄,對每條記錄中出現(xiàn)在Step 1產(chǎn)生的表中的項,按表中的順序排序,使用這個項集更新Fp-Tree,從Fp-Tree的根節(jié)點開始:如果當前項集的第一個元素項存在于FP-Tree當前節(jié)點的子節(jié)點中,則更新這個子節(jié)點的計數(shù)值;否則,創(chuàng)建新的子節(jié)點,更新頭指針表;不斷遞歸,直到第二次掃描完成。此時,F(xiàn)p-Tree就建好了。
(2)Fp-Tree的挖掘
Fp-Tree建好后,就可以進行頻繁項集的挖掘,步驟如下:
Step 1:抽取條件模式基。首先從頭指針表中的每個頻繁元素項開始,對每個元素項,獲得其對應(yīng)的條件模式基。條件模式基是以所查找元素項為結(jié)尾的路徑集合。
Step 2:創(chuàng)建條件FP-Tree。對于每一個頻繁項,都要創(chuàng)建一棵條件FP-Tree。可以使用剛才發(fā)現(xiàn)的條件模式基作為輸入數(shù)據(jù),并通過相同的建樹代碼來構(gòu)建這些樹。
Step 3:遞歸查找頻繁項集。有了Fp-Tree和條件Fp-Tree,我們就可以在前兩步的基礎(chǔ)上遞歸得查找頻繁項集。
FP-growth對不同長度的規(guī)則都有很好的適應(yīng)性,同時在效率上較之Apriori算法有巨大的提高。將其應(yīng)用于日志關(guān)聯(lián)取證中可以大大提高算法的運行效率。
日志關(guān)聯(lián)取證在進行數(shù)據(jù)采集時,就涉及到日志數(shù)據(jù)的傳輸安全問題。為了保護日志文件不被泄露,我們需要在網(wǎng)絡(luò)上傳輸之前對其進行加密處理。那么就應(yīng)該有一種加密機制允許他們搜索加密的數(shù)據(jù)而不損害日志信息的隱秘性。可搜索加密是一種可以對已加密日志文件進行保護隱私的關(guān)鍵詞搜索的重要的密碼體制。在本文中,我們可以使用一種基于帶關(guān)鍵字搜索的公鑰加密體制的SCF-PEKS方案來建立日志傳輸?shù)陌踩ǖ馈3]
整個SCF-PEKS方案是以這種方式運行的:
Step 1:GlobalSetup (1k)首先生成整個方案所需要的各種參數(shù),比如橢圓曲線群、生成元、HASH函數(shù)、關(guān)鍵字空間等公共參數(shù);
Step 2:KeyGen(params)函數(shù)輸入這些參數(shù),生成并輸出用戶的公鑰和私鑰,這里由用戶和服務(wù)器分別運行生成自己的公私鑰;
Step 3:PEKS(params,pkR,pkS,w)由服務(wù)器運行,用接收者和自己的公鑰一起生成關(guān)鍵字w相關(guān)的密文;
Step 4:dTrapdoor(params,skR,pkS,w)由用戶自己運行,用自己的私鑰生成所要搜索的關(guān)鍵字w相應(yīng)的陷門Tw,并將其發(fā)送給服務(wù)器;
Step 5:dTest(params,CT,skS,pkR,Tw)由服務(wù)器運行。服務(wù)器收到用戶發(fā)來的關(guān)鍵字陷門Tw,與所有加密的關(guān)鍵字密文輸入算法進行比較,直到算法返回“yes”,將這個關(guān)鍵字相應(yīng)的加密后的病歷發(fā)送給接收者,接受者進行解密。
這樣就完成了SCF-PEKS方案的實現(xiàn),將其應(yīng)用在日志關(guān)聯(lián)取證中可以提高證據(jù)文件的安全性,并使其更加有效率。
日志關(guān)聯(lián)技術(shù)是一種有效率的、可應(yīng)用于網(wǎng)絡(luò)犯罪偵查的技術(shù),但目前的基于Apriori算法的相關(guān)方案都具有或多或少的缺陷。因此,本文在前人研究的基礎(chǔ)上,運用了Apriori算法的改進版Fp-growth算法作為關(guān)聯(lián)規(guī)則的建立算法,并使用帶關(guān)鍵字搜索的公鑰加密體制來建立安全信道,結(jié)合網(wǎng)絡(luò)犯罪取證的實際情況提出一種新的改進方案,能夠有效解決現(xiàn)實問題。下一步的研究方向是將此方案應(yīng)用于公安基層的取證系統(tǒng)當中去,觀察運行情況并逐步改進。
[1]陳愛莉,張煥國.一種支持計算機取證的取證系統(tǒng)的設(shè)計.計算機工程與應(yīng)用,2003.
[2]許占文,王曉東.高效關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘算法研究.沈陽工業(yè)大學學報,2009.
[3]殷聯(lián)甫,任靜,王志欣.計算機取證技術(shù)[M].北京:科學出版社,2008.
[4]國光明,洪曉光.基于日志挖掘的計算機取證系統(tǒng)的分析與設(shè)計[J].計算機科學,2007.
[5]Han J,Kamber M. Data Mining Concepts and Techniques.北京:機械工業(yè)出版社,2001.
學科建設(shè):山西省“1331工程”重點學科建設(shè)計劃經(jīng)費資助(英文縮寫為“1331KSC”)。
基金項目:2017年山西警察學院其他課題面向網(wǎng)絡(luò)犯罪偵查的日志關(guān)聯(lián)取證技術(shù)研究(2017yqt010)。