Обнаружены неразрешенные шины/устройства с поддержкой DMA

Обнаружены неразрешенные шины/устройства с поддержкой DMA

Моя проблема в том, как узнать, какое устройство на моем ноутбуке поддерживает Un-allowed DMA. Я пробовал отключать USB-устройства и отсоединять ноутбук от док-станции. У моего коллеги такая же модель ноутбука, и у него нет такой же проблемы, как у меня.

Системная информация

OS Name Microsoft Windows 10 Enterprise
Version 10.0.16299 Build 16299
Other OS Description Not Available
OS Manufacturer Microsoft Corporation
System Name NB-SOKRE
System Manufacturer LENOVO
System Model 20L7S02M00
System Type x64-based PC
System SKU LENOVO_MT_20L7_BU_Think_FM_ThinkPad T480s
Processor Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz, 2112 Mhz, 4 Core(s), 8 Logical Processor(s)
BIOS Version/Date LENOVO N22ET37W (1.14 ), 22.5.2018.
SMBIOS Version 3.0
Embedded Controller Version 1.08
BIOS Mode UEFI
BaseBoard Manufacturer LENOVO
BaseBoard Model Not Available
BaseBoard Name Base Board
Platform Role Mobile
Secure Boot State On
PCR7 Configuration Bound
Windows Directory C:\Windows
System Directory C:\Windows\system32
Boot Device \Device\HarddiskVolume1
Locale United States
Hardware Abstraction Layer Version = "10.0.16299.371"
User Name 3PRO\kkljucaric
Time Zone Central European Daylight Time
Installed Physical Memory (RAM) 16,0 GB
Total Physical Memory 15,8 GB
Available Physical Memory 7,02 GB
Total Virtual Memory 18,2 GB
Available Virtual Memory 5,31 GB
Page File Space 2,38 GB
Page File C:\pagefile.sys
Virtualization-based security Running
Virtualization-based security Required Security Properties Base Virtualization Support, Secure Boot, DMA Protection
Virtualization-based security Available Security Properties Base Virtualization Support, Secure Boot, DMA Protection, Secure Memory Overwrite, UEFI Code Readonly, SMM Security Mitigations 1.0
Virtualization-based security Services Configured Credential Guard
Virtualization-based security Services Running Credential Guard
Windows Defender Device Guard Code Integrity Policy Audit
Windows Defender Device Guard user mode Code Integrity Audit
Device Encryption Support Reasons for failed automatic device encryption: Un-allowed DMA capable bus/device(s) detected
A hypervisor has been detected. Features required for Hyper-V will not be displayed. 

решение1

Оказывается, вам не нужно использовать метод исключения, чтобы узнать, какой автобус добавить в список одобренных, это можно сделать в сообщении средства просмотра событий.

  1. Откройте Просмотр событий.
  2. Выберите Журналы приложений и служб -> Microsoft -> Windows -> BitLocker-API -> Управление.дерево просмотра событий
  3. Найдите элемент «Информация» с событием 4122: в нем будет текст примерно следующего содержания:
The following DMA (Direct Memory Access) capable devices are not declared as protected from external access, which can block security features such as BitLocker automatic device encryption:


ISA Bridge:
    PCI\VEN_8086&DEV_A30D (Intel(R) 300 Series Chipset Family LPC Controller (HM370) - A30D)

