
내 문제는 내 노트북의 어떤 장치가 허용되지 않은 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
승인된 목록에 추가할 버스를 찾기 위해 제거 프로세스를 사용할 필요가 없다는 것이 밝혀졌습니다. 이는 이벤트 뷰어 메시지에 있습니다.
- 이벤트 뷰어를 엽니다.
- 응용 프로그램 및 서비스 로그 -> Microsoft -> Windows -> BitLocker-API -> 관리를 선택합니다.
- 이벤트 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
이 문제를 해결하려는 더 많은 사람들이 있다면.. 저는 게을러서 tmp 디렉토리에 .reg 파일(발견된 모든 PCI 장치 포함)을 생성한 다음 자동으로 가져오는 작은 PS 스크립트를 만들었습니다.
$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 다운스트림 스위치 포트"에 대한 항목이 누락되었습니다. "
하지만 이 키에 대한 권한을 변경해야 할 수도 있습니다(사용자 또는 그룹을 키의 소유자로 추가). Microsoft의 가이드에도 해당 내용이 있으므로 다음과 같습니다.
https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-bitlocker
답변3
마이크로소프트가 제공하는이 문서이 메시지에 대해.
블랙리스트와 화이트리스트는 모두 레지스트리의 에 있습니다 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DmaSecurity
. 나는 이것을 확인하는 자동화된 프로세스를 알지 못하지만, 만드는 것은 꽤 쉬울 것입니다.
대부분의 시스템에 존재하는 일반적인 후보는 "PCI-to-PCI 브리지"입니다. 흥미롭게도 "PCI Express Root Complex"는 AllowedBuses
및 에 모두 있습니다 UnallowedBuses
.
답변4
내 Windows 10 시스템에서 볼 수 있듯이 "허용되지 않은 DMA 가능 버스/장치가 감지되었습니다." 메시지가 표시되는 또 다른 이유는 다음과 같습니다.다른 부팅 관리자 사용.
간단히 말해서, Dell 노트북에서 사용하지 않는 것처럼 보이는 추가 27GB 드라이브를 발견하여 거기에 Ubuntu를 설치했습니다. 하지만 먼저 C 드라이브의 암호화를 비활성화해야 했습니다. 설치가 완료되고 grub 부팅 관리자에서 Windows로 부팅했을 때 "장치 암호화" 옵션이 사라졌습니다.시스템 > 업데이트 및 보안. 해결책은 BIOS로 가서 grub을 우회하는 Windows Boot를 선택하는 것이었고 옵션이 다시 나타나서 드라이브를 다시 암호화할 수 있었습니다. 예상대로 Ubuntu의 Windows 마운트가 더 이상 표시되지 않습니다.
그만한 가치가 있는 일이지만, 제가 이렇게 한 이유는 WSL의 한계를 극복할 수 있는 Linux 개발 시스템을 원했기 때문입니다. Windows와 Linux 간에 데이터를 공유하기 위한 계획이었던 Linux의 클라우드 드라이브에 대한 공식 Linux 클라이언트가 없기 때문에 이중 부팅이 덜 바람직한 옵션이 되었습니다.
내가 지금 가지고 있는 것은 VirtualBox VM에 설치된 가벼운 Ubuntu 서버입니다. 헤드리스 모드에서 시작하면 VirtualBox를 닫을 수 있어 작업 표시줄의 공간을 차지하지 않습니다. CPU 사용량이 급증하고 팬이 바쁠 때를 제외하고는 거기에 없는 것처럼 보이지만 이 문제는 다음으로 해결되었습니다.실행 한도 낮추기VM 설정에서. 그런 다음 WSL이 필요 없이 PowerShell에서 직접 SSH로 연결합니다. 이것의 장점은 DHCP가 전용 IP 주소를 할당하도록 브리지 어댑터를 제공할 수 있다는 것입니다. 이를 통해 별도의 작업 없이 도커의 웹 서버에 편리하게 액세스할 수 있습니다.한계그리고문제WSL에서 본 적이 있어요. 또한 VM에 클라우드 드라이브 폴더를 탑재하고 모든 파일에 액세스할 수 있습니다. 최고의 Linux 및 Windows 10을 갖춘 개발 환경에 정착하는 데 시간이 좀 걸렸으므로 이것이 도움이 되기를 바랍니다.
여전히 grub 이중 부팅을 사용하는 물리적 Ubuntu 시스템이 있지만 BIOS 설정을 변경하여 먼저 Windows 부팅 관리자로 이동하여 바로 Windows로 이동합니다. 암호화가 켜져 있음을 알려주는 암호화 설정을 볼 수 있다는 확신이 마음에 듭니다.