Подмена DNS , также называемая отравлением кэша DNS , является формой взлома компьютерной безопасности , при которой поврежденные данные системы доменных имен вводятся в кэш DNS -резолвера , заставляя сервер имен возвращать неверную запись результата, например IP-адрес . Это приводит к перенаправлению трафика на любой компьютер, который выберет злоумышленник.
Сервер системы доменных имен преобразует понятное человеку доменное имя (например, example.com
) в числовой IP-адрес , который используется для маршрутизации коммуникаций между узлами . [1] Обычно, если сервер не знает запрошенного перевода, он запрашивает его у другого сервера, и процесс продолжается рекурсивно . Для повышения производительности сервер обычно запоминает (кэширует) эти переводы на определенное время. Это означает, что если он получает еще один запрос на тот же перевод, он может ответить, не спрашивая никаких других серверов, пока не истечет срок действия этого кэша.
Когда DNS-сервер получает ложный перевод и кэширует его для оптимизации производительности, он считается отравленным и предоставляет ложные данные клиентам. Если DNS-сервер отравлен, он может возвращать неверный IP-адрес, перенаправляя трафик на другой компьютер (часто атакующий). [2]
Обычно сетевой компьютер использует DNS-сервер, предоставляемый поставщиком услуг Интернета (ISP) или организацией пользователя компьютера. DNS-серверы используются в сети организации для улучшения производительности ответа на разрешение путем кэширования ранее полученных результатов запроса. Атаки отравления на один DNS-сервер могут повлиять на пользователей, обслуживаемых напрямую скомпрометированным сервером или косвенно обслуживаемых его нижестоящим сервером(ами), если применимо. [3]
Для выполнения атаки с отравлением кэша злоумышленник использует недостатки в программном обеспечении DNS. Сервер должен правильно проверять ответы DNS, чтобы гарантировать, что они исходят из авторитетного источника (например, с помощью DNSSEC ); в противном случае сервер может кэшировать неверные записи локально и предоставлять их другим пользователям, которые делают тот же запрос.
Эта атака может быть использована для перенаправления пользователей с веб-сайта на другой сайт по выбору злоумышленника. Например, злоумышленник подделывает записи DNS IP-адреса для целевого веб-сайта на заданном DNS-сервере и заменяет их IP-адресом сервера, находящегося под его контролем. Затем злоумышленник создает файлы на сервере, находящемся под его контролем, с именами, совпадающими с именами на целевом сервере. Эти файлы обычно содержат вредоносный контент, такой как компьютерные черви или вирусы . Пользователь, чей компьютер ссылается на отравленный DNS-сервер, обманывается и принимает контент, поступающий с неаутентичного сервера, и неосознанно загружает вредоносный контент. Этот метод также может быть использован для фишинговых атак, когда создается поддельная версия настоящего веб-сайта для сбора личных данных, таких как данные банка и кредитной/дебетовой карты.
Уязвимость систем к отравлению кэша DNS выходит за рамки его непосредственных эффектов, поскольку она может открыть пользователей для дополнительных рисков, таких как фишинг , внедрение вредоносного ПО , отказ в обслуживании и захват веб-сайта из-за уязвимостей системы. Различные методы, начиная от использования тактики социальной инженерии и заканчивая эксплуатацией слабостей, присутствующих в программном обеспечении DNS-сервера, могут привести к этим атакам. [4]
В следующих вариантах записи для сервераns.цель .примербудет отравлен и перенаправлен на сервер имен злоумышленника по IP-адресу wxyz . Эти атаки предполагают, что сервер имен дляцель.примерявляетсяns.целевой.пример.
Для осуществления атак злоумышленник должен заставить целевой DNS-сервер сделать запрос на домен, контролируемый одним из серверов имен злоумышленника. [ необходима цитата ]
Первый вариант отравления кэша DNS заключается в перенаправлении сервера имен домена злоумышленника на сервер имен целевого домена, а затем назначении этому серверу имен IP-адреса, указанного злоумышленником.
Запрос DNS-сервера: каковы адресные записи дляподдомен.атакующий.пример?
поддомен.атакующий.пример. В A
Ответ злоумышленника:
(нет ответа)
пример.атакующего. 3600 IN NS ns.цель.пример.
ns.целевой.пример.IN A w.xyz
Уязвимый сервер будет кэшировать дополнительную A-запись (IP-адрес) дляns.целевой.пример, что позволяет злоумышленнику разрешать запросы ко всемуцель.примердомен.
Второй вариант отравления кэша DNS заключается в перенаправлении сервера имен другого домена, не связанного с исходным запросом, на IP-адрес, указанный злоумышленником. [ необходима цитата ]
Запрос DNS-сервера: каковы адресные записи дляподдомен.атакующий.пример?
поддомен.атакующий.пример. В A
Ответ злоумышленника:
(нет ответа)
цель.пример. 3600 IN NS ns.атакующий.пример.
ns.attacker.example.IN A w.xyz
Уязвимый сервер будет кэшировать несвязанную информацию о полномочиях дляцель.примерNS-запись (запись сервера имен), позволяющая злоумышленнику разрешать запросы ко всемуцель.примердомен.
Многие атаки отравления кэша на DNS-серверы можно предотвратить, если меньше доверять информации, передаваемой им другими DNS-серверами, и игнорировать любые переданные обратно записи DNS, которые не имеют прямого отношения к запросу. Например, версии BIND 9.5.0-P1 [5] и выше выполняют эти проверки. [6] Рандомизация исходного порта для DNS-запросов в сочетании с использованием криптографически безопасных случайных чисел для выбора как исходного порта, так и 16-битного криптографического одноразового номера может значительно снизить вероятность успешных атак DNS-гонки. [ необходима цитата ]
Однако, когда маршрутизаторы, брандмауэры , прокси и другие шлюзовые устройства выполняют трансляцию сетевых адресов (NAT) или, более конкретно, трансляцию адресов портов (PAT), они могут переписывать исходные порты для отслеживания состояния соединения. При изменении исходных портов устройства PAT могут удалять случайность исходного порта, реализованную серверами имен и резольверами-заглушками. [ необходима цитата ] [7]
Secure DNS ( DNSSEC ) использует криптографические цифровые подписи, подписанные с помощью доверенного сертификата открытого ключа, для определения подлинности данных. DNSSEC может противостоять атакам отравления кэша. В 2010 году DNSSEC был реализован на серверах корневой зоны Интернета., [8] но его также необходимо развернуть на всех серверах доменов верхнего уровня . Готовность DNSSEC для них показана в списке доменов верхнего уровня Интернета . По состоянию на 2020 год все исходные TLD поддерживают DNSSEC, как и национальные TLD большинства крупных стран, но многие национальные TLD по-прежнему этого не делают.
Этот вид атаки может быть смягчен на транспортном уровне или уровне приложений путем выполнения сквозной проверки после установки соединения. Типичным примером этого является использование Transport Layer Security и цифровых подписей . Например, используя HTTPS (безопасная версия HTTP ), пользователи могут проверить, является ли цифровой сертификат сервера действительным и принадлежит ли он ожидаемому владельцу веб-сайта. Аналогичным образом, программа удаленного входа в защищенную оболочку проверяет цифровые сертификаты на конечных точках (если они известны) перед продолжением сеанса. Для приложений, которые автоматически загружают обновления, приложение может встроить копию сертификата подписи локально и проверить подпись, сохраненную в обновлении программного обеспечения, по встроенному сертификату. [9]