王星博 阮強(qiáng) 張瑞霞
摘要:該系統(tǒng)設(shè)計(jì)了一個(gè)面向docker容器的電子取證系統(tǒng)。在該系統(tǒng)中,以對(duì)docker的文件管理系統(tǒng)Overlay2的特點(diǎn)和作用原理的研究為基礎(chǔ),編程實(shí)現(xiàn)文件哈希值的提取、已刪除文件的恢復(fù)、容器歷史進(jìn)程的記錄、關(guān)鍵字搜索等功能。
關(guān)鍵詞:docker;電子取證;文件系統(tǒng)
中圖分類(lèi)號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)27-0143-02
1 背景
在當(dāng)今社會(huì)的網(wǎng)絡(luò)犯罪中,調(diào)查員在收集網(wǎng)絡(luò)證據(jù)時(shí)面臨著很多挑戰(zhàn),如大量的工作重點(diǎn)放在事后獲取,調(diào)查員使用工具復(fù)雜繁多等等。這些無(wú)疑增加了調(diào)查網(wǎng)絡(luò)犯罪的難度。而Docker提供得靈活快速的部署模型 (Datadog 公司, 2016) 以及基于大型生態(tài)系統(tǒng)的快速軟件開(kāi)發(fā)能力,Docker 具有能比肩Linux、Windows等常見(jiàn)操作系統(tǒng)的快速執(zhí)行的特點(diǎn)和輕量且虛擬化的特點(diǎn)。這使它在特定軟件開(kāi)發(fā)過(guò)程中已經(jīng)起到了非常廣泛的作用,作為能支持分布式計(jì)算環(huán)境下的主要容器虛擬化的技術(shù)之一,Docker已經(jīng)被大部分提供計(jì)算服務(wù)的系統(tǒng)平臺(tái)所采用。在Docker和云計(jì)算技術(shù)緊密結(jié)合并高速發(fā)展的今天,基于Docker環(huán)境下的電子取證研究更需要人們深入關(guān)注、探索、開(kāi)發(fā)。
但它依舊是一種相對(duì)較新的技術(shù)。虛擬環(huán)境下取證的困難和docker取證的研究工作較少,這使得docker在事件分析和調(diào)查取證方面的系統(tǒng)開(kāi)發(fā)尚未被考慮到,而且隨著現(xiàn)在的docker在生產(chǎn)環(huán)境的不斷部署,這一現(xiàn)象正變得越來(lái)越嚴(yán)重。
2 系統(tǒng)的總體設(shè)計(jì)
系統(tǒng)整體模塊層次圖,如圖1 所示。通過(guò)指向容器路徑,獲取容器ID,對(duì)容器的各個(gè)組件和文件系統(tǒng)進(jìn)行取證分析。系統(tǒng)運(yùn)行結(jié)束后會(huì)生成一個(gè)以容器ID命名的目錄,目錄下會(huì)存放log文件,文件hash值表格文件,生成輔助文件恢復(fù)模塊、查找模塊工作的輔助文件,拷貝容器中記錄歷史操作、快速索引等含有重要信息的容器文件。
3 系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
3.1 Hash值提取模塊
在收集數(shù)字證據(jù)時(shí)(如對(duì)機(jī)械硬盤(pán)或者固態(tài)硬盤(pán)做鏡像),全部?jī)?nèi)容(換句話說(shuō),每一個(gè)比特都被收集)組合在一起生成一個(gè)唯一的單項(xiàng)哈希值。一旦掃描過(guò)程完成,就可以重新計(jì)算每個(gè)文件的單項(xiàng)哈希值。如果新的計(jì)算結(jié)果與原始結(jié)果相匹配,就能證明證據(jù)沒(méi)有被修改。并能通過(guò)這個(gè)哈希值與我們的哈希值庫(kù)相比較,檢測(cè)木馬文件。該功能工作流程如圖2所示。
3.2 文件恢復(fù)模塊
文件雕刻技術(shù)是文件恢復(fù)的常用手段,此方法可以恢復(fù)尚未被覆蓋的、已被覆蓋和被刪除的文件。但碎片文件只能不完全的重建。此外,對(duì)于文件的任何元信息(如文件名,路徑,時(shí)間戳或類(lèi)內(nèi)容)都會(huì)丟失。因此文件雕刻獲得的信息是非常含糊的,甚至是不準(zhǔn)確的。索然在事件分析時(shí)可能有用,但因不確定性太強(qiáng)而不能用在取證調(diào)查中。與文件雕刻相比,文件系統(tǒng)分析技術(shù)使用存儲(chǔ)在文件系統(tǒng)中的管理結(jié)構(gòu),根據(jù)docker特有的文件系統(tǒng)Overlay2的結(jié)構(gòu)能更全面地進(jìn)行取證調(diào)查。
還可在/var/lib/docker/containers/[ContainerID]下對(duì)子diff子文件夾和merge子文件夾進(jìn)行更進(jìn)一步的取證分析。Diff文件夾中包含了所有在r/w層中創(chuàng)建且還未被刪除的文件。而merge文件夾包含了overlay2文件系統(tǒng)提供的所有文件系統(tǒng)層。當(dāng)用戶刪除了較低層的r/w層中的文件時(shí),系統(tǒng)會(huì)分配一個(gè)將其標(biāo)記為L(zhǎng)inux字符設(shè)備的inode,從而指引Overlay2文件系統(tǒng)忽略被inode標(biāo)識(shí)的文件以讓用戶查看全局的視圖。而本身即在r/w層中創(chuàng)建并在隨后即刪除的文件將使用和正常情況形同的操作系統(tǒng)/文件系統(tǒng)功能刪除。在這種情況下,刪除應(yīng)用存儲(chǔ)在r/w層,但文件本身仍在鏡像層。依此,即可找到原文件。
3.3 關(guān)鍵字搜索模塊
關(guān)鍵字上下文搜索具有對(duì)像磁盤(pán)鏡像或者內(nèi)存快照這樣的數(shù)據(jù)對(duì)象進(jìn)行搜索的能力,以發(fā)現(xiàn)與特定上下文和類(lèi)別相關(guān)聯(lián)的關(guān)鍵字或者短語(yǔ)。例如想在一個(gè)磁盤(pán)鏡像中搜索“毒品”關(guān)鍵字的出現(xiàn)等等。該功能主要采用BMH算法,其工作流程如圖3所示。
4 系統(tǒng)測(cè)試
部署系統(tǒng)源碼和環(huán)境后,輸入容器的絕對(duì)路徑,開(kāi)始取證。取證后得到文件hash值表。如圖4所示。
除了記錄Hash值,還整理了其相應(yīng)的時(shí)間戳、標(biāo)簽等重要信息。
容器的歷史操作記錄。如圖5所示。
5 總結(jié)
本篇文章討論并指出了docker環(huán)境下電子取證的研究意義,對(duì)docker文件系統(tǒng)Overlay2系統(tǒng)做了詳細(xì)的闡述,并提出利用此文件系統(tǒng)進(jìn)行取證的方法和實(shí)現(xiàn)原理,并且對(duì)軟件的功能和應(yīng)用技術(shù)進(jìn)行了展開(kāi)分析。同時(shí),又在系統(tǒng)的Hash值提取和關(guān)鍵字搜索功能實(shí)現(xiàn)時(shí)也結(jié)合了計(jì)算每個(gè)文件的單項(xiàng)哈希值的算法、BMH算法。功能實(shí)現(xiàn)和程序測(cè)試的過(guò)程中達(dá)到了預(yù)期的效果。如用戶與程序的界面交互方面、系統(tǒng)功能的實(shí)用性方面。同時(shí),本系統(tǒng)也將會(huì)針對(duì)在網(wǎng)絡(luò)取證、優(yōu)化算法方面進(jìn)行改進(jìn)。
參考文獻(xiàn):
[1] 劉品新.電子證據(jù)的基礎(chǔ)理論[J].國(guó)家檢察官學(xué)院學(xué)報(bào),2017,25(1):151-159.
[2] 王長(zhǎng)杰.網(wǎng)絡(luò)犯罪中電子證據(jù)取證的規(guī)范化管理路徑[J].河北公安警察職業(yè)學(xué)院學(xué)報(bào),2016,16(3):15-19.
[3] 樊崇義,李思遠(yuǎn).論電子證據(jù)時(shí)代的到來(lái)[J].蘇州大學(xué)學(xué)報(bào)(哲學(xué)社會(huì)科學(xué)版),2016,37(2):99-106.
[4] (美)Chet Hosmer.電子數(shù)據(jù)取證與Python方法[M].張俊,譯.北京:電子工業(yè)出版社,2017.
【通聯(lián)編輯:代影】