25、数字取证中数据去重的分析与影响

数字取证中数据去重的分析与影响

在当今数字化时代,数据存储和管理变得至关重要。数据去重技术作为一种有效减少存储容量需求的方法,正逐渐被广泛应用。然而,这种技术对数字取证调查工具产生了一定的影响。本文将深入探讨数据去重技术及其对开源数字取证调查工具的影响,并提出相应的解决方案。

数据去重概述

数据去重是一种通过消除数据的多个副本,从而降低存储容量需求的过程。它通过用指向数据块第一个副本物理位置的指针来替换重复的数据块。在深入了解数据去重技术之前,我们先了解一些相关的术语和定义:
| 术语 | 定义 |
| — | — |
| 簇(Cluster) | 一组连续的扇区,也称为块或数据单元。文件和目录内容存储在簇中,簇是文件系统中分配给文件的最小磁盘空间。注意,除了FAT文件系统使用扇区地址外,TSK使用簇地址来检查数据。 |
| 块(Chunk) | 连续的N KB,N可以是可变或固定长度。通常包含一个或多个连续的簇。每个单独的块由一个哈希指针引用,哈希是根据其中包含的数据计算得出的。 |
| 块存储(Chunk store) | 分配用于存储块的目录/内存段。 |
| 哈希(Hash) | 哈希算法将输入数据处理并尝试为每个输入生成唯一值。基本上是对任意长度的数据进行计算,输出固定长度的哈希值。 |
| 哈希数据库(Hash-db) | 包含块存储中所有块的哈希值。 |
| 哈希序列(Hash sequence) | 在数据去重中非常重要。哈希序列是对每个块进行哈希处理后产生的哈希序列。文件被替换为映射到块存储中相应块的哈希序列。 |
| 热点容器(Hotspot container) | 存储最常见/频繁使用的块。这是微软为Windows Server 2012和2016添加的功能。 |
| 恢复(Rehydrating) | 将充满哈希值的去重文件重新构建为具有正确内存内容的文件的过程。 |
| 重解析点(Reparse point) | 作为用户定义数据的集合。 |

数据去重技术可以分为两大类:在线去重(inline deduplication)和后处理去重(post-processing deduplication),并可进一步细分为文件级、块级和字节级三个类别:
- 在线去重 :在文件写入磁盘之前进行去重。数据先临时写入缓冲区,文件被分割成指定大小的块,并为每个块计算哈希值。如果系统中不存在具有相同哈希值的块,则将该块写入磁盘,并更新哈希数据库以包含新的哈希值。同时,文件也会更新以包含该哈希值。如果块的哈希值已经存在于磁盘上,则将哈希值添加到文件的哈希序列中,并更新映射以包含连接文件和块在内存中物理位置的指针,然后将块从缓冲区中释放。
- 后处理去重 :数据像在常规文件系统中一样立即写入磁盘。在设定的时间段后,原始文件被处理,分割成块,计算哈希值,并与哈希数据库进行比对。然后,从磁盘中删除文件的冗余部分。
- 文件级去重 :通过分析文件或“结构化数据”(如电子邮件、数据库等)并删除重复项。特别适用于电子邮件存储库、数据库和虚拟机映像备份。
- 块级去重 :允许分析文件的块并删除重复项。块可以看作是更大数据的分区或文件的部分。
- 字节级去重 :是一种“内容感知”的块级去重形式,意味着对数据流进行了一些逆向工程,以检索与使用的信息(如文件名、文件类型等)相对应的字节。

在线去重和后处理去重方法各有优缺点。在线去重需要较少的磁盘空间,但可能会在去重处理过程中造成瓶颈;而后处理去重在数据处理期间和重复数据未释放之前需要更多的磁盘空间,但由于处理过程不会产生瓶颈。

总体而言,数据去重有助于减少存储使用,但会带来额外的开销和性能下降的可能性。此外,如果一个数据块损坏,所有指向该块的文件都将丢失原始数据。

不同的数据去重系统

目前有各种数据去重系统,这里主要关注OpenDedup和Windows Server 2012及2016的去重系统。
- OpenDedup :是在线数据去重系统的一个示例。它与Ubuntu 14.01+和其他各种操作系统兼容。常规文件系统中的所有必要文件使用FUSE(用户空间文件系统)进行分配,去重文件系统SDFS在Linux上看起来像一个挂载的驱动器,文件通过挂载点访问。OpenDedup的块大小是固定的,使用的哈希函数是Murmurhash3,长度为128位,种子为0x192A。在指针文件中,前几个字节包含有关创建者的信息,最后几个字节包含文件的版本。文件内部包含原始文件的大小,以及指向包含构成文件的块序列的结构(文件夹)中元素的唯一标识符。每个文件夹都有一个唯一的标识符命名,并拥有自己的映射文件,该映射文件作为哈希数据库,包含该文件夹中存储的所有块的哈希值。文件夹的命名格式为“nnn - nnn”(例如,123 - 125),其中文件夹中的块的哈希值适合该范围。映射文件遵循键、长度(块大小 + 起始标记的长度)和值(块)的结构。在OpenDedup中,文件夹充当块存储。
- Windows Server 2012和2016 :其数据去重系统是后处理去重的一个示例。文件存储在常规文件系统中,在设定的时间段后,使用SHA256进行哈希处理对文件进行去重,并删除原始文件。并非所有文件都会被去重,小于32 KB的文件、系统状态文件、加密和/或压缩文件以及具有某些扩展名的文件会按常规方式保存,从不进行去重。在去重时,根据系统配置,块在存储时会被压缩,但这不适用于已经压缩的文件块。所有去重数据都存储在系统卷信息文件夹中,每个块存储有3个文件夹/容器:流容器、数据容器和热点容器。Windows文件系统或NTFS(新技术文件系统)包含一个主文件表($MFT),其中与去重文件相关的每个条目都保存有关块存储的信息,作为“重解析点”($REPARSE POINT - 0xC0)。重解析点以NTFS属性类型0xC0开头,文件的长度写在字节偏移量0x28处,块存储标识符在字节偏移量0x38处,流头在字节偏移量0x78处。流头用于在流文件中识别正确的哈希条目。块存储文件夹包含一个数据文件夹和一个流文件夹。数据文件夹是存储块的地方,包含一个.ccc文件,即块容器。流文件夹包含去重文件的哈希序列,并具有一个.ccc文件,分为3个部分:cthr - 文件头、rrtl - 重定向文件夹和ckhr - 流映射元素。chkr部分包含相对于文件的完整哈希序列(流映射)。

TSK工具及其受数据去重的影响

在计算机取证领域,有许多可用的工具,如TSK(The Sleuth Kit)、The Forensic Toolkit、Toolsley等。TSK是一个免费的开源工具,被世界各地的个人和公司广泛使用,如Cyber Triage。它为用户提供了多种工具,包括删除文件检索、恶意文件扫描、关键字文件搜索以及文件内容查看等功能。它支持广泛的数据源,如磁盘映像、VM文件、本地磁盘、本地文件/文件夹和未分配空间映像。

由于TSK的广泛使用、开源性质以及对多种数据源类型的支持,我们将分析磁盘映像中的数据去重对TSK工具的影响。TSK提供的手动分析工具可以分为六个部分:
- 图像文件工具 :包含用于图像文件格式的工具,如img stat用于显示图像格式的详细信息,img cat用于显示图像文件的原始内容。
- 卷系统工具 :以磁盘(或其他介质)映像为输入,分析其分区结构。例如mmls用于显示磁盘的布局,包括已分配和未分配的空间;mmstat用于显示卷系统的详细信息;mmcat用于使用标准输出显示卷的内容。
- 文件系统层工具 :处理一般的文件系统数据,如布局、分配结构和引导块。例如fsstat用于显示文件系统的详细信息和统计数据,包括布局、大小和标签。
- 文件名层工具 :处理通常位于父目录中的文件名结构。例如ffind用于查找指向给定元数据结构的已分配和未分配的文件名,fls用于列出目录中所有已分配和未分配的文件名。
- 元数据层工具 :处理存储文件详细信息的元数据结构。例如icat用于提取文件的数据单元,通过元数据地址而不是文件名指定;ifind用于根据给定的文件名或数据单元查找元数据结构。
- 数据单元层工具 :处理存储文件内容的数据单元(簇或块)。例如blkcat用于提取给定数据单元的内容,blkls用于列出数据单元的详细信息,blkstat用于显示数据单元的统计信息,blkcalc用于计算未分配空间映像中数据的位置。

为了研究数据去重对TSK工具的影响,我们进行了以下测试:使用VMWare初始化了一个Windows Server 2012 VM,并在其中添加了一个启用数据去重的20 GB分区。将去重卷的NoCompress设置为true,并将去重过程安排在每晚11:00进行。下载了5个文件并放置在启用去重的分区上,包括1342 - 0 (.txt)、sample - mp4 - file (.mp4)、get started with smallpdf (.pdf)、Symphony No. 6 (1st movement) (.mp3)和Sample 1280x720 surfing with audio (.mkv)。在预定的去重运行后,使用qemu - img将VM映像从.vmdk转换为.img文件,然后使用Autopsy进行处理。

由于TSK工具的性质,我们预测所有需要确定分配给去重文件的数据单元(簇)地址的工具都会失败,因为它们会跟随错误的数据地址。为了验证这一假设,我们在启用数据去重的映像上测试了TSK工具,结果如下表所示:
| 工具层 | 工具名称 | 是否不受数据去重影响? |
| — | — | — |
| 文件系统层工具 | fsstat | 是 |
| 文件名层工具 | ffind | 是 |
| 文件名层工具 | fls | 是 |
| 文件名层工具 | fcat | 否 |
| 元数据层工具 | icat | 否 |
| 元数据层工具 | ifind | 是 |
| 元数据层工具 | ils | 是 |
| 元数据层工具 | istat | 否 |
| 数据单元层工具 | blkcat | 是 |
| 数据单元层工具 | blkls | 是 |
| 数据单元层工具 | blkstat | 是 |
| 数据单元层工具 | blkcatc | 是 |
| 卷系统工具 | mmls | 是 |
| 卷系统工具 | mmstat | 是 |
| 卷系统工具 | mmcat | 是 |
| 图像文件工具 | img stat | 是 |
| 图像文件工具 | img cat | 是 |

例如,istat使用文件的inode编号并显示其详细信息,包括文件占用的数据单元地址,但在去重文件上会失败,因为可以观察到常规文件的$DATA属性中的所有地址都为零。

综上所述,数据去重技术在提高数据存储效率的同时,给数字取证工作带来了新的挑战。TSK作为常用的数字取证工具,部分功能在面对去重数据时会受到影响。后续我们将进一步探讨如何增强TSK工具以适应数据去重环境,以及数据去重技术在取证方面的积极影响。

增强TSK工具以适应数据去重环境

为了让TSK工具在遇到启用数据去重的卷时仍能正常工作,我们需要开发相应的解决方案。具体来说,我们将从以下两个方面进行改进:

设计和开发数据去重恢复算法

我们将设计并开发一个数据去重恢复算法,以扩展TSK这个广泛使用的开源文件系统取证工具,使其能够支持处理去重文件。该算法的主要步骤如下:
1. 解析哈希序列 :从去重文件中提取哈希序列,这些序列映射到块存储中的相应块。
2. 查找块存储 :根据哈希序列,在块存储中查找对应的块。
3. 恢复文件内容 :将找到的块按照哈希序列的顺序组合起来,恢复文件的原始内容。

通过这个算法,TSK工具可以将充满哈希值的去重文件重新构建为具有正确内存内容的文件,从而解决了数据去重对TSK工具的影响。

探索数据去重在取证方面的积极影响

数据去重除了带来挑战外,也有一些积极的影响。由于数据去重的特性,多个文件可以引用同一个块,我们探索了去重是否可以允许恢复多个文件的块,而不仅仅是目标原始文件。

为了验证这一想法,我们进行了大量的实验。实验结果表明,在某些情况下,数据去重可以让法医分析人员恢复比原本认为可能更多的证据。例如,当一个关键文件的部分块被多个其他文件引用时,即使关键文件本身可能已经损坏或删除,我们仍然可以通过其他引用该块的文件来恢复这些关键块的内容。

研究的后续安排

