대여한 VPN 서버에서 내 트래픽을 누가 볼 수 있을까?
VPN 서버를 빌리면 신뢰가 호스팅 사업자에게 옮겨갑니다. 클라이언트에서 출구까지 경로를 따라가며 각 관찰자가 무엇을 알 수 있고 무엇은 알 수 없는지 살펴봅니다.
서버를 빌리는 일은 누구를 신뢰하는지를 바꿀 뿐 질문을 없애지 않습니다. 터널은 지나가는 네트워크로부터 트래픽을 감추고, 그다음 평문을 다른 사람의 하이퍼바이저가 돌리는 기계에 넘깁니다. 클라이언트에서 바깥으로 패킷을 따라가면 각 관찰자가 어디에 서 있고 각자가 실제로 무엇을 볼 수 있는지 드러납니다. 그 여정은 익명이라는 주장보다 훨씬 쓸모 있습니다.
클라이언트에서 시작해 패킷을 바깥으로 따라가기
무언가 노트북을 떠나기 전에 클라이언트는 패킷을 감싸 서버의 공개 엔드포인트로 주소를 지정합니다. 여러분의 로컬 네트워크와 ISP는 그 주소와 포트로 향하는 하나의 흐름을 크기와 리듬과 함께 봅니다. 그들이 보지 못하는 것은여러분이 어떤 사이트를 열었는지이며, 그 목적지가 암호화된 페이로드 안에 있기 때문입니다. 메타데이터와 내용 사이의 경계가 이 여정 전체를 한 문장으로 말해 줍니다.
그 첫 도약이 대부분의 마케팅 문구가 더 이상 흥미롭지 않아지는 지점입니다. 같은 Wi-Fi에 있는 이웃도 ISP가 보는 것을 보며, 둘 다 페이지는 보지 못합니다. 그래도 볼륨과 타이밍은 계속 보이고, 페이로드가 그러지 않더라도 그것들은 행동을 설명합니다.
호스팅 네트워크는 터널을 보고 페이지는 보지 않는다
사업자 네트워크 안에서 암호화된 흐름은 스위치에 도착하고, 다음은 가상 인터페이스, 다음은 여러분의 VM에 도착합니다. 그 네트워크를 운영하는 누구든 어떤 키도 갖지 않고 바이트를 세고 흐름 기록을 남길 수 있으며, 그러는 데 키는 필요하지 않습니다. 호스팅 사업자가 차지하는 위치가 정확히 그것입니다.
나가는 길에서 그림이 달라집니다. VM이 목적지로 새 연결을 열기 때문에 호스팅 네트워크는 그 목적지 주소와 그 주변의 TLS 핸드셰이크를 볼 수 있습니다. 페이로드는 애플리케이션 자체의 암호화로 보호된 채 남고, 메타데이터는 그렇지 않습니다.
| Observer | Visible to it | Hidden from it |
|---|---|---|
| Local network | Tunnel endpoint, volume, timing | Destination and payload |
| Your ISP | The same flow metadata | Destination and payload |
| Hosting network | Tunnel flow, exit destination, TLS handshake | HTTPS payload |
| Hypervisor operator | Guest memory and virtual NIC, in principle | Nothing, if it chooses to look |
행을 순서대로 읽으면, 각 행이 위의 행보다 더 많이 보고 그렇게 하기 위해 VPN을 깨야 하는 행은 하나도 없다는 문제의 모양이 드러납니다.
VM 안에서 터널이 끝나고 평문이 시작된다
터널은 여러분의 VM에서 끝나므로 게스트는 무엇이든 다시 암호화하기 전에 내부 패킷을 봅니다. 이것은 결함이 아니라 자체 호스팅 출구가 하는 일입니다. 다만 출구의 보안이 게스트를 누가 관리하는지에 달려 있다는 뜻이고, 그 셈에서 관리자는 여러분 자신입니다.
wg show
ss -tunp | head
nft list ruleset | head -40
그것들을 서버에서 실행하면 게스트에서 root를 가진 운영자가 살필 수 있는 것과 같은 소켓을 살피는 셈입니다. 여러분이 돌리는 서비스가 기록하는 모든 것은 같은 신뢰 경계 안에 있으며, 그래서 게스트 로그 설정과 인프라 기록은 하나의 설정이 아니라 두 개의 별개 질문입니다.
하이퍼바이저는 게스트 아래에 있다
가상 머신은 자신이 도는 커널을 소유하지 않습니다. 하이퍼바이저가 그 메모리와 가상 네트워크 카드를 매핑하므로 그 계층의 운영자는 게스트가 감사할 수 있는 범위 밖에 있습니다. 게스트 격리는 실제이며 임차인 사이에서 그것에 기대는 것은 값어치가 있고, 특권 접근이 불가능하다는 약속은 아닙니다. 그 비대칭은 격리라는 단어 뒤에 숨기지 말고 똑바로 말할 가치가 있습니다.
전용 물리 서버는 사업자가 제공하는 네트워크와 물리적 접근, 관리 인터페이스를 없애지 않은 채 배치를 바꿉니다. 접근 문제를 한 단어가 결정하게 두지 말고 제품이 무엇을 문서화하는지 읽으십시오.
이 여정을 신뢰 결정으로 바꾸기
각 관찰자와 그에게 부여하는 역량을 적고, 그 부여가 보내려는 트래픽에 맞는지 결정하십시오. 목록은 짧습니다: 여러분의 로컬 네트워크, ISP, 호스팅 네트워크, 하이퍼바이저 운영자, 그리고 여러분입니다. 그 밖의 것은 이들 중 하나의 하청업자이며 같은 역량을 물려받습니다. 나중에 목록을 발견하는 것보다 미리 결정하는 편이 쌉니다.
그다음 실제로 확인할 수 있는 부분, 즉 여러분의 서비스가 어떤 로그를 쓰는지, 그것을 얼마나 보관하는지, 그리고 흐름 기록과 보존에 대해 사업자가 무엇을 공개하는지를 검증하십시오. 읽고 시험해 볼 수 있는 정책은 사적이라는 단어의 의미에 대한 추측보다 낫습니다.