电子取证实例:基于文件系统的磁盘数据取证分析
0×1 简介
随着计算机犯罪个案数字不断上升和犯罪手段的数字化,搜集电子证据的工作成为提供重要线索及破案的关键。恢复已被破坏的计算机数据及提供相关的电子资料证据就是电子取证。NSTRT也曾协助进行过电子取证的工作,本期NSTRT将以一个假定的案例对基于磁盘的电子取证的过程进行一次讲解。
在一般的数据取证工作中,为了证据保全,确保取证工作造成数据丢失,在获取到证据介质后,首先要做的就是对介质数据进行全盘镜像备份。在制作完镜像备份后,接下来要做的就是对镜像进行数据提取了。
本文按照数据提取的常规思路,来介绍如何利用磁盘存储和文件系统的知识来进行磁盘数据提取。
对磁盘数据进行备份的方式中,比较常见的格式有dd、img、raw等。在提取了磁盘镜像后(本处使用dd镜像),使用某些工具可以详细地分析查找各种可用的数据。这里以强大的TSK(The Sleuth Kit)工具包为例进行说明。(工具下载)The SleuthKit可以对存储镜像做基于文件系统层,数据层,inode层和文件层等多个角度的详细分析。
本例假设得到一个dd镜像文件image.dd,取证的目标是查找JimmyJungle相关的数据信息。
在本例中,我们制作好了一个dd镜像,文件名为image.dd。本次取证的目标是查找与“JimmyJungle”相关的数据信息。
在对磁盘数据进行取证时,我们会进行多个层面的分析,包括文件系统层、数据层、inode层和文件层。这些不同的分析层面互相之间有着紧密的关联。下面我们来一一介绍各个层面的对取证的作用和分析过程
0×2 文件系统层分析
在得到一个磁盘或镜像后,一般首先会先进行文件系统层分析。文件系统层分析,顾名思义,就是了解磁盘分区的文件系统信息。获取文件系统信息不是为了直接获取数据,而是为了给后续的数据层分析和文件层分析提供分析依据。这些分析依据包括扇区信息、数据区域信息、目录区域信息和簇信息等。
在TSK里面的fsstat工具用于分析镜像的文件系统信息。使用方法非常简单,直接在命令行后面加入磁盘或镜像文件的路径。如下图显示了此镜像的扇区总数为2879,数据区域位于扇区19-2879,磁盘根目录位于扇区19-32,用于存放文件的地方位于扇区33-2879。簇大小为512b,刚好一个扇区。
0×3 数据层分析
数据层分析简单来说就是是分析磁盘镜像中基于簇的数据信息。数据层包含了文件的真实内容。分析数据层的目的是在磁盘的簇信息中查找目标相关的数据线索。数据在不同的文件系统里存储在不同名称的单元结构中。
我们首先提取未分配空间内容至un.ls:
D:\Program\sleuthkit-win32-4.0.2\bin>blklsd:/image.dd > D:/un.ls
然后提取un.ls里面的ASCII字符串(也可以按需求选择其它格式字符串)。D:\Program\sleuthkit-win32-4.0.2\bin>strings-t d D:/un.ls > d:\str.str,对un.ls立面的字符串进行搜索,找到了Jimmy Jungle的相关内容:
发现数据内容Jimmy Jungle,其中第一个信息位于未分配空间区域的第2560个扇区。下面我们以地址2560为第一个线索进行分析。
根据前面fsstat数据信息得知,簇大小为512,用2612除去簇大小后得知数据位于第5到第6个簇的开头之间。所以“Jimmy Jungle”的相关数据块位于未分配空间中的第5个簇。下面使用blkcalc工具计算第5个簇的扇区位置。
计算出image.dd的第五个簇位于扇区的位置是38。
在原始dd镜像中提取38号数据单元的内容。下图使用命令blkcat,不加其它参数的话默认只显示1个簇内容。
D:\Program\sleuthkit-win32-4.0.2\bin>blkcat.exed:/image.dd 38
0×4 inode层分析
首先介绍一下文件系统的inode。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。
通过inode层我们能够了解到数据存储单元与文件属性信息的联系。
我们使用ifind工具查找数据区域扇区号对应的文件元数据信息的位置:
D:\Program\sleuthkit-win32-4.0.2\bin>ifind.exe-a -d 38 d:/image.dd
由以上命令得知,此文件的文件元数据信息位于第五个元数据结构单元。
下面我们使用istat工具来输出此文件的inode信息:
D:\Program\sleuthkit-win32-4.0.2\bin>istat.exed:/image.dd 5
0×5 文件层分析
文件层的分析主要是根据inode信息来收集文件的具体内容。
根据inode层所提供的信息得知此文件为一个后缀名为doc的文档,大小为20480字节,占用的扇区为33-72一共40扇区。占有的扇区包括如下
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
65 66 67 68 69 70 71 72
把此内容提取出来存为word文件。
D:\Program\sleuthkit-win32-4.0.2\bin>blkcat.exed:/image.dd 33 40 > d:/dd.doc
这样一个完整的文件就提取出来了。
至此,我们就根据得到的信息提取出了一份完整的文件 。
0×6 总结
通过以上的步骤,我们看到几个层次之间的线索共享关系,并通过各种关联的方法得到了最终想要的结果,除了上述的基于磁盘的取证外。对其他类型数据的取证技术也非常多,取证的思路也多种多样。这是一个最简单的磁盘数据分析例子,希望能够给大家对磁盘的取证分析带来一个系统化的分析和学习思路。目前电子取证技术发展越来越快,并且已经从原先的PC端取证延伸到了移动终端,在未来电子取证也将成为信息安全的一个重要分支领域,NSTRT也将在以后的技术分享中继续给大家介绍其他的取证技术。
本文版权属于NSTRT团队,由团队成员EAST创作。如果你觉得这篇文章有用,可以分享给自己的朋友,同样希望更多的人也关注我们的微信公众号trt917和微博 NSTRT团队,我们会定期分享一些信息安全相关知识,希望能够对大家有所帮助。