Что такое DNS-спуфинг - как он работает и меры по его предотвращению?

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

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

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

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

Влияние отравления DNS-кешем

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

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

DNS-спуфинг

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

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

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

Как работает DNS-спуфинг?

Хакеры могут отравить кэш DNS, используя различные методы.

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

Например, без системы DNS пользователи должны будут помнить строку чисел, которая составляет IP-адреса для всех веб-сайтов, которые они хотят посетить или посетить.

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

Как работает DNS-спуфинг?

Отравление кэша DNS включает вставку поврежденных записей в базу данных кэша сервера имен DNS, и злоумышленники используют разные методы:

  • Когда пользователь веб-сайта или веб-приложения отправляет запрос на определенный домен через браузер или онлайн-приложение, DNS-сервер сначала проверяет, существует ли запись в кэше. Если он не сохранен, то запросит информацию у официальных DNS-серверов, а затем ожидает ответа. В течение некоторого времени злоумышленники могут использовать этот узкий период ожидания, временно взять на себя роль исходного DNS и выдать поддельный ответ, прежде чем уполномоченный сервер отправит подлинный адрес. Однако, поскольку период ожидания обычно очень короткий, вероятность успеха очень низкая.
  • Другой способ заключается в отправке поддельных ответов с DNS-сервера, выдающего себя за законного. Поскольку обычно нет подтверждения для информации DNS, злоумышленники могут подделать ответ от распознавателя DNS, когда он запрашивает сервер имен. Это также стало возможным благодаря тому, что DNS-серверы используют протокол пользовательских дейтаграмм (UDP) вместо TCP. Обычно связь DNS небезопасна из-за незашифрованной информации в пакетах UDP и отсутствия аутентификации. Это позволяет злоумышленникам легко изменить ответы и вставить свои поддельные адреса.

Уязвимости DNS, которые используют злоумышленники

Уязвимости безопасности в некоторых веб-приложениях, а также отсутствие надлежащей аутентификации записей DNS позволяют киберпреступникам легко скомпрометировать ответы DNS и остаться незамеченными. Некоторые из этих уязвимостей включают в себя;

Отсутствие проверки и подтверждения

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

Рекурсивная уязвимость DNS-сервера

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

Рекурсивная уязвимость DNS-сервера

Поскольку сервер ищет адрес, он предоставляет злоумышленнику возможность перехватить трафик и предоставить поддельный ответ. Затем рекурсивный DNS-сервер отправит ответ пользователю, сохранив при этом поддельный IP-адрес в кеше.

Отсутствие шифрования

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

Как предотвратить отравление кеша DNS?

Мониторинг данных DNS в режиме реального времени может помочь установить наличие необычных шаблонов, действий пользователя или поведения, такого как посещение вредоносных веб-сайтов. И хотя обнаружить заражение DNS-кэша сложно, существует несколько мер безопасности, которые могут предпринять компании и поставщики услуг, чтобы предотвратить это. Некоторые из мер, которые предотвращают отравление DNS-кэша, включают использование DNSSEC, отключение рекурсивных запросов и многое другое.

Выставляйте лимит уровня доверия

Одной из уязвимостей в транзакциях DNS являются доверительные отношения между различными DNS-серверами. Это означает, что серверы не проверяют подлинность получаемых ими записей, что позволяет злоумышленникам даже отправлять поддельные ответы со своих незаконных серверов.

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

Используйте протокол DNSSEC

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

В обычной работе протокол DNSSEC связывает уникальную криптографическую подпись с другой информацией DNS, такой как записи CNAME и A. DNS-распознаватель затем использует эту подпись для проверки подлинности ответа DNS перед отправкой его пользователю.

DNS-спуфинг

Подписи безопасности гарантируют, что ответы на запросы, которые получают пользователи, аутентифицируются законным исходным сервером. Хотя DNSSEC может предотвратить заражение кэша DNS, у него есть такие недостатки, как сложное развертывание, раскрытие данных и уязвимость перечисления зон в более ранних версиях.

Используйте последние версии программного обеспечения DNS и BIND (Berkeley Internet Name Domain).

BIND версии 9.5.0 или выше обычно имеет расширенные функции безопасности, такие как криптографически безопасные идентификаторы транзакций и рандомизация портов, что помогает минимизировать заражение кеша DNS. Кроме того, ИТ-отделы должны поддерживать программное обеспечение DNS в актуальном состоянии и гарантировать, что это самая последняя и безопасная версия.

Помимо вышесказанного, ниже приведены другие эффективные средства или методы для предотвращения DNS-спуфинга:

  • Настройка DNS-сервера для ответа только информацией, относящейся к запрашиваемому домену
  • Убедитесь, что сервер кэша хранит только данные, относящиеся к запрашиваемому домену
  • Обеспечить использование HTTP для всего трафика
  • Отключить функцию рекурсивных запросов DNS

Заключение

Отравление кэша DNS приводит к отвлечению пользователей домена от вредоносных адресов от их предполагаемой цели. Некоторые контролируемые злоумышленниками серверы могут заставить ничего не подозревающих пользователей загружать вредоносные программы или предоставлять пароли, информацию о кредитных картах и ​​другие конфиденциальные личные данные. Чтобы этого не случилось, важно использовать лучшие практики безопасности.

Также рекомендуем прочитать:

  1. Что делает DNS сервер, зачем он нужен и как настроить DNS-сервер если он не отвечает?
  2. Как настроить локальный DNS-сервер на Linux?
  3. Что такое черный список URL-адресов и как от него защититься?
  4. Увеличить производительность WordPress с помощью этих плагинов