커널 DMA 보호

적용 대상

  • Windows 10
  • Windows 11

Windows 10 버전 1803에서 Microsoft는 외부 액세스 가능한 PCIe 포트(예: Thunderbolt™ 3 포트 및 CFexpress)에 연결된 PCI 핫 플러그 디바이스를 사용하여 DMA(드라이브 기반 직접 메모리 액세스) 공격으로부터 PC를 보호하기 위해 커널 DMA Protection이라는 새로운 기능을 도입했습니다. Windows 10 버전 1903에서 Microsoft는 내부 PCIe 포트(예: M.2 슬롯)를 포함하도록 커널 DMA Protection 지원을 확장했습니다.

드라이브 기반 DMA 공격으로 인해 PC에 있는 중요한 정보가 공개되거나 공격자가 잠금 화면을 우회하거나 PC를 원격으로 제어할 수 있는 맬웨어가 주입됩니다.

이 기능은 1394/FireWire, PCMCIA, CardBus, ExpressCard 등을 통한 DMA 공격으로부터 보호하지 않습니다.

Background

PCI 디바이스는 DMA를 지원하므로 이러한 작업에 시스템 프로세서를 연결하지 않고도 시스템 메모리를 읽고 쓸 수 있습니다. DMA 기능은 PCI 디바이스를 현재 사용 가능한 가장 높은 성능의 디바이스로 만드는 것입니다. 이러한 장치는 역사적으로 PC 섀시 내부에만 존재했으며, 카드로 연결되거나 마더보드에 납판으로 연결되었습니다. 이러한 디바이스에 액세스하려면 사용자가 시스템에 전원을 끄고 섀시를 디스어셈블해야 했습니다.

오늘날 핫 플러그 PCIe 포트(예: Thunderbolt™ 및 CFexpress)의 경우는 더 이상 적용되지 않습니다.

Thunderbolt™ 기술과 같은 핫 플러그 PCIe 포트는 PC에서 이전에는 사용할 수 없었던 확장성을 갖춘 최신 PC를 제공했습니다. 이를 통해 사용자는 USB와 동일한 핫 플러그 환경을 사용하는 PC에 그래픽 카드 또는 기타 PCI 디바이스와 같은 새로운 외부 주변 장치 클래스를 연결할 수 있습니다. 외부 및 쉽게 액세스할 수 있는 PCI 핫 플러그 포트가 있으면 PC가 드라이브 기반 DMA 공격에 취약해집니다.

드라이브 기반 DMA 공격은 시스템 소유자가 존재하지 않는 동안 발생하는 공격이며, 일반적으로 PC의 디스어셈블리가 필요하지 않은 간단한 중간 공격 도구 (저렴한, 기성 하드웨어 및 소프트웨어)와 함께 10 분 미만이 걸립니다. 간단한 예는 PC 소유자가 빠른 커피 브레이크를 위해 PC를 떠나고, 휴식 시간 내에 공격자가 들어와서 USB와 같은 장치를 연결하고 컴퓨터의 모든 비밀을 사용하여 걸어가거나 원격으로 PC를 완전히 제어 할 수있는 맬웨어를 주입하는 것입니다.

Windows가 DMA 드라이브 바이 공격으로부터 보호하는 방법

Windows는 시스템 IOMMU(Input/Output Memory Management Unit)를 활용하여 이러한 주변 장치의 드라이버가 메모리 격리(예: DMA 다시 매핑)를 지원하지 않는 한 외부 주변 장치가 DMA를 시작하고 수행하지 못하도록 차단합니다. DMA 다시 매핑 호환 드라이버를 사용하는 주변 장치는 할당된 메모리 영역에 대한 DMA를 자동으로 열거, 시작 및 수행할 수 있습니다.

기본적으로 호환되지 않는 드라이버를 다시 매핑하는 DMA를 사용하는 주변 장치는 권한 있는 사용자가 시스템에 로그인하거나 화면의 잠금을 해제할 때까지 DMA 시작 및 수행이 차단됩니다. IT 관리자는 DmaGuard MDM 정책을 사용하여 호환되지 않는 드라이버를 다시 매핑하여 디바이스에 적용되는 기본 동작을 수정할 수 있습니다.

사용자 환경

커널 DMA 보호 사용자 환경

기본적으로 DMA 다시 매핑 호환 디바이스 드라이버를 사용하는 주변 장치는 자동으로 열거되고 시작됩니다. DMA 다시 매핑 호환되지 않는 드라이버가 있는 주변 장치는 권한이 부여된 사용자가 로그인하기 전에 주변 장치를 연결한 경우 또는 화면이 잠겨 있는 동안 시작되지 않도록 차단됩니다. 시스템의 잠금이 해제되면 주변 드라이버가 OS에서 시작되고 시스템이 다시 부팅되거나 주변 장치가 분리될 때까지 주변 장치가 정상적으로 작동합니다. 사용자가 화면을 잠그거나 시스템에서 로그아웃하는 경우 주변 장치는 정상적으로 계속 작동합니다.

