В чем разница между утечками DNS и IP и как их остановить? Оценка утилиты DNSCrypt. Как происходит утечка

02.05.2019

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

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

Если вы хоть раз заходили в интернет, то вы сталкивались с системой доменных имен (Domain Name System, DNS), пусть даже сами о том не подозревая. DNS поддерживает базу данных доменных имен (например, vpnmentor.com) и переводит их в соответствующий числовой адрес (Internet Protocol, 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 не всегда в состоянии защитить DNS-запросы вашего устройства, даже если весь остальной трафик надежно защищен туннелем VPN. Это называется «утечкой DNS». Если происходит утечка DNS-запросов, то третьи лица, например ваш интернет-провайдер или оператор DNS-сервера, могут видеть, какие веб-сайты вы посещаете и какими приложениями пользуетесь.

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

Что такое DNS

Как мне проверить, защищает меня VPN-сеть или нет?

Если приложение ExpressVPN настроено правильно, то оно защищает вас от утечки DNS. Тест на утечку DNS на этой странице позволяет убедиться, что ExpressVPN выполняет поставленную задачу.

Как ExpressVPN предотвращает утечку DNS?

Без VPN устройство обычно использует службу DNS, предоставляемую интернет-провайдером. Но когда вы подключаетесь к ExpressVPN, ваше устройство использует только DNS-серверы ExpressVPN. Это дает многочисленные преимущества, потому что:

  • DNS-серверы ExpressVPN работают очень быстро
  • ExpressVPN не хранит журналы онлайн-активности и подключений
  • Весь трафик между вашим устройством и DNS-серверами полностью шифруется

Вот как это работает. Чтобы открыть веб-страницу, вы вводите URL-адрес или щелкаете ссылку в браузере. Этот URL-адрес отправляется через зашифрованный туннель ExpressVPN к собственному DNS-серверу ExpressVPN. DNS-сервер ищет IP-адрес и отправляет его серверу ExpressVPN, который получает доступ к нужной странице. В одно мгновение ExpressVPN возвращает эту страницу вам. Весь трафик остается под надежной защитой VPN-туннеля.

Если я уже использую VPN, зачем мне нужно проверять, имеется ли утечка DNS?

Может произойти одно из двух:


В обоих случаях третьи лица могут видеть список веб-сайтов и приложений, которые вы используете.

Что вызывает утечку DNS-запросов при использовании VPN?

Утечки DNS могут происходить по многим причинам. Вот некоторые из них:

  1. Ваша VPN-сеть настроена вручную. Если вы вручную настраиваете VPN-соединение, риск утечки DNS-запросов увеличивается и зависит от конфигурации вашей операционной системы. Использование приложений ExpressVPN устраняет многие из опасностей.
  2. Ваш роутер контролируется злоумышленником , например, оператором Wi-Fi в кафе. Злоумышленник может сделать так, чтобы ваше устройство отправляло DNS-запросы за пределы туннеля VPN. Приложения ExpressVPN защищают от утечки DNS, но другие приложения и ручные настройки могут быть уязвимыми.
  3. Ручная настройка DNS. Вы (или программное обеспечение на вашем устройстве) дали команду операционной системе не использовать DNS-серверы ExpressVPN. Опытные пользователи могут запросить конкретную службу DNS, но большинству людей по соображениям безопасности лучше этого не делать.

Специализирующиеся на детектировании информации о пользователе сайты могут определять dns-сервер вашего провайдера (в практически любой операционной системе).
Мы видим несколько вариантов решения этой проблемы:

  1. Заменить "чувствительный" dns-сервер несуществующим. Для этого нужно открыть настройки сетевого подключения к Интернет, далее перейти к свойствам "Протокол Интернета (TCP/IP)" и в поле "Предпочитаемый DNS-сервер" указать, например, 127.0.0.1, а поле "Альтернативный DNS-сервер" оставить пустым.
    После окончания работы с VPN нужно будет вернуть настройки dns-серверов на прежние.
  2. Заменить "чувствительный" dns-сервер (настройка как в варианте 1) одним из публичных на постоянной основе.
    В этом случае после окончания работы с VPN менять настройки dns-серверов не нужно.

Нажмите Пуск , выберите Панель управления .

Windows XP – дважды кликните по пункту Сетевые подключения (если его нет, нажмите Переключение к классическому виду слева сверху).
Windows Vista и выше – дважды кликните по Центр управления сетями и общим доступом (если его нет, выберите в меню Просмотр справа сверху опцию Мелкие значки ), потом Изменение параметров адаптера .

Кликните правой кнопкой мыши по иконке вашего основного сетевого подключения и выберите Свойства из появившегося меню.

Если выбрано Получить адрес DNS-сервера автоматически , нажмите на пункт Использовать следующие адреса DNS-серверов . В поля Пердпочитаемый DNS-сервер и Альтернативный DNS-сервер введите необходимые адреса DNS-серверов.

Готово! Нажимайте ОК, пока все меню не закроются. Возможно, вам придется перезапустить браузер и переподключиться к Интернету, чтобы изменения вступили в силу.

Система доменных имен (DNS) отвечает за преобразование доменных имен (например, «сайт») в фактические IP-адреса для подключения. Она переводит длинные, сложные и тяжелые для запоминания числовые имена веб-серверов на человеческий язык и наоборот.

Так, всякий раз, когда ваш компьютер должен подключиться к определенному веб-сайту (например, при вводе «www.google.com» в адресной строке браузера), он сначала обращается к DNS-серверу и запрашивает уникальный IP-адрес этого сайта. Эта процедура – важная часть работы Интернета.

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

Если вы пытаетесь сохранить безопасность и конфиденциальность своих действий в Интернете с помощью сервиса VPN, крайне важно, чтобы весь трафик, исходящий с вашего компьютера, направлялся через сеть VPN. К нему относятся и указанные выше запросы DNS – они должны проходить через VPN-туннель к DNS-серверам вашего провайдера VPN, а не к серверам вашего Интернет-провайдера.

Однако ваша система может по каким-либо причинам возвращаться к DNS-серверам по умолчанию, что приводит к тому, что ваш Интернет-провайдер имеет возможность видеть, какие веб-сайты вы посещаете. Это может произойти, если вы:

  • работаете в Windows или недавно сбросили настройки системы;
  • настроили VPN вручную;
  • используете службу VPN, у которой нет собственных DNS-серверов или серверы которой не предлагают достаточной защиты от утечек.
Как это может повлиять на вас?

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

  • веб-сайты, которые вы посещаете;
  • файлы, которые вы скачиваете;
  • сервисы, которыми вы пользуетесь, и многое другое.

Кроме того, вы даже не узнаете об этом, если не проведете специальный тест на утечку через DNS, подобный указанному выше . Вот почему необходимо выбирать службу VPN, которая обеспечит защиту от утечек через DNS.

При подключении к NordVPN ваше устройство будет использовать только DNS-серверы, которые полностью находятся под управлением NordVPN. Таким образом, вам никогда не придется беспокоиться об утечке конфиденциальной информации и перехвате информации третьими сторонами.

Как провести тест на утечку через DNS

Проверить утечки через DNS можно за несколько простых шагов:

  1. Перейдите к тесту на утечку через DNS ;
  2. Посмотрите, соответствует или отображаемый IP-адрес и местонахождение вашим действительным данным. Если это так, то либо вы не подключены к VPN, либо ваш сервис VPN не работает;
  3. Для проверки утечки через DNS выберите стандартный или расширенный тест. Если вы подключены к VPN-серверу и тест не отображает DNS-серверы вашего фактического Интернет-провайдера, ваш трафик является безопасным.

Что делать, если вы подключены к NordVPN и все равно наблюдаете утечку через DNS во время тестирования? Свяжитесь с нашей службой поддержки с помощью чата, электронной почты или купона поддержки. Мы поможем вам решить любые проблемы в кратчайшие сроки.

Главная проблема большинства программ использующихся совместно с “Tor” (The Onion Router), это утечка DNS-запросов. Т.е., несмотря на то, что используется Tor, программы сначала посылают DNS-запрос “незатореным” чтобы получить IP-адрес конечной цели. И уже только после этого обращаются к конечной цели будучи “заторенными”. Это значит, что задача определения DNS-утечек является критичной с точки зрения анонимности.

Рассмотрим пример. При обращении к доменному имени сайта (google.com) вместо его IP-адреса (173.194.70.101), происходит вычисление IP по этому имени. Делается это службой “Domain Name System” (DNS). При этом происходит утечка: в сеть посылается открытый незашифрованный запрос к серверам DNS, содержащий доменное имя (google.com), что позволяет любопытным (например СОРМ-2) узнать, куда вы ходите. Но даже если вы зашли, набрав в адресной строке IP-адрес (173.194.70.101), то и тут возможна утечка из-за запросов активных элементов загруженных с сайта страницы (например могут выполниться java-скрипты).

Запросы DNS короткие, поэтому посылаются по транспортному протоколу UDP. Если запрос слишком длинный, используется обычный транспорт TCP, при этом используется 53 порт. Значит мы будем слушать именно 53 порт.

Для проверки сети используются специальные программы - перехватчики-анализаторы сетевого трафика (информации, идущей по сети). Их называют еще снифферами (sniffer - вынюхиватель).

Вариант 1: “TCPDump” (Console)

Наиболее известным анализатором является программа “tcpdump” (http://ru.wikipedia.org/wiki/Tcpdump), включенная в большинство дистрибутивов Linux.

Устанавливаем “tcpdump”:

sudo apt-get install tcpdump

sudo tcpdump port 53

При этом желательно закрыть все, кроме исследуемого приложения. Если после этой команды в результате работы исследуемого приложения появились строки в окне tcpdump, то DNS-утечка имеет место быть. Дальше можно анализировать какая.

Если используется несколько сетевых устройств, то возможно дополнительно придется указать требуемый сетевой интерфейс. Их список можно узнать консольной программой ifconfig .

sudo ifconfig

После нахождения имени сетевого интерфейса, надо прибавлять к команде следующее:

I <имя_сетевого_интерфейса или его номер>

sudo tcpdump -i eth0 port 53

Останавливается анализ комбинацией CTRL+C .

Вариант 2: “WireShark” (Console & GUI)

Wireshark (ранее - Ethereal) - программа-анализатор трафика для компьютерных сетей Ethernet и некоторых других. Написан на библиотеках GTK+ и имеет графический интерфейс (GUI). Но помимо GUI, есть консольная реализация программы по имени “TShark”, обладающая тем же функционалом, что и ее графический вариант. Функциональность очень схожа с возможностями программы tcpdump , однако Wireshark имеет графический пользовательский интерфейс и гораздо больше возможностей по сортировке и фильтрации информации. Программа позволяет пользователю просматривать весь проходящий по сети трафик в режиме реального времени, переводя сетевую карту в неразборчивый режим (promiscuous mode). Так как программа очень популярна в качестве административного инструмента для анализа сетей, она имеется в репозиториях практически любого дистрибутива Linux.

  • TShark

Устанавливаем:

sudo apt-get install tshark

Начнём прослушивание для проверки на утечку DNS:

sudo tshark -i eth0 port 53

Вместо eth0 вписываем имя своего интерфейса

  • Wireshark

Устанавливаем:

sudo apt-get install wireshark

Во всех инструкциях в сети обычно предлагается запускать WireShark от root’а, иначе WireShark не увидит сетевые интерфейсы, так как для доступа к ним нужны рутовые права. Но предоставлять права root’а GUI-программам противопоказано! По этому мы не станем использовать sudo , а проделаем манипуляции описанные в официальной инструкции .

Создаём группу wireshark:

sudo groupadd wireshark

Добавляем в группу wireshark пользователя (то есть себя), заменив user на своё имя пользователя:

sudo usermod -G wireshark -a user

Примечание: Впишем в место user своё имя юзера.

sudo chgrp wireshark /usr/bin/dumpcap sudo chmod 754 /usr/bin/dumpcap sudo setcap "CAP_NET_RAW+eip CAP_NET_ADMIN+eip" /usr/bin/dumpcap

Перелогинимся (выйдем и снова войдём в смистему) для того, что бы проделанные манипуляции с правами вступили в силу.

Теперь WireShark может видеть сетевые интерфейсы не только от root но и от юзера состоящего в группе wireshark .

Запускаем wireshark:

Мышью открываем вкладку Capture ⇒ Capture Filters :

Создадим фильтр перехвата DNS.

В блоке “Properties” в строке “Filter name” вписываем:

TCP or UDP port 53 (DNS)

А в строке “Filter string” :

Нажимаем на кнопку “New” .

В конце списка должен появится фильтр который мы создали.

Нажимаем “Ok” .

Нажимаем CTRL+I или мышью открываем вкладку Capture ⇒ Interfaces :

Ставим галочку напротив сетевого интерфейса который мы собираемся слушать и нажимаем “Options” :

Нажимаем на кнопку “Capture Filter” и в открывшемся окне выбираем фильтр “TCP or UDP port 53 (DNS)” , который мы создали.

Нажимаем “Start” .

Наконец мы можем увидеть все пакеты прошедшие через 53 порт.

Похожие статьи