가상화 환경에서 개발이나 테스팅을 위해서는 가상 머신 내에서 또 다른 가상 머신을 실행하는 것을 의미하는 Nested Virtualization을 사용합니다. 하지만 가상머신에서 또다른 가상머신을 사용하기 위해서는 프로세서 제조사에 따라 Host 시스템의 VT-x(Intel)나 AMD-V(AMD)가 활성화되어 있어야 하며, 한 단계 더 들어가서 그 내부의 가상머신에서도 이 옵션을 활성화해야 합니다1.
하지만 이렇게 체크하고 가상 머신을 실행하는데 다음과 같은 오류 메시지가 출력되면서 제대로 동작하지 않는 경우가 있습니다.
Virtualized Intel VT-x/EPT is not supported on this platform.
continue without virtualized Intel VT - x/EPT?
이 메시지는 일반적으로 하드웨어 가상화 기능이 BIOS/UEFI 설정에서 활성화되지 않았을 때 나타나지만, 이미 해당 옵션을 활성화했음에도 불구하고 이런 오류가 발생한다면 다음의 과정을 체크합니다.
튜토리얼 환경: 윈도우 11 Pro (빌드: 22621.2134)
Hyper-V 옵션 체크 해제
Hyper-V와 다른 가상화 도구를 함께 사용하고 싶은 경우 Windows 기능에서 Hyper-V를 비활성화해야 합니다. Hyper-V는 Windows의 네이티브 가상화 플랫폼으로, 하드웨어 가상화를 사용하여 여러 운영체제를 실행할 수 있게 해줍니다. 그러나 Hyper-V가 활성화되면 하드웨어 가상화 기능을 독점적으로 사용하게 되어, 다른 가상화 소프트웨어인 VMware와 충돌할 수 있습니다.
- 윈도우에서 작업 표시줄 검색 필드에
윈도우 기능
이라고 입력하면 검색 결과의 가장 정확 항목에 Windows 기능 켜기/끄기 가 검색 됩니다. 해당 항목을 클릭하거나 오른쪽 하위 실행 옵션에서 를 선택 합니다. Windows 검색 더 알아보기
- Windows 기능 창이 실행되면 Hyper-V 항목을 찾아 해당 옵션의 체크를 해제한 뒤 버튼을 클릭합니다.
가상화 기반 보안 실행 중지
가상화 기반 보호(Virtualization-Based Security, VBS)는 Windows의 보안 기능 중 하나로, 하드웨어 가상화를 활용하여 시스템 보안을 강화합니다. 그러나 VBS는 하드웨어 가상화를 필요로 하며, 이것이 활성화되어 있으면 VMware와 같은 다른 가상화 소프트웨어가 접근할 수 없게 되니 이 부분이 현재 활성화되어 있는 경우 이를 해제해야 합니다.
주의: 가상화 기반 보호를 비활성화하면 Windows의 핵심 보안 메커니즘이 약해져서, 시스템이 악성 코드나 루트킷 같은 공격에 더 취약해질 수 있습니다. 이는 인증 정보 보호와 시스템 내 신뢰할 수 있는 소프트웨어 실행을 제한하는 등의 중요한 보안 기능을 해제하는 것을 의미합니다.
가상화 기반 보안 설정 확인
시스템 정보에서 가상화 기반 보안 설정의 현재 상태를 확인할 수 있습니다.
- 실행 창 ( 단축키: Win + R )을 활성화한 뒤 항목에
msinfo32
를 입력후 버튼을 클릭 하거나 Enter 키를 눌러줍니다.
- 시스템 정보가 실행됩니다. 여기서 오른쪽 상자의 가상화 기반 보안 항목 값을 확인하면 현재 가상화 기반 보안이 실행 중인지 확인할 수 있습니다.
가상화 기반 보안(Virtualization-Based Security, VBS)은 가상화 환경 내에서 보안을 강화하고 시스템을 더 안전하게 만드는 기술입니다. 주로 Microsoft Windows 환경에서 사용되며, Intel VT-x, AMD-V와 같은 하드웨어 가상화 기술을 활용하여 보안을 강화하는 데 중점을 둡니다. VBS가 사용되는 몇 가지 주요 목적과 기능은 다음과 같습니다.
- 하이퍼바이저 기반 보안: VBS는 하이퍼바이저 수준에서 보안을 제공합니다. 이는 가상 머신 간 또는 호스트 시스템과 가상 머신 간의 보안 경계를 강화하여 가상 머신에서 일어나는 보안 위협으로부터 시스템을 보호합니다.
- 가상화 환경 내의 안전한 실행: VBS를 사용하면 가상 머신이 안전한 환경에서 실행될 수 있습니다. 이를 통해 악성 코드가 가상 머신의 운영 체제나 애플리케이션에 영향을 미치지 못하도록 방지합니다.
- 가상 환경의 보안 분리: VBS를 사용하면 가상 머신 간에 안전한 분리를 유지할 수 있습니다. 이로써 한 가상 머신에서 발생하는 보안 이벤트가 다른 가상 머신에 영향을 미치지 않도록 합니다.
- 시스템의 신뢰성 향상: VBS를 사용하면 시스템의 신뢰성을 향상시킬 수 있습니다. 이를 통해 루트킷(Rootkit)과 같은 공격으로부터 시스템을 보호하고 신뢰할 수 있는 부팅 및 실행 환경을 제공합니다.
- 암호화 및 보안 서비스: VBS는 하드웨어 기반 암호화 및 보안 서비스에 접근할 수 있도록 합니다. 이를 통해 데이터 보호 및 인증을 강화할 수 있습니다.
VBS는 주로 엔터프라이즈 환경에서 사용되며, 보안 요구 사항이 높은 환경에서 특히 중요합니다. 그러나 이 기술은 일반적인 데스크톱 환경에서도 사용될 수 있으며, 보안을 강화하고 고급 보안 요구 사항을 충족하는 데 도움이 됩니다. VBS는 하이퍼바이저 및 운영 체제에 대한 추가 보안 계층을 제공하여 시스템의 취약성을 줄이고 보안 위협으로부터 시스템을 보호하는 데 기여합니다.
가상화 기반 보안 설정 해제하는 방법
Windows 부팅 시 하이퍼바이저를 어떻게 시작되는지 확인 후 하이퍼바이저가 시작되지 않도록 수정이 필요합니다.
- 작업을 위해 관리자 권한으로 명령 프롬프트가 필요 합니다. 시작 버튼을 클릭하고
cmd
또는명령 프롬프트
를 검색합니다. 검색 결과에서 명령 프롬프트를 마우스 오른쪽 버튼으로 클릭해 관리자 권한으로 실행을 선택합니다. 필요한 경우 명령 프롬프트를 무조건 관리자 권한으로 실행 하는 방법을 확인하세요.
열린 명령 프롬프트 창에서 다음 명령을 실행합니다. 이 명령은 현재 부팅 환경의 부트 설정을 보여줍니다. hypervisorlaunchtype 기본 값은 대부분 Auto
로 되어 있는데, 이 부분이 다른 가상화 소프트웨어를 사용할 때 충돌의 원인일 수 있습니다.
bcdedit /enum {current}
위 명령은 Windows에서 부트 설정 데이터 스토어를 조회하는 명령입니다. 이 명령은 현재 운영 체제에 대한 부트 로더 항목을 표시합니다.
bcdedit
: BCD 스토어를 관리하는 데 사용되는 명령 줄 도구입니다. BCD 스토어에는 부팅 중에 필요한 모든 정보가 들어 있습니다./enum
: 이 옵션은 enumerate의 약자로, BCD 스토어의 내용을 나열하라는 의미입니다.{current}
: 이것은 현재 로드된 운영 체제의 부트 엔트리를 가리킵니다.
참고: BCD(Boot Configuration Data) 저장소는 윈도우 운영체제에서 부팅 정보를 저장하는 곳을 말합니다. 이 BCD 저장소는 시스템이 부팅될 때 어떤 운영체제를 로드해야 하는지, 어떤 방식으로 로드해야 하는지 등의 정보를 담고 있습니다. BCD 저장소는 기본적으로 바이너리 파일 형태로 저장되며, bcdedit라는 명령어를 통해 접근하고 수정할 수 있습니다. 이 BCD 저장소를 통해 운영체제의 부팅 순서를 변경하거나, 다른 운영체제를 추가하는 등의 작업을 할 수 있습니다. BIOS(Basic Input/Output System)의 후속으로 개발된 시스템 펌웨어인 UEFI(Unified Extensible Firmware Interface)에서도 BCD 저장소를 사용하여 부팅 정보를 관리하며, 이를 통해 시스템이 부팅되는 방식을 결정합니다.
그리고 위 옵션이 Auto
로 되어 있는 경우 다음 명령을 실행하여 하이퍼바이저를 비활성화합니다.
bcdedit /set hypervisorlaunchtype off
이 명령은 Windows의 부트 설정 데이터 스토어에 있는 특정 항목을 변경하는 데 사용됩니다.
bcdedit
: BCD 스토어를 관리하는 데 사용되는 명령 줄 도구입니다./set
: 이 옵션은 BCD 스토어의 특정 항목을 설정하거나 변경하라는 의미입니다.hypervisorlaunchtype off
: 이것은 하이퍼바이저 시작 유형을 끔으로 설정하라는 지시입니다.
명령을 실행한 후에 명령 프롬프트 창을 닫고 시스템을 재시작2하여 변경 사항을 적용하면, 이제 하이퍼바이저(VBS)가 비활성화되고 시스템이 다시 시작될 것입니다. 이 과정을 통해 VBS를 임시로 비활성화할 수 있으며, 필요할 때 다음 명령으로 다시 활성화할 수 있습니다.
bcdedit /set hypervisorlaunchtype auto
마치며
Windows에서 vmware를 실행 할 때
라는 오류가 표시되는 경우 이를 해결하는 방법에 대해 알아보았습니다. 참고로 일부 경우에는 BIOS/UEFI 설정에서 VT-d (Intel Virtualization Technology for Directed I/O) 옵션도 함께 비활성화해야 하는 경우도 있으니 위 과정으로도 진행이 되지 않는다면 이 부분도 체크해보는 것을 권장합니다.하지만, 전술한대로 VBS 해제 보안 메커니즘이 약해져서 공격자가 운영 체제의 핵심 부분에 접근하거나 조작하는 것이 더 쉬워질 수 있으니 이런 부분에 대한 이해가 있는 경우에 진행을 해야 합니다. 그럼에도 vmware와 같은 가상환경에서 또다른 가상환경이 제대로 동작하지 않는 경우 위 과정을 진행해 보시길 바랍니다.