徐仙偉,楊雁瑩,曹 霽
(南京森林警察學院信息技術系,江蘇 南京210023)
隨著信息技術和信息產業的發展,計算機和網絡已經滲透到我國政治、經濟、軍事、科技、文化等各個領域。與此同時,計算機犯罪呈逐年遞增的趨勢,通常由于計算機犯罪具有犯罪主體專業化、犯罪行為智能化、犯罪客體復雜化、犯罪對象多樣化、危害后果隱蔽等特點,使得計算機犯罪明顯有別于傳統的刑事犯罪[1]。因此,構建全面有效打擊各種計算機犯罪的數據恢復、計算機取證技術已成為當前研究的熱點。
2012年3月,《刑事訴訟法(草案)》通過了第8次修訂,明確把電子證據列為第8類證據,諸如貪污、瀆職、賭球、軟件侵權、網絡盜號、短信詐騙、私服外掛、網絡電子傳銷等案件,都離不開電子取證及鑒定。而針對惡意刪改數據、惡意損壞存儲載體致使數據丟失的取證技術——數據恢復取證,更是憑借其“補救性”“針對性”“權威性”等特點,成為檢察機關最重視的一種電子證據調查取證手段[2]。
數據恢復技術是信息安全技術和計算機存儲技術發展到一定階段的產物,是在數據發生丟失或破壞后各種恢復需求下誕生的,是一種跨硬件平臺和軟件系統的特殊計算機技術,整合了現有所有的計算機數據存儲技術[3]。其應用目的不僅包括恢復出失去的重要數據,使當事人的數字財富免受損失,更重要的是,能針對各種各類犯罪行為而展開的司法意義上的數字化取證工作,為打擊通過銷毀電子證據手段逃避法律責任提供了有效方法。因此作為電子取證方向的研究人員,不僅要學會數據恢復技術的應用方法,更應該深入掌握各類數據恢復的基本原理、分析與研究數據丟失的原因、預防辦法、解決的思路以及實際恢復過程中存在的問題和相應的解決措施,最終實現對各類數據資源的恢復,同時盡可能地保證數據恢復效率的最大化。
目前數據恢復的解決方案主要分為軟件恢復、硬件恢復2種。其中硬件恢復包括硬件替換、元器件修復以及盤片數據讀取3種恢復方式[4]。軟件恢復分為系統級恢復與文件級恢復。系統級恢復:主要針對不同操作系統環境下出現的操作系統不能啟動、分區找不到或打開時提示未格式化等現象提出的恢復方法,這類問題的解決主要依賴于各操作系統中使用的文件系統類型,需依據不同文件系統的組織結構原理,常應用存儲介質底層編輯工具,如 Winhex 16位磁盤編輯器進行系統級數據恢復,通過分析與修正系統中各類參數信息,確保系統的正常使用。文件級恢復:主要是針對存儲介質上各分區或卷中的某個應用文件或用戶創建的文件遭遇丟失的情況,如DOC文件丟失等。
本文主要從軟件恢復的角度出發,著重對硬盤中文件級數據恢復方法進行分析對比,即以 Windows操作系統為平臺,對其環境下用戶數據進行分析,分別采用基于文件系統和文件特征的數據恢復方法進行研究,同時進行理論與實驗對比分析。
對于Windows操作系統中常用的2種文件系統類型FAT32與NTFS,其數據恢復的原理分別是:1)FAT32文件系統:由于文件進行刪除時,只是對其FDT表中作刪除標記操作,同時清空該文件在FAT表中的內容,因此當該FDT表中被刪除文件項仍然存在(即未被覆蓋)時,根據FDT中記錄文件的各種信息,如文件名、文件大小、文件創建日期、文件存在的起始簇號等數據信息來重建FAT表,從而恢復丟失的文件內容。2)NTFS文件系統:首先查找出MFT表中做刪除標記的表項,依據MFT表中提供的文件數據流屬性列表信息,找出數據區中文件內容所在簇空間(即運行位置),從而實現恢復操作。文獻[5]中給出了基于NTFS文件系統的數據恢復流程,本文在此基礎上進行了擴展,給出了Windows系統下基于FAT32和NTFS兩種文件系統的數據恢復算法流程,如圖1所示。

