메모리 무결성 및 VBS 사용

메모리 무결성은 Windows 10, Windows 11 및 Windows Server 2016 이상에서 사용할 수 있는 VBS(가상화 기반 보안) 기능입니다. 메모리 무결성 및 VBS는 Windows의 위협 모델을 개선하고 Windows 커널을 악용하려는 맬웨어에 대해 더 강력한 보호를 제공합니다. VBS는 Windows 하이퍼바이저를 사용하여 커널이 손상될 수 있다고 가정하는 OS의 신뢰 루트가 되는 격리된 가상 환경을 만듭니다. 메모리 무결성은 VBS의 격리된 가상 환경 내에서 커널 모드 코드 무결성을 실행하여 Windows를 보호하고 강화하는 중요한 구성 요소입니다. 또한 메모리 무결성은 시스템을 손상시키는 데 사용할 수 있는 커널 메모리 할당을 제한하므로 보안 런타임 환경 내에서 코드 무결성 검사를 통과한 후에만 커널 메모리 페이지가 실행 가능하도록 하고 실행 파일 페이지 자체는 쓰기가 불가능합니다.

참고

메모리 무결성은 HVCI(하이퍼바이저 보호 코드 무결성) 또는 하이퍼바이저가 적용한 코드 무결성이라고도 하며 원래 Device Guard의 일부로 릴리스되었습니다. Device Guard는 그룹 정책 또는 Windows 레지스트리에서 메모리 무결성 및 VBS 설정을 찾는 것 외에는 더 이상 사용되지 않습니다.

이러한 보호에 대한 자세한 내용은 가상화 기반 보안 시스템 리소스 보호를 참조하세요.

기본 사용 설정

메모리 무결성은 기본적으로 Windows 11 클린 설치 시 설정되며, 이전에는 이 문서에 설명된 대로 호환되는 하드웨어에서 S 모드에서 Windows 10 클린 설치할 때만 설정됩니다. 또한 모든 보안 코어 PC에서도 기본적으로 켜져 있습니다. 메모리 무결성 자동 사용 요구 사항을 충족하지 않는 다른 시스템에서 고객은 메모리 무결성을 사용하도록 설정하는 방법에 설명된 방법을 사용하여 옵트인할 수 있습니다. IT 전문가 및 최종 사용자는 항상 메모리 무결성을 사용할 수 있는지 여부를 최종 제어할 수 있습니다.

자동 사용 설정을 위한 하드웨어 기능

PC가 다음과 같은 최소 하드웨어 기능을 충족하는 경우 메모리 무결성은 기본적으로 설정됩니다.

구성 요소 세부 정보
프로세서
  • intel 8세대 이상은 Windows 11 버전 22H2(11세대 Core 프로세서 및 Windows 11 버전 21H2에만 해당)
  • AMD Zen 2 아키텍처 이상
  • Qualcomm Snapdragon 8180 이상
RAM 최소 8GB(x64 프로세서에만 해당)
스토리지 SSD(최소 크기: 64GB)
드라이버 메모리 무결성 호환 드라이버를 설치해야 합니다. 드라이버에 대한 자세한 내용은 메모리 무결성과의 드라이버 호환성을 참조하세요.
BIOS 가상화를 사용하도록 설정해야 함

메모리 무결성을 자동으로 사용하도록 설정하지 않는 이미지를 빌드하는 경우에도 기본적으로 설정되도록 이미지를 구성할 수 있습니다.

참고

자동 사용 설정은 새로 설치하는 경우에만 적용되며 기존 디바이스의 업그레이드에는 적용되지 않습니다.

참고

중국과 한국 시장은 해당 지역에서 널리 퍼진 소프트웨어와의 알려진 호환성 문제를 피하기 위해 제외됩니다.

참고

Intel 11세대 코어 데스크톱 프로세서는 현재 기본 사용 설정 논리에 포함되지 않습니다. 그러나 메모리 무결성에 권장되는 플랫폼이며 OEM에서 사용하도록 설정할 수 있습니다.

메모리 무결성 및 VBS 컨트롤

이 섹션에서는 디바이스 제조업체와 최종 사용자가 메모리 무결성 및 VBS와 상호 작용하는 방법을 열거합니다. 관리자 권한으로 메모리 무결성 상태를 제어하는 방법에 대한 자세한 내용은 메모리 무결성을 설정하는 방법을 참조하세요.

메모리 무결성 켜기

Windows는 대부분의 시스템에 대해 기본적으로 메모리 무결성을 설정하지만, 이러한 문제가 발생하지 않도록 하는 몇 가지 이유가 있습니다. OEM으로 OS 이미지에서 레지스트리 키를 구성하여 디바이스에 대한 메모리 무결성이 켜져 있는지 확인할 수 있습니다.

이미지에 다음 두 개의 레지스트리 키를 설정하여 메모리 무결성이 켜져 있는지 확인합니다.

레지스트리 키
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity Enabled=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity WasEnabledBy=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity EnabledBootId=<Current BootId>

BootId는 각 성공적인 부팅에서 증가하며 레지스트리 키에서 찾을 수 있는 카운터입니다. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\BootId WasEnabledByEnabledBootId 레지스트리 키는 부팅할 수 없는 디바이스가 없지 않도록 보호하는 설정을 제어합니다. 설정하면 부팅 중에 시스템이 충돌하는 경우 디바이스가 자동으로 메모리 무결성을 해제하며, 호환되지 않는 부팅 중요 드라이버를 차단하는 메모리 무결성으로 인해 발생할 수 있습니다. 이 자동 사용 안 함 기능은 BootId가 EnabledBootId + 3보다 작은 경우에만 사용할 수 있습니다. 일부 버전의 Windows에서는 메모리 무결성이 꺼진 후에도 부팅 실패가 계속되면 자동 사용 안 함 기능이 되돌리기 메모리 무결성이 실패의 근본 원인이 아님을 나타냅니다.

참고

높은 보안 시스템의 경우 WasEnabledByEnabledBootId를 설정하면 안 됩니다.

문제 해결

메모리 무결성 상태 식별

다음 휘발성 regkey는 메모리 무결성의 상태를 반영합니다.

레지스트리 키
HKLM\System\CurrentControlSet\Control\CI\State HVCIEnabled

메모리 무결성 상태를 확인하는 다른 방법은 가상화 기반 Security Services 실행 중에서 MsInfo32를 확인하거나 Windows 보안 앱의 핵심 격리 설정 페이지를 참조하여 메모리 무결성 값을 확인하는 것입니다. 관리 도구를 사용하여 확인하기 위한 WMI 인터페이스도 있습니다. 사용 가능한 VBS 및 메모리 무결성 기능 유효성 검사를 참조하세요.

드라이버 문제 디버깅

코드 무결성 로그를 확인하여 메모리 무결성의 결과로 드라이버 로드가 차단되었는지 확인합니다. 해당 로그는 이벤트 뷰어의 다음 경로에 있습니다.

Applications and Service Logs\Microsoft\Windows\CodeIntegrity\Operational

일반적으로 메모리 무결성 호환성 이벤트에는 EventID=3087이 있습니다.

메모리 무결성 기본 사용의 결과 확인

메모리 무결성 기본 사용의 결과에 대한 세부 정보를 보려면 setupact.log를 검사 를 검색합니다HVCI. 다음 결과 로그 중 하나와 성공/실패 확인(사용 설정 결정으로 이어짐)이 표시됩니다.

메모리 무결성 사용: SYSPRP HVCI: Enabling HVCI

메모리 무결성이 사용하도록 설정되지 않음: SYSPRP HVCI: OS does not meet HVCI auto-enablement requirements. Exiting now.

앞에서 자세히 설명한 regkey 메서드를 통해 디바이스가 메모리 무결성 사용에서 옵트아웃된 경우 메모리 무결성의 sysprep에서 유일한 로그가 됩니다. 디바이스에 호환성 문제가 있다면 이전 로그에서 다음 오류 메시지를 통해 식별되어야 합니다.

SYSPRP HVCI: Compatibility did not pass. VBS_COMPAT_ISSUES 0xXXXXXXXX

다음은 잠재적인 VBS 또는 메모리 무결성 호환 문제의 열거형입니다. 각 문제는 비트 배열의 단일 인덱스로 표시되며 오류 메시지는 존재하는 각 오류 비트의 결과인 16진수 값을 출력합니다.

비트 인덱스 호환성 문제 16진수 값 아키텍처
0 지원되지 않는 아키텍처(예: x86) 0x00000001
1 SLAT 필요 0x00000002 X64
2 보안 부팅 기능 필요 0x00000004 X64
3 IOMMU 필요 0x00000008 X64
4 MBEC/GMET 필요 0x00000010 X64
5 UEFI 필요 0x00000020 X64
6 UEFI WX 메모리 특성 테이블 필요 0x00000040 X64
7 ACPI WSMT 테이블 필요 0x00000080 X64
8 UEFI MOR 잠금 필요 0x00000100 X64
9 사용되지 않음
10 하드웨어 가상화 필요 0x00000400 X64
11 보안 시작 필요 0x00000800 ARM64
12 사용되지 않음
13 디바이스가 64GB 최소 필수 볼륨 크기를 충족하지 못함 0x00002000 x64, ARM64
14 시스템 드라이브 SSD 필요 0x00004000 x64, ARM64
15 Intel CET 필수(W11 21H2에만 해당) 0x00008000 X64
16 ARM SoC가 VBS와 호환되지 않음 0x00010000 ARM64
17 8GB RAM 필요 0x00020000 X64

오류 코드 및 오류 식별의 예: VBS_COMPAT_ISSUES 0x000000C0

0x000000C0 -> 0x00000080 AND 0x00000040 -> UEFI WX 메모리 특성 테이블 필요, ACPI WSMT 테이블 필요