하이퍼바이저
IT 위키
더 많은 작업
- Hypervisor
- 하드웨어 자원(CPU, 메모리, 네트워크, 저장장치)을 가상화해 여러 가상 머신(VM)이 한 물리 호스트에서 서로 격리된 채 동작하도록 중재하는 소프트웨어 계층. 가상 머신 모니터(VMM, Virtual Machine Monitor)라고도 한다
하이퍼바이저는 각 VM에 가상 하드웨어를 보여 주고, VM이 물리 자원에 접근하는 것을 중재하며, 실행 중인 VM 사이를 격리한다. 같은 호스트 안의 VM끼리 통신할 수 있도록 가상 네트워크(가상 스위치)를 제공하기도 한다(NIST SP 800-125A Rev. 1). 모든 VM이 하이퍼바이저에 의존하므로 하이퍼바이저는 가상화 환경 전체의 신뢰 컴퓨팅 기반에 해당한다.
- 하이퍼바이저를 이용한 가상화 구조
| SW | SW | SW | SW |
| 게스트 OS | 게스트 OS | ||
| 하이퍼바이저 | |||
|---|---|---|---|
| 호스트 OS | |||
위 그림은 하이퍼바이저가 호스트 OS 위에서 동작하는 2형(호스티드) 구조이다. 1형(베어메탈)에서는 호스트 OS 칸이 없고 하이퍼바이저가 하드웨어 바로 위에 놓인다.
NIST SP 800-125는 하이퍼바이저가 하드웨어 위에서 바로 동작하는 방식을 베어메탈(bare metal) 또는 네이티브(native) 가상화, 호스트 OS 위에서 동작하는 방식을 호스티드(hosted) 가상화라고 부른다.
| 구분 | 1형(Type 1, 베어메탈) | 2형(Type 2, 호스티드) |
|---|---|---|
| 동작 위치 | 하드웨어 바로 위. 펌웨어에 내장되기도 한다 | Windows, Linux, macOS 같은 호스트 OS 위 |
| 예 | Hyper-V, Xen, VMware ESXi, KVM | VirtualBox, VMware Workstation, Parallels Desktop |
| 성능 | 하드웨어에 직접 접근해 오버헤드가 작다 | 호스트 OS를 거쳐 오버헤드가 크다 |
| 공격 표면 | 하이퍼바이저와 관리 인터페이스로 한정 | 호스트 OS와 그 위의 모든 소프트웨어가 포함 |
| 관리 | 별도 관리 서버·콘솔로 원격 관리 | 호스트 OS의 응용 프로그램으로 관리 |
| 주 용도 | 데이터 센터, 클라우드 IaaS, 서버 통합 | 개인 PC, 개발·시험, 교육, 악성코드 분석 |
Hyper-V는 1형이지만 Windows가 실행되는 루트 파티션(root partition, 부모 파티션)을 반드시 두고, 이 파티션의 가상화 관리 스택이 하드웨어 장치에 직접 접근하며 게스트용 자식 파티션을 만든다. 따라서 루트 파티션의 보안이 곧 하이퍼바이저 보안에 포함된다. KVM은 리눅스 커널 모듈로 동작해 분류가 엇갈리지만 보통 1형으로 본다.
| 기술 | 역할 |
|---|---|
| Intel VT-x, AMD-V | CPU에 가상화 전용 실행 모드를 추가해 게스트 OS의 특권 명령을 하드웨어가 가로채도록 한다. Hyper-V는 이런 하드웨어 지원 가상화를 요구한다 |
| 확장 페이지 테이블(Intel EPT, AMD NPT/RVI) | 게스트 메모리 주소를 물리 주소로 바꾸는 작업을 하드웨어가 처리해 성능과 메모리 격리를 높인다 |
| IOMMU(Intel VT-d, AMD-Vi) | 장치의 직접 메모리 접근(DMA)을 주소 변환·제한한다. 네트워크 카드나 GPU를 VM에 직접 할당할 때 그 장치가 다른 VM이나 하이퍼바이저 메모리를 읽지 못하게 한다 |
| TPM과 보안 부팅 | 하이퍼바이저가 변조되지 않은 상태로 기동했는지 측정·검증한다 |
- 하이퍼바이저 공격 표면: 가상 장치 에뮬레이션(디스크·네트워크·플로피 컨트롤러 등), 하이퍼콜 인터페이스, VM 간 공유 메모리가 주요 공격 지점이다. 쓰지 않는 가상 장치는 VM 설정에서 제거한다.
- VM 탈출(VM escape): 게스트 안의 공격자가 하이퍼바이저 결함을 이용해 게스트를 벗어나 하이퍼바이저나 다른 게스트를 장악하는 것이다. 하이퍼바이저가 뚫리면 모든 게스트가 위험해지므로 하이퍼바이저는 단일 실패 지점이다(NIST SP 800-125). QEMU 가상 플로피 디스크 컨트롤러 결함 VENOM(CVE-2015-3456)이 대표 사례이다.
- 관리 인터페이스: 하이퍼바이저를 관리하는 방법이 여러 가지라면 각 인터페이스를 모두 보호하고, 원격 관리 통신은 암호화한다. 관리망을 업무망과 분리하고 관리자 계정에 다중 인증을 적용한다.
- 패치: 하이퍼바이저와 CPU 마이크로코드를 정기적으로 갱신한다. 스펙터, 멜트다운 같은 CPU 결함은 하이퍼바이저 수준 완화가 필요하다.
- 물리 보안: 호스트를 재부팅할 수 있는 사람은 하이퍼바이저 설정을 바꿀 수 있으므로 1형도 물리 접근 통제가 필요하다(NIST SP 800-125).
- 자세한 위협과 대책은 가상화 보안 문서를 참고한다.
- 1형은 하드웨어 위, 2형은 호스트 OS 위에서 동작한다. 서버·클라우드는 1형, 데스크톱 시험 환경은 2형이 일반적이다.
- 하이퍼바이저 침해는 모든 VM 침해로 이어진다. 가상화 환경에서 가장 중요한 보호 대상은 하이퍼바이저와 관리 콘솔이다.
- VM 탈출은 격리 실패이다. 대책은 패치, 불필요한 가상 장치 제거, 보안 등급이 다른 VM의 호스트 분리이다.
- IOMMU는 장치 직접 할당 시 DMA를 이용한 격리 우회를 막는 하드웨어 통제이다.
- 2형은 호스트 OS의 취약점까지 공격 표면에 포함된다는 점이 흔한 출제 포인트이다.