For Windows version 1803 and later versions, if your platform supports the new Kernel DMA Protection feature, we recommend that you leverage that feature to mitigate Thunderbolt DMA attacks. For earlier versions of Windowsor platforms that lack the new Kernel DMA Protection feature, if your organization allows for TPM-only protectors or supports computers in sleep mode, the following is one DMA mitigation option. Please refer to BitLocker Countermeasures to understand the spectrum of mitigations.
Also users may refer to Intel Thunderbolt 3 and Security on Microsoft Windows 10 Operating System documentation for alternative mitigations.
Microsoft provides third-party contact information to help you find technical support. This contact information may change without notice. Microsoft does not guarantee the accuracy of this third-party contact information.
For more information about how to do this, go to the following Microsoft website:
BitLocker with TPM-only authentication allows for a computer to enter the power-on state without any pre-boot authentication. Therefore, an attacker may be able to perform DMA attacks.
In these configurations, an attacker may be able to search for BitLocker encryption keys in system memory by spoofing the SBP-2 hardware ID by using an attacking device that is plugged into a 1394 port. Alternatively, an active Thunderbolt port also provides access to system memory to perform an attack. Note that Thunderbolt 3 on the new USB Type-C connector includes new security features which can be configured to protect against this type of attack without disabling the port.
This article applies to any of the following systems:
- Systems that are left turned on
- Systems that are left in the Standby power state
- Systems that use the TPM-only BitLocker protector
1394 physical DMA
Industry standard 1394 controllers (OHCI compliant) provide functionality that allows for access to system memory. This functionality is provided as a performance improvement. It enables large amounts of data to transfer directly between a 1394 device and system memory, bypassing CPU and software. By default, 1394 Physical DMA is disabled in all versions of Windows. The following options are available to enable 1394 Physical DMA:
- An administrator enables 1394 Kernel Debugging.
- Someone who has physical access to the computer connects a 1394 storage device that complies with the SBP-2 specification.
1394 DMA threats to BitLocker
BitLocker system integrity checks mitigate unauthorized Kernel Debugging status changes. However, an attacker could connect an attacking device to a 1394 port, and then spoof an SBP-2 hardware ID. When Windows detects an SBP-2 hardware ID, it loads the SBP-2 driver (sbp2port.sys), and then instructs the driver to allow for the SBP-2 device to perform DMA. This enables an attacker to gain access to system memory and search for BitLocker encryption keys.
Thunderbolt physical DMA
Thunderbolt is an external bus that allows for direct access to system memory via PCI. This functionality is provided as a performance improvement. It enables large amounts of data to transfer directly between a Thunderbolt device and system memory, thereby bypassing the CPU and software.
Thunderbolt threats to BitLocker
An attacker could connect a special purpose device to a Thunderbolt port and have full direct memory access through the PCI Express bus. This could enable an attacker to gain access to system memory and search for BitLocker encryption keys. Note that Thunderbolt 3 on the new USB Type-C connector includes new security features which can be configured to protect against this type of access.
SBP-2 MitigationOn the previously mentioned website, refer to the "Prevent installation of drivers matching these device setup classes" section under "Group Policy Settings for Device Installation".
The following is the Plug and Play device setup class GUID for an SBP-2 drive:
On some platforms, completely disabling the 1394 device may provide extra security. On the previously mentioned website, refer to the "Prevent installation of devices that match these device IDs" section under "Group Policy Settings for Device Installation".
The following is the Plug and Play compatible ID for a 1394 controller:
Beginning with Windows 10 version 1803, newer Intel-based systems include built-in kernel DMA protection for Thunderbolt 3. No configuration is required for this protection.
To block a Thunderbolt controller on a device running an earlier version of Windows, or for platforms that lack kernel DMA protection for Thunderbolt 3, refer to the "Prevent installation of devices that match these device IDs" section under "Group Policy Settings for Device Installation" on the previously mentioned website.The following is the Plug and Play compatible ID for a Thunderbolt controller:
- The drawback of this mitigation is that external storage devices can no longer connect by using the 1394 port, and all PCI Express devices that are connected to the Thunderbolt port will not work.
- If your hardware deviates from current Windows Engineering Guidance, it may enable DMA on these ports after you start the computer and before Windows takes control of the hardware. This opens your system to compromise, and this condition is not mitigated by this workaround.
- Blocking the SBP-2 driver and Thunderbolt controllers does not protect against attacks on external or internal PCI slots (including M.2, Cardbus & ExpressCard).
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.