圖1 基于文件系統的數據恢復流程圖
由流程圖可知,該數據恢復算法主要依賴于文件目錄項(FDT)和主文件表(MFT)中信息,即要求文件系統的信息完整,能夠從數據組織原理角度重構文件結構信息,實現恢復操作。由于實現簡便,因此該方法是目前最主要的數據恢復方法之一,常用的數據恢復工具軟件如Findata、Easyrecovery、RStudio等都是基于文件系統的數據恢復方法[4]。
在實際應用過程中發現由于磁盤中各種類型的文件都有一定的數據特征,因此除了采用基于文件系統數據恢復方法外,還可根據不同文件類型的特征信息進行分析,并最終提取出想要的文件內容。該方法將主要從文件系統的數據區中直接掃描文件特征類型,進而恢復所需的文件內容[6]。幾種常見的文件類型及其存儲特點有:1)線性PDF文件的文件頭部特征為“25 50 44 46”,文件尾部特征為“25 25 45 4F 46”。2)Office文檔的文件頭部特征為“D0CF11E0A1B11AE1”,同時 Word(*.doc)文檔的文件目錄中包含特征信息 WordDocument、PowerPoint(*.ppt)文檔的文件目錄中的特征信息為PowerPointer Document、Excel(*.xls)文檔的文件目錄中特征信息為Workbook,但上述3種文檔沒有明顯的尾部特征信息。3)圖片格式文件,如JPEG、BMP和GIF文件。其中JPEG文件的文件頭部特征為“FFD8FF”、文件尾部的特征為“FFD9”。BMP文件的文件頭部特征為“424D”,文件尾部沒有明確的特征,但BMP文件的開始扇區的第2到第6個字節表示了當前文件的長度。因此,可利用文件頭部特征結合文件長度信息來確定BMP文件的尾部位置,進而恢復出完整的BMP文件。GIF文件中文件頭部特征是“474946”,文件尾部特征為“003B”。由于篇幅所限,本文不再具體介紹,其他類型文件特征分析可參考文獻[7-8]。
由于上述3類文件類型是用戶數據中經常出現的類型,即應用最廣,出現頻率最高,為此本文將著重對以上3類文件的數據恢復方法進行分析研究。即采用基于文件特征的數據恢復方法,利用其文件頭部特征,結合文件尾部信息或文件長度信息等進行判斷,找出其文件內容在磁盤中的具體位置。
利用該方法進行數據恢復操作時,主要是針對數據區中數據,因此在算法實現時,存在2種情況,一是依據文件系統提供信息,能夠確定數據單元即簇大小,此時可以簇為掃描單位。二是文件系統被破壞,無法獲取簇信息,只能以扇區為掃描單位,明顯前者速度上存在優勢。為體現出程序通用性,本文采用該方法進行數據恢復時,將以扇區為掃描單元,盡管有些文件沒有明確文件尾部信息,但是可通過發現新的文件類型頭標志或文件大小超過文件系統最大值的方法確定其容量。具體流程參見圖2所示。

圖2 基于文件特征的數據恢復流程圖
2.1.1 基于文件系統的數據恢復方法
優點:1)能夠找出文件名、文件大小、文件創建時間等相關屬性信息;2)恢復方法簡單,算法實現容易,目前采用此方法的工具軟件較多,恢復時間相對較短。
缺點:1)該方法恢復的數據信息依賴于相應文件系統,當文件系統遭遇破壞時,特別是文件目錄信息或MFT表中相應記錄項中信息被破壞或被覆蓋時,該文件系統下數據恢復的可能性較小。因此該方法適合于文件系統完好情況下出現的誤刪除、誤格式化后進行的數據恢復,效果比較突出。2)由于刪除文件后,相應的文件分配表FAT被清空,因此對非連續性數據的恢復可能性減小,只能對文件連續存儲空間進行恢復。即要求被恢復的文件是連續存儲在介質上。若文件非連續存儲,則恢復出來的文件可能存在2種情況:一是能夠找出文件名及一些相關屬性信息,但是文件內容為空;二是能恢復出文件的部分內容,打開時,發現不完整或者出現許多亂碼。因此,利用該方法進行的恢復操作要求刪除后能盡快執行,一旦有新的數據對原始數據進行了覆蓋,則恢復的可能性將會降低。
2.1.2 基于文件特征的數據恢復方法
優點:1)該數據恢復方法不依賴于具體的文件系統類型,即當文件系統破壞后仍可進行恢復操作。2)該方法恢復的文件相對較多。3)當被恢復的文件為非連續存儲即存在碎片時或文件刪除后其中部分數據已被覆蓋,此時,仍有可能恢復出許多殘缺文件中的字符信息,而對取證人員而言,分析沒有任何文件系統結構的原始磁盤上的存儲信息,提取出目標文件內容,如已刪除或隱藏的數據文件也是十分有價值的。
缺點:1)此方法不能恢復出文件名、文件創建時間等相關屬性信息,而這些信息對計算機取證人員來說也是相對比較重要的信息。2)該方法恢復數據時主要以扇區或簇為單位進行搜索,隨著存儲介質空間的不斷增大,這種恢復方法所需時間較長。3)由于不同類型的文件其文件特征不同,因此應用此方法需事先對相應的操作系統環境下所需提取的文件特征進行分析,確定恢復流程。另外,由于有些文件的特征不夠明確,因此利用該方法進行的可恢復文件類型是有限的。
(1)實驗環境
CPU 為Intel(R)Core(TM)i3-2100,主頻為3.10GHz;內存為768MB;操作系統為 Windows XP SP2。硬盤:1.95GB硬盤分區,文件系統類型:NTFS。
(2)實驗
對分區進行格式化操作,利用上述兩種方法進行數據恢復實驗分析。如圖3、4所示給出了實驗結果的部分截圖。表1對實驗結果進行了分析。

