Уязвимости, обнаруженные в Dnsmasq, позволяют подменять контент в кеше DNS

Недавно была опубликована информация об обнаружении семи уязвимостей в пакете Dnsmasq, который объединяет кэширующий DNS-сервер и DHCP-сервер, получившем кодовое название DNSpooq. Эти проблемы позволяют осуществлять атаки с использованием поддельного DNS-кэша или переполнения буфера , что может привести к удаленному выполнению кода злоумышленником.

Хотя Dnsmasq недавно был признан устаревшим в качестве DNS-сервера по умолчанию в стандартных дистрибутивах Linux, он по-прежнему используется в Android и специализированных дистрибутивах, таких как OpenWrt и DD-WRT, а также в прошивке многих беспроводных маршрутизаторов. В стандартных дистрибутивах возможно неявное использование dnsmasq; например, при использовании libvirt его можно запустить для предоставления DNS-сервиса в виртуальных машинах или включить, изменив настройки в конфигураторе NetworkManager.

Учитывая, что практика обновления беспроводных маршрутизаторов оставляет желать лучшего, исследователи опасаются, что выявленные проблемы могут оставаться нерешенными в течение длительного времени и стать мишенью для автоматизированных атак на маршрутизаторы с целью получения над ними контроля или перенаправления пользователей на поддельные вредоносные сайты.

Примерно 40 компаний используют Dnsmasq , в том числе Cisco, Comcast, Netgear, Ubiquiti, Siemens, Arista, Technicolor, Aruba, Wind River, Asus, AT&T, D-Link, Huawei, Juniper, Motorola, Synology, Xiaomi, ZTE и Zyxel. Пользователям этих устройств может быть рекомендовано воздержаться от использования встроенной службы переадресации DNS-запросов.

Первая часть обнаруженных в Dnsmasq уязвимостей связана с защитой от атак отравления DNS-кэша, основанной на методе, предложенном в 2008 году Дэном Камински.

Выявленные уязвимости делают существующую защиту неэффективной и позволяют подменять IP-адрес произвольного домена в кэше. Метод Каминского манипулирует ничтожно малым размером поля идентификации DNS-запроса, которое составляет всего 16 бит.

Чтобы найти правильный идентификатор, необходимый для подмены имени хоста, достаточно отправить примерно 7.000 запросов и смоделировать около 140 000 поддельных ответов. Атака сводится к отправке большого количества поддельных IP-пакетов DNS-серверу с различными идентификаторами DNS-транзакций.

Выявленные уязвимости снижают ожидаемый уровень энтропии с 32 бит до 19 бит, необходимых для угадывания, что делает атаку отравления кэша вполне реалистичной. Кроме того, обработка записей CNAME в dnsmasq позволяет ему подделывать строку записи CNAME, эффективно имитируя до девяти записей DNS одновременно.

  • CVE-2020-25684: отсутствие проверки идентификатора запроса в сочетании с IP-адресом и номером порта при обработке ответов DNS от внешних серверов. Такое поведение несовместимо с RFC-5452, который требует использования дополнительных атрибутов запроса при сопоставлении ответа.
  • CVE-2020-25686: Отсутствие проверки ожидающих запросов с тем же именем, что позволяет использовать метод дня рождения, чтобы значительно сократить количество попыток, необходимых для подделки ответа. В сочетании с уязвимостью CVE-2020-25684 эта функция может значительно снизить сложность атаки.
  • CVE-2020-25685: использование ненадежного алгоритма хеширования CRC32 при проверке ответов, в случае компиляции без DNSSEC (SHA-1 используется с DNSSEC). Уязвимость может быть использована для значительного сокращения количества попыток, позволяя использовать домены, которые имеют тот же хэш CRC32, что и целевой домен.
  • Второй набор проблем (CVE-2020-25681, CVE-2020-25682, CVE-2020-25683 и CVE-2020-25687) вызван ошибками, которые вызывают переполнение буфера при обработке определенных внешних данных.
  • Для уязвимостей CVE-2020-25681 и CVE-2020-25682 можно создавать эксплойты, которые могут привести к выполнению кода в системе.

В заключение следует отметить, что уязвимости устранены в обновлении Dnsmasq 2.83 , и в качестве обходного пути рекомендуется отключить DNSSEC и кэширование запросов с помощью параметров командной строки.

Источник: https://kb.cert.org


Добавить в качестве предпочтительного источника в Google