阻止 SBP-2 驱动程序和 Thunderbolt 控制器可减少对 BitLocker 的 1394 DMA 和 Thunderbolt DMA 威胁

适用于: Windows Server version 1803Windows 10, version 1803, all editionsWindows Server 2016 Version 1709

通知


对于 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 安全博客:有关对 BitLocker 的冷攻击的缓解的更多信息,请参阅以下 Microsoft 完整性团队博客:

本文中讨论的第三方产品由 Microsoft 以外的其他公司制造。 对于这些产品的性能或可靠性,Microsoft 不做任何暗示保证或其他形式的保证。