取证软件如何检测已删除的文件

信息安全 取证 数据恢复
2021-08-27 07:45:26

取证软件如何检测已删除的文件?

当一个文件被删除时,来自 NTFS 系统中 MFT 的指针被删除,并且该文件不再可以从操作系统访问。如果我们的磁盘是碎片化的,像 Autopsy 或 Recuva 这样的软件如何检测单个文件中每个碎片的位置,以及软件如何正确排序碎片以“再现”文件在删除之前的样子?

我注意到,当您使用 CCleaner 删除某些内容时,它说的第一件事是“擦除 MFT 可用空间”,所以我的猜测是 MFT 就像链表一样工作,当您删除指针时,节点仍保留在内存中,但是不再可访问,这就是取证软件检测已删除文件的方式。

4个回答

有许多不同的方法可以完成。在很大程度上,最简单的方法是跟踪指向每个块的链接指针,但这绝不是唯一的方法。(MFT 也不是许多文件系统中这些链接的唯一来源。)

在较低级别,如果文件具有允许一个块与另一个块匹配的内部结构,它可以识别所有块并尝试在内容上匹配其中的一些块。尽管删除了指针,但这不适用于所有文件,因为有些文件对它们没有太多的模式,但它可以工作得足够多,这仍然是一个主要问题,特别是因为除非您的驱动器高度碎片化,即使是一个大文件也可能不超过几十个大块。

基本上,您可以通过多种不同的方式尝试根据驱动器的物理结构(如果可用,通常首选连续块)、文件系统功能(例如正向和反向块链接)或文件结构功能来拼凑东西, 因文件而异。

没有完全破坏,有许多可能的方法来恢复文件。在某些情况下,简单地删除指针可能就足够了,但真正确定的分析可能仍然可以通过寻找有意义的片段来将拼图放在一起,特别是如果他们正在寻找特别的东西。

在 NTFS 中,所有元数据都存储在 MFT 中。这包括名称、日期、父文件夹等。占用的集群也存储在一个称为数据运行的结构中。存储文件数据的集群只保存文件数据,没有链表保存关于下一个或前一个集群的信息。

当一个文件被删除(假设跳过回收站)时,MFT 记录中有一个位被关闭。该记录的其余部分保持原样。删除文件中的元数据不会被清除,直到新文件需要使用其元数据占用该记录槽。

MFT 是一个连续的集群块,记录大小为 1024 字节。NTFS 在创建新文件时使用第一个未分配的记录(从顶部开始)。

取证工具只需从 MFT 的顶部开始,将每个 1024 字节的块视为一条记录。如果已删除/已分配位打开,则它是已分配文件。如果它关闭,则该文件已被删除。

在另一条评论中提到了擦除 MFT 未分配空间,这是尝试隐藏元数据的一种方式。这涉及覆盖 MFT 中已标记为已删除的记录。

如果该元数据消失了,它会使文件恢复更加困难,但并非不可能。

FTK imager等取证工具本质上是二进制数据读取器和解释器。过于简化,它读取每个值并向您显示十六进制(或十进制)绝对值和/或解释值(例如文本)。谷歌获取更多关于 FTK 成像仪工作原理的示例和解释。

请注意,取证工具包只是一个工具。大多数都提供某种程度的处理来帮助您确定您所看到的是否是您想要看到的。

了解文件系统如何工作可能会有所帮助。是一本整理得很好的书(我知道它很旧,但仍然很重要)。这里也是 NTFS 的简要概述。

编辑:示例练习

所以这里有一个超级快速和有趣的方式让你看看这一切是如何运作的。首先,我建议您通读上述书籍,但无论如何您都可以按照以下步骤操作:

  1. 获取某种形式的媒体来存储文件(我推荐使用小型 256mb sd 卡等)。
  2. 重新格式化媒体(在 Windows 中取消选择“快速格式化选项”并确保它在 NTFS 中格式化)。
  3. 打开媒体并创建一个带有短名称的简单文本文件,并将您的电子邮件地址放入其中。
  4. 保存文件并检查一切是否正常。
  5. 打开媒体并删除文件。
  6. 打开 FTK Imager,选择“添加证据项目”并选择您的媒体。
  7. 现在,只需查找您的电子邮件地址。
  8. 实验和学习,直到你心满意足!

这个简单的练习演示了查找已删除文件是多么容易(即使没有 MFT)。我喜欢和我的学生一起做这个,因为你可以通过改变这个练习来学到很多东西,如果你把它和教科书结合起来,bam!

我有使用忽略文件系统逻辑的取证软件的经验,它只是在磁盘映像中查找与常见文件头或特定文件内容相对应的字节模式。

即搜索所有 JPEG 或搜索包含单词“hello”的文件。

这是恢复“已删除”文件的一种方法。