Домой Софт Безопасность Миф о безопасности DNS: почему ваш роутер видит всё

Миф о безопасности DNS: почему ваш роутер видит всё

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

1
0

Миф о безопасности DNS: почему ваш роутер видит всё

Замена DNS-сервера — это стандартный совет для защиты приватности, который звучит практически везде. Ввести 1.1.1.1 в настройках роутера, чтобы перестать передавать запросы провайдеру — процедура бесплатная, занимающая две минуты, которая к тому же зачастую делает интернет-соединение чуть быстрее. Однако реальность оказалась куда сложнее.

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

DNS-перехват: проблема, о которой молчат

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

Любое устройство, подключенное к Eero, получало ответ, но не тот, который требовался. Роутер перехватывал весь трафик на порту 53, независимо от адресата, и отвечал на запросы из своего собственного кеша. Это касалось даже запросов, направленных на DNS-сервер внутри моей локальной сети.

И я не единственный, кто столкнулся с этим. Команда из Калифорнийского университета в Сан-Диего провела исследование на базе примерно 9600 зондов RIPE Atlas и обнаружила 220 случаев перехвата DNS, причем в 49 из них «виновником» был сам домашний роутер. Чаще всего проблема встречалась у абонентов Comcast, а устройство Arris/Technicolor XB6, которое используется в десятках миллионов домов, по умолчанию перенаправляет DNS-запросы на собственные резолверы провайдера. Ваши тщательно подобранные настройки могут быть приняты оборудованием, а затем просто проигнорированы.

Как проверить, доходят ли запросы до цели

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

Существуют две команды, позволяющие узнать, проходят ли ваши запросы через выбранный сервер:

  • Резолвер Cloudflare сообщает, какой именно дата-центр ответил на запрос. Если вы получаете код аэропорта — вы достигли Cloudflare. Если возвращается версия ПО, ошибка или невнятный ответ — значит, кто-то посередине подменил результат. Команда: dig @1.1.1.1 id.server CH TXT +short.
  • Проверка Google более показательна: она возвращает IP-адрес того резолвера, который фактически выполнил запрос от вашего имени. Если этот адрес не принадлежит Google, значит, ваш запрос совершил «обходной путь». Команда: dig @8.8.8.8 o-o.myaddr.l.google.com TXT +short.

Пользователи Windows могут использовать те же команды, скачав инструменты BIND или запустив их через WSL 2 в Windows 10 или 11.

Методы борьбы с перехватом

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

Универсальный метод — использование шифрованного DNS непосредственно на устройстве. Роутер может сколько угодно перехватывать порт 53, но он не увидит трафик DNS-over-HTTPS (DoH), так как он выглядит как обычная HTTPS-сессия и не использует стандартный порт 53. В Windows 11 есть встроенный режим DoH, в каждом популярном браузере есть свои настройки, а в Android функция «Частный DNS» доступна уже много лет.

Главный подвох: SNI остается открытым

Даже если ваши запросы достигают выбранного резолвера, провайдер все равно знает, куда вы идете. В каждом HTTPS-соединении есть поле Server Name Indication (SNI), которое передает имя целевого ресурса в открытом виде при первом рукопожатии. Провайдеру достаточно просто передавать ваши пакеты, чтобы прочитать их.

Технология Encrypted Client Hello (ECH) решает эту проблему путем шифрования имени ресурса (стандарт RFC 9849). Однако она работает только при поддержке со стороны сайта и наличии возможности получить ключ через шифрованный DNS. Нет DoH — нет ECH. Шифрованный DNS — это полезная мера, но она не защищает от всего, поэтому важно осознавать ограничения этих инструментов.

Проверка эффективности защиты DNS и ECH

Запустите захват трафика в Wireshark, посетите несколько сайтов, остановите запись и подсчитайте количество имен, которые транслировал ваш компьютер. Используйте команду tshark -r capture.pcapng -Y «tls.handshake.extensions_server_name» -T fields -e tls.handshake.extensions_server_name | sort -u | wc -l. Если вы смените DNS-резолвер и повторите процедуру, число не изменится, так как процесс рукопожатия TLS не зависит от того, какой именно резолвер вы используете. Это прямое доказательство того, что смена DNS лишь перекладывает список сайтов, которые вы посещаете, в руки другого оператора.

Настройка DNS-сервера в сети

Работа технологии ECH

Чтобы проверить, работает ли ECH (Encrypted Client Hello) в вашем случае, необходимо отследить TLS-расширение с типом 65037, которое указывает на то, что имя хоста было скрыто, а не анонсировано. Используйте команду tshark -r capture.pcapng -Y «tls.handshake.extension.type == 65037» | wc -l. Предварительно обязательно включите DNS over HTTPS (DoH), иначе значение счетчика останется нулевым из-за отсутствия ключа, а не из-за ошибки в команде. Ожидайте смешанных результатов даже при полной активации функции, так как не все веб-сайты поддерживают её корректно.

Роль выбора резолвера

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

безопасность DNS — иллюстрация 7 к материалу

Почему важно знать, кто владеет данными

В отчете Федеральной торговой комиссии (FTC) за 2021 год, посвященном практике работы шести крупных операторов связи, было установлено, что они объединяют историю браузинга и активность в приложениях для таргетинга рекламы, сортируют абонентов по чувствительным категориям (включая расу и сексуальную ориентацию) и передают данные о местоположении третьим лицам. Это базовый уровень, с которого все начинается, и именно он является причиной существования советов по смене DNS.

безопасность DNS — иллюстрация 2 к материалу

Для сравнения:

безопасность DNS — иллюстрация 3 к материалу
  • Cloudflare усекает последний октет вашего IP-адреса перед записью, удаляет логи резолвера в течение 25 часов и привлекает одну из аудиторских компаний «большой четверки» для проверки этих утверждений, а не просит верить на слово.
  • Google Public DNS хранит полные IP-адреса от 24 до 48 часов, ведет выборочные логи в течение неопределенного срока с заменой адресов на данные о местоположении на уровне города и заявляет, что эти сведения не привязываются к аккаунту Google, за исключением случаев обработки инцидентов, связанных со злоупотреблениями.

Вы все равно передаете список сайтов компании, но «удаление через 25 часов с независимым аудитом» и «использование в рекламном бизнесе» — это принципиально разные продукты. Изучайте политику хранения данных, проверяйте, проводил ли кто-то извне её аудит, и выбирайте резолвер на этой основе, а не потому, что его IP-адрес легче запомнить.

безопасность DNS — иллюстрация 4 к материалу

Рекомендации по настройке

Поскольку список посещенных сайтов — это всегда копия, не стоит рассматривать смену DNS как способ полностью скрыть свою активность. Если вы решили что-то изменить после прочтения, не делайте этого на уровне адреса DNS в роутере. Включите зашифрованный DNS непосредственно на устройстве, где роутер не сможет незаметно перехватить запрос. Затем выполните упомянутые ранее команды dig, чтобы выяснить, не подменял ли он ваши запросы всё это время. Автор текста признается, что его роутер делал это годами, пока он сам советовал другим менять настройки DNS.

безопасность DNS — иллюстрация 5 к материалу

После этого выбирайте резолвер на основе политики логирования, а не маркетинга, так как копия истории посещений будет существовать в любом случае, и лучше самому выбрать, кто будет её хранить. На этом уровне невозможно решить проблему видимости IP-адреса. Для дальнейшего сокрытия данных необходимо использовать VPN или Tor, которые — как вы уже могли заметить — просто передают список сайтов еще одной компании.

безопасность DNS — иллюстрация 6 к материалу