寻找软件的工件

信息安全 取证 文件系统
2021-08-16 14:13:16

我想知道是否有一种既定的方法可以知道系统上正在运行的特定程序可能会留下什么(就文件系统的更改而言,例如在 Linux 中)。我的想法与我认为可能进行法医调查的方式相似。

我认为解决这个问题的方式类似于我认为 Tripwire 的工作方式。首先通过对目录进行哈希处理,找到已更改的目录,然后从更改的目录中缩小特定文件的范围。然后通过使用带有快照的虚拟机,我可以恢复到机器的先前状态,并将未来的更改与之前记录的更改进行比较。

我知道 logging 和 tmp 目录无论如何都会自然改变。但是除了这些之外,还有什么方法可以知道系统上留下了什么,或者是否有比我正在考虑使用的更好(或更智能)的过程?

3个回答

一种可能的解决方案是在您要分析的程序运行之前和之后获取目标(整个 HDD 或特定区域甚至 RAM)的法医声音图像。然后简单地*比较这两个图像。

我会从比较哈希开始,以确定某些东西确实发生了变化(这样你就不会浪费时间“寻找”)。很多时候,“工件”被“遗留”在 RAM 中,因此在不使用时会随着时间的推移而被删除。

您可以使用FTK Imager之类的程序来执行此操作。

假设它不是恶意软件,那么最简单的方法是使用覆盖文件系统(例如 UnionFS、OverlayFS)。更改的文件将基本上在覆盖中。

另一种选择是使用具有快照功能的文件系统(例如 btrfs)或 LVM 快照。

如果软件是恶意软件,您可能需要使用虚拟机快照,因为在高级恶意软件/root 工具包的情况下您可能不再能够信任内核。

在 Windows 中,您可以使用软件作为进程监视器来拦截所有系统调用,包括文件系统修改。这样您就不需要计算所有文件的哈希值。

您还可以使用Wireshark来拦截流量,使用Regshot来发现寄存器中的更改,从而发现有用的取证工件。