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