Повторное связывание DNS - это метод управления разрешением доменных имен, который обычно используется как форма компьютерной атаки. В этой атаке вредоносная веб-страница заставляет посетителей запускать клиентский скрипт, который атакует машины в другом месте сети. Теоретически политика одинакового происхождения предотвращает это: клиентским скриптам разрешен доступ только к контенту на том же хосте, который обслуживал скрипт. Сравнение доменных имен является неотъемлемой частью применения этой политики, поэтому повторное связывание DNS позволяет обойти эту защиту путем злоупотребления системой доменных имен (DNS).
Эта атака может быть использована для взлома частной сети, заставив веб-браузер жертвы получить доступ к компьютерам по частным IP-адресам и вернуть результаты для злоумышленника. Его также можно использовать для использования машины-жертвы для рассылки спама, распределенных атак типа «отказ в обслуживании» или других злонамеренных действий.
Злоумышленник регистрирует домен (например, attacker.com) и делегирует его DNS-серверу, который находится под контролем злоумышленника. Сервер настроен на ответ с очень коротким временем жизни (TTL) записью, предотвращая кэширование ответа DNS. Когда жертва переходит на вредоносный домен, DNS-сервер атакующего сначала отвечает IP-адресом сервера, на котором размещен вредоносный клиентский код. Например, они могут направить браузер жертвы на веб-сайт, содержащий вредоносные сценарии JavaScript или Flash, предназначенные для выполнения на компьютере жертвы.
Вредоносный код на стороне клиента делает дополнительные обращения к исходному доменному имени (например, attacker.com). Это разрешено политикой одинакового происхождения. Однако, когда браузер жертвы запускает сценарий, он делает новый запрос DNS для домена, и злоумышленник отвечает новым IP-адресом. Например, они могут ответить внутренним IP-адресом или IP-адресом цели где-то еще в Интернете.
Следующие методы пытаются предотвратить атаки повторного связывания DNS: