DNS누수와 IP누수는 어떻게 다를까? 그리고 이에 대한 해결책은?

프라이버시에 대한 염려 또는 여러 기타 이유로, 다수의 인터넷 사용자들은 VPN을 이용해 웹 서핑을 할 때 자신들의 IP주소를 감추고 데이터를 암호화한다. 하지만, 만약 사용자의 개인 정보가 보안상 결함 혹은 다양한 이유로 유출된다면 이 모든 행위는 무용지물이 될 것이다. VPN으로 사용자의 개인 정보나 IP주소를 유출되는 데는 두 가지 시나리오가 있다. 바로 DNS 누수와 웹RTC (IP) 누수이다.

DNS 누수란?

인터넷을 사용하다 보면, 우리도 알지 못하는 사이에 ‘도메인 이름 시스템(이하 ‘DNS’)와 맞닥트리는 경우가 있다. DNS는 도메인 이름 정보(예: vpnmentor.com)를 인터넷 프로토콜(이하 ‘IP’)로 바꿔주는 시스템으로 인터넷에서 목적지를 찾아가기 위한 주소와 같은 존재라 볼 수 있다. 인터넷에서의 전화번호부인 셈이다.

도메인 이름은 오롯이 사람을 위한 것으로, 컴퓨터는 168.212.226.204 같은 IP주소 형태의 숫자만 이해할 수 있다. 하지만 이런 숫자의 나열은 사람들이 기억하기 어렵기 때문에. 이를 편리하게 외울 수 있도록 DNS가 탄생한 것이다. 어떤 사이트에서 특정 웹 페이지를 요청할 때면, 사용자의 컴퓨터는 사용자의 인터넷제공자(이하 ‘ISP’)의 DNS 서버에 해당 웹 사이트의 IP주소를 요청한다. 이때 VPN과 같은 프라이버시 서비스를 이용한다면, 사용자의 컴퓨터는 ISP의 DNS 대신, VPN 서버에 요청을 보낸다.

DNS 누수는 왜 발생하는 것일까?

DNS 요청을 감추기 위해 VPN 서비스를 이용했음에도 불구하고, 때론 사용자의 ISP의 DNS 서버로 사용자의 DNS 요청이 전달되는 보안적 결함이 발생할 때가 있다. 이 현상을 바로 DNS 누수라 부른다. 이는 VPN의 보안 터널 외부에서 사용자의 컴퓨터에 의해 전송된 암호화되지 않은 DNS 요청으로 인해 발생한다. 이 문제는 운영 체제 고유의 범용 DNS가 없다는 점에서 시작된다. 각 네트워크 인터페이스는 고유의 DNS를 가질 수 있다. 다양한 상황에 따라, 어떤 시스템은 사용자가 VPN 서비스를 통해 기본 통로와 DNS 설정을 했음에도 이를 따르지 않고 DNS 요청을 곧바로 사용자의 ISP나 제3 서버에 보내기도 한다. (아래 그림 참고) 여기서 DNS 누수가 발생하는 것이다.

이 결함은 ISP나 도청자가 사용자가 어떤 웹 사이트를 방문했는지를 추적할 수 있도록 한다. VPN 이용 중에 사용자의 실제 IP주소가 유출되고 있었다면, 이는 사용자의 DNS 요청이 VPN 서버가 아닌 ISP로 전달되고 있었음을 의미한다. 어떤 ISP는 ‘투명 DNS 프록시’라는 기술을 이용하기도 하는데, 사용자의 컴퓨터가 ISP의 DNS 서비스를 통해 모든 DNS를 조회하도록 유도하는 기술로 사용자가 DNS 설정을 ISP로 설정하지 않았을 때도 작동한다.

웹RTC (IP) 누수란?

2015년, 보안 연구원 다니엘 로에스러(Daniel Roesler)는 웹 실시간 통신(이하 ‘웹RTC’)이라는 대부분의 웹 브라우저에 탑재된 API를 이용해 사용자의 실제 IP주소를 알아낼 수 있는 보안적 결함이 존재함을 증명했다. 심지어 VPN 서비스를 이용 중이더라도 말이다. 웹RTC는 브라우저 간 통신, P2P 파일 공유, 음성´영상 전화 등의 작업을 수행하기 위해 서로 다른 네트워크에 위치한 컴퓨터들이 주로 사용하는 기술이다.

웹RTC (IP) 누수는 왜 발생하는 것일까?

웹RTC를 통해 사용자의 실제 IP주소는 간단한 몇 줄의 코드를 이용해 인터넷 기반 서버인 STUN(‘NAT를 위한 세션 순회 유틸리티’의 약자)과 통신으로 알아낼 수 있다. STUN 서버는 사용자의 인터넷 네트워크 내 컴퓨터와 기기들이 공인 IP(인터넷)를 발견할 수 있도록 돕는 역할을 한다. VPN 역시 STUN 서버를 이용해 사용자의 내부 네트워크 주소를 공인 인터넷 주소로 혹은 반대로 변환한다. 이 작업을 성공적으로 수행하기 위해 STUN 서버는 연결하는 동안 사용자의 VPN 기반 인터넷(IP) 주소와 로컬 내부 IP 주소의 데이터베이스를 저장한다.

웹RTC 누수는 사용자가 선택한 VPN이 얼마나 뛰어난 보안성을 자랑하냐 보다는 사용자의 브라우저 내 웹RTC의 취약성 그 자체와 관련이 있다. 웹RTC가 STUN 서버로부터 요청을 받을 시, 다시 STUN 서버로 사용자의 개인 IP(내부 네트워크)와 공인 IP(인터넷) 주소와 기타 데이터를 전송한다.

이 요청 과정의 처리 결과, 사용자의 실제 IP 주소에 자바스크립트라는 프로그램을 통해 접근할 수 있다. 이 작업에 필요한 것은 브라우저 내 웹RTC의 지원과 자바스크립트 프로그램이다. 만약 사용자의 브라우저 내에서 웹RTC가 활성화된다면, STUN 서버로부터 요청을 받을 수도, 보낼 수도 있다.

명심할 것은 특정 결함이 발견된 그 순간부터, 그 어떤 시스템도 완벽할 수 없다는 것이다. 그러므로 이런 결함이 발생할 때마다 적극적으로 대처할 수 있는 우수한 VPN 업체를 선별하는 것이 무엇보다 중요하다. 앞서 소개된 두 가지 누수에 잘 대응할 수 있는지 선택한 VPN을 테스트해보고, 만약 문제를 발견했다면 절차에 따라 이를 해결하도록 해야 한다.

도움이 되었나요? 공유하세요!
페이스북에 공유하기
트윗하기
Google이 귀하에 대해 잘 모른다고 생각하시면 공유하세요