PCI-to-PCI Bridge:
    PCI\VEN_8086&DEV_A334 (Intel(R) PCI Express Root Port #13 - A334)
    PCI\VEN_8086&DEV_A337 (Intel(R) PCI Express Root Port #16 - A337)
    PCI\VEN_8086&DEV_A343 (Intel(R) PCI Express Root Port #20 - A343)
    PCI\VEN_8086&DEV_A330 (Intel(R) PCI Express Root Port #9 - A330)
    PCI\VEN_8086&DEV_1901 (Intel(R) Xeon(R) E3 - 1200/1500 v5/6th Gen Intel(R) Core(TM) PCIe Controller (x16) - 1901)
    PCI\VEN_8086&DEV_A336 (Intel(R) PCI Express Root Port #15 - A336)

Текакие элементы необходимо добавить в список «Одобренные», если они не создают уязвимости безопасности (например, они недоступны извне, как мне кажется?)

решение2

Если есть еще люди, пытающиеся решить эту проблему... Мне было лень, поэтому я создал небольшой скрипт PS, который генерирует файл .reg (со всеми найденными устройствами PCI) в каталоге tmp, а затем импортирует его в автоматическом режиме.

$tmpfile = "$($env:TEMP)\AllowBuses.reg"
'Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DmaSecurity\AllowedBuses]'`
| Out-File $tmpfile
(Get-PnPDevice -InstanceId PCI* `
| Format-Table -Property FriendlyName,InstanceId -HideTableHeaders -AutoSize `
| Out-String -Width 300).trim() `
-split "`r`n" `
-replace '&SUBSYS.*', '' `
-replace '\s+PCI\\', '"="PCI\\' `
| Foreach-Object{ "{0}{1}{2}" -f '"',$_,'"' } `
| Out-File $tmpfile -Append
regedit /s $tmpfile

Оттуда вы можете начать удалять добавленные записи через regedit одну за другой, обновляя страницу сведений о системе и проверяя, какая запись снова делает ее несовместимой. Это быстрее, чем добавлять записи вручную :) Для меня это была отсутствующая запись для «PCI Express Downstream Switch Port»

Однако вам может потребоваться изменить разрешения для этого ключа (добавить своего пользователя или группу в качестве владельца ключа), поскольку Microsoft также указала это в своем руководстве здесь:

https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-bitlocker

решение3

Microsoft предоставляетэта документацияпо поводу этого сообщения.

И черный, и белый списки находятся в вашем реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DmaSecurity. Я не знаю об автоматизированном процессе проверки этого, хотя создать его должно быть довольно просто.

Типичный кандидат, который существует в большинстве систем, — это «PCI-to-PCI Bridge». Любопытно, что «PCI Express Root Complex» есть и в , AllowedBusesи UnallowedBuses.

решение4

Есть еще одна причина появления сообщения «Обнаружены неразрешенные шины/устройства с поддержкой DMA», как это было отмечено в моей системе Windows 10:используя другой менеджер загрузки.

Короче говоря, я нашел дополнительный диск на 27 ГБ на моем ноутбуке Dell, который, казалось, не использовался, поэтому я установил Ubuntu на него. Но сначала мне пришлось отключить шифрование на диске C. Когда установка была завершена, и я загрузился в Windows из grub boot manager, опция «Шифрование устройства» исчезла изСистема > Обновления и безопасность. Решением было зайти в BIOS и выбрать загрузку Windows, которая обходит grub, и эта опция снова появилась, позволяя мне повторно зашифровать диск. Как и ожидалось, мой Windows-смонтированный раздел в Ubuntu больше не был виден.

Если это и ценно, то я сделал это потому, что мне нужна была система разработки Linux, которая бы преодолевала ограничения WSL. Отсутствие официального клиента Linux для моего облачного диска на Linux, который был моим планом для обмена данными между Windows и Linux, сделало двойную загрузку менее желанным вариантом.

Сейчас у меня есть легкий сервер Ubuntu, установленный в виртуальной машине VirtualBox. Я запускаю его в режиме headless, что позволяет мне закрыть VirtualBox, чтобы он не занимал место на панели задач, как будто его там вообще нет, за исключением случаев, когда загрузка процессора резко возрастает и вентиляторы начинают работать, но это было исправленоснижение лимита исполненияв настройках VM. Затем я подключаюсь к нему по SSH напрямую из PowerShell, WSL не нужен. Прелесть в том, что я могу дать ему мостовой адаптер, чтобы DHCP назначил ему выделенный IP-адрес, что удобно позволяет мне получить доступ к веб-серверу на Docker, безограниченияипроблемыЯ видел на WSL. Также я могу смонтировать папку облачного диска в виртуальной машине и получить доступ ко всем файлам. Мне потребовалось некоторое время, чтобы остановиться на среде разработки с лучшим из Linux и Windows 10, поэтому я надеюсь, что это будет полезно.

У меня все еще есть моя физическая машина Ubuntu с двойной загрузкой grub, но я изменил настройки BIOS так, чтобы сначала она переходила в диспетчер загрузки Windows, а затем прямо в Windows. Мне нравится уверенность в том, что настройки шифрования там говорят мне, что шифрование включено.

Связанный контент