Computer >> 컴퓨터 >  >> 시스템 >> Mac

VBS(가상화 기반 보안) 완벽 가이드: 격리된 가상 환경으로 시스템을 보호하는 방법

가상화 기반 보안(VBS, Virtualization-Based Security)은 컴퓨터 프로세스를 운영체제(OS) 및 일부 경우에는 하드웨어로부터 추상화하는 기술입니다. 프로세스들을 서로 격리함으로써 운영체제와 디바이스를 멀웨어 등 각종 공격으로부터 보호하는 것이 목적입니다.

VBS는 격리된 가상 환경을 생성하고 특정 제한 사항을 적용하여, 운영체제의 취약점이나 멀웨어 같은 공격 기법으로부터 시스템 리소스와 보안 솔루션(예: 사용자 로그인 자격 증명)을 보호하는 개념입니다. 이 격리된 환경은 운영체제의 나머지 부분과 분리된 메인 메모리의 한 구역으로, 운영체제의 '신뢰 루트(root of trust)' 역할도 수행합니다.

VBS는 Windows 하이퍼바이저에 의존하여 이러한 격리 환경을 만듭니다. 하이퍼바이저는 Windows가 악성 코드 등에 의해 이미 침해되었을 가능성을 전제로 합니다. 이러한 가정에 기반해 핵심 시스템 리소스를 보호하기 위해 하드웨어 가상화를 활성화하고, 시스템 프로세스를 컴퓨터 운영체제에서 직접 실행하는 대신 가상 머신(VM)에서 호스팅하며 데이터를 저장합니다.

VBS의 핵심 전제는 다음과 같습니다. 격리된 프로세스나 애플리케이션이 공격당하더라도 그 공격이 VM 외부로 확산될 수 없다는 것입니다. 예를 들어 공격자는 한 프로세스의 취약점을 악용해 다른 애플리케이션의 데이터를 탈취하거나 랜섬웨어로 컴퓨터 전체를 장악할 수 없습니다.

VBS(가상화 기반 보안) 완벽 가이드: 격리된 가상 환경으로 시스템을 보호하는 방법

가상화 기반 보안은 Windows 하이퍼바이저를 통해 격리된 환경을 생성합니다.

Windows에서의 가상화 기반 보안이란?

마이크로소프트는 Windows Defender Device Guard와 Credential Guard 기능을 도입하면서 Windows 10에 처음으로 가상화 기반 보안을 포함시켰습니다. Device Guard와 Credential Guard는 VSM(Virtual Secure Mode)을 활용하는데, 이는 Windows 10의 가상화 기반 보안의 핵심 기능입니다. VSM은 컴퓨터 하드웨어에 직접 설치된 Microsoft Hyper-V 하이퍼바이저를 사용하여 특정 프로세스를 실행하고 데이터를 운영체제와 독립적으로 저장합니다.

Device Guard는 세 가지 기능, 즉 Configurable Code Integrity(구성 가능한 코드 무결성), VSM Protected Code Integrity(VSM 보호 코드 무결성), Platform and UEFI Secure Boot(플랫폼 및 UEFI 보안 부팅)로 구성되며, 신뢰할 수 없는 코드가 Windows 10 머신에서 실행되는 것을 차단합니다. 이러한 기능들은 신뢰할 수 있는 코드와 서명·검증된 펌웨어만 컴퓨터에서 실행할 수 있도록 보장하며, IT 관리자가 특정 프로세스를 격리해 추가적인 보호 계층을 구성할 수 있게 합니다. Credential Guard는 VSM을 활용해 사용자 로그인 정보, 비밀번호, 기타 인증 데이터를 격리·보호하여 무단 접근을 방지합니다.

VBS는 Windows 10과 Windows Server 2016부터 모든 버전에서 지원되며, Windows 11 역시 VBS를 지원합니다. 특히 Windows 11에서는 VBS와 메모리 무결성 같은 핵심 보안 기능이 기본적으로 활성화되어 있습니다. Windows 10과 마찬가지로 Windows 11의 VBS는 격리된 메모리 영역을 생성해 다양한 보안 솔루션을 안전하게 저장하며, 이 환경은 운영체제의 신뢰 루트 역할을 합니다. VBS는 이 환경 내부에 존재하는 리소스만 신뢰할 수 있음을 보장합니다.

VBS(가상화 기반 보안) 완벽 가이드: 격리된 가상 환경으로 시스템을 보호하는 방법

기존 아키텍처와 가상화 아키텍처의 비교

VBS가 보호하는 리소스와 보안 솔루션

VBS와 Windows 하이퍼바이저는 여러 시스템·운영체제 리소스와 보안 솔루션을 보호하는 것을 목표로 합니다. 대표적인 리소스 중 하나가 MSR(Model-Specific Register, 모델별 레지스터)입니다. MSR은 프로세서 내부의 제어 레지스터로, 디버깅, 성능 모니터링, 프로세서 동작의 특정 측면 제어에 주로 사용됩니다.

MSR이 침해되고 해당 설정이 변경되면 시스템 전체가 위험에 노출될 수 있습니다. 이런 상황이 발생하면 시스템 동작이 의도치 않게 변하거나, 위협 행위자가 시스템 또는 보안 자산에 대한 무단 접근 권한을 얻을 수 있습니다.

이러한 문제를 방지하기 위해 하이퍼바이저는 VBS를 활용해 악성 커널 모드 코드로부터 MSR을 보호하고 오남용을 막습니다. 구체적인 방법은 다음과 같습니다.

  • 모든 MSR에 대한 접근을 모니터링하고 제어합니다.
  • 커널 모드 코드가 안전하다고 알려진 MSR에만 접근하도록 허용합니다.
  • 하이퍼바이저가 알지 못하는(미확인) MSR에 대한 접근을 차단합니다.
  • 차단된 MSR 접근 시도가 발생하면 이벤트 뷰어의 Windows 시스템 로그에 이벤트를 기록해 표시합니다.