시스템 호환성

커널 DMA 보호에는 새로운 UEFI 펌웨어 지원이 필요합니다. 이 지원은 Windows 10 버전 1803(모든 시스템이 아님)을 사용하여 새로 도입된 Intel 기반 시스템에서만 지원됩니다. VBS(가상화 기반 보안)는 필요하지 않습니다.

시스템에서 커널 DMA 보호를 지원하는지 확인하려면 시스템 정보 데스크톱 앱(MSINFO32)을 확인합니다. Windows 10 버전 1803 이전에 릴리스된 시스템은 커널 DMA 보호를 지원하지 않지만 BitLocker 대책에 설명된 대로 다른 DMA 공격 완화를 활용할 수 있습니다.

참고

커널 DMA 보호는 다른 BitLocker DMA 공격 대책과 호환되지 않습니다. 시스템에서 커널 DMA 보호를 지원하는 경우 BitLocker DMA 공격 대책을 사용하지 않도록 설정하는 것이 좋습니다. 커널 DMA Protection은 외부 주변 기기의 유용성을 유지하면서 BitLocker DMA 공격 대책을 통해 시스템에 더 높은 보안 표시줄을 제공합니다.

커널 DMA 보호가 사용하도록 설정되어 있는지 확인하는 방법

커널 DMA Protection을 지원하는 Windows 10 버전 1803을 실행하는 시스템에는 사용자 또는 IT 관리자 구성이 필요하지 않은 OS에서 이 보안 기능을 자동으로 사용하도록 설정되어 있습니다.

Windows 보안 앱 사용

Windows 10 버전 1809부터 Windows 보안 앱을 사용하여 커널 DMA 보호가 사용하도록 설정되어 있는지 확인할 수 있습니다. 시작 > 설정 > 업데이트 & 보안 > Windows 보안 > 오펜 Windows 보안 > 보안 > Core 격리 세부 정보 > 메모리 액세스 보호를 클릭합니다.

Windows 보안 커널 DMA 보호

시스템 정보 사용

  1. 명령 프롬프트 또는 Windows 검색 창에서 MSINFO32.exe 시작합니다.

  2. 커널 DMA 보호의 값을 확인합니다.

    시스템 정보의 커널 DMA 보호.

  3. 커널 DMA Protection의 현재 상태가 OFF이고 Hyper-V - 펌웨어에서 사용하도록 설정된 가상화가 NO인 경우:

    • BIOS 설정으로 다시 부팅
    • Intel 가상화 기술을 켭니다.
    • I/O(VT-d)용 Intel 가상화 기술을 켭니다. Windows 10 버전 1803에서는 Intel VT-d만 지원됩니다. 다른 플랫폼은 BitLocker 대책에 설명된 DMA 공격 완화를 사용할 수 있습니다.
    • Windows로 시스템을 다시 부팅합니다.

    참고

    Hyper-V Windows 기능을 사용하도록 설정하면 모든 Hyper-V 관련 기능이 숨겨지고 하이퍼바이저가 검색됩니다. Hyper-V에 필요한 기능은 표시되지 않습니다. 엔터티는 목록의 맨 아래에 표시됩니다. 즉 , Hyper-V - 펌웨어에서 사용하도록 설정된 가상화 가 YES로 설정됩니다.

    참고

    펌웨어에 OEM용 커널 DMA 보호(메모리 액세스 보호)에 설명된 "ACPI 커널 DMA 보호 표시기"라는 플래그가 있는 경우에도 커 널 DMA Protection을 사용하도록 설정하려면 IOMMU(펌웨어)에서 Hyper-V 가상화를 사용하도록 설정해야 합니다.

  4. 커널 DMA 보호 상태가 꺼진 상태로 유지되면 시스템에서 이 기능을 지원하지 않습니다.

    커널 DMA 보호를 지원하지 않는 시스템의 경우 다른 DMA 보호 수단은 BitLocker 대책 또는 Thunderbolt™ 3 및 Microsoft Windows® 10 운영 체제의 보안을 참조하세요.

질문과 대답

In-Market 시스템에서 Thunderbolt™ 3용 커널 DMA Protection을 지원하나요?

Windows 10 버전 1709 이하와 함께 출시된 In-Market 시스템은 Windows 10 버전 1803으로 업그레이드한 후 Thunderbolt™ 3용 커널 DMA Protection을 지원하지 않습니다. 이 기능을 사용하려면 BIOS/플랫폼 펌웨어 변경이 필요하고 이전에 릴리스된 디바이스로 백포트할 수 없음을 보장합니다. 이러한 시스템의 경우 다른 DMA 보호 수단은 BitLocker 대책 또는 Thunderbolt™ 3 및 Microsoft Windows® 10 운영 체제의 보안을 참조하세요.