圖3 基于文件系統的數據恢復

圖4 基于文件特征的數據恢復

表1 實驗分析
由表1可見,基于文件系統的數據恢復方法在恢復時間上明顯優于基于文件特征的數據恢復方法。但從掃描恢復出的文件數及正確率上來看,基于文件特征的數據恢復方法有明顯優勢,特別是當分區被進行過多次刪除或覆蓋操作后,后者能恢復出更多文件,這對取證工作十分有益。
針對當前數據恢復技術的發展方向,本文主要以Windows環境為應用基礎,深入分析研究2種不同的數據恢復方法,并對2種方法進行理論與實驗分析,說明了各自的優缺點,為進一步研究提供了理論依據與實驗指導。
由上述實驗分析可見,基于文件特征的數據恢復方法在恢復成功率上明顯優于基于文件系統的數據恢復方法,但恢復時間較長,因此下一步工作重點主要包括:(1)改進基于文件特征的數據恢復算法流程,一方面使算法能夠滿足不同類型的文件特征獲取,提高算法的擴展性。另一方面優化算法結構,減少磁盤上扇區掃描與數據恢復時間。(2)由于本文主要采用的是文件頭、尾等特征信息進行數據的提取,下一步工作可采用其他特征提取方法,如信息熵、內部特征驗證等,這些方法的應用能夠準確識別文件分片,同時去除基于文件特征恢復方法中出現的文件內容出錯、存在噪聲信息等問題,從而提高數據恢復成功率。
[1]譚敏.計算機動態取證關鍵技術研究[D].長沙:中南大學(碩士學位論文),2007.
[2]數據恢復取證找回“丟失的”電子證據[EB/OL].http://www.81it.com/2012/1031/3114.html,2012.10.
[3]王維雄.基于介質存儲結構的數據恢復技術研究[D].西安:西安電子科技大學(碩士學位論文),2010.
[4]游春暉,劉乃琦.數據恢復技術在計算機取證系統中的應用[J].成都大學學報:自然科學版,2008(27):131-133.
[5]杜江,王石東.計算機取證中的數據恢復技術研究[J].重慶郵電大學學報:自然科學版,2010(5):683-686.
[6]胡敏,楊吉云,姜維.Windows下基于文件特征的數據恢復算法[J].計算機應用,2011(31):527-529.
[7]Nicholas Mikus.An Analysis of Disc Carving Techniques Master Thesis[D].Monterey:Naval Postgraduate School,2005.
[8]王鵬.Windows日志取證與恢復技術研究[D].杭州:杭州電子科技大學(碩士學位論文),2009.
[9]章華,劉乃琦,郭建東,等.基于孩子兄弟樹的FAT32文件刪除恢復算法[J].計算機應用研究,2009(3):1116-1118.
[10]鐘秀玉.基于FAT32的數據恢復系統的設計[J].計算機應用與軟件,2008(11):56-57.
[11]Daniel Ayers.A Second Generation Computer Forensic Analysis System[J].Digital Investigation,2009(6):S34-S42.