徐國天
(中國刑事警察學(xué)院網(wǎng)絡(luò)犯罪偵查系,沈陽110854)
恢復(fù)存儲器中被刪除的文件是一種非常重要的技術(shù)方法[1]。目前現(xiàn)有數(shù)據(jù)恢復(fù)軟件主要有Final Data、encase 和取證大師等幾種,但在實(shí)際應(yīng)用中我們發(fā)現(xiàn)這些軟件存在一個問題,即某些文件被刪除之后,通過分析我們發(fā)現(xiàn)這些文件大部分?jǐn)?shù)據(jù)仍然殘留在硬盤內(nèi),但是現(xiàn)有軟件卻無法成功恢復(fù)。本文深入研究了3 種NTFS 存儲設(shè)備數(shù)據(jù)恢復(fù)方法,即通過NTFS 日志文件($LogFile)、殘留的MFT 記錄和文件頭部存儲特征值來完成恢復(fù)。NTFS 日志恢復(fù)方法基于中國刑警學(xué)院課題組自行開發(fā)軟件測試,另兩種方法基于Final Data 軟件測試。。
NTFS 日志文件是NTFS 為實(shí)現(xiàn)可恢復(fù)性和安全性而設(shè)計(jì)的。當(dāng)系統(tǒng)運(yùn)行時,NTFS 就會在日志文件中記錄所有影響NTFS 卷結(jié)構(gòu)的操作,包括文件的創(chuàng)建和改變目錄結(jié)構(gòu)的命令,從而在系統(tǒng)失敗時能夠恢復(fù)NTFS 卷。通過$LogFile 元文件可以提取出刪除痕跡,進(jìn)而完成刪除文件的恢復(fù)。
這里使用中國刑警學(xué)院課題組自行開發(fā)的NTFS文件系統(tǒng)日志檢驗(yàn)分析軟件對NTFS 格式存儲設(shè)備的日志文件進(jìn)行檢驗(yàn)分析,獲取被刪除文件的相關(guān)信息,主要包括文件名稱、文件創(chuàng)建時間、文件修改時間、最后一次MFT 記錄變化時間、最后一次文件訪問時間、文件大小、文件的覆蓋率、文件數(shù)據(jù)的存儲位置,根據(jù)以上信息恢復(fù)被刪除文件。
圖1 為應(yīng)用NTFS 日志檢驗(yàn)分析軟件從NTFS日志中提取出的3 組刪除痕跡,每組刪除痕跡之間用一個空行分隔,以第1 組刪除痕跡為例進(jìn)行說明。num 是日志檢驗(yàn)分析軟件為每組刪除痕跡自動添加的唯一編號,本例為0;name 是被刪除文件的名稱,本例為ceshi_1.doc;c-time 是被刪除文件的創(chuàng)建時間;a-time 是被刪除文件的修改時間;m-time 是被刪除文件的最后一次MFT 記錄變化時間;r-time 是被刪除文件最后一次訪問時間;size 是被刪除文件大小,以簇塊為單位,本例為35 簇;COVER 是被刪除文件的覆蓋率,本例為0%;datarun 是被刪除文件的數(shù)據(jù)存儲位置,在本例中被刪除文件的數(shù)據(jù)實(shí)際存儲在起始簇號為0X05E181 即385409 簇的地方,共0X23 即35 個簇塊,這說明第1 個被刪除文件是連續(xù)存儲的。
從圖1 可知第2、3 個被刪除文件是非連續(xù)存儲的。其中第2 個被刪除文件數(shù)據(jù)存儲在4 段區(qū)域內(nèi),其簇號范圍是492796 ~ 492799、385444 ~ 385456、385476 ~ 385478、492802 ~ 492804,共23 個簇塊。第3 個被刪除文件數(shù)據(jù)存儲在3 段存儲區(qū)域內(nèi),其簇 號 范 圍 是385508 ~ 385517、385526 ~ 385527、385536 ~ 385538,共15 個簇塊。根據(jù)圖1 所示的3組刪除痕跡應(yīng)用NTFS 日志檢驗(yàn)分析軟件恢復(fù)出3 個被刪除文件。
圖1 從NTFS 日志中提取出的3 組刪除痕跡Fig.1 Traces of three deleted files from NTFS log file
圖2 給出了3 個刪除文件在硬盤內(nèi)的實(shí)際存儲情況,下面以痕跡2 為例說明。日志檢驗(yàn)分析軟件首先從$LogFile 元文件中識別出第2 個文件的刪除痕跡,根據(jù)其中保存的數(shù)據(jù)位置定位硬盤上的4 段區(qū)域,并確定其簇塊次序?yàn)?92796~492799、38544~385456、385476~385478、492802492804,共23 個簇塊,進(jìn)而依次提取出這些簇塊、組合成一個完整文件。
圖2 恢復(fù)出的3 個刪除文件Fig.2 Three restored files
目前現(xiàn)有數(shù)據(jù)恢復(fù)軟件(如Final Data)普遍基于兩種策略恢復(fù)刪除文件。一種是掃描$MFT 元文件,尋找出被刪除文件殘留的MFT 記錄,進(jìn)而根據(jù)其中存儲的相關(guān)信息恢復(fù)文件[2]。這種方式的優(yōu)點(diǎn)是可以快速恢復(fù)文件,但如果被刪除文件殘留的MFT 記錄被覆蓋,這種方法將失效,下面舉例分析。
使用Final Data 的快速掃描功能(即掃描$MFT元文件)恢復(fù)同一NTFS 存儲設(shè)備中的刪除文件[3]。掃描結(jié)果如圖3 所示,可見識別出1 個刪除文件,名稱為~WRL0001.tmp,文件的起始簇號為385508,恢復(fù)出的文件與圖1 中的第3 個刪除文件完全相同。圖1 中另外2 個刪除文件的MFT 記錄已被覆蓋,因此沒有識別出來。
圖3 使用Final Data 的快速掃描恢復(fù)Fig.3 Quick scan recovery by Final Data
$MFT 元文件是NTFS 下最重要的1 個系統(tǒng)文件,它記錄著磁盤上每個文件和目錄的基本信息,這些信息包括:文件名、目錄名、安全屬性、目錄索引、文件大小、安全位置等內(nèi)容[4]。元文件$MFT 由一系列MFT 記錄組成,每個MFT 記錄的大小為1KB。磁盤上每個文件或目錄都對應(yīng)了一個MFT 記錄,本文將保存文件基本信息的MFT 記錄簡稱為MFT 文件記錄。當(dāng)某個文件被刪除之后,如果其對應(yīng)的MFT 文件記錄沒有被覆蓋,則可以根據(jù)MFT 文件記錄完整恢復(fù)被刪除的文件,下面分析被刪除文件“~WRL0001.tmp”殘留的MFT文件記錄存儲結(jié)構(gòu)。(見圖4)
圖4 被刪除文件“~WRL0001.tmp”殘留的MFT 記錄Fig.4 Residual MFT data from the deleted “~ WRL0001.tmp” file
前56 個字節(jié)是文件記錄頭。文件記錄頭的前4 個字節(jié)固定是ASCII 碼“FILE”。第23、24 字節(jié)是標(biāo)志字節(jié),值為0x0000,表示這是一個被刪除文件。如果是正常文件,這個值應(yīng)為0x0001。第81~88 字節(jié)是文件的創(chuàng)建時間。第89~96 字節(jié)是文件的修改時間。第97~104 字節(jié)是MFT 記錄變化時間。第105~112 字節(jié)是文件的最后一次訪問時間。第243~264 字節(jié)是采用Unicode 表示的文件名,共24個字節(jié),值為“~WRL0001.tmp”。第353~360 字節(jié)是文件的占用空間大小,值為0x F0 00 = 61440 字節(jié),即15 簇。第361~368 字節(jié)是文件的實(shí)際大小,值為0x E6 00 = 58880 字節(jié)。
第377~392 字節(jié)為數(shù)據(jù)存儲位置,值為0x 31 0A E4 E1 05 11 02 12 11 03 0A 00 00 D0 90 E1,其中包含3 個數(shù)據(jù)運(yùn)行,分別是0x 31 0A E4 E1 05、11 02 12 和11 03 0A。整個文件數(shù)據(jù)由3 塊空間組成,每個數(shù)據(jù)運(yùn)行標(biāo)識一塊空間。第1 塊空間的起始簇號是0x 05 E1 E4 = 385508,空間大小為0x 0A = 10簇。第2 塊空間的起始簇號是0x 12,但這是與第1個數(shù)據(jù)運(yùn)行的相對地址,因此第2 塊空間的起始簇號是0x 05 E1 E4 + 0x 12 = 0x 05 E1 F6 = 385526,空間大小為0x 02 = 2 簇。同理第3 塊空間的起始簇號也是與第2 個數(shù)據(jù)運(yùn)行的相對地址,因此第3 塊空間的起始簇號是0x 05 E1 F6 + 0x 0A = 0x 05 E2 00 =385536,空間大小是0x 03 = 3 簇。
根據(jù)這個殘留的MFT 記錄可以恢復(fù)出被刪除文件“~WRL0001.tmp”的名稱、創(chuàng)建時間、修改時間、最后一次MFT 記錄變化時間、最后一次文件訪問時間、文件大小、文件的覆蓋率、文件數(shù)據(jù)的存儲位置。
另一種恢復(fù)策略是掃描NTFS 格式存儲設(shè)備的空閑空間,根據(jù)被刪除文件的頭部、尾部特征值定位起始和結(jié)束簇塊,進(jìn)而將起始和結(jié)束簇塊之間的連續(xù)數(shù)據(jù)塊提取、合并成一個原始文件。這種方式可以有效恢復(fù)較長時間以前刪除的文件,但如果文件數(shù)據(jù)不是連續(xù)存放的,這種方式不能有效恢復(fù),同時不能恢復(fù)文件的名稱和修改時間等信息。
使用Final Data 的完整掃描功能(即掃描NTFS分區(qū)的空閑空間)恢復(fù)同一NTFS 存儲設(shè)備中的刪除文件。掃描結(jié)果如圖5 所示,可見識別出3 個刪除文件。第1 個文件的起始簇號為492796,對應(yīng)圖1 中的第2 組刪除痕跡。第2 個文件的起始簇號為385508。對應(yīng)圖1 中的第3 組刪除痕跡。第3 個文件的起始簇號為385409。對應(yīng)圖1 中的第1 組刪除痕跡?;謴?fù)出的3 個文件中只有第3 個文件可以正常使用,恢復(fù)出文件的名稱和時間信息丟失。
圖5 使用Final Data 的完整掃描恢復(fù)Fig.5 Full scan recovery by Final Data
由于3 個被刪除文件均為Office2003 版本Doc文件,這類文件的頭部特征值為0X D0 CF 11 E0 A1 B1 1A E1。Final Data 軟件根據(jù)這一特征值從硬盤空閑空間內(nèi)找到這3 個被刪除文件,圖6 為使用winhex 查看到的3 個被刪除文件的頭部數(shù)據(jù),可見每個文件的起始8 個字節(jié)均為Doc 文件特征值。
圖6 3 個被刪除文件的頭部特征值Fig.6 Peculiar head data of the three deleted files
圖7 顯示的是Final Data 恢復(fù)結(jié)果與刪除文件實(shí)際存儲情況的對比,下面依次分析。Final Data 在385409 簇識別出Doc 文件頭部特征值,將其后連續(xù)48 個簇塊合并成一個Doc 文件。而該文件的實(shí)際存儲情況是從385409 簇開始,共35 簇。Final Data的恢復(fù)范圍包含了刪除文件的實(shí)際存儲范圍,因此Final Data 恢復(fù)出的這一文件可以正常使用。
隨 后,F(xiàn)inal Data 在385508 簇 識 別 出Doc 文件頭部特征值,并將其后的15 個簇塊合并成1 個Doc 文件。而該文件實(shí)際存儲在385508、385526、385536 簇開始的3 段空間內(nèi),F(xiàn)inal Data 只恢復(fù)出第1 段存儲空間的數(shù)據(jù),其它2 段丟失,因此恢復(fù)出的文件不可使用。
Final Data 在492796 簇 識 別 出1 個Doc 文 件特征值,并將其后的32 個簇塊合并成1 個Doc 文件。但該文件實(shí)際存儲在385444、385476、492796、492802 簇開始的4 段空間內(nèi),F(xiàn)inal Data 只恢復(fù)出第1、4 段數(shù)據(jù),但這兩段數(shù)據(jù)次序錯誤,并且其間摻雜了大量無關(guān)數(shù)據(jù),因此恢復(fù)出的文件無法使用。
圖7 Final Data 恢復(fù)結(jié)果與刪除文件實(shí)際存儲情況對比Fig.7 Recovery result and the actual storage condition
綜上所述,F(xiàn)inal Data 應(yīng)用快速掃描和完整掃描恢復(fù)出圖1 中的第1 和第3 個刪除文件,但由于第2個刪除文件的MFT 記錄已被覆蓋,并且數(shù)據(jù)不連續(xù)存儲,因此Final Data 沒有成功恢復(fù),而應(yīng)用NTFS日志可成功恢復(fù)該文件。
3 種方式恢復(fù)效果對比如表1 所示。經(jīng)過測試我們發(fā)現(xiàn)NTFS 日志和MFT 記錄方式恢復(fù)速度快,恢復(fù)出的可用信息多、全面,但前提是刪除文件的NTFS 日志痕跡和殘留的MFT 記錄未被覆蓋,因此這兩種方式不能有效應(yīng)對較長時間以前刪除文件的恢復(fù)。相反特征值可恢復(fù)較長時間之前刪除文件,但要求文件連續(xù)存放,并且無法恢復(fù)文件名稱、創(chuàng)建時間等相關(guān)信息。
表1 3 種方式恢復(fù)效果對比Table 1 Comparison of three recovery choices
[1] 王桂強(qiáng).電子物證檢驗(yàn)[J].刑事技術(shù),2003(4): 3-7.
[2] 徐國天.NTFS 系統(tǒng)下“小文件”取證軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].信息網(wǎng)絡(luò)安全,2011(8): 38-40.
[3] 李盛,朱秀云,韓杰,等.電子物證檢驗(yàn)中常用數(shù)據(jù)恢復(fù)工具對比研究[J].刑事技術(shù),2008(4): 24-27.
[4] 徐國天.電子商務(wù)平臺的Oracle 數(shù)據(jù)庫系統(tǒng)文件恢復(fù)與檢驗(yàn)軟件的開發(fā)[J].信息網(wǎng)絡(luò)安全,2010(4): 12-14.