Нещодавно було оприлюднено інформацію про виявлення семи вразливостей у пакеті Dnsmasq, який поєднує кешуючий DNS-резолвер та DHCP-сервер під кодовою назвою DNSpooq. Ці проблеми дозволяють здійснювати фальшиві атаки на кеш DNS або переповнення буфера , що може призвести до віддаленого виконання коду зловмисником.
Хоча Dnsmasq нещодавно вилучили як стандартний резолвер у стандартних дистрибутивах 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