Почти половина трафика на корневые DNS-серверы вызвана активностью Chromium

Регистратор APNIC, отвечающий за распределение IP-адресов в Азиатско-Тихоокеанском регионе, опубликовал результаты анализа распределения трафика на одном из корневых DNS-серверов a.root-servers.net. 45.80% запросов к корневому серверу оказались связаны с проверками, выполняемыми браузерами на основе движка Chromium. Таким образом, почти половина ресурсов корневых DNS-серверов уходит на выполнение диагностических проверок Chromium, а не обработку запросов от DNS-серверов при определении корневых зон. С учётом того, что Chrome занимает 70% рынка web-браузеров, подобная диагностическая активность приводит к отправке около 60 миллиардов запросов к корневым серверам в день.

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

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

Для решения возникшей проблемы разработчики Chromium добавили в браузер дополнительные проверки, которые в случае выявления перенаправлений изменяют логику обработки запросов в адресной строке.
При каждом запуске, изменении настроек DNS или смене IP-адреса браузер отправляет три DNS-запроса со случайными именами доменов первого уровня, которые с высокой вероятностью не существуют. Имена включают от 7 до 15 латинских букв (без точек) и используются для выявления перенаправления несуществующих доменных имён провайдером на свой хост. Если при обработке трёх HTTP-запросов со случайными именами для двух будет получен редирект на одну и ту же страницу, то Chromium считает, что пользователь переброшен на стороннюю страницу.

В качестве признаков для выделения активности Chromium из общего потока запросов на корневом DNS-сервере были использованы нетипичные размеры домена первого уровня (от 7 до 15 букв) и фактор повторяемости запросов (имена каждый раз генерировались случайно и не повторялись).
В логе были вначале отфильтрованы запросы несуществующих доменов (78.09%), потом выделены запросы, повторяющиеся не более трёх раз (51.41%), а затем отфильтрованы домены, включающие от 7 до 15 букв (45.80%). Интересно, что только 21.91% запросов к корневым серверам оказались связаны с определением существующих доменов.

Почти половина трафика на корневые DNS-серверы вызвана активностью Chromium

В ходе исследования также была изучена зависимость роста нагрузки на корневые серверы a.root-servers.net и j.root-servers.net от роста популярности Chrome.

Почти половина трафика на корневые DNS-серверы вызвана активностью Chromium

В Firefox проверки перенаправления через DNS ограничиваются определением переадресации на страницы аутентификации (captive portal) и реализованы с использованием фиксированного поддомена «detectportal.firefox.com», без запроса доменных имён первого уровня. Подобное поведение не создаёт дополнительной нагрузки на корневые DNS-серверы, но потенциально может рассматриваться как утечка конфиденциальных данных об IP-адресе пользователя (при каждом запуске запрашивается страница «detectportal.firefox.com/success.txt»). Для отключения проверки в Firefox предусмотрена настройка «network.captive-portal-service.enabled», которую можно изменить на странице «about:config».

Источник: opennet.ru