Выигрыш в гонке с поддельным ответом
Атакующий
опережает настоящий ответ
Поддельный ответ
приходит первым
Кэш резолвера
отравлен для всех его пользователей
DNS-спуфинг и отравление кеша: практический обзор
DNS изначально проектировали без какого-либо способа проверить, что ответ действительно пришёл от того сервера имён, за который себя выдаёт. Эта брешь делает возможным спуфинг: злоумышленник, способный перехватить DNS-запрос или опередить настоящий ответ, может прислать поддельный ответ, направляющий жертву на выбранный им адрес. Часто так перенаправляют трафик на вредоносный сервер, выдающий себя за легитимный сайт.
Отравление кеша: та же идея в большом масштабе
Отравление кеша берёт ту же идею с подделанным ответом, но целится не в одну жертву, а в общий резолвер. Если злоумышленнику удаётся подсунуть поддельный ответ в кеш широко используемого рекурсивного резолвера, каждый следующий пользователь этого резолвера получает отравленный ответ до его истечения. Так одна удачная подделка превращается в атаку на всех, кто пользуется тем же резолвером, и перехватывать запросы каждого из них по отдельности не нужно.
Как современный DNS защищается
| Защита | От чего защищает | Развёрнута повсеместно? |
|---|---|---|
| Рандомизация исходного порта и идентификатора запроса | Подбор поддельного ответа раньше настоящего | Да, стандарт с 2008 года |
| DNSSEC | Поддельный ответ, выдающий себя за авторитативный сервер | Нет: внедрение по интернету частичное |
| DNS-over-HTTPS / DNS-over-TLS | Перехват самого запроса на пути | Растёт, но не везде используется по умолчанию |
Ни одна из этих защит не развёрнута повсеместно, а внедрение DNSSEC в частности остаётся частичным среди доменов, из которых состоит интернет. Использование хорошо управляемого публичного резолвера с упором на безопасность и привычка перепроверять неожиданный или подозрительный результат разрешения через второй, независимый резолвер остаются разумной практической мерой предосторожности, даже когда DNSSEC не задействован.
Баг, изменивший отношение к проблеме
Отравление кеша перестало быть теоретической угрозой в 2008 году, когда исследователь безопасности Дэн Камински раскрыл фундаментальный изъян, затрагивавший почти все использовавшиеся тогда DNS-резолверы: пространство возможных идентификаторов транзакции и исходных портов, которые злоумышленнику нужно было угадать, было достаточно малым, чтобы перебрать его за секунды по быстрому соединению. Это позволяло отравить кеш резолвера сразу для целого домена, а не для одной записи. Раскрытие уязвимости привело к необычно скоординированному одновременному выпуску патчей всеми крупными поставщиками DNS-ПО, рандомизация исходного порта стала стандартом почти мгновенно, и во многом именно поэтому перечисленные выше защиты существуют в нынешнем виде.
Почему внедрение DNSSEC всё ещё отстаёт, хотя исправлению уже двадцать лет
DNSSEC решает исходную проблему доверия гораздо полнее, чем одна лишь рандомизация портов: это криптографическое доказательство, а не просто более трудная игра в угадывание. Медленное распространение связано скорее с операционной сложностью, чем с сомнениями в ценности технологии: корректно подписать зону, вовремя ротировать ключи, не сломав валидацию, и сохранять неразрывной всю цепочку доверия от корня до конкретного домена заметно сложнее, чем добавить неподписанную запись A. Одна ошибка в этом процессе приводит именно к тому сбою SERVFAIL, о котором рассказано в других материалах этой серии, и это само по себе сдерживает небольших операторов доменов, у которых нет в штате специалистов по DNS. Разрыв между «решено в теории» и «развёрнуто везде на практике» типичен для инфраструктуры безопасности, и DNSSEC — яркий тому пример.
Нужно проверить публичные DNS-адреса домена? Воспользуйтесь инструментом Domain IP Lookup.
Читайте также
Публичное и приватное адресное пространство
Публичный IP
192.0.2.10
глобально уникален — маршрутизируется отовсюду
Приватные диапазоны
не маршрутизируются в публичном интернете
Почему частные диапазоны IP никогда не должны разрешаться публично
10.0.0.0/8, 192.168.0.0/16 и соседние диапазоны существуют именно для того, чтобы не быть глобально уникальными, и вот почему это важно для DNS.
SSRF превращает сервер в невольного прокси
Атакующий
готовит URL запроса
Уязвимый сервер
обманут SSRF, запрашивает его
169.254.169.254
эндпоинт метаданных
Учётные данные
возвращаются атакующему
Эндпоинты метаданных в облаке: скрытая поверхность атаки
Один на вид нерутируемый IP-адрес открывает облачным инстансам доступ к учётным данным и конфигурации и часто становится целью SSRF-атак.
Один и тот же адрес — четыре способа записи
SSRF-атаки: как злоумышленники используют DNS
Подделка запросов на стороне сервера часто начинается с обычного доменного имени, которое ваш сервер обманом заставили разрешить и запросить.