Перейти в канал

infosec&anti_malware

1
| Переслано из: <Андрей Созыкин (Andrey Sozykin)> | Взломать DNS за 10 секунд: атака отравления кэша Именно такое время потребовалось Дэну Камински в 2008 году чтобы реализовать атаку отравления кэша на популярный DNS-сервер BIND. Как оказалось, атаке отравления кэша были подвержены почти все реализации серверов DNS, которые применялись в то время в интернете. Злонамеренное использование такой уязвимости могло привести к значительным сбоям на уровне всего мира 😱. Атака отравления кэша DNS устроена следующим образом. DNS-резолвер, который работает в рекурсивном режиме, получает от клиента запрос на разрешение доменного имени. DNS-резолвер пересылает этот запрос одному из авторитетных серверов системы DNS. Злоумышленник перехватывает такой запрос и отправляет поддельный ответ, в котором указан неправильный IP-адрес. Если DNS-резолвер сохранит такой ответ в кэше, то он некоторое время будет выдавать всем своим клиентам неправильный IP-адрес для доменного имени. На этом адресе может размещаться, например, поддельный сайт банка. DNS-резолвер сохранит поддельный IP-адрес в кэш, только если идентификатор в заголовке запроса DNS совпадет с идентификатором в заголовке поддельного DNS-ответа. Чтобы этого добиться, злоумышленник просто отправляет DNS-резолверу большое количество поддельных ответов с разными значениями идентификатора. Размер идентификатора в заголовке пакета DNS составляет 16 бит, возможно всего 65536 различных вариантов, что не очень много. Как показал Ден Камински, на практике подобрать нужный идентификатор можно за 10 секунд (смотрите про парадокс дней рождений). В деталях разобраться, как реализуется атака отравления кэша, можно в статье "An Illustrated Guide to the Kaminsky DNS Vulnerability". Как защититься от такой атаки? В 2008 году было предложено несколько быстрых решений, например, проверять не только идентификатор, но и номер UDP порта клиента, который выбирается случайным образом. Именно так делал Дэниел Бернштейн в сервере djbdns, который не удалось взломать в 2008 году. Однако даже при таком подходе атака остается реализуема, но требует больше времени. Сейчас есть защищенные версии протокола DNS: DNSSEC, в котором используется цифровая подпись, и DNS over TLS (DoT) или DNS over HTTPS (DoH), в которых для передачи всех данных используется шифрование. Эти версии DNS мы подробно рассмотрим в разделе курса по защищенным сетевым протоколам.