В чем разница между утечками DNS и IP и как их остановить?

Некоторые интернет-пользователи предпочитают при работе использовать VPN-сервисы, чтобы скрыть свой настоящий IP-адрес и зашифровать данные. Как правило, на такой шаг их толкает желание сохранить свою онлайн-конфиденциальность, а также ряд других причин. Тем не менее, все это будет зря, если ваши личные данные «утекают» в сеть из-за уязвимостей системы безопасности. Есть два основных вида таких утечек: утечка DNS и утечка WebRTC (IP).

Что такое утечка DNS?

Если вы хоть раз заходили в интернет, то вы сталкивались с системой доменных имен (Domain Name System, DNS), пусть даже сами о том не подозревая. DNS поддерживает базу данных доменных имен (например, vpnmentor.com) и переводит их в соответствующий числовой адрес (Internet Protocol, IP). Именно по этим адресам браузеры и находят сайты в сети. По сути, IP-адреса и доменные имена похожи на телефонную книжку, где у каждого человека есть имя и номер телефона.

Собственно говоря, доменные имена нужны только людям, тогда как компьютеры работают только с числами в формате IP-адресов Человеку может быть сложно запомнить адрес вроде 168.212.226.204, а вот запомнить доменное имя такого сайта может оказаться куда проще. Вот что происходит, когда ваш браузер открывает страницу сайта: ваш компьютер отправляет запрос DNS-серверам вашего интернет-провайдера и получает в ответ IP-адрес нужной веб-страницы. Но когда вы используете VPN-сервис, то запрос уходит на DNS-серверы не провайдера, а самого VPN-сервиса.

Как происходит утечка?

Из-за уязвимости в системе безопасности иногда DNS-запрос может попасть к вашему провайдеру, а не на серверы VPN-сервиса, которые смогут скрыть его от посторонних глаз. Собственно, именно в этом случае и происходит утечка DNS. Виной всему — незашифрованный DNS-запрос, отправленный вашим компьютером не через защищенный VPN-туннель. Данная уязвимость связана с самой операционной системой компьютера. Так, каждый сетевой интерфейс может иметь собственную систему DNS. И порой бывает так, что компьютер отправляет DNS-запросы прямиком провайдеру или даже на сторонние серверы (см. рисунок ниже), игнорируя шлюз по умолчанию и DNS-настройки вашего VPN-сервиса, что и приводит к утечке данных.

Все это позволяет провайдеру узнать, какие сайты посещает пользователь. А если вы используете VPN-сервис и вдруг узнали, что сидите под своим настоящим IP-адресом, то это значит лишь одно: все ваши DNS-запросы тоже попадают не на серверы VPN-сервиса, а прямо к провайдеру. К слову, некоторые провайдеры используют технологию Transparent DNS proxy («Прозрачный DNS-прокси»), которая заставляет устройства пользователя обращаться с DNS-запросами к серверам провайдера даже в том случае, когда вы выставили иные настройки DNS.

Что такое утечка WebRTC (IP)?

В 2015 году специалист по интернет-безопасности Дэниэль Рёслер (Daniel Roesler) сообщил об уязвимости, которая позволяет злоумышленникам перехватывать настоящий IP-адрес пользователя с помощью API (интерфейса программирования приложений), встроенного в большинство современных браузеров —Web Real Time Communication (WebRTC). Перехватить можно было даже данные тех пользователей, которые подключались к VPN-сервису. Отметим, что WebRTC используется в разных сетях для обмена данными между браузерами, обмена файлами по модели P2P, видео-звонков и не только.

Как происходит утечка?

Чтобы заставить WebRTC выдать ваш настоящий IP-адрес, нужно всего лишь несколько строчек кода. Все дело в так называемом STUN-сервере (сервере утилит прохождения сессий для NAT). STUN-сервер позволяет компьютерам и устройствам из вашей внутренней сети находить свои публичные IP-адреса (по сути, их интернет-адреса). VPN-сервисы тоже используют STUN-сервер для перевода вашего внутреннего сетевого адреса в публичный интернет-адрес и наоборот. Для этого STUN-сервер хранит базу данных, в которой собраны записи о ваших локальных и публичных IP-адресах.

Эта утечка вообще никак не связана с VPN-сервисами, от степени из защищенности в данном случае ничего не зависит. Проблема кроется в уязвимости вашего браузера — точнее, в WebRTC. Когда модуль WebRTC браузера принимает запросы от STUN-сервера, он отправляет обратно сообщение, в котором содержатся оба ваших IP-адреса (внутренний и публичный), а также другие данные.

Содержимое сообщения, то есть реальный IP-адрес пользователя, можно узнать, если написать крохотную программу на JavaScript. Для нее нужно лишь одно: чтобы в браузере поддерживался WebRTC (ну и саму программу еще написать надо, конечно). И если WebRTC включен в вашем браузере, то он будет принимать запросы от STUN-сервера и отправлять обратно ответы.

Подведем итог: идеальных систем нет, у всех есть свои ошибки и уязвимости, которые остаются до поры скрытыми. Поэтому важно использовать надежный VPN-сервис, который своевременно устраняет все найденные уязвимости. Обязательно проверьте ваш VPN-сервис на предмет утечек данных и примите против них меры, если окажется, что и вы находитесь в зоне риска.

Помогло? Поделитесь с другими!