가상화 기반 보안(Virtualization-Based Security, VBS)은 사실 Windows 10 시절부터 존재해 온 기능입니다. 다만 마이크로소프트가 이를 강제하지 않았기 때문에 많은 사용자에게 잘 알려지지 않았는데, Windows 11부터는 상황이 달라집니다.
이 글에서는 VBS가 정확히 무엇인지, 왜 필요한지, 그리고 활성화 및 비활성화하는 방법까지 자세히 살펴보겠습니다.
가상화 기반 보안(VBS)이란?
VBS는 Windows 하이퍼바이저(Hypervisor)를 활용해 메인 메모리의 일부 구역을 운영체제의 나머지 부분과 가상으로 격리하는 기술입니다. Windows는 이렇게 분리된 안전한 메모리 공간에 로그인 자격 증명, Windows 보안을 담당하는 코드 등 중요한 보안 솔루션을 저장합니다.
보안 솔루션을 메모리의 격리된 영역에 배치하는 이유는, 이러한 보호 장치를 무력화하려는 악용 공격으로부터 지키기 위해서입니다. 멀웨어는 종종 Windows의 내장 보안 메커니즘을 표적으로 삼아 중요한 시스템 리소스에 접근하려 합니다. 예를 들어, 악성 코드는 Windows의 코드 인증 방식을 우회해 커널 수준 리소스에 접근할 수 있습니다.
VBS는 Windows 보안 솔루션을 운영체제의 나머지 부분과 분리함으로써 이 문제를 해결합니다. 취약점이 OS 보호 장치 자체에 접근할 수 없기 때문에 보호를 우회할 수 없고, 결과적으로 Windows가 한층 더 안전해집니다. 이러한 보호 장치 중 대표적인 것이 바로 하이퍼바이저 강제 코드 무결성(HVCI), 즉 메모리 무결성입니다.
HVCI는 VBS를 활용해 강화된 코드 무결성 검사를 수행합니다. 이 검사는 커널 모드 드라이버와 프로그램이 신뢰할 수 있는 출처에서 왔는지 인증하여, 신뢰된 코드만 메모리에 로드되도록 보장합니다.
요약하자면, VBS는 Windows가 핵심 보안 솔루션을 다른 모든 요소로부터 분리해 유지하는 메커니즘입니다. 시스템이 침해되더라도 VBS로 보호되는 솔루션과 정보는 악성 코드가 침투해 비활성화하거나 우회할 수 없으므로 계속해서 정상적으로 작동합니다.
Windows에 가상화 기반 보안이 필요한 이유
Windows 11에 VBS가 필요한 이유를 이해하려면, VBS가 제거하고자 하는 위협이 무엇인지 먼저 알아야 합니다. VBS는 기본적으로 기존 보안 메커니즘이 감당하기 어려운 악성 코드로부터 시스템을 보호하는 장치입니다.
다시 말해, VBS의 목표는 커널 모드 멀웨어를 막는 것입니다.
커널은 모든 운영체제의 심장부입니다. 시스템 전반을 관리하고 서로 다른 하드웨어 구성 요소가 함께 작동하도록 만드는 코드이죠. 일반적으로 사용자 프로그램은 커널 모드가 아닌 사용자 모드에서 실행됩니다. 사용자 모드 프로그램은 권한이 제한적이어서, 예를 들어 다른 프로그램의 가상 주소 공간을 덮어써 동작을 교란하는 일은 할 수 없습니다.
반면 커널 모드 프로그램은 이름 그대로 Windows 커널에 대한 전체 접근 권한을 가지며, 곧 Windows 리소스 전체에 접근할 수 있습니다. 시스템 호출을 수행하고, 중요 데이터에 접근하고, 원격 서버에 연결하는 것도 아무런 제약 없이 가능합니다.
즉, 커널 모드 프로그램은 백신 프로그램보다도 높은 권한을 가집니다. 따라서 방화벽을 비롯해 Windows나 서드파티 앱이 설정한 각종 보호 장치를 우회할 수 있습니다.
많은 경우 Windows는 커널 수준 접근 권한을 가진 악성 코드의 존재조차 인식하지 못합니다. 이 때문에 커널 모드 멀웨어 탐지는 극도로 어렵거나, 경우에 따라 불가능하기까지 합니다.
VBS는 바로 이 부분을 바꾸려는 것입니다.
앞서 언급했듯이 VBS는 Windows 하이퍼바이저를 이용해 안전한 메모리 영역을 만듭니다. Windows 하이퍼바이저는 시스템에서 가장 높은 수준의 권한을 가지며, 시스템 메모리를 검사하고 제한을 강제할 수 있습니다.
따라서 커널 모드 멀웨어가 시스템 메모리의 페이지를 변조했다면, 하이퍼바이저가 구동하는 코드 무결성 검사가 안전한 메모리 영역 내부에서 해당 페이지에 잠재적인 무결성 위반이 있는지 조사합니다. 코드가 이 무결성 검사를 통과해야만 비로소 해당 메모리 영역 바깥에서 실행 가능하게 됩니다.
결론적으로, Windows는 사용자 모드 악성 코드에 대응하는 것과 더불어 커널 모드 멀웨어의 위험을 최소화하기 위해 VBS가 필요합니다.
Windows 11은 VBS를 어떻게 활용할까?
Windows 11의 하드웨어 요구 사항을 자세히 살펴보면, 마이크로소프트가 요구하는 대부분의 조건이 VBS가 작동하기 위해 필요한 것들임을 알 수 있습니다. 마이크로소프트는 공식 웹사이트에서 VBS 작동에 필요한 하드웨어를 다음과 같이 명시하고 있습니다.
- Intel VT-x, AMD-V 같은 하드웨어 가상화 기능을 지원하는 64비트 CPU
- TPM(신뢰할 수 있는 플랫폼 모듈) 2.0
- UEFI
- HVCI 호환 드라이버
이 목록을 보면 Intel 8세대 이상 CPU를 포함한 Windows 11의 주요 하드웨어 요구 사항이 VBS와 그로 인해 활성화되는 기능들을 원활하게 지원하기 위한 것임이 분명합니다. 그 대표적인 기능이 바로 하이퍼바이저 강제 코드 무결성(HVCI)입니다.
앞서 설명했듯이 VBS는 Windows 하이퍼바이저를 사용해 OS의 나머지 부분과 분리된 가상 메모리 환경을 구축합니다. 이 환경은 OS의 신뢰 근원(root of trust) 역할을 합니다. 다시 말해, 이 가상 환경 안에 존재하는 코드와 보안 메커니즘만 신뢰되며, 그 밖의 프로그램과 솔루션—커널 모드 코드 포함—은 인증되기 전까지는 신뢰되지 않습니다. HVCI는 VBS가 만든 가상 환경을 한층 더 강화하는 핵심 구성 요소입니다.
가상 메모리 영역 내부에서 HVCI는 커널 모드 코드에 무결성 위반이 있는지 검사합니다. 해당 커널 모드 코드는 신뢰할 수 있는 출처에서 왔고, 메모리 할당이 시스템 보안에 위협이 되지 않는 경우에만 메모리를 할당받을 수 있습니다.
이처럼 HVCI는 매우 중요한 기능입니다. 그래서 Windows 11은 호환되는 모든 시스템에서 이 기능을 기본적으로 활성화합니다.
내 PC에서 VBS 활성화 여부 확인하는 방법
마이크로소프트는 호환되는 완제품 및 OEM Windows 11 PC에서 VBS를 기본적으로 활성화합니다. 하지만 안타깝게도 VBS는 성능을 최대 25%까지 저하시킬 수 있습니다. 따라서 Windows 11을 사용 중이면서 최첨단 보안이 꼭 필요하지 않다면 VBS를 끄는 것을 고려해 볼 만합니다.
내 컴퓨터에서 VBS가 활성화되어 있는지 확인하려면 Windows 키를 누르고 "시스템 정보"를 입력한 뒤 해당 결과를 선택하세요. 앱이 열리면 아래로 스크롤해 가상화 기반 보안 항목을 찾아 활성화 여부를 확인하면 됩니다.
VBS를 켜거나 끄려면 Windows 키를 누르고 "코어 격리"를 입력한 후 관련 결과를 선택합니다. 코어 격리 섹션에서 메모리 무결성 토글을 켜거나 끄면 설정이 변경됩니다.
마지막으로 PC를 재시작하면 변경 사항이 적용됩니다.
VBS는 Windows 11을 훨씬 안전하게 만들지만... 단점도 있다
HVCI 같은 Windows 11의 강력한 보안 기능들이 VBS에 크게 의존하는 데에는 분명한 이유가 있습니다. VBS는 악성 코드를 효과적으로 차단하고 OS를 보안 침해로부터 보호하는 강력한 방법입니다. 하지만 VBS는 가상화에 기반하기 때문에 시스템 성능의 상당 부분을 소모할 수 있습니다.
마이크로소프트의 엔터프라이즈 고객에게는 성능 저하를 감수하더라도 이러한 보안 강화가 당연한 선택입니다. 하지만 빠른 Windows 경험, 특히 게임 성능을 중시하는 일반 사용자에게 VBS의 성능 비용은 받아들이기 어려울 수 있습니다.
다행히 마이크로소프트는 사용자가 VBS를 직접 끌 수 있도록 허용하고 있습니다. VBS를 꺼도 걱정할 필요는 없습니다. VBS 없이도 Windows 11은 Windows 10보다 훨씬 안전합니다.