커널 DMA 보호는 부팅 중에 드라이브 기반 DMA 공격을 방지하나요?

아니요, 커널 DMA Protection은 OS가 로드된 후에만 드라이브 기반 DMA 공격으로부터 보호합니다. 부팅하는 동안 Thunderbolt™ 3 포트를 통한 공격으로부터 보호하는 것은 시스템 펌웨어/BIOS의 책임입니다.

특정 드라이버가 DMA 다시 매핑을 지원하는지 확인하려면 어떻게 해야 하나요?

DMA 다시 매핑은 특정 디바이스 드라이버에 대해 지원되며 플랫폼의 모든 디바이스 및 드라이버에서 보편적으로 지원되지는 않습니다. 특정 드라이버가 DMA 다시 매핑에 옵트인되었는지 확인하려면 장치 관리자*의 디바이스 세부 정보 탭에서 DMA 다시 매핑 정책 속성에 해당하는 값을 확인합니다. 값이 0 또는 1이면 디바이스 드라이버가 DMA 다시 매핑을 지원하지 않습니다. 값이 2이면 디바이스 드라이버가 DMA 다시 매핑을 지원합니다. 속성을 사용할 수 없는 경우 정책이 디바이스 드라이버에 의해 설정되지 않습니다(즉, 디바이스 드라이버가 DMA 다시 매핑을 지원하지 않음). 테스트 중인 디바이스에 대한 드라이버 인스턴스를 확인합니다. 일부 드라이버는 디바이스의 위치(내부 및 외부)에 따라 다양한 값을 가질 수 있습니다.

커널 DMA 보호에 대한 사용자의 환경

*Windows 10 버전 1803 및 1809의 경우 장치 관리자 속성 필드는 다음 이미지에 강조 표시된 대로 GUID를 사용합니다.

커널 DMA 보호에 대한 사용자 환경

PCI 또는 Thunderbolt™ 3 주변 장치용 드라이버가 DMA 다시 매핑을 지원하지 않는 경우

주변 장치에 Windows에서 제공하는 클래스 드라이버가 있는 경우 시스템에서 이러한 드라이버를 사용합니다. 주변 장치용 Windows에서 제공하는 클래스 드라이버가 없는 경우 주변 장치 공급업체/드라이버 공급업체에 문의하여 DMA 다시 매핑을 지원하도록 드라이버를 업데이트합니다.

내 시스템의 커널 DMA 보호가 꺼져 있습니다. 특정 디바이스에 대한 DMA 다시 매핑을 설정할 수 있나요?

예. 특정 디바이스에 대한 DMA 다시 매핑은 커널 DMA 보호와 독립적으로 설정할 수 있습니다. 예를 들어 드라이버가 옵트인하고 VT-d(Directed I/O용 가상화 기술)가 켜져 있는 경우 커널 DMA 보호가 꺼져 있더라도 디바이스 드라이버에 대해 DMA 다시 매핑이 사용됩니다.

커널 DMA 보호는 디바이스가 다시 매핑 상태 및 기능에 따라 DMA를 수행하도록 허용하거나 차단하는 정책입니다.

Microsoft 드라이버에서 DMA 다시 매핑을 지원합니까?

Windows 10 1803 이상에서는 USB XHCI(3.x) 컨트롤러, 스토리지 AHCI/SATA 컨트롤러 및 스토리지 NVMe 컨트롤러용 Microsoft 받은 편지함 드라이버가 DMA 다시 매핑을 지원합니다.

PCI가 아닌 디바이스용 드라이버가 DMA 다시 매핑과 호환되어야 합니까?

아니요. USB 디바이스와 같은 비 PCI 주변 장치에 대한 디바이스는 DMA를 수행하지 않으므로 드라이버가 DMA 다시 매핑과 호환될 필요가 없습니다.

엔터프라이즈에서 외부 디바이스 열거 정책을 사용하도록 설정하려면 어떻게 할까요?

외부 디바이스 열거 정책은 DMA 다시 매핑과 호환되지 않는 외부 주변 장치를 열거할지 여부를 제어합니다. DMA 다시 매핑과 호환되는 주변 장치는 항상 열거됩니다. 사용자가 로그인한 후에만 차단, 허용 또는 허용되지 않는 주변 장치(기본값)를 사용할 수 있습니다.

다음을 사용하여 정책을 사용하도록 설정할 수 있습니다.

  • 그룹 정책: 커널 DMA 보호와 호환되지 않는 외부 디바이스에 대한 관리 템플릿\System\Kernel DMA Protection\열거형 정책
  • MDM(모바일 장치 관리): DmaGuard 정책

관련 항목