据我所知,执行冷启动攻击有两种方法:
- 将系统重新启动到具有最小内存占用的备用操作系统或 BIOS,它会自动将内存导出到持久媒体。
- 物理移除内存模块并将它们放在启用 RAM 热插拔的主板或分析仪上,然后直接从中读取内存。
这两种方法都可以选择冷却内存模块,以使内存内容保持更长时间。然而,每种方法都有其自身的缺点。第一种方法可能会出现问题,因为如果设置了 BIOS 密码,系统可能无法启动,并且 POST 可能会覆盖内存,尤其是在 ECC 时。第二种方法的缺点是物理移除内存需要更多时间并增加数据丢失的机会,并且许多设备可能将内存焊接到主板上并且无法移动。由于在较新的 BIOS 中启用了更高的波动性和内存加扰,这两种技术都可能对 DDR3 和 DDR4 内存有问题(编辑:显然,由于使用 LFSR 进行加密,内存加扰完全没有用,仅用 50 字节的已知明文就可以破解,尽管在使用许多 DIMM 时内存交错确实使事情变得复杂)。
我读过一篇论文,涉及对早期DDR3 模块进行热插拔的攻击是可行的,恢复了超过 90% 的位,但现代 DDR3 和 DDR4 模块在实现上据称存在显着差异,这可能会影响冷启动在野外的功效。因为我知道针对旧版 DDR 和 DDR2 内存的冷启动攻击非常微不足道,所以我不太在意这一点,尽管我仍然有兴趣查看针对它们的冷启动攻击的实际使用示例,如果没有的话别的。
所以我的问题是,在现场的犯罪计算机取证中,目前针对 DDR3 和 DDR4 DRAM 最常见的冷启动攻击形式是什么,为什么?
编辑:一个可能有用的线索是这个存档的演示文稿。摘要:
服务器 PC 上的 BIOS 交换。使用火线、重启或用户空间工具获取内存是标准配置。如果您的英特尔主板 BIOS 擦除 ECC 内存并且实时插入 PCIe 失败怎么办?
该演示文稿描述了另一种使用 coreboot 项目中的方法初始化 RAM 的方法。初始化后,RAM 可以通过串行和 LPC-USB 设备进行压缩转储。
这听起来像是他们甚至没有想到要删除记忆。在演讲中,他们说热插拔 DIMM 是不切实际的,冷却模块是不够的,而且除了最先进的总线内存分析器之外,所有的总线内存分析器都太慢了,无法分析实时内存,即使它们的运行速度低至 666 MHz . 当然,在 POST 时擦除内存、使用 ECC 或 BIOS 密码会使引导到备用操作系统或引导加载程序以转储内存变得不可能。