数据取证技术面试题(持续更新中)

最近在自学数据取证下面是我整理的问题和答案,仅供参考如果发现错误可以联系QQ:1024275440
数据取证技术面试题
1.什么是数据取证
电子取证是指从计算机设备中获取信息,供案、事件调查使用。
2.数据取证有几种方式
(2.1)硬盘取证
(2.2)内存取证
3.硬盘数据取证
(3.1)PC硬盘复制
硬盘有机械硬盘和SSD闪存硬盘,从数据获取的角度来看,获取方式大同小异,在取证硬盘数据的时候应该使用专用的取证Linux启动光盘,避免常规系统使用页交换空间带来的数据损坏风险。
在使用专用取证Linux系统之后把一块大小不小于被检查计算机硬盘大小的硬盘通过USB方式或者其他接口的方式连接到被检查的计算机上,使用命令提示符:
dd if=/dev/sda of=/dev/sd (dd镜像硬盘)来进行硬盘复制。
可以使用硬盘复制机来制作镜像盘。
(3.2)手机硬盘数据获取
可以使用chip-off方法将闪存从手机吹下来,也可是使用JTAG法简单的通过跳线的方法将手机置于调试状态下,以获取手机内部存储芯片数据。
4.电子数据的固定
电子数据的固定即在获取数据之后别有用心的操作或日常的误操作都有可能修改其中数据,所以需要一种方式保证相关数据不会被修改(不会被污染)这就是电子数据固定。
目前主流的固定方式是使用常见的Hash算法比如SHA-1、SHA-256、SHA-512等,MD5 hash值存在MD5冲突问题因此被逐步淘汰,如果怀疑数据被篡改可以重新计算数据Hash值来进行判断是否被污染。
5.硬盘分区和数据恢复
(5.1)PC分区解析
数据恢复的基本单位是分区,如果已经获取了硬盘分区,需要根据MBR或者GPT方案来解析各个分区。
BIOS自检之后会把硬盘的第一个扇区的加载到内存固定位置(0x7C00)并把系统控制权交给他,这个扇区又称主引导扇区(Master Boot Record MBR)
0x1BEH~0x1FDH为分区表大小为0x40H,分区表之后的WORD大小地址是判断MBR扇区是否有效的标记,如果有效则为0x55AAH ,这个时候因为没有加载操作系统,因此CPU还是16位的实时模式。
0x1BEH~0x1FDH(偏移)40个字节是分区表,假如内存基址是0x7C00H,那么分区表是0X7C00H+0X1BEH。
(5.2)MBR分区
40个字节的分区表在很大程度是一样的,在这0x40个字节中,每0x10字节就表示一个分区,所以最多表示4个分区,这个4个分区也成为了主分区,但有些时候一块硬盘只能设置4个分区太少了,所以只好牺牲1个或多个主分区,把他们变成拓展分区,一个扩展分区又可以划分为若干个逻辑分区。
(5.3)GPT分区
GPT分区与UEFI相辅相成,正在逐步代替老的MBR-BIOS组合,在GPT分区方案中硬盘的第一个扇区将硬盘所有空间放在一个主分区中,在接下来的分区中定义各个分区,每个分区的定义为0x80字节。
第一个分区0x1BF-0x1CE(这是原MBR分区表第一个项的位置)处定义了一个主分区。在第二个扇区中定义EFI PART为ANDROID MMC DISK(Android闪存)从第三个扇区开始每隔0x80字节定义一个分区,直至所有分区定义完成。
6.常见数据恢复工具和取证工具
常见数据恢复工具:WinHex、R-studio、EasyRecovery、FinalData
常见取证工具:Encase、FTK、SafeAnalyzer
7.基于文件系统的数据恢复原理
我们先来了解一下文件在文件系统中是如何存储的,以一个简单的NTFS文件系统为例,在创建分区(也就是文件系统)时,除了写入分区头,还会把硬盘上一段连续的空间划分成两部分,即索引区(MFT表)和数据区。
索引区被划分成若干个文件登记项(File Entry 每个1KB),数据区被划分成若干个数据块(每个数据块4KB与内存页大小一致)。
当把一个文件复制到该文件系统中时,该文件的文件名、创建时间、最后一次修改时间、最近一次访问时间、共享属性等信息都会被记录在文件登记项中。
此外文件的数据记录在那些数据块中也会体现在文件登记项中,文件内容将被写入到数据区相关数据块中。
8.什么是剩磁恢复
剩磁恢复是针对10多年前的80GB容量的硬盘,对这种硬盘如果在超净室里拆开,就会发现其体积和现在几TB的硬盘是一样的,只是现在硬盘存储的密度变大了,存储密度增大极大压缩了剩磁的存在空间,以至于现在的硬盘中已经基本没有剩磁的存在了,1次覆盖足以擦除扇区中的数据。
9.扇区被写入数据的三种情况
(1)原文件登记项被覆盖,但是原文件占用的数据块没有收到影响
这种情况因为文件登记缺失,文件名和文件创建时间、最后一次修改时间、最近一次访问时间、共享属性等信息全部丢失,因为数据块没有覆盖可以通过文件开头的4字节文件签名判断文件类型需要逐扇区扫描开头是否有指定文件类型的文件签名根据文件特征或特征信息熵等技巧能找到文件最可能存放的位置,理论上就可以恢复这些文件了。
(2)原文件登记项没有收到影响,但是原文件占用的数据块全部或部分被覆盖了
在这种情况下,如果原文件所占的数据块全部被覆盖,则数据恢复失败,如果部分数据块被覆盖,则恢复出来的文件是残缺的,对于专业数据恢复人员来说这类不完整的文件才是分析的重点,分析不完整文件的思路是利用文件的格式根据所属文件的格式进行部分修复,例如利用流特征的自同步特性从残缺的数据中推算出图片中某个片段的起始位置,然后补上JPG文件头从而恢复数据,另一种思路是根据数据在文件中的存储编码寻找数据
(3)原文件登记项被覆盖,且原文件占用的数据块全部或部分被覆盖
这是最棘手的情况,仍然可以通过特征码方法或残缺页文件修复进行尝试性 恢复
10.内存镜像获取
(10.1)利用虚拟机获取内存镜像
例如当前运行的虚拟机是VMware虚拟机,设置快照会在虚拟机所在目录生成一个.vmem的文件,这个文件大小和设置的内存大小是一样的,实际上Vmware在挂起阶段,就是将虚拟机内存数据全部复制到.vmem文件中,这个.vmem文件中的数据是没有经过任何处理的纯dd镜像格式的内存,可以使用Volatility软件进行分析。
(10.2)利用休眠文件获取 Hiberfil.sys
如果被检查的计算机是笔记本电脑,而且到达现场时笔记本电脑处于开机状态,就可以利用笔记本电脑的休眠文件(Hiberfil.sys)获取系统物理内存的镜像,在通常情况下,根据笔记本电脑的默认配置文件,在关闭盖子后,系统会自动进入休眠模式该功能在系统的控制面板—硬件和声音—电源选项—系统设置—中进行设置。
休眠时系统会将物理内存备份到C:\Hiberfil.sys文件中,然后系统就可以断电了,当文件再次打开笔记本电脑的盖子时,系统会自动将C:\Hiberfil.sys文件的数据导入内存类似于VMware虚拟机中的.vmem文件。
(10.3)利用崩溃转储文件获取
当内核出现错误,Windows就会蓝屏在通常情况下,会生成崩溃转储(Crash Dump)时,系统就会被冻结,物理内存中的数据加上(大约4KB的头部信息)会被写入磁盘,这样就会完整地保存了系统状态,而且保证从转储时该状态不会被修改,崩溃的转储文件可以放到Windbg中分析也可以很方便的转换成dd格式的内存镜像。
产生的崩溃问题可能会限制这一方法的使用
崩溃存储类型有好几种例如最小的内存转储(64KB)内核内存转储和完全崩溃存储等,如果物理内存大于2GB系统默认不会完全存储需要单独设置。
触发蓝屏可以使用微软软件NotMyFault工具
11.常用内存镜像获取工具
Windows: KnTTools、F-Response、FastDump、SafeImage
Linux: fmem、LiME
12.动态仿真技术
对于检查人员来说,不开机就不能直观的看到被检查的计算机开机后的样子,也不能运行被检查计算机上安装的程序,这显然不利于分析,所以不同厂商开发了多种使取证人员自由检查被检查计算机而不破坏的软件和硬件技术这种技术被称为动态仿真技术
之所以不能直接启动计算机是因为目标计算机可能支持正常的页交换技术导致破坏计算机上面的数据。
硬件动态仿真产品
Phantom、Shadow2等
软件仿真
可以通过VMware做软件动态仿真,需要将一块dd格式的镜像硬盘放在虚拟机中,启动虚拟机就Vmware就可以自动生成一块dd格式的硬盘之后需要进行相关设置即可加载dd硬盘之后设置虚拟机快照保证数据不破坏即可。
13.注册表分析
注册表中记录了大量重要的信息,例如用户最近使用程序/文件,系统的时区设置、网络配置、开/关所自动运行的程序、系统中的服务、系统搜索记录、Windows系统登录密码的Hash值等。
如果被检查的计算机有Rootkit而且已经Hook了某些内核API,在正在运行的系统中看到永远是系统API显示的信息,恶意软件的作者完全可以把那些不想让我们看见的信息隐藏起来,所以从尽可靠的数据角度来看,应该直接从处于关机状态的系统硬盘中解析注册表中的数据。
14.Hive文件
注册表实际上是由系统盘符中若干个Hive文件组成的。
常见Hive文件在系统文件中的位置
HEKEY_LOCAL_MACHINE\System
%WINDIR%\system32\config\System
HEKEY_LOCAL_MACHINE\SAM
%WINDIR%\system32\config\SAM
HEKEY_LOCAL_MACHINE\Security
%WINDIR%\system32\config\Security
HEKEY_LOCAL_MACHINE\Sofware
%WINDIR%\system32\config\Software
HEKY_USER.Default
%WINDIR%\system32\config\defualt
15.注册表中的时间
Hive文件中有一个键控制模块(Key Control Block)在windbg中可以查找控制块结构,该块中有一个名为LastWrite的成员是该键最后修改的时间,在进行取证分析的时候可以利用这个时间查找文件还可以根据这个时间判断病毒感觉时间,或者根据时间进行排序。
16.USB移动存储设备
Windows为了更好的适配USB驱动程序,会在USB设备首次插入计算机时将其厂商、型号、序列号、数据传输模式等信息记录在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB 下的各个键中,所以根据各个键的LastWrite时间就能知道对应USB设备最后插入的时间
HKEY_LOCAL_MACHINE_SYSTEM\MounterDevices下子健记录了过往U盘插入的盘符,如果有多个U盘插入那么保留的盘符下次单独插入仍然是分配好的盘符,子健中的设备信息可以和上述注册表中的信息对应起来。
17.NTFS多数据流隐藏文件
在Windows操作系统中,文件名不也许包含英文字符:因为该字符专门用于NTFS多数据流中的。
NTFS多数据流是指一个NTFS文件中可以存储多个文件,比如新建一个test1.docx的word文件可以使用命令行 notepad test1.docx:1.txt 命令捆绑1.txt文件。
NTFS多数据流的优点是宿主文件和寄生文件的类型都不受限制,例如一个txt文件中嵌入一幅图片type d:4.jpg>123.txt:123.jpg 后输入 mspaint .\123.txt:123.jpg

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚构之人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值