또한 VBS는 인증된 사용자 자격 증명과 Windows 보안을 담당하는 코드를 안전한 가상 환경 안에 배치함으로써 보호합니다.

가상화 기반 보안과 메모리 무결성

메모리 무결성(Memory Integrity)은 Windows 운영체제의 VBS 기능입니다. 하이퍼바이저가 격리된 가상 환경을 생성하면, 메모리 무결성은 이 환경 내에서 커널 모드 코드 무결성 검사를 실행하여 신뢰할 수 없는 드라이버나 시스템 파일이 시스템 메모리에 로드되는 것을 차단합니다. 이를 통해 운영체제를 보호하고 멀웨어가 Windows 커널을 침해하는 것을 방지합니다.

메모리 무결성은 또한 커널 메모리 페이지가 안전한 런타임 환경 내부의 코드 무결성 검사를 통과한 후에만 실행되도록 보장합니다. 아울러 실행 가능한 코드 페이지의 변조를 막고, 변조된 메모리가 실행되는 것을 차단합니다. 이러한 방식으로 커널 메모리 할당을 제한하고 시스템 침해를 예방합니다.

Windows에서 VBS 실행 요구 사항

Windows에서 VBS를 활성화하고 실행하려면 특정 구성 요소들이 올바르게 설정되어 있어야 합니다. 가장 중요한 것은 Windows 하이퍼바이저이며, 프로세서는 SLAT(Second-Level Address Translation, 2차 주소 변환)를 지원하는 가상화 기능을 갖추어야 합니다.

또한 DMA를 지원하는 모든 I/O 디바이스는 IOMMU(Input-Output Memory Management Unit) 뒤에 위치해야 하고, 모든 시스템 펌웨어는 WMST(Windows SMM Security Mitigation Table) 표준에 따라 SMM(System Management Mode) 코드를 강화해야 합니다. 모든 UEFI(Unified Extensible Firmware Interface) 펌웨어는 코드와 데이터를 위한 EFI 런타임 메모리 범위를 분리·보고해야 하며, EFI 페이지 보호 기능(예: 실행 가능한 UEFI 메모리는 읽기 전용이어야 하고, 쓰기 가능한 메모리는 실행 불가능해야 함)을 포함해야 합니다.

또 하나 중요한 요구 사항은 모든 시스템 드라이버가 메모리 무결성과의 호환성을 보장받도록 테스트되어야 한다는 점입니다. 그리고 고급 메모리 공격으로부터 시스템을 보호하기 위해 SMOR(Secure Memory Overwrite Request) 개정판 2(revision 2)가 구현되어야 합니다.

마지막으로 마이크로소프트는 필수는 아니지만 하드웨어 기반 보안을 제공하기 위해 TPM(Trusted Platform Module)을 구현할 것을 권장합니다.

VBS(가상화 기반 보안) 완벽 가이드: 격리된 가상 환경으로 시스템을 보호하는 방법

가상화 기반 보안 사용 시 마이크로소프트는 하드웨어 기반 보안을 위해 TPM 구현을 권장합니다.

Windows 10/11에서 VBS 활성화 여부 확인 방법

Windows 10과 11에서 VBS는 대개 기본적으로 켜져 있습니다. 다만 관리자는 다음 절차를 통해 활성화 여부를 확인할 수 있습니다.

  • Windows 검색에서 '시스템 정보(System Information)' 앱을 검색합니다.
  • 앱을 엽니다.
  • '가상화 기반 보안(Virtualization-based security)' 항목까지 아래로 스크롤합니다.
  • '실행 중(Running)'이라고 표시되어 있다면 VBS가 활성화된 상태입니다.

Windows 10/11에서 VBS/HVCI 비활성화 방법

보안상 이점에도 불구하고 Windows 10과 11에서 VBS를 활성화하면 시스템 성능이 저하될 수 있습니다. 이 기능을 비활성화하면 성능은 개선되지만, 그 대가로 보안 솔루션이 취약점과 공격에 노출될 수 있습니다.

Windows 10과 11에서 VBS/HVCI를 비활성화하는 절차는 다음과 같습니다.

  • Windows 검색에서 '코어 격리(Core Isolation)'를 검색하거나 시스템 설정에서 엽니다.
  • 메모리 무결성(Memory Integrity)을 끕니다(켜져 있는 경우).
  • 시스템을 재시작합니다.
  • 시스템 정보 앱을 엽니다.
  • '가상화 기반 보안' 항목까지 아래로 스크롤합니다.
  • '사용 안 함(Not enabled)'이라고 표시되면 VBS가 비활성화된 것입니다.

만약 VBS가 여전히 활성화되어 있다면, 시스템 레지스트리에서 비활성화해야 합니다(관리자 권한과 경험이 필요할 수 있습니다). 절차는 다음과 같습니다.

  • regedit를 실행해 레지스트리 편집기를 엽니다.
  • Computer\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceGuard 폴더로 이동합니다.
  • EnableVirtualizationBasedSecurity 파일을 열고 값을 0으로 설정합니다.
  • regedit를 닫습니다.
  • PC를 재시작합니다.
  • 시스템 정보 앱에서 VBS가 비활성화되었는지 확인합니다.

Windows 가상화 기반 보안 기능에 대해 더 알아보고, 가상 환경 보안 시 유의 사항을 확인하세요. Windows Defender Device Guard 활성화 방법과 Windows Server용 EDR(엔드포인트 탐지 및 대응) 도구 비교 자료도 함께 살펴보시기 바랍니다.