VBS(가상화 기반 보안)는 기본 운영 체제(OS) 및 경우에 따라 하드웨어에서 컴퓨터 프로세스를 추상화하는 기술입니다. 악성 코드 및 기타 공격으로부터 운영 체제와 장치를 보호한다는 목표로 이러한 프로세스를 서로 격리합니다.
VBS는 OS의 취약성 및 맬웨어와 같은 악용으로부터 시스템 리소스 및 보안 솔루션(예:사용자 로그인 자격 증명)을 보호하기 위해 격리된 가상 환경을 만들고 특정 제한을 적용하는 아이디어입니다. 격리된 환경은 OS의 나머지 부분과 분리된 주 메모리의 한 부분입니다. 이는 OS의 '신뢰의 근원'이기도 합니다.
VBS는 Windows 하이퍼바이저를 사용하여 격리된 환경을 만듭니다. 하이퍼바이저는 Windows가 악성 코드로 인해 손상될 수 있다고 가정합니다. 이러한 가정을 바탕으로 주요 시스템 자원을 보호하는 것을 목표로 합니다. 이를 위해 하드웨어 가상화를 활성화하고 컴퓨터 운영 체제에서 해당 프로세스를 직접 실행하는 대신 시스템 프로세스를 호스팅하고 해당 데이터를 저장하는 가상 머신(VM)을 생성합니다. VBS의 전제는 격리된 프로세스나 애플리케이션이 공격을 받는 경우 공격이 VM 외부로 확산될 수 없다는 것입니다. 예를 들어, 공격자는 한 프로세스의 취약점을 악용하여 다른 애플리케이션에서 데이터를 훔치거나 랜섬웨어로 전체 컴퓨터를 탈취할 수 없습니다.
가상화 기반 보안은 격리된 환경을 생성하기 위해 Windows 하이퍼바이저에 의존합니다. Windows의 가상화 기반 보안이란 무엇인가요?
Microsoft는 Windows Defender Device Guard 및 Credential Guard 기능을 도입하면서 Windows 10에 가상화 기반 보안을 처음 포함했습니다. Device Guard 및 Credential Guard는 Windows 10의 가상화 기반 보안의 특정 기능인 VSM(가상 보안 모드)을 활용합니다. VSM은 컴퓨터 하드웨어에 직접 설치된 Microsoft Hyper-V 하이퍼바이저를 사용하여 특정 프로세스를 실행하고 해당 데이터를 운영 체제와 독립적으로 저장합니다.
Device Guard는 Windows 10 시스템에서 신뢰할 수 없는 코드가 실행되는 것을 방지하는 구성 가능한 코드 무결성, VSM 보호 코드 무결성 및 플랫폼, UEFI 보안 부팅의 세 가지 기능 세트입니다. 이러한 기능을 사용하면 신뢰할 수 있는 코드와 서명되고 검증된 펌웨어만 컴퓨터에서 실행될 수 있으며 IT 관리자는 추가 보호 계층을 위해 특정 프로세스를 격리할 수 있습니다. Credential Guard는 VSM을 사용하여 사용자 로그인, 비밀번호 및 기타 인증 데이터를 격리하고 보호하여 시스템 및 기타 시스템에 대한 무단 액세스를 방지합니다.
VBS는 Windows 10 및 Windows Server 2016부터 모든 Windows 버전에서 지원됩니다. Windows 11도 VBS를 지원합니다. Windows 11에서는 VBS 및 메모리 무결성과 같은 주요 보안 기능이 기본적으로 켜져 있습니다. Windows 10과 마찬가지로 Windows 11의 VBS는 다양한 보안 솔루션을 안전하게 저장할 수 있는 격리된 메모리 섹션을 만듭니다. 이를 통해 환경은 OS에 대한 신뢰 루트 역할을 합니다. VBS는 이 환경 내에 있는 리소스만 신뢰할 수 있도록 보장합니다.
기존 아키텍처와 가상 아키텍처를 나란히 비교한 보기입니다. VBS로 보호되는 리소스 및 보안 솔루션
VBS와 Windows 하이퍼바이저는 여러 시스템과 OS 리소스, 보안 솔루션을 보호하는 것을 목표로 합니다. 그러한 리소스 중 하나가 MSR(모델별 레지스터)입니다. MSR은 디버깅, 성능 모니터링 및 프로세서 동작의 특정 측면을 제어하는 데 일반적으로 사용되는 프로세서의 제어 레지스터입니다.
MSR이 손상되고 MSR이 제어하는 설정을 변경하면 전체 시스템이 손상될 수 있습니다. 이런 일이 발생하면 시스템 동작이 바람직하지 않은 방식으로 변경되거나 위협 행위자가 시스템이나 보안 자산에 무단으로 액세스할 수 있습니다.
이러한 문제를 방지하기 위해 하이퍼바이저는 VBS를 사용합니다. VBS를 사용하면 하이퍼바이저는 다음을 수행하여 악성 커널 모드 코드로부터 MSR을 보호하고 오용을 방지합니다.
- 모든 MSR에 대한 액세스를 모니터링하고 제어합니다.
- 커널 모드 코드가 안전하다고 알려진 MSR에만 액세스하도록 허용합니다.
- 알 수 없는(하이퍼바이저에 대한) MSR에 대한 액세스를 차단합니다.
- 이벤트 뷰어의 Windows 시스템 로그에 이벤트를 기록하여 차단된 MSR에 대한 액세스 시도 인스턴스에 플래그를 지정합니다.
VBS는 또한 인증된 사용자 자격 증명과 Windows 보안을 담당하는 코드를 안전한 가상 환경에 배치하여 보호합니다.
가상화 기반 보안 및 메모리 무결성
메모리 무결성은 Windows OS의 VBS 기능입니다. 하이퍼바이저가 격리된 가상 환경을 생성하면 메모리 무결성은 이 환경 내에서 커널 모드 코드 무결성을 실행하여 신뢰할 수 없는 드라이버나 시스템 파일이 시스템 메모리에 로드되는 것을 방지합니다. 결과적으로 OS를 보호하고 맬웨어가 Windows 커널을 손상시키는 것을 방지합니다.
또한 메모리 무결성은 보안 런타임 환경 내에서 코드 무결성 검사를 통과한 후에만 커널 메모리 페이지가 실행되도록 보장합니다. 또한 실행 가능한 코드 페이지가 수정되는 것을 방지하고 수정된 메모리가 실행되는 것을 방지합니다. 이것이 커널 메모리 할당을 제한하고 시스템이 손상되는 것을 방지하는 방법입니다.
Windows에서 VBS를 실행하기 위한 요구 사항
Windows에서 VBS를 활성화하고 실행하려면 특정 구성 요소를 올바르게 구성해야 합니다. 가장 중요한 것은 Windows 하이퍼바이저입니다. 또한 프로세서는 두 번째 수준 주소 변환을 통해 가상화를 지원해야 합니다.
또한 모든 DMA 지원 I/O 장치는 입출력 메모리 관리 장치 뒤에 있어야 하며 모든 시스템 펌웨어는 Windows SMM 보안 완화 테이블(WMST)에 따라 시스템 관리 모드 코드를 강화해야 합니다. 모든 통합 확장 가능 펌웨어 인터페이스 펌웨어는 코드와 데이터에 대한 EFI 런타임 메모리 범위를 분리 및 보고해야 하며 EFI 페이지 보호도 포함해야 합니다(예를 들어 실행 가능한 UEFI 메모리는 읽기 전용이어야 하고 쓰기 가능한 메모리는 실행 가능하면 안 됩니다).
또 다른 중요한 요구 사항은 메모리 무결성과의 호환성을 보장하기 위해 모든 시스템 드라이버를 테스트해야 한다는 것입니다. 또한 고급 메모리 공격으로부터 시스템을 보호하려면 보안 메모리 덮어쓰기 요청 개정판 2를 구현해야 합니다.
마지막으로 Microsoft는 하드웨어 기반 보안을 제공하기 위해 신뢰할 수 있는 플랫폼 모듈을 구현할 것을 권장하지만 강제하지는 않습니다.
가상화 기반 보안을 사용할 때 Microsoft에서는 신뢰할 수 있는 플랫폼 모듈을 구현하여 하드웨어 기반 보안을 제공할 것을 권장합니다. Windows 10 또는 11에서 VBS가 활성화되어 있는지 확인하는 방법
Windows 10 및 11에서는 일반적으로 VBS가 기본적으로 켜져 있습니다. 그러나 관리자는 다음 절차에 따라 활성화 여부를 확인할 수 있습니다:
- Windows 검색에서 시스템 정보 앱을 검색하세요.
- 앱을 엽니다.
- '가상화 기반 보안' 행까지 아래로 스크롤합니다.
- '실행 중'이라고 표시되면 VBS가 활성화된 것입니다.
Windows 10 또는 11에서 VBS/HVCI를 비활성화하는 방법
보안상의 이점에도 불구하고 Windows 10 및 11에서 VBS를 활성화하면 시스템 성능이 저하될 수 있습니다. 이 기능을 비활성화하면 보안 솔루션이 취약점과 악용에 노출되기는 하지만 성능이 향상될 수 있습니다.
Windows 10 및 11에서 VBS/HVCI를 비활성화하는 프로세스는 다음과 같습니다.
- Windows 검색에서 "Core Isolation"을 검색하거나 시스템 설정에서 엽니다.
- 메모리 무결성을 끕니다(켜져 있는 경우).
- 시스템을 다시 시작하세요.
- 시스템 정보 앱을 엽니다.
- '가상화 기반 보안' 행까지 아래로 스크롤합니다.
- '활성화되지 않음'이라고 표시되면 VBS가 비활성화된 것입니다.
VBS가 여전히 활성화된 경우 다음 단계에 따라 시스템 레지스트리에서 비활성화해야 합니다(관리자 액세스와 경험이 필요할 수 있음).
- regedit를 열고 실행하여 레지스트리 편집기를 엽니다.
- Computer\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceGuard 폴더로 이동합니다.
- EnableVirtualizationBasedSecurity라는 파일을 열고 해당 값을 0으로 설정합니다.
- regedit를 닫습니다.
- PC를 다시 시작하세요.
- 시스템 정보 앱에서 VBS가 비활성화되어 있는지 확인하세요.
Windows 가상화 기반 보안 기능에 대해 자세히 알아보고 가상 환경을 보호할 때 유의해야 할 사항을 알아보세요. Windows Defender Device Guard를 활성화하는 방법을 알아보고 Windows Server용 엔드포인트 감지 및 응답 도구를 비교하세요.