DNS spoofing

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

DNS-спуфинг, также известный как отравление кэша DNS, является одной из форм взлома компьютерных сетей, в котором данные кэша доменных имен изменяются злоумышленником, с целью возврата ложного IP-адреса. Это приводит к атаке посредника на компьютер злоумышленника (или любой другой компьютер).

Обзор системы доменных имен[править | править код]

DNS-серверы сопоставляют удобно читаемые доменные имена (например, example.com) с IP-адресом, используемый для маршрутизации сообщений между узлами. Обычно, если сервер не знает данного IP-адреса, он выполняет запрос к другому серверу, и процесс продолжается рекурсивно. Для увеличения производительности, сервер, как правило, сохраняет (кэширует) значения IP адреса и доменного имени на определенный промежуток времени. Это означает, что если он получает еще один запрос на тот же перевод, он сможет ответить без необходимости спрашивать другие сервера, до истечения срока действия кэша.

Когда DNS-сервер получает ложное значение IP адреса и кэширует его для оптимизации производительности, это значение считается отравленным, и сервер подает ложные сведения клиентам. Если DNS-сервер отравлен, он может возвращать неверный IP-адрес, передавая трафик на другой компьютер (чаще злоумышленника).[1]

Отравление кэша[править | править код]

Как правило, сетевой компьютер использует DNS-сервера, предоставляемые Интернет-провайдером (ISP) или собственный сервер организации. DNS-серверы используются в организации сети, чтобы улучшить производительность за счет кэширования ранее полученных результатов. Отравление кэша на одном DNS-сервере может повлиять на пользователей, обслуживаемых непосредственно на удаленном сервере или тех, кто обслуживается данным сервером.

Чтобы выполнить отравление кэша, злоумышленник эксплуатирует недостатки программного обеспечения сервера DNS. Сервер должен правильно проверить DNS ответы, чтобы убедиться, что они принадлежат надежному источнику (например, с помощью DNSSEC); в противном случае сервер может кэшировать неверные записи локально и предоставлять их другим пользователям, которые совершают запрос.

Эта атака может быть использована для переадресации пользователей с сайта на другой сайт по выбору злоумышленника. Например, злоумышленник подменяет IP-адрес целевого веб-сайта на данном DNS-сервере и заменяет его IP-адрес сервера под собственным контролем. Злоумышленник создает файлы на собственном сервере с именами, совпадающими с теми, что находятся на целевом сервере. Эти файлы обычно содержат вредоносный контент, такой как компьютерные черви или вирусы. Пользователь, чей компьютер ссылается на отравленные DNS-сервер обманом получает контент, поступающий от неавторизованного сервера и неосознанно загружает вредоносный контент. Этот метод может также использоваться для фишинговых атак, где фальшивая версия подлинного сайта создаётся для того, чтобы собрать личные данные, такие как номера банковских и кредитных/дебетовых карт.

Варианты[править | править код]

Например запись для сервера ns.target.example может быть отравлена и перенаправлять все запросы на IP-адрес злоумышленника w.x.y.z. Эти атаки предполагают, что сервер имен для target.example является ns.target.example.

Чтобы выполнить атаки, злоумышленник должен заставить целевой DNS-сервер сделать запрос на домен, контролируемый одним из серверов имен злоумышленников

Перенаправление цели DNS[править | править код]

Первый вариант отравления кэша DNS включает перенаправление сервера имен домена злоумышленника на сервер имен целевого домена, а затем присвоение этому серверу имен IP-адресу, указанному злоумышленником.

Запрос DNS сервера: какой IP-адрес для subdomain.attacker.example?

subdomain.attacker.example. IN A

Ответ атакующего:

Answer:
(no response)
Authority section:
attacker.example. 3600 IN NS ns.target.example.
Additional section:
ns.target.example. IN A w.x.y.z

Уязвимый сервер будет кэшировать дополнительные записи (IP-адрес) для ns.target.example, который позволит ему отвечать на запросы для всей группы доменов target.example.

Перенаправление записи в другой домен[править | править код]

Второй вариант отравления кэша DNS включает перенаправление сервера имен другого домена, не связанного с исходным запросом, на IP-адрес, указанный злоумышленником.

Запрос DNS сервера: какой IP-адрес для subdomain.attacker.example?

subdomain.attacker.example. IN A

Ответ атакующего:

Answer:
(no response)
Authority section:
target.example. 3600 IN NS ns.attacker.example.
Additional section:
ns.attacker.example. IN A w.x.y.z

Уязвимый сервер будет кэшировать несвязанные данные о полномочиях для NS-записи target.example (запись сервера имен), что позволяет злоумышленнику отвечать на запросы во всем домене target.example.

Предупреждения атаки и смягчения последствий[править | править код]

Многие атаки, связанные с отравлением кэша на DNS-серверах, могут быть предотвращены, поскольку они не доверяют информации, переданной им другими DNS-серверами, и игнорируют любые переданные обратно записи DNS, которые не имеют прямого отношения к запросу. Например, версии BIND 9.5.0-P1 и выше выполняют эти проверки. Рандомизация порта источника для DNS-запросов в сочетании с использованием криптографически безопасных случайных чисел для выбора как исходного порта, так и 16-разрядного криптографического числа может значительно снизить вероятность успешных DNS-атак.

Однако, когда маршрутизаторы, брандмауэры, прокси и другие шлюзовые устройства выполняют трансляцию сетевых адресов (NAT) или, более конкретно, преобразование адресов порта (PAT), они могут переписывать исходные порты, чтобы отслеживать состояние соединения. При изменении портов источника, устройства PAT могут удалять случайную случайность порта, реализованную серверами имен и защитными заглушками.

Secure DNS (DNSSEC) использует криптографические цифровые подписи, подписанные доверенным сертификатом открытого ключа, для определения подлинности данных. DNSSEC может противодействовать атакам отравления кешем, но с 2008 года еще не получила широкого применения. В 2010 году DNSSEC была реализована на серверах корневой зоны Интернета.[2]

Такая атака может быть уменьшена на транспортном уровне или на уровне приложения путем выполнения сквозной проверки после установления соединения. Общим примером этого является использование безопасности транспортного уровня и цифровых подписей. Например, используя HTTPS (безопасную версию HTTP), пользователи могут проверить, является ли цифровой сертификат сервера действительным и принадлежит ожидаемому владельцу веб-сайта. Аналогичным образом, программа удаленного входа в безопасный сервер проверяет цифровые сертификаты на конечных точках (если они известны) перед продолжением сеанса. Для приложений, которые загружают обновления автоматически, приложение может вставлять копию сертификата подписи локально и проверять подпись, хранящуюся в обновлении программного обеспечения, по встроенному сертификату.

См. также[править | править код]

Ссылки[править | править код]

  1. Son, Sooel. The Hitchhiker’s Guide to DNS Cache Poisoning, Cornell University. Проверено 3 апреля 2017.
  2. Root DNSSEC 1. ICANN/Verisign. Проверено 5 января 2012.