您可以从休眠的 Windows 机器中提取内存内容吗?

信息安全 视窗 攻击 操作系统
2021-08-29 04:35:31

在最近关于硬件黑客的讨论中,出现了围绕 Windows 休眠的攻击。我不完全相信从保存到磁盘的内存中取出东西是可行的。

当 Windows 休眠时,它会将 RAM 的内容放到磁盘上的文件中(也许还有其他东西,我不知道),然后关闭。我假设当它重新打开时,它会将保存的 RAM 内容弹出到实际的 RAM 本身。

因此,假设的攻击是窃取保存的磁盘文件,从而窃取 RAM 内容,其中可能包括密码等敏感数据,或者通过更改 RAM 内容、添加/编辑指令以执行任意代码来破坏内存.

现在,我知道对机器具有物理访问权限的攻击者几乎可以做任何事情,但是考虑到这些特定的攻击,这是否可能?假设没有磁盘范围的加密,Windows 在休眠时是否真的加密了保存的 RAM?

另外,有谁知道这个文件将存储在哪里?所以,我可以尝试动手查看磁盘的内容,也许使用 LiveCD?

3个回答

是的,它确实将未加密的数据存储在磁盘上。它是位于 的隐藏文件C:\hiberfil.sys,将始终在任何启用了休眠的系统上创建。内容使用 Xpress 算法压缩,其文档可从 Microsoft 以 Word 文档的形式获得。Matthieu Suiche 在 2008 年将其作为 BlackHat 演示文稿进行了全面分析,您可以将其作为 PDF 获得还有一个名为MoonSols Windows Memory Toolkit的工具,可让您转储文件的内容。不过,我不知道它是否可以让您转换回来。你可能不得不自己想办法去做。

获取数据后,就可以提取或修改数据,包括说明。在缓解方面,您最好的解决方案是使用像 BitLocker 或 TrueCrypt 这样的全盘加密。

只需启动计算机即可访问休眠映像的内容,这将恢复映像。这毕竟是冬眠的全部意义。如果恢复不需要任何秘密,则意味着休眠图像是自包含的,无法防止攻击者访问它,因为无法区分攻击者和合法用户。

恢复可能无法访问所有内容,例如,如果您返回屏幕解锁提示。制作休眠映像的副本可以让您多次启动它。您甚至可以尝试在虚拟机中启动它,但您必须非常接近地模拟原始硬件才能使恢复成功。

当然,访问已写入休眠图像的数据的最佳方法是在不执行它的情况下读取它(多项式的答案有指向格式文档的指针)。

原则上可以对休眠图像进行加密,但这需要更改用户界面:有人必须在恢复时输入解密密钥(通常通过输入密码,或插入智能卡)。据我所知,Windows 不支持休眠文件的加密,即使使用 Bitlocker(FAQ不明确,本文声称不存在这样的功能)。TrueCrypt确实支持休眠文件的加密,Linux 的休眠和磁盘加密机制也是如此。

请注意,加密的休眠映像对于窃取磁盘的攻击者来说是无用的,但它不能防御邪恶的女仆攻击,在这种攻击中,有人可以访问休眠的系统并可以在引导映像中植入恶意软件,该恶意软件将在接下来合法用户出现并输入密码。防御此类攻击需要验证引导加载程序(包括恢复工具)的完整性——这与攻击系统的冷启动没有什么不同。

这种攻击是可能的。该文件的名称是“hiberfil.sys”,位于 Windows 分区的根目录中。位置可以更改。Windows 不加密休眠也不交换 (pagefile.sys) 文件。为避免这种脱机攻击,应使用全盘加密(系统驱动器和存储 hiberfil.sys 和 pagefile.sys 的驱动器,如果它们的位置已更改)。