블로그로 돌아가기

WebRTC란 무엇이며 왜 실제 IP 주소가 노출될 수 있을까?

WebRTC는 플러그인 없이 브라우저에서 음성·영상 통화를 가능하게 하지만, 연결을 만들 때 사용하는 STUN 요청이 프록시를 우회해 실제 IP를 노출할 수 있습니다. 이 글에서는 원리, 점검 방법, 방지 방법을 설명합니다.

화상 회의, 온라인 수업, 웹 라이브 스트리밍… 이러한 기능은 모두 WebRTC를 기반으로 합니다. WebRTC는 플러그인을 설치하지 않고도 브라우저 사이에서 음성, 영상, 데이터를 실시간으로 직접 전송할 수 있게 해 줍니다. 하지만 연결을 설정하는 과정에서 WebRTC가 프록시를 우회해 사용자의 실제 IP 주소를 노출할 수 있다는 사실은 잘 알려져 있지 않습니다. 개인정보 보호를 중요하게 생각한다면 반드시 이해해야 할 위험입니다.

WebRTC란?

WebRTC(Web Real-Time Communication)는 브라우저에 내장된 API를 통해 서로 다른 기기 사이에서 직접 음성/영상 통화와 데이터 공유를 할 수 있게 하는 오픈 소스 프로젝트입니다. 별도의 서드파티 플러그인이 필요 없고, 음성·영상·데이터를 실시간으로 전송할 수 있으며, 주요 브라우저에서 크로스 플랫폼으로 지원되고, 통신 내용은 종단 간 암호화로 보호된다는 장점이 있습니다.

왜 WebRTC가 실제 IP를 노출할 수 있을까?

WebRTC가 P2P 연결을 만들려면 먼저 양쪽의 공인 IP 주소를 찾아야 합니다. 이 과정을 ICE(Interactive Connectivity Establishment)라고 하며, STUN/TURN 서버를 이용해 사용자의 공인 네트워크 주소를 탐지합니다. 쉽게 말해 브라우저가 시스템에 “내 실제 공인 IP는 무엇인가?”라고 묻고 시스템이 그 정보를 알려 주는 방식입니다.

문제는 여기서 생깁니다. 웹페이지가 브라우저에서 WebRTC 코드를 실행할 수 있다면 같은 방식으로 사용자의 실제 IP를 알아낼 수 있으며, 프록시를 사용 중이어도 마찬가지입니다. STUN 요청은 브라우저/네트워크의 하위 계층에서 발생해 운영체제의 네트워크 인터페이스에 직접 접근할 수 있으므로 프록시의 전달 경로를 우회할 수 있습니다. 익명으로 접속하고 있다고 생각해도 웹페이지에서는 이미 실제 주소를 확인했을 가능성이 있습니다.

브라우저에서 IP가 새는지 확인하는 방법

브라우저의 로컬 주소, 공인 주소, WebRTC 설정을 확인하는 절차

  • 온라인 검사 도구: BrowserScan 같은 검사 페이지를 사용합니다. 검사 후 공인 IP나 로컬 IP가 표시된다면 WebRTC 누출 위험이 있을 수 있습니다;
  • 브라우저 설정 확인: Firefox에서는 주소창에 about:config를 입력하고 media.peerconnection.enabled를 검색해 WebRTC 활성화 여부를 확인할 수 있습니다(false로 설정하면 비활성화). Chrome과 유사한 브라우저에서는 확장 프로그램이나 브라우저 정책을 통해 WebRTC 동작을 관리하는 편이 더 통제하기 쉽습니다.

WebRTC 누출을 방지하는 방법

브라우저 확장 프로그램: WebRTC Leak Prevent, WebRTC Control 같은 확장 프로그램은 웹사이트가 WebRTC를 통해 실제 주소를 얻는 것을 막는 데 도움이 됩니다.

누출 방지 기능이 있는 프록시/네트워크 서비스 선택: 많은 주요 프록시 서비스는 WebRTC 누출 방지 옵션을 제공하며, 활성화하면 모든 서버에 기본 적용됩니다. 단순히 “WebRTC를 수동으로 꺼라”라고 안내하는 수준이 아니라, 네트워크 계층에서 STUN 요청을 실제로 차단하는지 확인해야 합니다.

WebRTC를 설정할 수 있는 브라우저 환경 사용: 여러 작업 환경을 동시에 운영하면서 IP의 일관성과 깨끗한 네트워크 식별이 필요한 운영팀이라면 각 장치를 수동으로 설정하는 방식은 느리고 누락이 생기기 쉽습니다. PurpleMark에서는 브라우저 환경을 만들 때 WebRTC 동작을 설정하고 지정 프록시를 연결할 수 있어, 각 환경이 업무 지역과 일치하는 네트워크 식별을 표시하고 다른 환경과 분리되도록 할 수 있습니다. 이를 통해 “프록시는 켰지만 실제 IP가 노출되는” 상황을 줄이고, 환경 설정을 재현하고 감사하기도 쉬워집니다. 이러한 설정은 여러 시장을 담당하는 팀 등에서 규정을 준수하며 계정과 개인정보를 관리하기 위한 것이며, 플랫폼 규칙을 우회하기 위한 위장 수단이 아닙니다.

자주 묻는 질문

WebRTC가 계정 보안에 영향을 줄 수 있나요? 가능합니다. 웹페이지가 프록시 IP와 다른 실제 IP를 획득하면 원래 분리되어야 할 접속이 서로 연관될 수 있어 추적이나 오판의 위험이 커질 수 있습니다.

WebRTC 통신 자체는 암호화되나요? 네. WebRTC는 통신 내용을 보호하기 위해 종단 간 암호화를 사용합니다. 누출 위험은 주로 연결이 만들어지기 전에 네트워크 주소를 교환하는 단계에서 발생하며, 통화 내용 자체에서 생기는 것은 아닙니다.

모든 브라우저가 WebRTC를 지원하나요? Chrome, Firefox, Safari, Edge 등 주요 브라우저는 WebRTC를 지원합니다. 노출을 줄이려면 WebRTC를 완전히 사용하지 않는 것보다 주소 탐지 동작을 적절히 관리하는 것이 핵심입니다.