구글 크롬 VPN IP 유출 방지 WebRTC 차단 확장 프로그램 WebRTC Network Limiter 사용법
비싼 VPN을 결제하고도 당신의 진짜 IP가 털리는 이유
구글 WebRTC Network Limiter
매달 적지 않은 돈을 지불하며 노드VPN(NordVPN)이나 익스프레스VPN(ExpressVPN) 같은 프리미엄 우회 서비스를 사용하는 사람들이 늘고 있다. 이들은 VPN 앱의 전원 버튼을 켜고, 내 위치가 스위스나 일본으로 변경되었다는 메시지를 보며 완벽한 익명성을 얻었다고 안심한다.
하지만 정말 그럴까? 브라우저 주소창에 특정 테스트 사이트를 입력해 보면, VPN이 만들어준 가짜 IP 주소 바로 밑에 당신이 현재 접속 중인 한국 통신사의 진짜 IP 주소와 공유기에 물려있는 사설 IP가 선명한 붉은 글씨로 노출되는 것을 발견할 수 있다.
이 황당하고 소름 돋는 현상의 범인은 해커의 악성코드도, VPN 회사의 기술력 부족도 아니다. 당신이 매일 숨 쉬듯 사용하는 웹 브라우저, 크롬(Chrome)에 내장된 'WebRTC'라는 기능 때문이다. 그리고 이 치명적인 보안 구멍을 막기 위해 크롬 개발팀이 조용히 배포한 공식 해결책이 바로 'WebRTC Network Limiter'라는 확장프로그램이다.
이 글에서는 브라우저가 도대체 어떤 원리로 당신의 VPN을 배신하는지, 그리고 이 구글 공식 확장프로그램이 어떻게 네트워크의 흐름을 통제하여 진짜 익명성을 완성하는지 기술적인 밑바닥부터 파헤쳐 본다.
WebRTC, 혁신이 불러온 프라이버시의 재앙
WebRTC(Web Real-Time Communication)는 원래 웹 생태계를 구원하기 위해 등장한 영웅 같은 기술이었다. 과거 웹 브라우저에서 화상 채팅을 하거나 P2P 파일 공유를 하려면 무겁고 보안에 취약한 플래시(Flash)나 액티브X(ActiveX) 같은 플러그인을 강제로 설치해야 했다. WebRTC는 이런 쓰레기 같은 플러그인들을 모조리 웹에서 몰아내고, 브라우저 자체만으로 실시간 음성 및 영상 데이터를 주고받을 수 있게 만든 혁명적인 웹 표준이다. 오늘날 구글 미트(Google Meet), 디스코드(Discord) 웹 버전, 줌(Zoom) 등 우리가 아는 거의 모든 브라우저 기반 실시간 통신이 이 기술을 기반으로 돌아간다.
문제는 WebRTC가 작동하는 방식 그 자체에 있다. 서버를 거치지 않고 사용자(Peer)와 사용자 간에 직접 데이터를 주고받는 P2P 연결을 맺으려면, 두 컴퓨터는 서로의 정확한 '주소'를 알아야 한다. 이를 위해 WebRTC는 연결 과정에서 ICE(Interactive Connectivity Establishment)라는 프레임워크를 작동시킨다.
ICE는 가장 빠르고 안정적인 통신 경로를 찾기 위해 브라우저가 실행 중인 PC의 네트워크 환경을 샅샅이 뒤지기 시작한다. STUN 서버라는 외부 서버에 핑을 때려서 통신사가 부여한 '진짜 공인 IP'를 알아내고, 운영체제(OS)의 네트워크 인터페이스를 스캔하여 192.168.x.x 같은 '내부 사설 IP'까지 싹 다 긁어모은다.
여기서 VPN 사용자의 비극이 시작된다. VPN은 운영체제 단에 가상의 네트워크 어댑터(TUN/TAP)를 만들어 트래픽을 암호화된 터널로 밀어 넣는다. 하지만 브라우저의 WebRTC는 연결 최적화라는 명목 아래 이 VPN 터널 밖으로 고개를 내밀어 실제 물리적인 랜카드나 와이파이 어댑터의 IP 정보까지 수집해 버린다. 그리고 이 모든 IP 정보(후보군)를 자바스크립트를 통해 상대방 피어나 웹사이트 서버에 던져버린다.
결과적으로 사용자는 VPN을 통해 웹사이트에 접속했다고 믿지만, 웹사이트 운영자는 자바스크립트 코드 몇 줄만으로 사용자의 진짜 집 주소를 알아낼 수 있는 것이다. 이것이 전 세계 보안 포럼에서 끝없이 경고하는 'WebRTC IP 누수(IP Leak)' 현상의 실체다.
구글은 왜 브라우저에서 WebRTC 끄기 버튼을 없앴을까?
이런 심각한 문제가 있다면 브라우저 설정에서 WebRTC 기능을 아예 꺼버리면 되지 않느냐고 반문할 수 있다. 실제로 보안에 민감한 파이어폭스(Firefox) 브라우저는 고급 설정(about:config)에 들어가 media.peerconnection.enabled 값을 false로 바꾸면 WebRTC가 완전히 비활성화된다.
하지만 세계 점유율 1위인 구글 크롬에는 이런 스위치가 존재하지 않는다. 기능 자체를 죽일 수 있는 권한을 사용자에게 주지 않는 것이다. 여기에는 철저히 구글의 생태계 논리가 깔려 있다. 구글은 자사의 핵심 서비스인 구글 미트를 비롯해 수많은 웹 생태계가 WebRTC에 의존하고 있다는 것을 안다. 만약 일반 사용자들이 프라이버시를 이유로 WebRTC를 꺼버리기 시작하면, 당장 수많은 웹 서비스에서 통화 연결이 실패하고 에러가 속출할 것이다. 이는 구글이 가장 두려워하는 '사용자 경험(UX) 훼손'으로 직결된다.
그래서 구글의 크롬 개발팀은 기능을 통째로 날려버리는 대신, 우회적이고 우아한 타협안을 제시했다. WebRTC 기능 자체는 정상적으로 살려두되, 브라우저가 IP를 수집하고 통신하는 '네트워크 경로'를 사용자가 직접 좁혀서 통제할 수 있도록 API를 열어둔 것이다. 그리고 이를 쉽게 제어할 수 있도록 직접 개발하여 웹 스토어에 올린 것이 바로 'WebRTC Network Limiter'다.
서드파티 개발자가 만든 유사 확장프로그램들이 많지만, 브라우저의 핵심 네트워크 스택을 건드리는 민감한 작업인 만큼 브라우저 제조사인 구글이 직접 만든 도구를 사용하는 것이 보안상 가장 안전하고 훌륭한 선택이다.
4가지 라우팅 옵션 완벽 해부
확장프로그램을 설치한 후 설정(Options) 화면을 열어보면 총 4개의 선택지가 나온다. 영문으로 된 이 옵션들은 단순히 켜고 끄는 수준이 아니라, 네트워크 패킷의 흐름을 근본적으로 바꿔버린다. VPN 사용자라면 이 옵션들의 차이를 명확히 이해해야 한다.
1. Use the default WebRTC behavior (기본 동작 유지)
아무것도 제한하지 않은, 야생 상태 그대로의 크롬 기본 설정이다. WebRTC는 유선 이더넷, 무선 Wi-Fi, VPN 가상 어댑터 등 PC에 연결된 모든 네트워크 인터페이스를 찔러보고 가능한 모든 IP 주소를 수집한다. VPN을 켜더라도 이 경로를 통해 진짜 IP가 100% 유출된다. 프라이버시를 신경 쓴다면 절대 선택해서는 안 될 옵션이다.
보안 수준: 매우 낮음 (위험).
적용 대상: 프라이버시에 전혀 신경 쓰지 않으며, 오직 화상 회의의 연결 안정성과 속도만이 가장 중요한 환경에 있을 때 사용한다. VPN을 사용 중이라면 절대 선택해서는 안 되는 옵션이다.
2. Use only my default public IP address (기본 공인 IP만 사용)
브라우저가 192.168.0.2와 같은 내부 공유기 망의 '사설 IP'를 수집하는 것을 차단한다. 사내망 구조나 가정 내 기기 IP가 외부에 노출되는 것은 막아준다. 하지만 통신사가 할당한 진짜 공인 IP(인터넷에 접속하는 실제 신원)는 여전히 수집되어 외부로 전송된다. 즉, 당신이 누구인지, 어느 통신사를 쓰는지, 대략적인 물리적 위치가 어디인지는 그대로 노출된다. 반쪽짜리 방어막이다.
보안 수준: 낮음.
적용 대상: 내부망(사내 네트워크 등)의 구조가 외부로 노출되는 것을 꺼리는 경우에 유용하다. 하지만 사용자의 진짜 공인 IP는 여전히 노출되므로, 익명성 보장 측면에서는 전혀 도움이 되지 않는다.
3. Use only my default public IP address and default private IP address (기본 공인 및 사설 IP만 사용)
PC에 여러 개의 네트워크 어댑터가 물려있더라도, 운영체제의 주 라우팅 테이블이 가리키는 '메인 경로'의 공인 IP와 사설 IP만 수집하도록 제한한다. 쓸데없이 다른 네트워크 대역폭을 스캔하는 자원 낭비를 줄이기 위해 개발자들이 간혹 쓰는 옵션이지만, 이 역시 VPN 환경에서의 IP 유출을 완벽하게 막아주지는 못한다.
보안 수준: 보통.
적용 대상: 멀티 네트워크 환경에서 불필요한 네트워크 스캔(예: 로컬 네트워크의 다른 기기 탐색 등)을 줄여 자원 낭비를 막고 싶을 때 사용한다. 이 역시 VPN 사용자의 IP 유출을 완벽히 막아주지는 못한다.
4. Disable non-proxied UDP (프록시되지 않은 UDP 비활성화) ⭐️
이 확장프로그램이 존재하는 유일한 이유이자, VPN 사용자가 반드시 체크해야 할 궁극의 보안 설정이다.
WebRTC는 실시간 통신의 지연을 줄이기 위해 속도가 빠른 UDP(User Datagram Protocol)를 최우선으로 사용한다. 이 4번째 옵션은 브라우저에게 매우 강력한 명령을 내린다. "브라우저에 설정된 프록시나 VPN 터널을 통과하지 않는 모든 UDP 연결을 강제로 끊어버려라."
이 설정이 적용되면 WebRTC는 더 이상 시스템의 실제 네트워크 어댑터로 우회하여 IP를 수집할 수 없게 된다. 무조건 VPN이 만들어둔 암호화 터널 안으로만 트래픽을 보내야 하며, 만약 VPN 설정상의 문제로 그게 불가능하다면 느리더라도 안전한 TCP 프로토콜로 전환하거나 아예 연결 자체를 포기해 버린다. 어느 쪽이든 당신의 '진짜 IP'가 VPN 터널 밖으로 새어 나가는 재앙은 원천적으로 차단된다. 완벽한 빗장이 걸리는 것이다.
기술적 의미: 브라우저는 STUN 서버와 통신할 때 무조건 시스템에 설정된 보안 터널(VPN 등)만을 통해 트래픽을 내보내게 된다. 만약 VPN이 UDP 프록시를 지원하지 않는다면, WebRTC는 울며 겨자 먹기로 느리지만 추적이 불가능한 TCP 프로토콜로 폴백(Fallback)하거나 아예 통신을 포기한다. 어느 쪽이든 사용자의 '진짜 IP'가 VPN 터널 밖으로 새어 나가는 현상은 원천 차단된다.
보안 수준: 최상. VPN 결합 시 완벽한 IP 은닉 가능.
내 IP가 줄줄 새고 있는지 눈으로 확인하는 방법
이론만으로는 와닿지 않는다면 지금 당장 테스트를 해보는 것이 좋다. 보안 세팅은 언제나 눈으로 직접 검증해야 한다.
먼저 확장프로그램을 설치하지 않은 상태에서 (또는 1번 옵션을 둔 상태에서) 본인이 사용하는 VPN을 켜고 해외 서버로 접속한다.
IP 유출 테스트 전문 사이트인 ipleak.net 또는 browserleaks.com/webrtc 에 접속한다.
사이트 화면에서 'WebRTC Detection' 항목을 유심히 살펴본다.
소름 돋게도, VPN이 제공하는 해외 IP 외에 당신이 현재 앉아있는 곳의 한국 통신사 IP가 붉은색 경고와 함께 떠 있는 것을 볼 수 있을 것이다.
이제 크롬 상단 퍼즐 아이콘을 눌러 WebRTC Network Limiter의 4번째 옵션(Disable non-proxied UDP)을 클릭해 적용한다. (별도의 저장 버튼 없이 즉시 적용된다.)
테스트 사이트를 새로고침(F5) 한다.
조금 전까지 보이던 한국 통신사 IP가 감쪽같이 사라지고, No Leak(유출 없음)이 뜨거나 VPN의 IP만 남게 된다. 비로소 당신의 VPN 결제 금액이 제값을 하게 된 순간이다.
완벽한 보안의 이면: 치러야 할 대가와 해결책
통신 경로를 강제로 비틀고 제한하는 만큼, 당연히 부작용도 뒤따른다. 4번 옵션을 켜둔 상태에서는 P2P 직결 통신이 VPN 서버를 억지로 경유하거나 TCP로 강제 전환되기 때문에, 실시간 통신의 품질이 떨어질 수 있다.
가장 흔하게 겪는 문제는 디스코드 웹 버전이나 구글 미트에서의 연결 지연이다. 음성이 끊기거나, 화면 공유 화질이 저하되거나, 심할 경우 "RTC 연결 중..." 상태에서 무한 로딩에 빠지며 ICE failed 에러를 뿜어내기도 한다. 화상 회의 시스템 자체가 VPN의 UDP 라우팅을 제대로 소화하지 못할 때 발생하는 딜레마다.
해결책은 간단하다. 평소 혼자서 웹서핑을 하거나 보안이 중요한 작업을 할 때는 4번 옵션을 철저히 유지한다. 그러다 업무상 중요한 구글 미트 화상 회의에 참석해야 하거나 지인들과 디스코드를 해야 할 때만 일시적으로 확장프로그램 옵션을 1번이나 3번으로 낮춰주면 그만이다. 클릭 세 번이면 충분한 이 약간의 번거로움이 당신의 프라이버시를 지키는 대가라면 아주 저렴한 셈이다.
참고로, 유명한 광고 차단기인 'uBlock Origin'의 설정 창에도 "WebRTC가 로컬 IP 주소를 누설하지 못하게 방지"라는 체크박스가 있다. 기능적으로는 유사한 역할을 하지만, uBlock Origin은 콘텐츠 필터링이 주 목적인 확장프로그램이다. 브라우저의 저수준 네트워크 스택을 제어하는 부분에 있어서는 크롬 엔진(Chromium)을 가장 잘 아는 구글이 직접 만든 WebRTC Network Limiter를 독립적으로 사용하는 것이 충돌을 막고 신뢰성을 높이는 방법이다.
다만, 가장 아쉬운 점은 모바일 환경이다. 안드로이드와 iOS의 크롬 브라우저는 확장프로그램 설치 자체를 지원하지 않기 때문에 이 도구를 쓸 수 없다. 스마트폰에서 VPN을 켤 때 WebRTC 유출을 막고 싶다면 뼈아프지만 크롬을 포기하고, 보안 특화 브라우저인 브레이브(Brave)나 모바일 파이어폭스를 사용해야만 한다.
결론. 프라이버시 되찾기
현대의 사이버 보안은 누가 해킹을 막아주느냐의 문제를 넘어, '내 정보가 어디로, 어떻게 흘러가는가를 내가 직접 통제할 수 있는가'의 문제로 진화했다.
아무리 좋은 자물쇠(VPN)를 대문에 달아놓아도, 뒷문(브라우저)이 활짝 열려 있다면 도둑을 막을 수 없다. 구글의 WebRTC Network Limiter는 단 몇십 킬로바이트에 불과한 깃털처럼 가벼운 확장프로그램이지만, 그 활짝 열린 뒷문을 콘크리트로 막아버리는 가장 확실하고 강력한 도구다.
인터넷 검열을 우회해야 하거나, 카페의 공용 와이파이에서 안전하게 작업하고 싶거나, 그저 나의 물리적 위치를 거대 IT 기업이나 익명의 누군가에게 수집당하는 것이 불쾌한 사람이라면 망설일 필요가 없다. 지금 당장 웹 스토어에 들어가 이 방패를 브라우저에 장착해야 한다. 익명성은 돈을 내고 VPN을 산다고 완성되는 것이 아니라, 스스로 보안의 구멍을 꿰맬 때 비로소 완성되기 때문이다.