Опубликованы корректирующие обновления стабильных веток DNS-сервера BIND 9.11.18 и 9.16.2, а также находящейся в разработке экспериментальной ветки 9.17.1. В новых выпусках устранена проблема безопасности, связанная с неэффективностью защиты от атак "DNS rebinding" при работе в режиме перенаправляющего запросы DNS-сервера (блок "forwarders" в настройках). Кроме того, проведена работа по сокращению размера хранящейся в памяти статистики цифровых подписей для DNSSEC - число отслеживаемых ключей сокращено до 4 для каждой зоны, чего достаточно в 99% случаев.
Техника "DNS rebinding" позволяет при открытии пользователем определённой страницы в браузере установить WebSocket-соединение к сетевому сервису во внутренней сети, недоступному для прямого обращения через интернет. Для обхода применяемой в браузерах защиты от выхода за пределы области текущего домена (cross-origin) применяется смена имени хоста в DNS. На DNS-сервере атакующего настраивается поочерёдная отдача двух IP-адресов: на первый запрос отдаётся реальный IP сервера со страницей, а на последующие запросы возвращается внутренний адрес устройства (например, 192.168.10.1).
Время жизни (TTL) для первого ответа выставляется в минимальное значение, поэтому при открытии страницы браузер определяет реальный IP сервера атакующего и загружает содержимое страницы. На странице запускается JavaScript-код, который ожидает истечения TTL и отправляет второй запрос, который теперь определяет хост как 192.168.10.1. Это позволяет из JavaScript обратиться к сервису внутри локальной сети, обойдя ограничение cross-origin. Защита от подобных атак в BIND основана на блокировании возвращения внешними серверами IP-адресов текущей внутренней сети или CNAME-алиасов для локальных доменов при помощи настроек deny-answer-addresses и deny-answer-aliases.
|