"기밀 VM을 빈틈을 메운다" 마이크로소프트의 오픈소스 파라바이저 '오픈HCL'란?

4 weeks ago 20

최근 클라우드와 온프레미스에서 마이크로소프트 OS 업데이트의 중심은 가상화다. 가상화는 동일한 하드웨어에서 가동 중인 인스턴스를 상호 격리함으로써 애저의 고밀도 서비스형 인프라(IaaS)와 서비스형 플랫폼(PaaS), 그리고 윈도우 11의 향상된 데스크톱 보안의 기반이 된다. 
 

ⓒ Getty Imgaes Bank

또한 가상화는 마이크로소프트 기밀 컴퓨팅 서비스의 기반 기술로서 암호화된 데이터를 안전하게 다루면서 저장, 이동, 운영 중에 이 데이터를 보호하기 위한 수단을 제공한다. 기존 하이퍼바이저 위에 암호화된 가상 환경을 중첩하는 방식도 충분히 잘 작동하지만 이 경우 신뢰할 수 있는 실행 환경 내에서 액세스할 수 있는 운영체제 기능이 제한된다. 


하이퍼바이저의 확장 

이 문제에 대처하기 위해 마이크로소프트가 들고나온 기술이 ‘파라바이저(paravisor)’라는 가상화에 대한 대안 접근 방식이다. 파라바이저는 호스트와 가상화된 환경 간에 더 많은 링크를 제공하는 반가상화(paravirtualization) 개념을 기반으로 한다. 파라바이저를 위해서는 클라이언트 OS가 가상화를 인식해야 하며, API 모음과 필요할 때 이런 API를 사용할 수 있는 드라이버도 필요하다. 이 방식에서 클라이언트 OS는 격리된 컴퓨팅을 처리하며 호스트 OS는 호스트와 가상화된 프로세스 간에 I/O 및 기타 공통 서비스를 공유할 수 있다. 

윈도우에서 가상화 기반 보안 기능을 사용 중인 경우 반가상화를 지원하는 VM을 사용하게 된다. 이렇게 하면 보호되는 작업과 보호되지 않는 작업의 우선순위와 하드웨어 액세스 권한이 동일하게 되어 성능 병목 지점이 제거되며, 사용자가 보안 프로세스의 신뢰 경계 내부에 있든 외부에 있든 관계없이 동일한 경험을 제공할 수 있다.  

애저의 기밀 컴퓨팅 플랫폼과 같은 툴은 파라바이저에 의존한다. 기반 가상화 서비스가 업데이트될 때마다 운영체제를 업데이트할 필요가 없다. 새 하드웨어가 배포되고 새로운 기능이 활성화되는 과정에서 코드는 계속 실행된다. 마이크로소프트가 정의하는 파라바이저에 대해 알아두면 도움이 된다. 파라바이저는 게스트 VM 내에서 실행되지만 VM보다 더 높은 권한을 갖는 실행 환경이며 이 VM에 서비스를 제공한다. 

파라바이저는 신뢰할 수 있는 실행 환경에서 실행되도록 설계된 특수한 버전의 게스트 OS를 요구하지 않으므로 기밀 컴퓨팅에 파라바이저를 사용하면 전체적인 위험을 낮출 수 있다. 파라바이저가 없는 경우 게스트 OS를 기밀 컴퓨팅 환경에서 실행하도록 지원하기 위해서는 부가적인 코드로 게스트 OS의 시야를 넓혀야 한다. 

이 경우 새로 OS 빌드가 나올 때마다 업데이트해야 하므로 사용되는 OS는 플랫폼 벤더가 신뢰하는 OS로 제한될 뿐만 아니라, 시야 확보가 되지 않은 다른 버전보다 게스트 OS 빌드가 지연되도록 해야 하므로 그 지연이 아무리 짧다 해도 보안 위험이 따르게 된다. 

파라바이저를 사용하면 특수한 OS 릴리스가 불필요하며, 지원되는 OS를 원하는 대로 사용할 수 있다. 즉, 마이크로소프트, 캐노니컬, 레드햇 또는 기타 업체가 기밀 컴퓨팅을 지원하는 릴리스를 빌드, 테스트, 패키징할 때까지 기다릴 필요가 없다. 선택한 게스트 OS의 보안 업데이트에 제로데이 익스플로잇이 있는 경우 표준 OS 및 이미지 업데이트 프로세스의 일부로 롤아웃하기만 하면 된다. 


오픈HCL 소개 

애저의 파라바이저는 원래 사유 코드를 기반으로 한 클로즈드 소스였지만 새로운 오픈소스 버전인 오픈HCL이 발표되면서 상황이 바뀌었다. 오픈HCL은 깃허브에서 개발이 진행 중이므로 마이크로소프트의 표준 기여자 라이선스 계약에 서명한다면 직접 기여도 할 수 있다. 리눅스와 맥OS를 포함한 대부분의 주요 플랫폼에서 실행되며 마이크로소프트 자체 하이퍼바이저, 애플 하이퍼바이저 프레임워크, KVM과 호환된다. x64와 ARM64 환경 모두 포함된다. 

마이크로소프트의 새로운 파라바이저 아키텍처는 비교적 단순하다. 기존 하이퍼바이저와 함께 작동하면서 기반 하드웨어로부터 추상화 계층을 제공하며, 호스트 OS는 관리 툴과 스토리지를 지원한다. 오픈HCL 지원 VM 내에는 디바이스 드라이버를 지원하는 작은 리눅스 커널이 있고 그 위에 게스트 OS를 지원하는 오픈VMM 환경이 위치한다. 

