NTFS格式存储设备数据恢复方法研究
徐国天
中国刑事警察学院网络犯罪侦查系,沈阳110854

作者简介:徐国天(1978—),男,辽宁沈阳人,副教授,硕士,研究方向为网络安全、数据还原。 E-mail:xu_guo_tian888@163.com

摘要

目的 研究NTFS存储设备的3种数据恢复方式,测试、比较不同方式的恢复效果,促进电子物证检验工作。方法 本文针对同一NTFS存储设备,分别使自行设计的NTFS日志检验软件测试基于NTFS日志文件的恢复方式,使用Final Data的快速扫描功能测试基于MFT记录的恢复方式,使用Final Data的完整扫描功能测试基于文件头部存储特征值的恢复方式,比较3种方式的恢复效果,分析各自的恢复原理。结果 基于NTFS日志和MFT记录的方式恢复出的信息较全,用时较短,但不适合恢复较长时间之前删除的文件。基于文件头部存储特征值的方式可恢复较长时间前删除的文件,但用时长,不能恢复文件名、创建时间等信息,也不能有效恢复离散存储的文件。结论 结合实际情况、综合运用3种方式可有效恢复数据。

关键词: 电子物证; NTFS; 日志; MFT; 特征值; 恢复
中图分类号:DF793.2 文献标志码:A 文章编号:1008-3650(2015)01-0055-04 doi: 10.16467/j.1008-3650.2015.01.012
Methods for File Recovery on NTFS File System
XU Guo-tian
Department of Network Criminal Investigation, National Police University of China, Shenyang 110854, China
Abstract

Objective In practice, such situations are often encountered that the files have not been restored because of the incorrect recovery tools and/or varied restoring methods. In this paper, three data recovery modes used with NTFS storage device were analyzed and their effects were tested and compared.Methods For the same NTFS storage device, we used NTFS log inspection software developed from previous research to test the recovery choice based on NTFS log file, utilized the quick scan function of Final Data to test the recovery choice based on MFT, and used the full scan function of Final Data to test the recovery choice based on characteristic value. Finally we compared the effect of the three choices and analyzed their recovery principles.Results The recovery choices based on NTFS log file and MFT could obtain comprehensive information but were not suitable for files deleted long before. Though the recovery choice based on characteristic value played poor effect on restoring either the non-contiguous files or the file names and file-creating time, it could restore the files deleted long before albeit time consuming.Conclusions Three methods can be applied in casework with their integrative utilization.

Keyword: digital forensics; NTFS; $LogFile; MFT; characteristic value; restoration

恢复存储器中被删除的文件是一种非常重要的技术方法[1]。目前现有数据恢复软件主要有Final Data、encase和取证大师等几种, 但在实际应用中我们发现这些软件存在一个问题, 即某些文件被删除之后, 通过分析我们发现这些文件大部分数据仍然残留在硬盘内, 但是现有软件却无法成功恢复。本文深入研究了3种NTFS存储设备数据恢复方法, 即通过NTFS日志文件($LogFile)、残留的MFT记录和文件头部存储特征值来完成恢复。NTFS日志恢复方法基于中国刑警学院课题组自行开发软件测试, 另两种方法基于Final Data软件测试。。

1 通过NTFS日志文件完成恢复

NTFS日志文件是NTFS为实现可恢复性和安全性而设计的。当系统运行时, NTFS就会在日志文件中记录所有影响NTFS卷结构的操作, 包括文件的创建和改变目录结构的命令, 从而在系统失败时能够恢复NTFS卷。通过$LogFile元文件可以提取出删除痕迹, 进而完成删除文件的恢复。

1.1 测试通过$LogFile元文件恢复

这里使用中国刑警学院课题组自行开发的NTFS文件系统日志检验分析软件对NTFS格式存储设备的日志文件进行检验分析, 获取被删除文件的相关信息, 主要包括文件名称、文件创建时间、文件修改时间、最后一次MFT记录变化时间、最后一次文件访问时间、文件大小、文件的覆盖率、文件数据的存储位置, 根据以上信息恢复被删除文件。

图1为应用NTFS日志检验分析软件从NTFS日志中提取出的3组删除痕迹, 每组删除痕迹之间用一个空行分隔, 以第1组删除痕迹为例进行说明。num是日志检验分析软件为每组删除痕迹自动添加的唯一编号, 本例为0; name是被删除文件的名称, 本例为ceshi_1.doc; c-time是被删除文件的创建时间; a-time是被删除文件的修改时间; m-time是被删除文件的最后一次MFT记录变化时间; r-time是被删除文件最后一次访问时间; size是被删除文件大小, 以簇块为单位, 本例为35簇; COVER是被删除文件的覆盖率, 本例为0%; datarun是被删除文件的数据存储位置, 在本例中被删除文件的数据实际存储在起始簇号为0X05E181即385409簇的地方, 共0X23即35个簇块, 这说明第1个被删除文件是连续存储的。

