В статье VPN безопасность мы уже рассказывали про утечку VPN-трафика. В другой похожей статье мы говорили об утечке WebRTC в браузерах, а в этой статье речь пойдет об утечке DNS-трафика. Которая затрагивает всех, и даже тех кто использует VPN-сервисы и считает, что находится за каменной стеной.
Здравствуйте друзья! Сегодня я расскажу что такое утечка DNS, почему вы должны об этом знать и как от этого защититься используя бесплатную утилиту DNSCrypt.
Что значит утечка DNS
При использовании HTTPS или SSL ваш HTTP трафик зашифрован, то есть защищен (не идеально, но защищен). Когда вы используете VPN, весь ваш трафик полностью шифруется (разумеется уровень и качество защиты зависит от правильной настройки VPN, но обычно все настроено и работает правильно).
Но бывают ситуации в которых даже при использовании VPN, ваши DNS-запросы передаются в открытом незашифрованном виде. Это открывает злоумышленнику большие возможности для творчества. Хакер может перенаправить трафик, применить MITM-атаку (человек посередине) и сделать еще кучу других вещей, которые могут поставить под угрозу вашу безопасность и анонимность в сети.
Давайте попробуем разобраться в этом вопросе поглубже. Если вас не интересует теория, но волнует безопасность, можете сразу переходить к следующей главе. Если хотите знать побольше, усаживайтесь поудобнее, сейчас я вам вынесу мозг.
В нашем примере на рисунке ниже вы видите как пользователь (компьютер) пытается обратиться к сайту www.spy-soft.net (это может быть и любой другой сайт). Для того чтобы попасть на сайт он должен сначала разрешить символьное имя узла в IP-адрес.
Если же конфигурация сети такова, что используется DNS-сервер провайдера (незашифрованное соединение, отмечено красной линией), то разрешение символьного имени в IP-адрес происходит по незашифрованному соединению.
Что в этом страшного?
Во-первых, в такой ситуации провайдер может просмотреть историю DNS и узнать какие сайты вы посещали. Он конечно не узнает какие именно данные передавались, но адреса сайтов он сможет просмотреть запросто.
Во-вторых, есть большая вероятность оказаться жертвой хакерской атаки. Такой как: DNS cache snooping и DNS spoofing.
Что такое DNS снупинг и спуфинг?
Вкратце для тех кто не в курсе.
DNS снупинг — с помощью этой атаки злоумышленник может удаленно узнавать какие домены были недавно отрезолвлены на DNS-сервере, то есть на какие домены недавно заходила жертва.
DNS спуфинг — атака, базируется на заражении кэша DNS-сервера жертвы ложной записью о соответствии DNS-имени хоста, которому жертва доверяет.
Так как запросы не шифруются, кто-то между вами и провайдером может перехватить и прочитать DNS-запрос, после чего отправить вам поддельный ответ. В результате, вместо того чтобы посетить наш любимый spy-soft.net, gmail.com или vk.com, вы перейдете на поддельный или как еще говорят фейковый сайт хакера (поддельным будет не только вид страницы, но и урл в адресной строке), после чего вы введете свой логин и пароль, ну а потом сами понимаете что будет. Данные авторизации будут в руках злоумышленника.
Описанная ситуация называется утечка DNS (DNS leaking). Она происходит, когда ваша система для разрешения доменных имен даже после соединения с VPN-сервером или сетью Tor продолжает запрашивать DNS сервера вашего провайдера. Каждый раз когда вы попытаетесь зайти на сайт, соединится с новым сервером или запустить какое-нибудь сетевое приложение, ваша система будет обращаться к DNS серверам провайдера, чтобы разрешить имя в IP-адрес. В итоге какой-нибудь хакер или ваш провайдер смогут узнать все имена узлов, к которым вы обращаетесь.
Если вам есть что скрывать, тогда я вам предлагают использовать простое решение — DNSCrypt. Можно конечно прописать какие-нибудь другие DNS-сервера и пускать трафик через них. Например сервера Гугла 8.8.8.8 или того же OpenDNS 208.67.222.222, 208.67.220.220. В таком случае вы конечно скроете от провайдера историю посещения сайтов, но расскажите о своих сетевых путешествиях Гуглу. Кроме этого никакого шифрования DNS трафика не будет, а это большой недостаток. Не знаю как вас, но меня это не возбуждает, я лучше установлю DNSCrypt.
Как проверить утечку DNS
Перед тем как мы перейдем к самой утилите, я бы хотел познакомить вас со специальными онлайн-сервисами. Они позволяют проверить утечку DNS.
Один из таких — сайт DNS Leak Test. Для проверки перейдите по ссылке и нажмите кнопку «Extended test».
Через несколько секунд сервис отобразит список DNS-серверов, через которые проходят ваши запросы. Таким образом вы сможете узнать, кто именно может видеть вашу историю посещения сайтов.
Еще неплохой сервис — DNS Leak. Сайт предоставляет полную информацию о DNS серверах от вас до сервера.
Как устранить утечку DNS утилитой DNSCrypt
DNSCrypt — бесплатная утилита с открытым исходным кодом. Программа позволяет шифровать запросы DNS и использовать DNS сервера по вашему усмотрению. После установки на компьютер ваши соединения будут защищены, и вы сможете безопаснее серфить по просторам сети. Утилита в связке с Tor или VPN дает неплохую защиту.
Скачивание DNSCrypt
Скачать консольную версию утилиты DNSCrypt вы можете по этой прямой ссылке с Гитаба. Для того чтобы все выглядело гламурно: виндовские окошки, кнопочки и все такое, нужно скачать еще и GUI отсюда. Для вашего удобства я все засунул в один архив и залил на файлообменик. Вот ссылочка.
Для работы программы требуется Microsoft .NET Framework 2.0 и выше.
Скачать DNSCrypt для Mac OS X вы можете по этой ссылке с Гитаб или с файлообменка по ссылке выше.
Разработчик программы OpenDNS.
Установка DNSCrypt
В этой статье мы разберем работу с консольной версией утилиты. Настраивать ДНСКрипт будем на Windows 10. Установка на других версиях винды не отличается.
Итак, скачанный архив распаковываем и помещаем содержимое папки dnscrypt-proxy-win32 в любое место на компьютере. В моем примере я расположил в папке “C:\Program Files\DNSCrypt\”.
После чего откройте от имени администратора командною строку.
Теперь в командной строке перейдите в папку DNSCrypt. Сделать это можно с помощью команды:
1 |
cd "C:\Program Files\DNSCrypt" |
Кликаем сюда, если не можете скопировать команды.
После этого подготовимся к установке службы прокси. Для начала необходимо выбрать провайдера DNS. В архив я положил файл dnscrypt-resolvers.csv. Этот файлик содержит список большинства DNS провайдеров, которые поддерживает DNSCrypt. Для каждого отдельного провайдера есть название, описание, расположение и поддержка DNSSEC и Namecoin. Кроме этого файл содержит необходимые IP-адреса и открытые ключи.
Выберите любого провайдера и скопируйте значение в первом столбце. В моем случае я буду использовать CloudNS, поэтому я скопировал “cloudns-can”. Теперь необходимо убедится, что прокси может подключиться. Сделать это можно с помощью этой команды:
1 |
dnscrypt-proxy.exe -R "cloudns-can" --test=0 |
Если все правильно работает, вы увидите следующие выходные данные:
Если у вас не получилось, попробуйте выбрать другого провайдера и повторить попытку еще раз.
Если все прошло успешно, продолжим установку и введем следующую команду:
1 |
dnscrypt-proxy.exe -R cloudns-can --install |
Если все правильно работает, вы увидите следующие выходные данные:
Скрин того как это должно выглядеть в командой строке:
После чего необходимо зайти в параметры протокола TCP/IP Windows и изменить настройки DNS на 127.0.0.1.
Для удаления службы ДНСКрипт необходимо вернуть сетевые настройки DNS в начальное состояние. Делается это с помощью этой команды:
1 |
dnscrypt-proxy --uninstall |
Данная команда также может использоваться для смены провайдера DNS. После применения нужно повторить установку с параметрами другого провайдера.
Если у вас после всей этой процедуры по какой-то причине во время проверки все еще определяться IP-адрес DNS вашего интернет-провайдера, кликните по кнопке «Дополнительно», которая находится под прописанным IP 127.0.0.1. В появившемся окне «Дополнительные параметры…», перейдите на вкладку «DNS» и удалите все адреса DNS-серверов кроме «127.0.0.1».
Все, теперь утечка DNS устранена.
Вас также может заинтересовать статья «Как удалить кэш DNS», в которой рассказывалось об удалении записей DNS на компьютере.
DNSCrypt в Яндекс Браузере
С недавнего времени в браузере от Яндекс появилась поддержка ДНСКрипт. Ну что сказать, ребята из Яндекса работают и пытаются защитить пользователя — это здорово, но в отличие от утилиты DNSCrypt защита у Яндекса реализуется только на уровне браузера, а не уровне всей системы.
DNSCrypt в роутере
Также поддержка ДНСКрипт реализована в популярных прошивках OpenWrt. Подробнее об установке и другой дополнительной информации вы можете узнать на этой странице.
Заключение
Конечно же утилита ДНСКрипт и шифрование DNS в целом не является панацеей, да и вообще в информационной безопасности нет такого понятия как панацея. Мы только можем максимально улучшить нашу безопасность и анонимность, но сделать наше присутствие в сети неуязвимым на все 100% к сожалению не получится. Технологии не стоят на месте и всегда найдутся лазейки. Поэтому я предлагаю вам подписаться на наши новости в социальных сетях, чтобы всегда быть в курсе. Это бесплатно.
На этом все друзья. Надеюсь эта статья помогла вам решить проблему утечки DNS. Удачи вам в новом 2017 году, будьте счастливы!
не получается ввести ip 127.0.0.1 на windows 7.пишит ip адрес не является допустимым и зарезервирован для петлевых адресов.
Спасибище! Делал по инструкции, все отлично работает.
Спасибо за подробную интересную статью, но, лучше б вы о работе с GUI написали. А то в архиве с обменника несколько папок, а куда их и что — непонятно. Как этот гуи запускается-то?
после перезагруски компьютера остаются ли эти параметры? или всё заново настраивать?
«…скопируйте значение в первом столбце.»
Куда копировать, и где этот «столбец»..?)))
Нашел значение, любая строка — до первой запятой.
Столбец…))) Заработало, спс.
Да помнится я где то писал статью как установить Linux на флешку и подключить к роутеру через USB Думаю не составить проблем таким методом и крипт настроить на любом роутере с usb входом ! А не только на OpenWrt
Спасибо бро за статью!!!, и Огромнейшее спасибо за то, что упаковал все и выложил в файле!. Ну нигде не мог найти где это скачать, а сайт разработчика уже не работает. Удобней на винде пользоваться клиентом. Он на автомате все прописывает, только мышкой щелкай на страну)) Скачал отдельно)
Там Германия невалид, ее как-то реально добавить?)
Simple DNSCrypt поудобнее будет
«Simple DNSCrypt поудобнее будет».
Можете все подробнее описать?
Если выход в сеть выполняется с помощью модема телефона, через сотового оператора, будет ли работать данное средство?
Честное, благородное слово, спасибо!
Три магнитофона….
Нихрена не работает, как только проставляешь 127,0,0,1 в настройках сетевого подключения интернет пропадает.
Здравствуйте на Linux можно так же установить? И не подскажите как с Linexa переключаться на Windows. Возможно ли? Спасибо . Спасибо вам за ваши статьи и помощь.
Да уж,чувак, сумбурней и беспорядочней каши даже не встречал. Если уж пишешь, старайся подробней описывать процесс, т.к. то, что ты написал, вот вообще не совпадает по действиям и с теми кусками, что ты накидал в архивах.
Есть только протокол интернета версии 4
Но ip версии 4 нету
Что делать?