为了进一步深入研究数据去重对数字取证的影响,并找到更好的解决方案,我们的研究将按照以下步骤进行:

  • 深入了解数据去重 :在接下来的研究中,我们将更加深入地探讨数据去重的原理和机制,详细分析不同去重技术的特点和应用场景。
  • 分析TSK工具和功能 :对TSK工具的各个功能进行详细的总结和分析,明确每个工具在数据去重环境下的表现和问题。同时,详细解释测试设置,确保测试结果的准确性和可靠性。
  • 提出解决方案 :针对数据去重对TSK工具的影响,提出具体的解决方案。我们的目标是使我们的取证软件解决方案与广泛使用的数据去重工具兼容,如果不能兼容所有的数据去重工具,也要尽量扩大兼容性范围。
  • 探索积极影响 :继续探索数据去重在取证方面的积极影响,通过更多的实验和案例分析,总结出在哪些情况下数据去重可以帮助我们更好地恢复证据。
  • 研究相关工作 :对相关领域的研究工作进行综述和分析,了解其他研究者在数据去重和数字取证方面的成果和经验,为我们的研究提供参考和借鉴。
  • 总结和展望 :最后,对整个研究进行总结,得出结论,并对未来的研究工作进行展望,提出可能的研究方向和改进措施。
总结与展望

数据去重技术在提高数据存储效率方面具有显著的优势,但也给数字取证工作带来了新的挑战。TSK作为常用的数字取证工具,部分功能在面对去重数据时会受到影响。通过设计和开发数据去重恢复算法,我们可以扩展TSK工具的功能,使其能够支持处理去重文件。同时,我们也发现数据去重在某些情况下可以为取证工作带来积极的影响,帮助我们恢复更多的证据。

未来的研究工作将继续深入探索数据去重与数字取证之间的关系,不断改进和完善取证工具和方法,以应对不断变化的数据存储和处理技术。同时,我们也需要加强对数据去重技术的监管和规范,确保在提高存储效率的同时,不会对数字取证等重要工作造成过大的阻碍。

以下是整个研究过程的mermaid流程图:

graph LR
    A[开始研究] --> B[深入了解数据去重]
    B --> C[分析TSK工具和功能]
    C --> D[提出解决方案]
    D --> E[探索积极影响]
    E --> F[研究相关工作]
    F --> G[总结和展望]
    G --> H[结束研究]

通过本文的研究,我们希望能够为数字取证领域的研究人员和从业者提供有价值的参考,帮助他们更好地应对数据去重带来的挑战,充分利用数据去重的积极影响,提高数字取证的效率和准确性。

【四旋翼无人机】具备螺旋桨倾斜机构的全驱动四旋翼无人机:建模控制研究(Matlab代码、Simulink仿真实现)内容概要:本文围绕具备螺旋桨倾斜机构的全驱动四旋翼无人机展开研究,点探讨其系统建模控制策略,结合Matlab代码Simulink仿真实现。文章详细分析了无人机的动力学模型,特别是引入螺旋桨倾斜机构后带来的全驱动特性,使其在姿态位置控制上具备更强的机动性自由度。研究涵盖了非线性系统建模、控制器设计(如PID、MPC、非线性控制等)、仿真验证及动态响应分析,旨在提升无人机在复杂环境下的稳定性和控制精度。同时,文中提供的Matlab/Simulink资源便于读者复现实验并进一步优化控制算法。; 适合人群:具备一定控制理论基础和Matlab/Simulink仿真经验的研究生、科研人员及无人机控制系统开发工程师,尤其适合从事飞行器建模先进控制算法研究的专业人员。; 使用场景及目标:①用于全驱动四旋翼无人机的动力学建模仿真平台搭建;②研究先进控制算法(如模型预测控制、非线性控制)在无人机系统中的应用;③支持科研论文复现、课程设计或毕业课题开发,推动无人机高机动控制技术的研究进展。; 阅读建议:建议读者结合文档提供的Matlab代码Simulink模型,逐步实现建模控制算法,点关注坐标系定义、力矩分配逻辑及控制闭环的设计细节,同时可通过修改参数和添加扰动来验证系统的鲁棒性适应性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值