DNS rebinding

DNS rebinding (досл. с англ. — перепривязывание DNS) — форма компьютерной атаки на веб-сервисы. В данной атаке вредоносная веб-страница заставляет браузер посетителя запустить скрипт, обращающийся к другим сайтам и сервисам. Теоретически политики одинакового источника (Same Origin Policy) препятствуют подобным запускам: сценарии на стороне клиента могут получать доступ только к данным с того сайта, с которого был получен скрипт. При реализации политики производится сравнение доменных имен, а атака перепривязки обходит эту защиту, злоупотребляя возможностями системы доменных имен интернета (DNS) по быстрой смене адресов.

Атака может быть использована для проникновения в локальные сети, когда атакующий заставляет веб-браузер жертвы обращаться к устройствам по частным (приватным) IP-адресам и возвращать результаты этих обращений атакующему. Также атака может использоваться для того, чтобы поражаемый браузер выполнял отправку спама на веб-сайты, и для DDOS-атак и других вредоносных деяний.

Схема работы 
Злоумышленник регистрирует домен (например, attacker.com) и устанавливает контроль над DNS-сервером, обслуживающим домен. DNS-сервер настраивается так, чтобы его ответы содержали очень короткое время жизни (TTL) записей, предотвращая кэширование ответа клиентом или резолвером. Когда жертва начинает переход на вредоносный домен, DNS-сервер атакующего сначала возвращает настоящий IP-адрес веб-сервера, который предоставит вредоносный код клиенту. Например, жертва может перейти на сайт, который содержит вредоносный код JavaScript или активный Flash-объект.

Затем вредоносный код на стороне клиента совершает дополнительные обращения к исходному имени домена (attacker.com). Политика одинакового источника (Same Origin Policy) разрешает такие запросы. Однако, во время исполнения скрипта в браузере жертвы из-за устаревания предыдущего DNS-ответа производится новый запрос DNS для данного домена и запрос поступает к dns-серверу атакующего (из-за устаревания данных в кеше). На этот раз злоумышленник отвечает, что теперь домен attacker.com как будто бы находится на некоем новом IP-адресе, например, на внутреннем IP-адресе или IP-адресе какого-то иного веб-сайта. Запрос скрипта попадает к другому серверу. Для возврата собранной скриптом информации атакующий может вновь предоставить свой настоящий IP-адрес в одном из последующих DNS-запросов.

Противодействие и защита 
Разработан ряд методов противодействия атакам перепривязки DNS:
 Веб-браузеры могут реализовывать привязку ДНС (DNS pinning): используемый для работы с сайтом IP-адрес фиксируется на то значение, которое было получено в первом ответе DNS. Этот метод предотвращает все типы атаки, но может препятствовать некоторым правомерным использованиям динамических DNS. При использовании этого метода пользователь может ошибочно использовать старый IP-адреса сайта при его легитимной смене.
 IP-адреса, относящиеся к локальным сетям могут быть отфильтрованы из ответов DNS (сложнее реализуется для некоторых вариантов с шифрованием запросов, напр. DNS over TLS, DNS over HTTPS).
 Некоторые общедоступные DNS-серверы поставляют данную услугу наряду с другими функциями, например, корпорация OpenDNS.
 Системные администраторы могут настроить внутренние рекурсивные DNS-серверы для блокирования разрешения внешних имен во внутренние для локальной сети IP-адреса. Недостатком подобной блокировки может стать утечка информации о списке заблокированных локальных подсетей к злоумышленнику.
 DNS фильтрация, встроенная в брандмауэр, маршрутизатор или локальный демон разрешения имен, например dnswall.
 Веб-серверы и веб-сервисы должны отказывать в обслуживании HTTP запросам, указывающим неверное имя сайта в служебном заголовке HTTP «Host».
 Расширение браузера Firefox NoScript обеспечивает частичную защиту (для стандартных диапазонов частных сетей), используя функцию ABE. Она блокирует интернет-трафик с внешних адресов на локальные адреса.

См. также 
 DNS hijacking (Перехват DNS)
 DNS spoofing (DNS-спуфинг)

Примечания

Литература 
 Protecting Browsers from DNS Rebinding Attacks, Proceedings of the 14th ACM conference on Computer and communications security (CCS’07), October 29-November 2, 2007, Virginia, USA. ISBN 978-1-59593-703-2, Pages 421—431. doi:10.1145/1315245.1315298

Ссылки 
 Protecting Browsers from DNS Rebinding Attacks (Защита браузеров от атаки DNS перепривязки) Stanford Web Security Research, April-December 2007
 Deneb Meketa, Policy file changes in Flash Player 9 and Flash Player 10. DNS hardening. — обновление для Adobe Flash Player (1 october 2008)
 Security Sun Alert 200041 для Sun JVM (2008-09-04)
 DNS Rebinding with Robert RSnake Hansen (видео, 2009)
 Д. Баранов. Атака «DNS Rebinding» Positive Technologies, Май 2011 
 Денис Баранов. Вторая жизнь DNS Rebinding. Свежий подход к реализации атак Anti DNS pinning, Журнал Хакер, Август 2011 (08) 151
 Милованов Т. И. Реализация атаки DNS Rebinding, Прикладная дискретная математика. Приложение. 2015. № 8.
 Сервис для эксплуатации DNS-rebinding

DNS
Хакинг
Атаки и эксплойты
Информационная безопасность