就计算机取证而言,如果犯罪嫌疑人的计算机(无法移出现场)是Linux系统,是否可以直接使用诸如DD或者dcfldd在他的计算机上获取磁盘映像?或者您是否需要在现有操作系统之上使用 Helix、Penguin sleuth 或 FFCU 等取证 Live CD?
答案1
运行类似命令时
# dd if=/dev/sda of=/path/to/external/medium/file.img
在实时系统上可以工作,这会导致许多问题,如果您启动到单独的操作系统并从那里制作映像,则不会出现这些问题:
如果您对整个磁盘进行映像,它可能包含引导装载程序和一个分区表。当您尝试对图像进行取证/恢复时,这些都会妨碍您。
你真正想要的是独立地镜像每个文件系统:
# dd if=/dev/sda1 of=/path/to/external/medium/filesystem1.img # dd if=/dev/sda2 of=/path/to/external/medium/filesystem2.img ...etc...
这样做使得安装文件系统变得很简单:
# mount -oloop,ro filesystem1.img /mnt/fs1
(我将
mount
完成显示为 root,因为在某些 Linux 上,循环设备已被锁定,因此普通用户无法使用它们。)您正在对实时安装的文件系统进行快照,因此当您稍后安装它们时,实际上与重新启动计算机没有什么不同。分区将是“肮脏的,”这使得在不损坏它们的情况下安装它们变得困难。
您正在使用可疑机器的
dd(1)
.如果有人试图向您隐瞒某些内容,他们可能会偷偷地或恶意地提供dd(1)
.
现在,话虽如此,有一些好的进行在线克隆的原因。最好的原因是系统正在使用某种形式的文件系统或全盘加密,重新启动它将删除已安装卷的解密密钥。
dd
然而,这并不是这项工作的正确工具,因为它只会为您提供静态加密数据的副本。定期备份是一个更好的主意。例如,
# tar -cvJf --exclude={'/proc/*','/sys/*','/tmp/*'} \
/path/to/external/medium/everything.tar.xz /
这不会发现隐藏分区等,但至少会迫使操作系统解密可从文件系统根目录直接访问的每个文件。
答案2
在取证调查中,您需要从可能存在敌意的系统中检索数据,并且需要提供有力的证据证明检索到的数据是真实的。从实时计算机获取磁盘映像在这两方面都非常糟糕。
系统软件可能是一些非标准软件,它们被编程为对您撒谎,并且仅在出示您没有的凭据时才提供“有趣”的数据。例如,您可能正在与伪装成真实硬件的虚拟机进行交互。系统可执行文件或内核可能已被修改,无法报告真实数据。这对你来说既是一个问题,因为你想要真实的数据,对任何法律诉讼来说也是一个问题,因为嫌疑人的律师将在现场证明你无法证明你所抓到的东西是真实的。
任何取证的正常程序都是断开存储介质并将其连接到您自己的笔记本电脑,该笔记本电脑正在运行您可以精确说明的软件。
此外,dd
这是一个错误的工具,因为它不能可靠地复制其完整输入。 (如果您从块设备而不是从管道读取,它可能会起作用,但祝您好运,以任何信心程度证明这一点。) 至少使用适当的工具,例如dcfldd
或 至少cat
.
您不仅不能信任计算机上运行的软件,而且也不能信任硬件。因此,尝试在嫌疑人的计算机上启动您自己的媒体并不安全。例如,您的操作系统最终可能会在您无法检测到的虚拟机管理程序中运行,但会返回损坏的数据。您需要携带自己的计算机并将硬盘连接到它。
同样重要的是,您不要写入嫌疑人的计算机(因为您需要嫌疑人的数据,而不是从嫌疑人的数据派生的您自己的数据)。因此,标准程序是通过写入阻止程序连接硬盘,写入阻止程序是一种专用硬件组件,在协议级别(例如 USB 存储协议)强制执行磁盘不会被写入的操作。然后,您将抓取的内容保留为参考副本(如果可能的话,保存在物理一次性写入介质上,保存在您永远不会写入的硬盘上),并且永远不要直接使用它,只能从辅助副本中进行操作。
最好抓取整个磁盘的映像,并从那里重建文件系统等。请注意,仅仅组装卷或安装文件系统(甚至是只读!)的行为就可以对其进行修改:设置脏位、更新上次使用日期、重播日志……当安装不支持的 ext3/ext4 文件系统时干净地卸载后,noload
安装选项(除了ro
)会跳过日志更新并导致不会将任何内容写入磁盘;这样做的缺点是您将读取的数据可能不一致(这可以让新删除的文件仍然存在)。
如果您需要从实时系统中获取某些内容,例如因为数据已加密,那么请尽您所能地获取。尽可能准确地记录您所做的事情(拍摄视频可能会有所帮助)。但还要获取真实的底层数据。使用从实时系统获得的信息(通常是密钥)以易于追踪的方式重建直接转储中的有趣数据。
您可以在以下位置找到有关此主题的更多信息安全堆栈交换, 尤其: