声明
对于 Windows 版本 1803 及更高版本,如果你的平台支持新的 内核 DMA 保护 功能,我们建议你利用该功能来缓解 Thunderbolt DMA 攻击。 对于缺少新的 内核 DMA 保护 功能的早期版本的 Windows 或平台,如果你的组织允许仅 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
符合 OHCI 标准 (行业标准 1394 控制器) 提供允许访问系统内存的功能。 此功能作为性能改进而提供。 它允许大量数据直接在 1394 设备和系统内存之间传输,绕过 CPU 和软件。 默认情况下,所有版本的 Windows 中均禁用 1394 物理 DMA。 以下选项可用于启用 1394 物理 DMA:
- 管理员启用 1394 内核调试。
- 有权物理访问计算机的人连接符合 SBP-2 规范的 1394 存储设备。
1394 DMA 对 BitLocker 的威胁
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 的某些配置可以降低此类攻击的风险。 TPM+PIN、TPM+USB 和 TPM+PIN+USB 保护程序可减少计算机不使用休眠模式 (挂起到 RAM) 时 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 保护的平台阻止 Thunderbolt 控制器,请参阅前面提及的网站上“设备安装的组策略设置”下的“阻止安装与这些设备 ID 匹配的设备”部分。
以下是 Thunderbolt 控制器的即插即用兼容 ID:
PCI\CC_0C0A
注意
- 此缓解措施的缺点是外部存储设备无法再使用 1394 端口进行连接,并且连接到 Thunderbolt 端口的所有 PCI Express 设备都将无法工作。
- 如果你的硬件偏离当前的 Windows 工程指南,则它可能会在你启动计算机之后和 Windows 控制硬件之前在这些端口上启用 DMA。 这会使系统受到损害,并且此解决方法无法缓解这种情况。
- 阻止 SBP-2 驱动程序和 Thunderbolt 控制器不能防止对外部或内部 PCI 插槽的攻击 (包括 M.2、Cardbus & ExpressCard) 。
详细信息
有关 DMA 对 BitLocker 威胁的详细信息,请参阅以下 Microsoft 安全博客:
Windows BitLocker 声明 有关针对 BitLocker 的冷攻击缓解措施的详细信息,请参阅以下 Microsoft 诚信团队博客:
本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性提供任何明示或暗示性担保。