메모리 무결성 및 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가 다음과 같은 최소 하드웨어 기능을 충족하는 경우 메모리 무결성은 기본적으로 설정됩니다.
구성 요소 | 세부 정보 |
---|---|
프로세서 |
|
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 WasEnabledBy 및 EnabledBootId 레지스트리 키는 부팅할 수 없는 디바이스를 사용하지 않도록 보호하는 설정을 제어합니다. 설정하면 부팅 중에 시스템이 충돌하는 경우 디바이스가 자동으로 메모리 무결성을 해제하며, 호환되지 않는 부팅 중요 드라이버를 차단하는 메모리 무결성으로 인해 발생할 수 있습니다. 이 자동 비활성화 기능은 BootId가 EnabledBootId + 3보다 작은 경우에만 사용할 수 있습니다. 일부 버전의 Windows에서는 메모리 무결성이 꺼진 후에도 부팅 오류가 계속되면 자동 비활성화 기능이 되돌리도록 설계되어 메모리 무결성이 오류의 근본 원인이 아님을 나타냅니다.
참고 항목
높은 보안 시스템의 경우 WasEnabledBy 및 EnabledBootId 를 설정하면 안 됩니다.
문제 해결
메모리 무결성 상태 식별
다음 휘발성 regkey는 메모리 무결성의 상태를 반영합니다.
레지스트리 키 | 값 |
---|---|
HKLM\System\CurrentControlSet\Control\CI\State | HVCIEnabled |
메모리 무결성 상태를 확인하는 다른 방법은 가상화 기반 Security Services 실행 중인 MsInfo32를 확인하거나 Windows 보안 앱의 Core 격리 설정 페이지를 참조하여 메모리 무결성의 값을 확인하는 것입니다. 관리 도구를 사용하여 확인하기 위한 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 테이블 필요