오픈VMM은 오픈HCL 사용자 모드 프로세스가 실행되는 곳으로, 디바이스 액세스를 관리하고 기반 호스트 OS와 게스트 사이에서 번역을 처리한다. 오픈VMM은 러스트로 작성되므로 권한 수준이 높은 시스템 애플리케이션과 관련된 위험이 경감된다. 오픈VMM은 메모리 안전 언어를 사용함으로써 메모리 누설 관련 위험을 낮춘다. 이는 신뢰할 수 있는 실행 환경을 호스팅할 때 매우 중요한 부분이다. 

오픈VMM을 사용할 때 얻는 또 다른 유용한 기능도 있다. UEFI 부팅을 지원하므로 루트킷 및 커널 수준 맬웨어로부터 시스템을 보호하는 마이크로소프트의 신뢰 시작 VM(Trusted Launch VM)을 지원할 수 있다. 

 
오픈HCL과 오픈VMM을 사용한 테스트 환경 구축

테스트 환경에서 오픈HCL 실행은 그다지 복잡하지 않다. 리눅스 개발 시스템에서 바이너리를 직접 빌드하거나(WSL2 사용 가능), 독립 게스트 가상 머신(Independent Guest Virtual Machine: IGVM) 형식으로 된 사전 빌드된 바이너리를 다운로드할 수도 있다. 현재 오픈HCL은 지원되지 않으며 개발 및 테스트 환경에서만 사용해야 한다. 

바이너리가 준비되면 하이퍼-V 또는 오픈VMM을 사용해 시험해볼 수 있다. 하이퍼-V로 윈도우에서 실행하는 방식은 마이크로소프트가 애저에서 애저의 자체 윈도우 파생 호스트 OS 위에 오픈HCL을 사용하는 방식과 가장 근접하다. 윈도우의 오픈HCL 지원은 새로운 요소이므로 최신 윈도우 11 버전인 24H2만 사용 가능하다. 

하이퍼-V 지원을 활성화한 다음에는 서명되지 않은 이미지를 지원하기 위해 파워셸이 필요하다. 그다음으로 다운로드한 오픈HCL .bin 파일을 액세스 가능한 디렉터리에 넣어야 한다. 설명서에서는 windows\system32 아래의 디렉터리를 사용할 것을 권장한다. 그다음에는 오픈HCL 경로와 VM에 부여할 이름을 위한 셸 변수를 만들어야 한다. 

이렇게 해서 오픈HCL 환경을 위한 신뢰할 수 있는 실행을 설정하는 간단한 스크립트의 기반이 구성된다. 이는 하이퍼-V 환경 내에 파라바이저에 대한 지원을 추가하는 것이므로 가상 디스크 없이 오픈HCL VM이 생성된다. 이제 직접 빌드했거나 신뢰할 수 있는 소스에서 다운로드한 실행 가능한 이미지가 있는 가상 하드 드라이브를 연결하기만 하면 된다. 

오픈HCL 내에서 VM이 실행되면 오픈VMM 툴을 사용해서 VM에 기능을 추가할 수 있다. 관리 툴의 핵심은 디스크와 포트를 관리하고 가용한 vCPU와 메모리를 튜닝할 수 있게 해주는 CLI다. 그 외에 게스트 OS 작업을 위한 시리얼 콘솔, 그래픽 콘솔에 대한 VNC 액세스 등의 옵션이 있다. 

모든 오픈HCL 기능에 설명서가 있지는 않다. 이번 첫 공개 릴리스는 여전히 매우 초기 단계이며 설명서에는 아직 빈 부분이 많다. 어쨌든 분명한 것은 원대한 목표를 달성하기 위한 작업이 진행 중이며, 여기서 윈도우(클라이언트와 서버 모두), 그리고 애저 IaaS 플랫폼의 미래를 살펴볼 수 있다는 점이다. 


모든 컴퓨팅을 기밀로 

마이크로소프트는 오픈HCL을 공개하는 블로그 글에서 “기밀 VM의 빈틈을 메우기 위한 노력”에 대해 이야기한다. 오픈HCL이 표준 VM과 기밀 VM을 모두 지원한다는 점을 볼 때 애저의 VM에 대한 마이크로소프트의 최종 목표가 호스팅되는 모든 VM을 기밀 VM으로 만들어 컴퓨팅도 데이터만큼 안전하게 보호하고 모든 컴퓨팅이 신뢰할 수 있는 공간에서 이뤄지도록 하는 것임은 분명하다. 

그 미래가 하루아침에 찾아오지는 않는다. 보안 VM이 디바이스와 OS 수준 서비스에 대해 일반 VM과 동일한 수준의 액세스 권한과 성능을 갖도록 하기 위해서는 아직 해야 할 일이 많다. 그 움직임의 시작을 보여주는 것이 바로 새로운 개방형 파라바이저의 출시, 윈도우의 가상화 기반 보안(VBS) 인클레이브, 그리고 암호화 키를 위한 하드웨어 기반의 신뢰할 수 있는 스토리지에 대한 윈도우 11의 요구사항이다. 

클라우드와 온프레미스의 PC에서 모든 작업을 안전한 VM에서 실행한다고 하면 먼 미래의 이야기처럼 들릴 수 있다. 그러나 오픈HCL과 같은 툴은 모든 곳에서 신뢰할 수 있는 실행이 가능한, 더 안전한 세계로 들어가기 위한 열쇠다. 비록 먼 길의 출발점에 있지만 이번 첫 공개 릴리스와 깃허브 리포지토리를 사용하면 다가오는 미래의 모습을 엿볼 수 있다. 
editor@itworld.co.kr

Read Entire Article