通知
对于 Windows 版本 1803 及更高版本,如果你的平台支持新的内核 DMA 保护功能,我们建议你利用该功能来缓解 Thunderbolt DMA 攻击。对于缺少新的内核 DMA 保护功能的早期版本的 Windowsor 平台,如果你的组织允许使用仅 TPM 保护程序或支持计算机处于睡眠模式,则以下是一个 DMA 缓解选项。 请参考 BitLocker 对策,以了解缓解措施的范围。
此外,用户还可以参考 Microsoft Windows 10 操作系统上的 Intel Thunderbolt 3 和安全文档,了解其他缓解措施。
Microsoft 提供了第三方联系信息,以便于你寻求技术支持。 此联系信息如有更改,恕不另行通知。 Microsoft 不保证此第三方联系信息的准确性。
有关如何执行此操作的更多信息,请转到以下 Microsoft 网站:
症状
当计算机开启或处于待机电源状态时,受 BitLocker 保护的计算机可能易受直接内存访问 (DMA) 攻击。 这包括桌面锁定的情况。
具有仅 TPM 身份验证的 BitLocker 允许计算机进入开机状态,无需任何预启动身份验证。 因此,攻击者可能执行 DMA 攻击。
在此设置下,攻击者可能会使用插在 1394 端口的攻击设备,通过欺骗 SBP-2 硬件 ID 搜索到系统内存中的 BitLocker 加密密钥。 另外,活动的 Thunderbolt 端口也提供系统内存访问,以执行攻击。 请注意,新的 USB Type-C 连接器上的 Thunderbolt 3 包含新的安全功能,这些功能可配置为防御此类型的攻击,而无需禁用端口。
本文适用于以下任何系统:
-
已开启的系统
-
处于待机电源状态的系统
-
使用仅 TPM BitLocker 保护程序的系统
原因
1394 物理 DMA
1394 控制器行业标准(OHCI 兼容) 提供允许访问系统内存的功能。 此功能是作为性能改进而提供的。 该功能允许 1394 设备和系统内存之间直接进行大量的数据转移,而绕过 CPU 和软件。 默认状态下,所有版本的 Windows 中禁用 1394 物理 DMA。 以下选项可用来启用 1394 物理 DMA:
-
管理员启用 1394 内核调试。
-
具有计算机物理访问权限的人可连接符合 SBP-2 规范的 1394 存储设备。
对 BitLocker 的 1394 DMA 威胁
BitLocker 系统完整性检查可缓解未经授权的内核调试状态更改。 然而,攻击者可以将攻击设备连接到 1394 端口,然后欺骗 SBP-2 硬件 ID。 当 Windows 检测到 SBP-2 硬件 ID 时,会加载 SBP-2 驱动程序 (sbp2port.sys),然后指示驱动程序允许 SBP-2 设备执行 DMA。 这使攻击者可以访问系统内存,并搜索 BitLocker 加密密钥。
Thunderbolt 物理 DMA
Thunderbolt 是一种外部总线,允许通过 PCI 直接访问系统内存。 此功能是作为性能改进而提供的。 该功能允许 Thunderbolt 设备和系统内存之间直接进行大量的数据转移,从而绕过 CPU 和软件。
对 BitLocker 的 Thunderbolt 威胁
攻击者可以将一个特殊用途的设备连接到 Thunderbolt 端口,并通过 PCI Express 总线进行完整的直接内存访问。此操作可让攻击者访问系统内存,并搜索 BitLocker 加密密钥。 请注意,新的 USB Type-C 连接器上的 Thunderbolt 3 包含新的安全功能,这些功能可配置为防止此类型的访问。
解决方案
BitLocker 的一些配置可以减少这种攻击的风险。 当计算机不使用休眠模式(挂起到 RAM)时,TPM+PIN、TPM+USB 和 TPM+PIN+USB 保护器可降低 DMA 攻击的影响。
SBP-2 缓解
在上面提到的网站上,请参阅“设备安装的组策略设置”下的“阻止符合这些设备安装程序类的驱动程序安装”部分。
以下是 SBP-2 驱动器的即插即用设备安装程序类 GUID:
d48179be-ec20-11d1-b6b8-00c04fa372a7
在某些平台上,完全禁用 1394 设备可能会提供额外的安全性。 在上面提到的网站上,请参考“设备安装的组策略设置”下的“阻止符合这些设备 ID 的设备安装”部分。
以下是 1394 控制器的即插即用兼容 ID:
PCI\CC_0C0010
Thunderbolt 缓解
从 Windows 10 版本 1803 开始,较新的基于 Intel 的系统包括内置的 Thunderbolt 3 的内核 DMA 保护。 此保护不需要任何配置。
要在运行 Windows 早期版本的设备上阻止 Thunderbolt 控制器,或者对于缺少 Thunderbolt 3 的内核 DMA 保护的平台,请参考上面提到的网站中“设备安装的组策略设置”下的“阻止符合这些设备 ID 的设备安装”部分。
以下是 Thunderbolt 控制器的即插即用兼容 ID:
PCI\CC_0C0A
注意
-
这种缓解的缺点是外部存储设备无法通过使用 1394 端口进行连接,并且连接到 Thunderbolt 端口的所有 PCI Express 设备将无法正常工作。
-
如果你的硬件偏离当前的 Windows 工程指南,在你启动计算机后并且 Windows 控制硬件之前,该硬件可能会在这些端口上启用 DMA。 这将打开你的系统进行攻击,而且这种情况无法通过此解决方法缓解。
-
阻止 SBP-2 驱动程序和 Thunderbolt 控制器无法防御对外部或内部 PCI 插槽(包括 M.2、Cardbus 和 ExpressCard)的攻击。
更多信息
有关如何对 BitLocker 的 DMA 威胁的更多信息,请参阅以下 Microsoft 安全博客:
Windows BitLocker 声明 有关对 BitLocker 的冷攻击的缓解的更多信息,请参阅以下 Microsoft 完整性团队博客:
本文中讨论的第三方产品由 Microsoft 以外的其他公司制造。 对于这些产品的性能或可靠性,Microsoft 不做任何暗示保证或其他形式的保证。