Dns leak что это
Устраняем утечку DNS при использовании OpenVPN в GNU/Linux
В дистрибутивах GNU/Linux, использующих новые версии системы инициализации systemd, можно встретить проблему утечки DNS. А при использовании некоторых VPN-сервисов, например Антизапрет, можно столкнутся с проблемой отсутствия разблокирования сайтов, т.к для разблокировки активно используется DNS внутри туннеля OpenVPN.
Примечание
Если у вас нет проблемы с утечкой DNS в работе OpenVPN, то выполнять следующие решения вам не стоит.
В сети можно встретить различные решения данной проблемы, например список вариантов на сайте ArchLinux. Мне же помогло следующее решение:
1. Устанавливаем пакет openresolv:
для дистрибутивов Ubuntu и подобных:
для дистрибутивов Arch и подобных:
2. Отключаем systemd-resolved:
Редактируем файл NetworkManager.conf
Сразу под Main дописываем строчку:
3. Перезагружаем систему и выполняем следующие команды. Так как на resolv.conf создан симлинк, то мы его удаляем:
Отобразится терминал с пустым файлом. Дописываем (можно указать любой DNS-сервер):
4. Устанавливаем скрипт:
Добавляем в файл следующие команды:
Примечание
Вполне возможно, что данные команды уже присутствуют в конфигурационном файле, и скорее всего они закомментированы. В таком случае достаточно снять комментирование, т.е убрать значок # перед файлами.
Дополнительно отмечу, что в последнее время можно встретить проблему с неработающим OpenVPN клиентом через менеджер сети (NetworkManager). В таком случае запустить vpn соединение можно через терминал, миную менеджер сети. Запускаем следующим образом:
Особенности резолвера DNS в Windows 10 и DNS Leak
TL;DR: DNS-резолвер в Windows 10 отправляет запросы на все известные системе адреса DNS-серверов параллельно, привязывая запрос к интерфейсу, и использует тот ответ, который пришел быстрее. В случае, если вы используете DNS-сервер из локального сегмента, такое поведение позволяет вашему провайдеру или злоумышленнику с Wi-Fi-точкой подменять записи DNS, даже если вы используете VPN.
Современные версии Windows добавляют головные боли активным пользователям VPN. DNS-резолвер до Windows 7 включительно имел предсказуемое поведение, совершая запросы к DNS-серверам в порядке очереди и приоритета DNS-серверов, в общем-то, как и все остальные ОС. Это создавало так называемый DNS Leak (утечка DNS-запроса через внешний интерфейс при подключенном VPN) только в том случае, если DNS-сервер внутри VPN-туннеля не ответил вовремя, или ответил ошибкой, и, в целом, не являлось такой уж вопиющей проблемой.
Windows 8
С выходом Windows 8, Microsoft добавила весьма интересную функцию в DNS-резолвер, которая, как я могу судить по Google, осталась совершенно незамеченной: Smart Multi-Homed Name Resolution. Если эта функция включена (а она включена по умолчанию), ОС отправляет запросы на все известные ей DNS-серверы на всех сетевых интерфейсах параллельно, привязывая запрос к интерфейсу. Сделано это было, вероятно, для того, чтобы уменьшить время ожидания ответа от предпочитаемого DNS-сервера в случае, если он по каким-то причинам не может ответить в отведенный ему таймаут (1 секунда по умолчанию), и сразу, по истечении таймаута, отдать ответ от следующего по приоритету сервера. Таким образом, в Windows 8 и 8.1 все ваши DNS-запросы «утекают» через интернет-интерфейс, позволяя вашему провайдеру или владельцу Wi-Fi-точки просматривать, на какие сайты вы заходите, при условии, что ваша таблица маршрутизации позволяет запросы к DNS-серверу через интернет-интерфейс. Чаще всего такая ситуация возникает, если использовать DNS-сервер внутри локального сегмента, такие DNS поднимают 99% домашних роутеров.
Данную функциональность можно отключить, добавив в ветку реестра:
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient
Параметр типа DWORD с названием:
DisableSmartNameResolution
и любым значением, отличным от нуля, что возвращало старое поведение резолвера.
Windows 10
Хоть Windows 8 и 8.1 отправляли все ваши запросы без вашего ведома через публичный интерфейс, совершить подмену DNS-ответа таким образом, чтобы перенаправить вас на поддельный сайт, было проблематично для злоумышленника, т.к. ОС бы использовала подмененный ответ только в том случае, если не удалось получить правильный ответ от предпочитаемого DNS-сервера, коим является сервер внутри шифрованного туннеля.
Все изменилось с приходом Windows 10. Теперь ОС не только отправляет запрос через все интерфейсы, но и использует тот ответ, который быстрее пришел, что позволяет практически всегда вашему провайдеру перенаправить вас на заглушку о запрещенном сайте или злоумышленнику на поддельный сайт. Более того, способ отключения Smart Multi-Homed Name Resolution, который работал в Windows 8.1, не работает на новой версии.
Единственный приемлемый (хоть и не самый надежный) способ решения проблемы — установить DNS на интернет-интерфейсе вне локального сегмента, например, всем известные 8.8.8.8, однако, он не поможет в случае с OpenVPN. Для OpenVPN единственным (и некрасивым) решением является временное отключение DNS на интернет-интерфейсе скриптами.
UPD: ранее в статье рекомендовалось использовать параметр redirect-gateway без def1 для OpenVPN. Оказывается, Windows возвращает маршрут по умолчанию от DHCP-сервера при каждом обновлении IP-адреса, и через какое-то время весь ваш трафик начинал бы ходить в обход VPN. На данный момент, красивого решения не существует.
UPD3: Windows 10, начиная с Creators Update, теперь отправляет DNS-запросы на все известные адреса DNS-серверов по порядку, а не параллельно, начиная со случайного интерфейса. Чтобы повысить приоритет конкретного DNS, необходимо уменьшить метрику интерфейса. Сделал патч для OpenVPN, надеюсь, его включат в 2.4.2: https://sourceforge.net/p/openvpn/mailman/message/35822231/
UPD4: Обновление вошло в OpenVPN 2.4.2.
Как проверить VPN на утечки данных
Вы уверены, что ваши персональные данные надежно защищены при использовании сервиса VPN? Выполняет ли частная виртуальная сеть свои функции или безответственно относится к вашим данным? Чтобы ответить на данные эти вопросы, проведите небольшое тестирование с целью выявления уровня защиты вашей VPN службы.
При использовании VPN ожидается, что весь отправляемый и получаемый по зашифрованному каналу трафик надежно защищен. Сюда входит ваш реальный IP-адрес, ваше фактическое местоположение и данные об используемом Интернет-провайдере. Если данная информация доступна сторонним ресурсам, то отслеживание вашей активности не сильно ограничено, и данные о ваших действиях могут использоваться не только в рекламных целях.
Однако, эффективность работы VPN сервиса проверить совсем несложно. Мы собрали несколько шагов, которые позволяют оценить уровень защиты, предоставляемый вашей службой.
Проверяем IP-адрес
IP-адресы обычно привязаны не только к провайдерам, но и конкретным местоположениям. Если сторонний сервис получает ваш IP-адрес, то он может приблизительно определить вашу локацию.
Чтобы узнать свой IP-адрес, введите в поисковой системе Яндекс запрос “мой ip” или воспользуйтесь сторонними сервисами, например, whoer.net или 2ip.ru. Некоторые сервисы показывают не только сам адрес, но и указывают ваш расположение, определяемое по IP-адресу.
Если показанное местоположение совпадает с вашим физическим расположение, значит VPN служба пропускает данные, которые должны быть защищены.
Проверяем утечку DNS
Использование VPN означает, что теоретически ваш интернет-трафик перенаправляется на анонимные DNS-серверы. Если ваш браузер просто отправляет запрос вашему Интернет-провайдеру, значит имеет место утечка DNS.
Существуют простые способы для тестирования утечки DNS с помощью сервисов Hidester DNS Leak Test, DNSLeak.com или DNS Leak Test. Данные сайты возвращают информацию о вашем IP-адресе и владельце используемого DNS сервера. Если в результатах отображается сервис вашего Интернет-провайдера, то происходит утечка DNS.
Исправляем утечки
Если вы обнаружили утечку, то существует несколько возможных вариантов дальнейших действий. Прежде всего, вы можете поменять VPN службу на ту, которая предотвращает утечки DNS
Вы также можете изменить DNS-серверы, используемые вашим маршрутизатором при отправке запросов в Интернет. Для этого нужно будет использовать интерфейс администратора вашего роутера. Вы можете использовать альтернативные DNS сервисы: Google Public DNS, Cloudflare DNS, AdGuard DNS или OpenDNS.
Изменения настроек DNS на роутере коснутся всех устройств, подключенных к домашней сети, включая смартфоны, планшеты, игровые консоли и устройства “Умный дом”.
С другой стороны, вы просто передаете свой DNS-трафик другой компании. Конечно, можно использовать более дорогие варианты с аппаратными устройства для максимальной безопасности. Однако, если вы не страдаете повышенной параноидальностью, что VPN будет достаточно для улучшения уровня защиты данных.
Другие возможные утечки
Данные о вашем местоположении могли быть сохранены в браузере в определенный момент. Браузеры обычно более охотно делятся информацией о вашем местоположении, чем VPN службы. На сайте IPLeak.net можно проверить, какие данные будут оставлены на сторонних сайтах при соответствующих запросах.
Если вы хотите получить максимальный уровень безопасности, то используйте альтернативные защищенные браузеры, например, Tor Browser. Он обеспечивает вашу анонимность за счет многоэтапной маршрутизации трафика по всему миру перед непосредственным подключением к веб-серверу. Этот метод затрудняет поиск вашей локальной информации и может замедлить работу в целом, но это хорошее решение для обеспечения безопасности данных.
Если вы не хотите отказываться от своего текущего браузера, используйте режим инкогнито, перейдите на сложный маршрут настройки виртуального местоположения или просто используйте стороннее расширение, такое как Location Guard (для Chrome или Firefox), чтобы замаскировать свое местонахождение.
Избавляемся от DNS Leak в Windows 10 — свой userspace WFP-фильтр в виде OpenVPN-плагина
Как вы уже можете знать, резолвер DNS в Windows 10 отправляет DNS-запросы на все интерфейсы параллельно, что часто бывает либо просто неудобно, когда используется так называемый Split Tunneling и DNS внутри VPN-туннеля отдает внутренние адреса для внутренних ресурсов, а Windows не может понять, что к чему, либо и вовсе создает угрозу безопасности, как в случае утечки DNS через публичный Wi-Fi.
Решить проблему можно разными способами, например, временно добавив правила firewall для блокировки 53 порта на всех интерфейсах, кроме интерфейса VPN, либо установить на всех интерфейсах, кроме VPN, DNS в 127.0.0.1.
Однако, эти способы вносят изменения, выдерживающие перезагрузку, поэтому, если во время работы VPN у вас случайно отключили электричество или VPN-демон просто упал, вы останетесь с неработающим интернетом. Ничего хорошего в этом нет.
Однако есть способ лучше, который вносит только временные изменения и не оставит пользователя без интернета.
Windows Filtering Platform
Начиная с Windows Vista, на замену устаревшим технологиям обработки трафика вроде NDIS, TDI и LSP приходит WFP — современная, легкая и удобная технология, которая работает как в режиме ядра, так и в пользовательском режиме. Современные версии Брандмауэра Windows как раз используют WFP, как и все сторонние файрволлы и антивирусы с возможностью проверки трафика.
WFP-фильтр может добавлять постоянные фильтры, которые выживают после перезагрузки, даже если ПО, установившее их, не было больше запущено, временные фильтры, которые сохраняются после завершения программы, но не после перезагрузки, и сессионные, которые действуют только тогда, когда программа, создавшая их, все еще исполняется.
Теперь можно не бояться использовать VPN на Windows 10 через публичный Wi-Fi.
Как хакеры подменяют DNS-запросы с помощью «отравления» кэша
Подмена сервера доменных имен (DNS) — это кибератака, с помощью которой злоумышленник направляет трафик жертвы на вредоносный сайт (вместо легитимного IP-адреса). Злоумышленники используют метод «отравления» кэша DNS для перехвата интернет-трафика и кражи учетных данных или конфиденциальной информации. Отравление кэша DNS и подмена DNS — тождественные понятия, часто используемые как синонимы. Хакер хочет обманом заставить пользователей ввести личные данные на небезопасном сайте. Как ему этого добиться? С помощью отравления кэша DNS. Для этого хакер подменяет или заменяет данные DNS для определенного сайта, а затем перенаправляет жертву на сервер злоумышленника вместо легитимного сервера. Таким образом хакер добивается своей цели, ведь перед ним открываются широкие возможности: он может совершить фишинговую атаку, украсть данные или даже внедрить в систему жертвы вредоносную программу.
Что такое подмена DNS и отравление кэша?
Прежде чем начать разговор об отравлении кэша DNS, сначала давайте вспомним, что такое DNS и кэширование DNS. DNS — это всемирный каталог IP-адресов и доменных имен. Можно сказать, что это своеобразный телефонный справочник интернета. DNS переводит удобные для пользователей адреса, такие как varonis.com, в IP-адреса, например 92.168.1.169, которые используются компьютерами для работы в сети. Кэширование DNS — это система хранения адресов на DNS-серверах по всему миру. Для ускорения обработки ваших DNS-запросов разработчики создали распределенную систему DNS. Каждый сервер хранит список известных ему DNS-записей, который называется кэшем. Если на ближайшем к вам DNS-сервере нужный IP-адрес отсутствует, он запрашивает вышестоящие DNS-серверы до тех пор, пока адрес веб-сайта, на который вы пытаетесь попасть, не будет найден. После этого ваш DNS-сервер сохраняет эту новую запись в вашем кэше, чтобы в следующий раз получить ответ быстрее.
Примеры и последствия отравления кэша DNS
Концепция DNS не приспособлена к специфике современного интернета. Конечно, со временем DNS был усовершенствован, однако сейчас по-прежнему достаточно одного неправильно настроенного DNS-сервера, чтобы миллионы пользователей ощутили на себе последствия. Пример — атака на WikiLeaks, когда злоумышленники с помощью отравления кэша DNS перехватывали трафик, перенаправляя его на собственный клон сайта. Целью этой атаки было увести трафик с WikiLeaks, и она достигла определенного успеха. Отравление кэша DNS весьма непросто обнаружить обычным пользователям. В настоящее время система DNS построена на доверии, и это является ее слабым местом. Люди чересчур сильно доверяют DNS и никогда не проверяют, соответствует ли адрес в их браузере тому, что им в действительности нужно. Злоумышленники же пользуются этой беспечностью и невнимательностью для кражи учетных данных и другой важной информации.
Как работает отравление кэша DNS?
Отравление кэша DNS означает, что на ближайшем к вам DNS-сервере содержится запись, отправляющая вас по неверному адресу, который, как правило, контролируется злоумышленником. Существует ряд методов, которые используют злоумышленники для отравления кэша DNS.
Перехват трафика локальной сети с помощью подмены протокола ARP
Вы удивитесь, насколько уязвимой может быть локальная сеть. Многие администраторы могут пребывать в уверенности, что перекрыли все возможные доступы, но, как известно, дьявол кроется в деталях.
Одна из распространенных проблем — сотрудники, работающие удаленно. Можно ли быть уверенными, что их сеть Wi-Fi защищена? Хакеры могут взломать слабый пароль от сети Wi-Fi за считанные часы.
Еще одна проблема — открытые порты Ethernet, доступные всем желающим в коридорах, вестибюлях и других общественных местах. Просто представьте: посетитель может подключить к своему устройству кабель Ethernet, предназначенный для дисплея в вестибюле. Как хакер может использовать доступ к вашей локальной сети, полученный одним из перечисленных выше способов? Во-первых, он сможет создать фишинговую страницу для сбора учетных данных и другой ценной информации. Затем он может разместить этот сайт либо в локальной сети, либо на удаленном сервере, и для этого ему потребуется всего-навсего одна строка кода на Python. После этого хакер может начать следить за сетью с помощью специальных инструментов, таких как Betterrcap. На этом этапе хакер изучает сеть и производит рекогносцировку, но трафик все еще проходит через маршрутизатор. Затем злоумышленник может совершить подмену протокола разрешения адресов (ARP), чтобы изнутри изменить структуру сети. Протокол ARP используется сетевыми устройствами для связывания MAC-адреса устройства с IP-адресом в сети. Bettercap будет отправлять сообщения, заставляя все устройства в сети считать компьютер хакера маршрутизатором. Благодаря этой уловке хакер сможет перехватывать весь сетевой трафик, проходящий через маршрутизатор. Достигнув перенаправления трафика, злоумышленник может запустить модуль Bettercap для подмены DNS. Этот модуль будет искать любые запросы к целевому домену и отправлять жертве ложные ответы. Ложный ответ содержит IP-адрес компьютера злоумышленника, переправляя все запросы к целевому сайту на фишинговую страницу, созданную хакером. Теперь хакер видит трафик, предназначенный для других устройств в сети, собирает вводимые учетные данные и внедряет вредоносные загрузки.
Если же хакер не может получить доступ к локальной сети, он прибегнет к одной из следующих атак.
Подделка ответов с помощью атаки «дней рождения»
DNS не проверяет подлинность ответов на рекурсивные запросы, поэтому в кэше сохраняется первый ответ. Злоумышленники используют так называемый «парадокс дней рождения», чтобы попытаться предугадать и отправить поддельный ответ запрашивающей стороне. Для предугадывания атака «дней рождения» использует математику и теорию вероятностей. В этом случае злоумышленник пытается угадать идентификатор транзакции вашего DNS-запроса, и в случае успеха поддельная запись DNS попадает к вам раньше легитимного ответа. Успех атаки «дней рождения» не гарантирован, но в конце концов злоумышленник сможет подложить в кэш поддельный ответ. После того как атака увенчается успехом, хакер сможет видеть трафик от поддельной записи DNS до окончания жизненного цикла (TTL) записи DNS.
Эксплойт Каминского
Эксплойт Каминского является разновидностью атаки «дней рождения». Обнаруживший эту уязвимость Дэн Каминский впервые представил ее на конференции BlackHat в 2008 году. Суть эксплойта заключается в том, что сначала хакер отправляет DNS-резолверу запрос для несуществующего домена, например fake.varonis.com. Получив такой запрос, DNS-резолвер перенаправляет его на авторитетный сервер имен, чтобы получить IP-адрес ложного субдомена. На этом этапе злоумышленник перегружает DNS-резолвер огромным количеством поддельных ответов в надежде, что один из этих поддельных ответов совпадет с идентификатором транзакции исходного запроса. В случае успеха хакер подменяет в кэше DNS-сервера IP-адрес, например, как в нашем примере с varonis.com. Резолвер продолжит отвечать всем запрашивающим, что поддельный IP-адрес varonis.com является настоящим, пока не истечет жизненный цикл записи DNS.
Как обнаружить отравление кэша DNS?
Как обнаружить, что кэш DNS отравлен? Для этого нужно следить за вашими DNS-серверами в поисках индикаторов возможной атаки. Однако ни у кого нет вычислительных мощностей, чтобы справиться с такими объемами DNS-запросов. Лучшим решением будет применить к вашему мониторингу DNS аналитику безопасности данных. Это позволит отличить нормальное поведение DNS от атак злоумышленников.
• Внезапное увеличение активности DNS из одного источника в отношении одного домена свидетельствует о потенциальной атаке «дней рождения».
• Увеличение активности DNS из одного источника, который запрашивает у вашего DNS-сервера многочисленные доменные имена без рекурсии, свидетельствует о попытке подобрать запись для последующего отравления.
Помимо мониторинга DNS необходимо также вести мониторинг событий Active Directory и поведения файловой системы, чтобы вовремя обнаружить аномальную активность. А еще лучше будет использовать аналитику для поиска взаимосвязи между всеми тремя векторами. Это позволит получить ценную контекстную информацию для усиления стратегии кибербезопасности.
Способы защиты от отравления кэша DNS
И, наконец, используйте зашифрованные DNS-запросы. Модули безопасности службы доменных имен (DNSSEC) — это протокол DNS, который использует подписанные DNS-запросы для предотвращения их подмены. При использовании DNSSEC, DNS-резолверу необходимо проверить подпись на уполномоченном DNS-сервере, что замедляет весь процесс. Вследствие этого DNSSEC пока не получил широкого распространения.
DNS поверх HTTPS (DoH) и DNS поверх TLS (DoT) являются конкурирующими спецификациями для следующей версии DNS и, в отличие от DNSSEC, предназначены для обеспечения безопасности DNS-запросов без ущерба скорости. Тем не менее эти решения не идеальны, поскольку могут замедлить или полностью сделать невозможным локальный мониторинг и анализ DNS. Важно отметить, что DoH и DoT могут обходить родительский контроль и другие блокировки на уровне DNS, установленные в сети. Несмотря на это, Cloudflare, Quad9 и Google имеют общедоступные DNS-серверы с поддержкой DoT. Многие новые клиенты поддерживают эти современные стандарты, хотя их поддержка и отключена по умолчанию. Вы можете найти более подробную информацию об этом в нашем посте по безопасности DNS.
Подмена DNS заменяет легитимный IP-адрес сайта на IP-адрес компьютера хакера. Обнаружить подмену очень непросто, ведь с точки зрения конечного пользователя он вводит в браузере абсолютно нормальный адрес сайта. Несмотря на это остановить подобную атаку можно. Риски снизить можно, используя мониторинг DNS, например, от Varonis, а также стандарт шифрования DNS поверх TLS (DoT).
Отравление кэша: часто задаваемые вопросы
Ознакомьтесь с распространенными вопросами о подмене DNS и ответами на них.
Отравление кэша DNS и подмена кэша DNS (спуфинг) — это одно и то же?
Да, отравлением кэша и подменой кэша называют один и тот же тип кибератаки.
Как работает отравление кэша DNS?
Отравление кэша обманывает ваш DNS-сервер, сохраняя на нём поддельную запись DNS. После этого трафик перенаправляется на сервер, выбранный хакером, и там осуществляется кража данных.
Какие меры безопасности можно применять для защиты от отравления кэша DNS?
Владельцы сайта могут осуществлять мониторинг и аналитику для выявления подмены DNS. Кроме того, можно обновить DNS-серверы, чтобы использовать модули безопасности службы доменных имен (DNSSEC) или другую систему шифрования, например DNS поверх HTTPS или DNS поверх TLS. Повсеместное использование полного сквозного шифрования, такого как HTTPS, также может предотвратить подмену DNS. Брокеры безопасного облачного доступа (CASB) чрезвычайно полезны для этих целей. Конечные пользователи могут сбросить потенциально подделанный кэш DNS, периодически очищая кэш DNS своего браузера, или после подключения к небезопасной или общедоступной сети. Использование VPN может защитить от подмены DNS в локальной сети. Избегайте подозрительных ссылок. Это поможет избежать риска заражения кэша вашего браузера.
Как проверить, подверглись ли вы атаке с отравлением кэша?
После того как кэш DNS был отравлен, это сложно обнаружить. Куда лучшая тактика — осуществлять мониторинг ваших данных и защищать систему от вредоносных программ, чтобы уберечься от утечек данных в следствие отравления кэша DNS. Посетите нашу интерактивную лабораторию кибератак, чтобы увидеть, как мы используем мониторинг DNS для обнаружения реальных угроз кибербезопасности.
Как работает связь DNS?
Как злоумышленники отравляют кэш DNS?
Способов отравления кэша много, и вот самые распространенные из них: принудить жертву нажать на вредоносную ссылку, использующую встроенный код для изменения кэша DNS в браузере пользователя; взлом локального DNS-сервера с помощью «атаки через посредника». Вышеупомянутая «атака через посредника» использует подмену протокола разрешения адресов (ARP) для перенаправления DNS-запросов на DNS-сервер, контролируемый злоумышленником.
Что такое отравление кэша DNS?
Отравление кэша DNS — это действия по замене записи в базе данных DNS на IP-адрес, ведущий на вредоносный сервер, контролируемый злоумышленником.
Как выполняется подмена DNS?
Хакер выполняет атаку с подменой DNS, получая доступ и изменяя кэш DNS или перенаправляя запросы DNS на свой собственный DNS-сервер.