1 NTFS文件系统简介
当用户将磁盘的一个分区格式化为NTFS分区时,就建立了一个NTFS文件系统结构,NTFS分区又被称为NTFS卷。总体上,一个NTFS分区总体结构示意图如下图1所示。
图1 NTFS分区结构示意图
NTFS文件系统使用了逻辑簇号(Logical Cluster Number,LCN)和虚拟簇号(Virtual Cluster Number,VCN)对卷进行管理[3]。逻辑簇号将整个NTFS分区从头到尾进行编号,通过LCN号以及分区的起始扇区号,就可以找到该LCN在磁盘中的具体偏移。虚拟簇号将文件从头到尾进行编号,方便文件系统对文件数据进行引用。
NTFS卷上的任何数据对象都表示为文件,通过文件记录对所有的文件进行管理,通常情况下文件记录大小固定为1KB。NTFS中所有的文件记录组成了NTFS中最重要的元数据文件为主文件表$MFT,$MFT中第一个文件记录就是对$MFT文件本身,对自身进行管理。系统通过文件记录来确定文件再磁盘上的位置一直文件的所有属性。NTFS卷中每一个文件都至少包有一个文件记录,当文件属性太多一个文件记录无法保存时,就会有多个文件记录,其中第一个文件记录称作基本文件记录,里面存储有其他关联的文件记录的信息。文件记录由文件头和一系列属性列表组成,属性由属性头和属性体组成,每一个属性完成一个单独的工作,不同的属性的结合体构成了不同种类的文件记录。属性体是构成NTFS的MFT记录的核心骨架,每一个属性完成一个单独的工作,不同的属性的结合体构成了不同种类的MFT记录。NTFS常见属性体及功能。
表1 NTFS常见属性表类型 名称 备注10H 标准信息属性 文件的基本属性,如文件属性、文件时间等20H 属性列表属性 文件需要多个属性时存储其它记录的索引30H 文件名属性 文件名属性,存储文件名和文件名时间信息40H 对象标识符属性 文件对象ID,文件全局唯一分配的GUID描述50H 安全性描述属性 NTFS安全对象的描述,对文件权限进行描述60H 卷名属性 卷的名称70H 卷信息属性 卷的版本和状态80H 数据属性 存储文件扇区地图信息90H 索引根目录属性 索引根节点,NTFS的B+树索引的根节点A0H 索引分配表属性 索引分配属性,NTFS的B+树所有子节点的定位信息B0H 位图属性 存储位图数据C0H 重解析节点 重解析节点100H 日志作用流属性 EFS加密属性,存储EFS解码密钥等信息。
2 NTFS文件系统存储原理与可恢复性探究
NTFS文件系统底层是如何存储文件的,通过Windows系统下的常规删除手段删除的文件,其文件系统数据又是如何变化的。为了探究NTFS文件系统的底层存储机制以及Shift+Delete清除数据方式的可恢复性,笔者进行了如下试验:
1、测试环境:实验机器为WIN7 X64,Service Pack 1Build 7601(后简称实验机)以及一块512M的VHD虚拟磁盘(后简称试验盘);
2、用Winhex或者其它磁盘二进制数据编辑器对试验盘进行清零操作;
3、在实验机上对试验盘进行快速格式化,创建NTFS分区卷;
4、将试验盘进行备份,作为后续实验对照组使用,后续称为对照盘1;
5、往对试验盘中随机放入14张图片;
6、将试验盘进行备份,作为后续实验对照组使用,后续称为对照盘2;
7、对试验盘和对照盘1进行数据对比在步骤7中的对比时,发现试验盘与对照盘1元数据的主要差别在于两个系统源文件:$MFT主文件表文件和$LOGFILE日志文件。其中,$MFT文件中,新增14个文件记录,而$LOGFILE日志文件新增若干修改日志。
8、采用Shift+Delete删除方式,删除其中1张图片;
9、对试验盘与对照盘2进行数据对比
在步骤7对比时,发现对于删除前后,可以发现,除了该文件的文件记录中部分数据状态值有修改以外,数据区域和其它文件属性值都没有任何变化,也就是在这种情况下,我们可以通过扫描$MFT文件里面的所有文件记录,通过识别被标记为删除状态文件记录,并将其恢复出来,这种简单的删除方式并不能真正删除掉实际的数据内容。另外,删除后,$LOGFILE日志文件也有新增若干修改日志。删除前后的文件记录对比图如下图2所示。
当文件被写入到NTFS文件系统分区时,系统需要做两件事情:其一为实际写入文件数据本身,其二为更新该文件的元数据信息。为了防止中间过程中异常断电等其他意外情况,操作系统会对这个过程中进行日志记录,及在$LOGFILE中记录相关的操作日志。通过上述简单的实验,可以证实当往NTFS文件系统分区创建或者写入新文件时,除了主文件表会新增文件记录之后,在日志文件里确实同样会有文件记录的操作日志。
3 NTFS涉密文件销毁方法
当在系统中删除一个文件时,系统只是在目录索引中将目标文件记录标记为删除可用状态,目标文件的实体数据仍然完好无损的存储在磁盘上,因此利用常见的恢复软件可以将这些被删除的文件恢复回来。针对重要敏感数据、乃至是涉密数据,这种删除方法并不安全,数据销毁技术应运而生。软件销毁法是计算机数据销毁最常用的技术手段之一。
NTFS文件系统下涉密文件彻底删除技术
涉密数据的安全保存与安全销毁是涉密数据安全管理的核心,是失泄密防范工作的重中之重。NTFS文件系统是微软Windows NT操作系统上推出的新一代文件系统,以安全性高、稳定性强、高容错性等优点迅速普及,是使用最广泛的文件系统之一。目前,大部分敏感数据甚至是涉密数据大多存储在NTFS文件系统格式的存储介质中。本文从NTFS文件系统底层结构存储出发,分析NTFS文件系统下文件存储技术,提出NTFS文件系统下涉密文件彻底删除技术,该技术能够彻底删除涉密文件数据,同时清除涉密文件存储痕迹,确保涉密信息的安全性,对涉密数据的安全销毁具有重要意义。
销毁法是基于操作系统和文件系统存储结构实现的,利用软件直接对所需要销毁的数据的存储空间进行覆盖写入以达到数据销毁的目的。软件销毁法相较于物理销毁法的主要优势在于成本低,不需要破坏存储介质,缺点在于销毁的速度慢、覆写次数少是销毁的数据依然存在被还原的风险。数据擦除标准《U.S.DOD5220.22-M》明确要求安全擦除时磁盘数据覆写次数必须为7次以上。
目前采取的软件销毁法是采取磁盘二进制编辑器(如Winhex)等工具对整个磁盘或者分区进行擦除操作,或者采用Windows操作系统提供的磁盘格式化工具进行低级格式化以达到擦除的目的。这两种数据擦除方式的有点在于不需要依赖底层文件系统的存储格式和存储机制,直接整个磁盘数据或者分区数据全部擦除,相应的缺点在于这种操作往往耗时更长,无法单独针对特定文件进行擦除操作,灵活性不够。因此,本文对NTFS文件系统底层文件存储进行深入研究,提出NTFS下指定文件或者目录数据销毁方法,该销毁方法分为两个模块进行:文件记录及文件内容的销毁、文件日志内容的销毁。
3.1文件记录及内容
销毁针对NTFS文件系统中的特定文件或者文件夹数据内容的销毁可以通过两种方式实现:直接通过Windows系统API进行擦除操作以及通过磁盘直接对文件数据内容占用的磁盘扇区进行擦除操作。Windows系统API擦除方案对给定需要销毁的文件或者目录进行擦除操作,具体方案描述如下:
1、若给定需要销毁的是文件
#1 通过CreateFile以读写方式打开该文件,并获取该文件的实际大小;
#2 通过WriteFile以《U.S.DOD 5220.22-M标准》数据擦除标准对该文件进行覆写操作,并实时刷新缓存更新到磁盘中;
#3 通过CloseHandle关闭该文件;
#4 通过MoveFile重命名文件为临时文件名;
#5 通过DeleteFile删除文件。
2、若给定需要销毁的是目录
#1 通过FindFirstFile和FindNextFile查找所有子目录和子文件;
#2 对查找到的子文件以上述文件销毁方法进行销毁
# 3 对于查找的子目录,若还包含子目录或者子文件,重复本目录销毁方式对该子目录进行销毁;若没有子目录或者子文件,通过MoveFile重命名为临时文件名,并通过RemoveDirectory删除该目录;
#4 直至所有文件和目录全部销毁。
通过磁盘直接对文件数据内容占用的磁盘扇区进行擦除方案对给定需要销毁的文件或者目录进行擦除操作,具体方案描述如下:
1、若给定需要销毁的是文件
#1 通过解析NTFS文件系统DBR,定位到$MFT文件的起始位置;
#2 通过解析$MFT文件记录,获取分区根目录文件夹$ROOT的文件记录;
#3 通过解析$ROOT根目录的索引属性,通过给定文件的路径名称查找第1层子目录对应的MFT号;
#4通过该MFT号从$MFT文件中读取对应的文件记录,解析该目录的索引属性,通过给定文件的路径名称查找第2层子目录对应的MFT号;以此类推,直到找到该文件对应的MFT号;
#5通过该MFT号从$MFT文件中读取目标的文件记录;
#6通过解析该目标文件的文件记录的数据属性,获取该数据内容所占据的磁盘空间扇区地图{;;…};
#7采取《U.S.DOD 5220.22-M标准》数据擦除标准对DATA_MAP中记录的扇区地图进行擦除,并刷新到磁盘中;
#8 采取《U.S.DOD 5220.22-M标准》数据擦除标准对该文件的文件记录进行擦除,并刷新到磁盘中。
3.2日志记录
销毁NTFS文件系统是一个日志型的文件系统,文件记录和文件内容擦除之后,在日志文件$LOGFILE中还是会残留有该目标文件的属性信息,甚至是一些小文件的数据属性为常驻属性的情况下,还是可以通过一些日志恢复手段将该文件属性给恢复出来,还达不到一些高保密系统的要求。NTFS的日志文件结构比较复杂,由两部分区域组成:重启动区域和无限记录区域。无限记录区域4KB大小的组成,记录头固定标志位“RCRD”。
NTFS文件系统日志销毁方案描述如下:
#1 从$MFT文件中,查找NTFS日志文件的文件记录
#2 解析$LOGFILE的文件数据,获取其所有的日志区域;
#3 解析日志文件的无限记录区域,获取所有记录的文件修改记录;
#4 对于需要销毁的文件,获取其唯一文件记录号;
#5 针对所有记录的文件修改记录,若属于该销毁文件的日志记录,采用《U.S.DOD 5220.22-M标准》数据擦除标准对该日志区域进行擦除,并刷新到磁盘中。
4 结束语
数据安全删除是我们的核心关注点,即如何灵活彻底清除计算机中的涉密文件以及涉密数据。本文对NTFS文件系统结构进行深入研究,提出基于NTFS文件系统涉密文件彻底删除技术,该技术可以的对NTFS卷中的涉密文件进行擦除,可以有效防止失泄密。传统软件销毁法通过对整个磁盘或者分区进行覆写擦除,耗时时间长且不够灵活,采用本文介绍的数据擦除法,可以针对特定文件进行擦除,具备更强的灵活性。
Comentarios