Barramentos/dispositivos com capacidade de DMA não permitidos detectados

Barramentos/dispositivos com capacidade de DMA não permitidos detectados

Meu problema é como posso descobrir qual dispositivo no meu laptop é compatível com DMA não permitido. Tentei desativar meus dispositivos USB e desconectar o laptop da dock station. Meu colega tem o mesmo modelo de laptop e não está tendo o mesmo problema que eu.

Informação do sistema

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. 

Responder1

Acontece que você não precisa usar o processo de eliminação para descobrir qual ônibus adicionar à lista de aprovados, está em uma mensagem do visualizador de eventos.

  1. Abra o Visualizador de Eventos.
  2. Escolha Logs de aplicativos e serviços -> Microsoft -> Windows -> BitLocker-API -> Gerenciamento.árvore do visualizador de eventos
  3. Procure um item “Informações” com Evento 4122: ele terá um texto que diz algo como:
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)

Aquelessão os itens que você precisaria adicionar a Aprovados se eles não criarem uma vulnerabilidade de segurança (por exemplo, eles não são acessíveis externamente, eu acho?)

Responder2

Se houver mais pessoas tentando resolver isso .. Eu estava com preguiça, então criei um pequeno script PS que gera o arquivo .reg (com todos os dispositivos PCI encontrados) no diretório tmp e depois o importa silenciosamente.

$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

A partir daí, você pode começar a remover as entradas adicionadas via regedit, uma por uma, enquanto atualiza a página de informações do sistema e verifica qual entrada a torna incompatível novamente. É mais rápido do que adicionar entradas manualmente :) Para mim estava faltando a entrada para "PCI Express Downstream Switch Port "

Pode ser necessário alterar as permissões para esta chave (adicione seu usuário ou grupo como proprietário da chave), já que a Microsoft também a possui em seu guia aqui:

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

Responder3

A Microsoft forneceesta documentaçãosobre esta mensagem.

Tanto a lista negra quanto a lista branca estão em seu registro em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DmaSecurity. Não conheço um processo automatizado para verificar isso, embora criar um seja muito fácil.

Um candidato típico que existe na maioria dos sistemas é “Ponte PCI para PCI”. Curiosamente, “PCI Express Root Complex” está em AllowedBusese UnallowedBuses.

Responder4

Há outro motivo para ver esta mensagem "Barramento/dispositivo(s) compatível(s) com DMA não permitido(s) detectado(s), conforme observado em meu sistema Windows 10:usando um gerenciador de inicialização diferente.

Resumindo, encontrei uma unidade extra de 27 GB no meu laptop Dell que parecia não ser usada, então instalei o Ubuntu lá. Mas primeiro tive que desabilitar a criptografia na unidade C. Quando a instalação foi concluída e eu inicializei o Windows a partir do gerenciador de inicialização grub, a opção "Criptografia do dispositivo" desapareceu deSistema > Atualizações e Segurança. A solução foi entrar no BIOS e selecionar Inicialização do Windows que ignora o grub e a opção apareceu novamente, permitindo-me criptografar novamente a unidade. Como esperado, minha montagem do Windows no Ubuntu não estava mais visível.

Pelo que vale, fiz isso porque queria um sistema de desenvolvimento Linux para superar as limitações do WSL. A falta de um cliente Linux oficial para minha unidade de nuvem no Linux, que era meu plano para compartilhar dados entre Windows e Linux, tornou a inicialização dupla uma opção menos desejável.

O que tenho agora é um servidor Ubuntu leve instalado em uma VM VirtualBox. Eu inicio no modo headless, o que me permite fechar o VirtualBox para que ele não ocupe espaço na barra de tarefas, é como se ele nem estivesse lá, exceto quando o uso da CPU aumenta e os ventiladores ficam ocupados, mas isso foi corrigido porreduzindo o limite de execuçãonas configurações da VM. Em seguida, faço SSH nele diretamente do PowerShell, sem necessidade de WSL. A beleza disso é que posso fornecer um adaptador em ponte para que o DHCP atribua a ele um endereço IP dedicado, o que me permite acessar convenientemente o servidor web no docker, sem a necessidade delimitaçõeseproblemasEu vi no WSL. Além disso, posso montar a pasta do Cloud Drive na VM e acessar todos os arquivos. Levei um tempo para escolher um ambiente de desenvolvimento com o melhor do Linux e do Windows 10, então espero que isso seja útil.

Ainda tenho minha máquina física Ubuntu com grub dual-boot, mas mudei a configuração do BIOS para que ela vá primeiro para o Gerenciador de inicialização do Windows e, portanto, direto para o Windows. Gosto da garantia de ver as configurações de criptografia me dizendo que a criptografia está ATIVADA.

informação relacionada