가상 머신 안에 클라이언트를 설치하면 터널이 올라오고 게스트의 트래픽이 암호화된다. 그것은 기계 바깥의 네트워크에 대해서는 값어치가 있다. 게스트를 실행하는 운영체제에 대해서는 훨씬 적은 것을 사 준다. 그 운영체제는 게스트의 메모리를 읽고 화면을 볼 수 있기 때문이다. 아래의 점검들은 터널이 보호하는 것과 호스트가 그대로 간직하는 것을 갈라 놓는다.

호스트는 터널보다 먼저 평문을 읽는다

데스크톱 하이퍼바이저는 게스트에게 CPU 시간을 주고, 게스트가 쓰는 메모리를 읽을 수 있다. 브라우저가 방금 복호화한 페이지까지 포함해서다. 호스트의 감시 도구는 암호를 공격하지 않고도 그 평문을 읽고, 같은 층위의 키로거는 어떤 클라이언트가 키 입력을 감싸기 전에 그것을 모은다. 이 중 어느 것도 망가진 VPN을 필요로 하지 않으므로, 깨끗한 터널이 계측된 호스트 옆에 그대로 있을 수 있다.

그 위치가 넘겨주지 않는 것은 반대편 끝의 키, 또는 다른 종단점이 종단 간에 보호하는 내용이다. 터널은 자기가 지나는 네트워크에 대해서는 여전히 버틴다. 틈은 국소적인 것이다.

흔적은 세션보다 오래 산다

VirtualBox 게스트를 일시 정지하면 저장된 메모리 상태를 담은 .sav 파일이 그 옆에 생긴다. VMware는 일시 중단과 스냅숏 작업 중에 .vmem과 .vmsn 파일을 남기고, Hyper-V 검사점은 호스트 볼륨에 .avhdx 차이 디스크를 키운다. 그 파일들 중 어느 것도 게스트의 디스크 암호화로 암호화되지 않는다. 호스트의 페이지 파일은 하이퍼바이저가 밀어낸 페이지를 받을 수도 있는데, Tails가 가상화 안내에서 경고하는 흔적이 바로 그것이다. 하이퍼바이저가 스냅숏을 보관하는지, 호스트 스왑이 암호화된 볼륨에 있는지 확인하라.

그 파일들에 대한 보존 규칙을 정하라. 누군가 지울 때까지 보관하는 기본값을 믿지 말고. 기억을 남기지 않는 세션을 내세우는 게스트도 이것을 바꾸지 못한다. 파일을 쓰는 것은 호스트이므로 호스트의 정책이 지배한다. 스냅숏이 어디에 있고 누가 열 수 있는지 말할 수 없다면, 게스트의 설계는 평가되지 않은 것이다.

디스크 암호화는 더 좁은 경우를 덮는다

게스트 디스크를 암호화하면 저장된 이미지, 다른 기계로 옮긴 볼륨, 또는 빠져나가는 백업을 보호한다. 게스트가 실행되는 동안에는 아무것도 하지 못한다. 게스트가 복호화한 뒤에 하이퍼바이저가 메모리를 읽기 때문이다. 암호구는 저장된 사본을 위한 보호로 다루고, VM을 실행하는 기계에 대한 방패로 다루지 마라.

키와 실제 실행은 별개의 질문이다. 호스팅되거나 공유된 환경에서는 제공자가 이미지 키를 쥐고 있으면서 당신이 한 번도 점검하지 않는 하드웨어에서 게스트를 실행할 수 있으므로, 두 답을 모두 기록하라.

전송은 같은 시야가 아니다

게스트의 터널을 운반하는 사람은 페이로드가 닫혀 있어도 바깥 종단점, 타이밍, 볼륨을 본다. 그런 모양의 메타데이터는 흔히 관찰자가 실제로 가진 질문에 답하므로, 소음이 아니라 노출의 일부로 다루어라. 어댑터 모드와 라우팅이 호스트 수준 VPN 규칙이 게스트 트래픽에 닿는지를 결정한다.

그것을 호스트의 브라우저가 아니라 게스트 안에서 시험하라. 게스트가 곧바로 브리지되어 있는 동안 호스트 브라우저는 덮여 있을 수 있고, 둘은 서로 다른 경로를 쓰면서 같은 연결을 공유할 수 있다. 어댑터 모드를 기록하고, 가정을 믿는 대신 호스트의 물리 인터페이스에서 캡처를 확인하라.

건너오는 길을 줄이고, 그다음 기록을 써라

당신이 통제하는 하드웨어에서 게스트를 실행하고, 하이퍼바이저를 패치된 상태로 두고, 공유 폴더와 클립보드 공유, 끌어다 놓기를 작업에 필요한 곳에서만 켜라. 각각은 호스트와 게스트 사이의 통로이며, 기본 설정은 대개 작업이 요구하는 것보다 더 열려 있다. 쓰지 않는 게스트 확장을 끄고, 설정이 재부팅 후에도 남는지 확인하라. 업그레이드가 꺼 둔 것을 되살릴 수 있기 때문이다.

이 단계들은 건너오는 길을 좁힐 뿐, 게스트를 별도의 물리적 신뢰 경계로 만들지는 않는다. 강화된 VM을 그런 경계로 취급하는 것이 위험 평가가 흔히 틀리는 지점이다.

민감한 작업이라면 트래픽이 어떻게 라우팅되는지, 어떤 로컬 시스템이 작업 부하를 실행하고 보관하는지 기록하라. 호스트를 누가 통제하는지, 어떤 파일이 세션을 넘어 살아남는지 덧붙여라. 터널만 나열하는 개인정보 메모는 배치의 절반만 서술한다.

관련 글