图1可知第2、3个被删除文件是非连续存储的。其中第2个被删除文件数据存储在4段区域内, 其簇号范围是492796 ~ 492799、385444 ~ 385456、385476 ~ 385478、492802 ~ 492804, 共23个簇块。第3个被删除文件数据存储在3段存储区域内, 其簇号范围是385508 ~ 385517、385526 ~ 385527、385536 ~ 385538, 共15个簇块。根据图1所示的3组删除痕迹应用NTFS日志检验分析软件恢复出3个被删除文件。

图1 从NTFS日志中提取出的3组删除痕迹Fig. 1 Traces of three deleted files from NTFS log file

1.2 基于$LogFile元文件的恢复方式分析

图2给出了3个删除文件在硬盘内的实际存储情况, 下面以痕迹2为例说明。日志检验分析软件首先从$LogFile元文件中识别出第2个文件的删除痕迹, 根据其中保存的数据位置定位硬盘上的4段区域, 并确定其簇块次序为492796~492799、38544~ 385456、385476~385478、492802492804, 共23个簇块, 进而依次提取出这些簇块、组合成一个完整文件。

图2 恢复出的3个删除文件Fig. 2 Three restored files

2 扫描$MFT元文件完成恢复

目前现有数据恢复软件(如Final Data)普遍基于两种策略恢复删除文件。一种是扫描$MFT元文件, 寻找出被删除文件残留的MFT记录, 进而根据其中存储的相关信息恢复文件[2]。这种方式的优点是可以快速恢复文件, 但如果被删除文件残留的MFT记录被覆盖, 这种方法将失效, 下面举例分析。

2.1 测试扫描$MFT元文件方式的恢复效果

使用Final Data的快速扫描功能(即扫描$MFT元文件)恢复同一NTFS存储设备中的删除文件[3]。扫描结果如图3所示, 可见识别出1个删除文件, 名称为~WRL0001.tmp, 文件的起始簇号为385508, 恢复出的文件与图1中的第3个删除文件完全相同。图1中另外2个删除文件的MFT记录已被覆盖, 因此没有识别出来。

图3 使用Final Data的快速扫描恢复Fig. 3 Quick scan recovery by Final Data

2.2 扫描$MFT元文件的恢复方式分析

