%20DMA-f%C3%A4hige(r)%20Bus%2FGer%C3%A4t(e)%20erkannt.png)
Mein Problem ist, wie ich herausfinden kann, welches Gerät auf meinem Laptop nicht zugelassenes DMA unterstützt. Ich habe versucht, meine USB-Geräte zu deaktivieren und den Laptop von der Dockingstation zu trennen. Mein Kollege hat dasselbe Laptop-Modell und er hat nicht dasselbe Problem wie ich.
System Information
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.
Antwort1
Es stellt sich heraus, dass Sie kein Ausschlussverfahren anwenden müssen, um herauszufinden, welcher Bus zur Liste der genehmigten Busse hinzugefügt werden soll, denn dies wird in einer Meldung in der Ereignisanzeige angezeigt.
- Öffnen Sie die Ereignisanzeige.
- Wählen Sie Anwendungs- und Dienstprotokolle -> Microsoft -> Windows -> BitLocker-API -> Verwaltung.
- Suchen Sie bei Ereignis 4122 nach einem „Informations“-Element. Der Text dort lautet etwa:
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)
Diesesind die Elemente, die Sie zu „Genehmigt“ hinzufügen müssen, wenn sie keine Sicherheitslücke darstellen (z. B. wenn sie nicht extern zugänglich sind, glaube ich?)
Antwort2
Falls noch mehr Leute versuchen, das zu lösen … Ich war faul, also habe ich ein kleines PS-Skript erstellt, das eine .reg-Datei (mit allen gefundenen PCI-Geräten) im temporären Verzeichnis generiert und sie dann im Hintergrund importiert.
$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
Von dort aus können Sie beginnen, hinzugefügte Einträge über regedit nach und nach zu entfernen, während Sie die Systeminfoseite aktualisieren und prüfen, welcher Eintrag die Kompatibilität wieder herstellt. Das ist schneller, als Einträge manuell hinzuzufügen :) Bei mir fehlte der Eintrag für „PCI Express Downstream Switch Port“.
Möglicherweise müssen Sie die Berechtigungen für diesen Schlüssel ändern (Ihren Benutzer oder Ihre Gruppe als Besitzer des Schlüssels hinzufügen), da dies auch in der Anleitung von Microsoft hier aufgeführt ist:
https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-bitlocker
Antwort3
Microsoft bietetdiese Dokumentationzu dieser Nachricht.
Sowohl die Blacklist als auch die Whitelist befinden sich in Ihrer Registrierung unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DmaSecurity
. Mir ist kein automatisierter Prozess bekannt, um dies zu überprüfen, aber die Erstellung eines solchen sollte ziemlich einfach sein.
Ein typischer Kandidat, der auf den meisten Systemen vorhanden ist, ist „PCI-zu-PCI-Brücke“. Interessanterweise ist „PCI Express Root Complex“ sowohl in als auch AllowedBuses
vorhanden UnallowedBuses
.
Antwort4
Es gibt einen weiteren Grund für die Anzeige der Meldung „Nicht zulässiger DMA-fähiger Bus/nicht zulässige DMA-fähige Geräte erkannt“, wie ich sie auf meinem Windows 10-System beobachtet habe:Verwendung eines anderen Bootmanagers.
Kurz gesagt, ich fand ein zusätzliches 27-GB-Laufwerk auf meinem Dell-Laptop, das ungenutzt schien, also installierte ich Ubuntu dort. Aber ich musste zuerst die Verschlüsselung auf dem C-Laufwerk deaktivieren. Als die Installation abgeschlossen war und ich Windows über den Grub-Bootmanager startete, war die Option „Geräteverschlüsselung“ verschwunden.System > Updates und Sicherheit. Die Lösung bestand darin, ins BIOS zu gehen und Windows Boot auszuwählen, wodurch Grub umgangen wird. Die Option wurde erneut angezeigt, sodass ich das Laufwerk erneut verschlüsseln konnte. Wie erwartet war mein Windows-Mount in Ubuntu nicht mehr sichtbar.
Der Grund, warum ich das gemacht habe, war, dass ich ein Linux-Entwicklungssystem wollte, das die Einschränkungen von WSL überwindet. Das Fehlen eines offiziellen Linux-Clients für mein Cloud-Laufwerk unter Linux, mit dem ich Daten zwischen Windows und Linux austauschen wollte, machte den Dual-Boot zu einer weniger wünschenswerten Option.
Was ich jetzt habe, ist ein leichter Ubuntu-Server, der in einer VirtualBox-VM installiert ist. Ich starte ihn im Headless-Modus, wodurch ich VirtualBox schließen kann, sodass es keinen Platz in der Taskleiste einnimmt. Es ist, als wäre es gar nicht da, außer wenn die CPU-Auslastung in die Höhe schießt und die Lüfter beschäftigt sind, aber das wurde behoben durchSenkung der Ausführungsobergrenzein den VM-Einstellungen. Dann greife ich direkt von PowerShell aus per SSH darauf zu, kein WSL erforderlich. Das Schöne daran ist, dass ich ihm einen überbrückten Adapter geben kann, sodass DHCP ihm eine dedizierte IP-Adresse zuweist, mit der ich bequem auf den Webserver auf Docker zugreifen kann, ohneEinschränkungenUndProblemeIch habe es auf WSL gesehen. Außerdem kann ich den Cloud Drive-Ordner in der VM mounten und auf alle Dateien zugreifen. Es hat eine Weile gedauert, bis ich mich für eine Entwicklungsumgebung mit dem Besten von Linux und Windows 10 entschieden habe, daher hoffe ich, dass dies hilfreich ist.
Ich habe immer noch meine physische Ubuntu-Maschine mit Grub-Dual-Boot, aber ich habe die BIOS-Einstellung geändert, sodass sie zuerst zum Windows-Boot-Manager und dann direkt zu Windows geht. Ich mag die Gewissheit, dort die Verschlüsselungseinstellungen zu sehen, die mir sagen, dass die Verschlüsselung eingeschaltet ist.