Привет! Продолжаем темы связанные с DNS, сегодня речь пойдёт о DNS Cache Poisoning, или отравление DNS кэша.
Что это?
DNS CP - отравление кэша DNS-серверов. Компании зачастую используют локальные DNS-сервера для более быстрых ответов и кэширования.
Для чего отравлять эти ваши кэши?
Для перевода пользователя на страницу злоумышленника, либо же MITM атаки. При отравлении кэша мы можем перезаписать его с записями злоумышленника (На локальном DNS-сервере компании), после чего, локальный DNS-сервер будет направлять нас на хост злоумышленника, до того момента, пока TTL кэша не подойдёт к концу.
Почему происходит отравление кэша?
Потому. DNS не имеет системы подтверждения подлинности ответа - это значит то, что при запросе локального DNS-сервера компании к корневому, мы можем ответить вместо корневого и записать в кэш свои записи.
Разве у DNS нет прям никакой проверки подлинности ответа?
Ну, как бы есть. Проверяется ID транзакции, источник и порт. Порт по умолчанию - 53, источник - понятно дело достать легко, ID транзакции - уже посложнее. Дело в том, что ID транзакции - 16 битное число и в среднем чтобы его забрутить требуется 256 попыток.
И как тогда защититься?
DNSSEC, использовать транспортный уровень в модели OSI с подписями, использование случайных портов, в общем - уменьшение доверия к информации.
Так как же всё таки это всё работает?
Думаю, об этом вы уже и сами догадались. Когда локальный DNS-сервер компании делает запрос к корневому серверу, мы подделываем его ответ, чтобы записать в кэш нужные нам записи, а дальше локальный DNS-сервер компании будет на любой запрос к нему кидать записи злоумышленника.
Надеюсь эта статья была интересна для прочтения и полезна для вас!
Автор не побуждает к действиям, вся информация представлена в целях обезопасить себя от отравления DNS кэша!