В последнее время всё чаще слышно о различных сетевых атаках: на RDP, разработчиков методов борьбы с коронавирусом и даже на суперкомпьютеры.
Израильские учёные из Тель-Авивского университета и Междисциплинарного центра в Герцлии опубликовали ещё один метод, позволяющий использовать в качестве атакующего средства DNS-резолверы.
Службы DNS, как известно, используются в сетях для получения информации о доменах, например, для получения IP-адреса по имени хост-системы. Однако согласно опубликованному исследованию, именно DNS-резолверы можно использовать и в качестве так называемых «усилителей трафика»: на каждый отправленный запрос резолвер может отправить в сторону системы-жертвы до 1621 запроса. В пересчёте на трафик коэффициент усиления может достигать 163.
Проблема лежит в особенностях функционирования самого протокола и затрагивает все серверы DNS, поддерживающие рекурсивную обработку запросов:
- BIND (CVE-2020-8616, исправлено в 9.11.19, 9.14.2 и 9.16.3);
- Knot (CVE-2020-12667, исправлено в 5.1.1);
- PowerDNS (CVE-2020-10995, исправлено в 4.1.16, 4.2.2 и 4.3.1);
- Windows DNS Server;
- Unbound (CVE-2020-12662, исправлено в 1.10.1).
Угрозу могли представлять и публичные DNS-службы ICANN, Google, Cloudflare, Amazon, Oracle (DYN), Verisign и Quad9. Они, к счастью, уже избавились от этой проблемы.
Основана атака NXNSAttack на использовании запросов, ссылающихся на фиктивные NS-записи, но без указания glue-записей с данными об IP-адресах. Если упоминаемый NS-сервер не встречался ранее, и его IP не указан, резолвер пытается определить адрес, запрашивая DNS-сервер жертвы, обслуживающий целевой домен (victim.com на приведённой диаграмме).
Атакующий способен выдать список не повторяющихся случайных NS-записей с несуществующими именами поддоменов для серверов. Резолвер будет безуспешно пытаться получить от них ответ и переберёт все перечисленные атакующей стороной записи, а от потока запросов, разумеется, пострадает DNS-сервер жертвы.
Интересно, что «степень усиления» различна для разных служб: для Google и OpenDNS это 30 раз и 32 раза соответственно. Не так уж много на фоне Norton ConnectSafe, у которого это целых 569 раз.
Исследователи предлагают и стратегии защиты. Для систем с DNSSEC это использование стандарта RFC-8198, не позволяющее обходить кеш DNS. Более простой способ заключается в ограничении числа имён, определяемых при обработке одного делегированного запроса.
Подробная информация содержится в опубликованном израильскими специалистами документе. Для защиты предлагается либо ограничить длину списка для обхода в рамках одного запроса, либо воспользоваться RFC-8198 при наличии DNSSEC.