$MFT元文件是NTFS下最重要的1个系统文件, 它记录着磁盘上每个文件和目录的基本信息, 这些信息包括:文件名、目录名、安全属性、目录索引、文件大小、安全位置等内容[4]。元文件$MFT由一系列MFT记录组成, 每个MFT记录的大小为1KB。磁盘上每个文件或目录都对应了一个MFT记录, 本文将保存文件基本信息的MFT记录简称为MFT文件记录。当某个文件被删除之后, 如果其对应的MFT文件记录没有被覆盖, 则可以根据MFT文件记录完整恢复被删除的文件, 下面分析被删除文件“ ~WRL0001.tmp” 残留的MFT文件记录存储结构。(见图4

图4 被删除文件“ ~WRL0001.tmp” 残留的MFT记录Fig. 4 Residual MFT data from the deleted “ ~ WRL0001.tmp” file

前56个字节是文件记录头。文件记录头的前4个字节固定是ASCII码“ FILE” 。第23、24字节是标志字节, 值为0x0000, 表示这是一个被删除文件。如果是正常文件, 这个值应为0x0001。第81~88字节是文件的创建时间。第89~96字节是文件的修改时间。第97~104字节是MFT记录变化时间。第105~112字节是文件的最后一次访问时间。第243~264字节是采用Unicode表示的文件名, 共24个字节, 值为“ ~WRL0001.tmp” 。第353~360字节是文件的占用空间大小, 值为0x F0 00 = 61440字节, 即15簇。第361~368字节是文件的实际大小, 值为0x E6 00 = 58880字节。

第377~392字节为数据存储位置, 值为0x 31 0A E4 E1 05 11 02 12 11 03 0A 00 00 D0 90 E1, 其中包含3个数据运行, 分别是0x 31 0A E4 E1 05、11 02 12和11 03 0A。整个文件数据由3块空间组成, 每个数据运行标识一块空间。第1块空间的起始簇号是0x 05 E1 E4 = 385508, 空间大小为0x 0A = 10簇。第2块空间的起始簇号是0x 12, 但这是与第1个数据运行的相对地址, 因此第2块空间的起始簇号是0x 05 E1 E4 + 0x 12 = 0x 05 E1 F6 = 385526, 空间大小为0x 02 = 2簇。同理第3块空间的起始簇号也是与第2个数据运行的相对地址, 因此第3块空间的起始簇号是0x 05 E1 F6 + 0x 0A = 0x 05 E2 00 = 385536, 空间大小是0x 03 = 3簇。

根据这个残留的MFT记录可以恢复出被删除文件“ ~WRL0001.tmp” 的名称、创建时间、修改时间、最后一次MFT记录变化时间、最后一次文件访问时间、文件大小、文件的覆盖率、文件数据的存储位置。

3 扫描NTFS格式存储设备的空闲空间完成恢复

另一种恢复策略是扫描NTFS格式存储设备的空闲空间, 根据被删除文件的头部、尾部特征值定位起始和结束簇块, 进而将起始和结束簇块之间的连续数据块提取、合并成一个原始文件。这种方式可以有效恢复较长时间以前删除的文件, 但如果文件数据不是连续存放的, 这种方式不能有效恢复, 同时不能恢复文件的名称和修改时间等信息。

3.1 扫描存储设备空闲空间方式恢复测试

使用Final Data的完整扫描功能(即扫描NTFS分区的空闲空间)恢复同一NTFS存储设备中的删除文件。扫描结果如图5所示, 可见识别出3个删除文件。第1个文件的起始簇号为492796, 对应图1中的第2组删除痕迹。第2个文件的起始簇号为385508。对应图1中的第3组删除痕迹。第3个文件的起始簇号为385409。对应图1中的第1组删除痕迹。恢复出的3个文件中只有第3个文件可以正常使用, 恢复出文件的名称和时间信息丢失。

图5 使用Final Data的完整扫描恢复Fig. 5 Full scan recovery by Final Data

3.2 扫描存储设备空闲空间恢复方式分析

由于3个被删除文件均为Office2003版本Doc文件, 这类文件的头部特征值为0X D0 CF 11 E0 A1 B1 1A E1。Final Data软件根据这一特征值从硬盘空闲空间内找到这3个被删除文件, 图6为使用winhex查看到的3个被删除文件的头部数据, 可见每个文件的起始8个字节均为Doc文件特征值。

图6 3个被删除文件的头部特征值Fig. 6 Peculiar head data of the three deleted files

图7显示的是Final Data恢复结果与删除文件实际存储情况的对比, 下面依次分析。Final Data在385409簇识别出Doc文件头部特征值, 将其后连续48个簇块合并成一个Doc文件。而该文件的实际存储情况是从385409簇开始, 共35簇。Final Data的恢复范围包含了删除文件的实际存储范围, 因此Final Data恢复出的这一文件可以正常使用。

随后, Final Data在385508簇识别出Doc文件头部特征值, 并将其后的15个簇块合并成1个Doc文件。而该文件实际存储在385508、385526、385536簇开始的3段空间内, Final Data只恢复出第1段存储空间的数据, 其它2段丢失, 因此恢复出的文件不可使用。

Final Data在492796簇识别出1个Doc文件特征值, 并将其后的32个簇块合并成1个Doc文件。但该文件实际存储在385444、385476、492796、492802簇开始的4段空间内, Final Data只恢复出第1、4段数据, 但这两段数据次序错误, 并且其间掺杂了大量无关数据, 因此恢复出的文件无法使用。

图7 Final Data恢复结果与删除文件实际存储情况对比Fig. 7 Recovery result and the actual storage condition

4 结 论

综上所述, Final Data应用快速扫描和完整扫描恢复出图1中的第1和第3个删除文件, 但由于第2个删除文件的MFT记录已被覆盖, 并且数据不连续存储, 因此Final Data没有成功恢复, 而应用NTFS日志可成功恢复该文件。

3种方式恢复效果对比如表1所示。经过测试我们发现NTFS日志和MFT记录方式恢复速度快, 恢复出的可用信息多、全面, 但前提是删除文件的NTFS日志痕迹和残留的MFT记录未被覆盖, 因此这两种方式不能有效应对较长时间以前删除文件的恢复。相反特征值可恢复较长时间之前删除文件, 但要求文件连续存放, 并且无法恢复文件名称、创建时间等相关信息。

表1 3种方式恢复效果对比 Table 1 Comparison of three recovery choices

The authors have declared that no competing interests exist.

参考文献
[1] 王桂强. 电子物证检验[J]. 刑事技术, 2003(4): 3-7. [本文引用:1]
[2] 徐国天. NTFS系统下“小文件”取证软件的设计与实现[J]. 信息网络安全, 2011(8): 38-40. [本文引用:1]
[3] 李盛, 朱秀云, 韩杰, . 电子物证检验中常用数据恢复工具对比研究[J]. 刑事技术, 2008(4): 24-27. [本文引用:1]
[4] 徐国天. 电子商务平台的Oracle数据库系统文件恢复与检验软件的开发[J]. 信息网络安全, 2010(4): 12-14. [本文引用:1]