Что такое искажение кэш-памяти DNS: суть атаки и профилактика

Дата: 03.07.2020. Автор: Игорь Б. Категории: Статьи по информационной безопасности

Искажение кэш-памяти DNS – это добавление поддельных входных данных в кэш DNS с целью перенаправить пользователя на вредоносные веб-сайты.

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

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

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

Влияние искажения кэш-памяти DNS

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

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

Что такое искажение кэш-памяти DNS: суть атаки и профилактика

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

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

Как работает искажение кэш-памяти DNS?

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

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

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

К сожалению, 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, считается, что существует несколько мер предосторожности, а также особые методы, которые компании и поставщики услуг могут предпринять, чтобы предотвратить его. Некоторые из них включают использование DNSSEC и отключение рекурсивных запросов.

Ограничение уровня доверительных отношений

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

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

Использование протокола DNSSEC

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

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

Что такое искажение кэш-памяти DNS: суть атаки и профилактика

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

Включен ли DNSSEC на домене можно мгновенно проверить с помощью средства проверки DNSSEC Test tool.

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

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

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

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

Заключение

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

Автор переведенной статьи: Amos Kingatua.

Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.

Об авторе Игорь Б

Представитель редакции CISOCLUB. Добавляю статьи на сайт.
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *