The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Уязвимости в Dnsmasq, позволяющие подменить содержимое в кэше DNS

20.01.2021 12:19

В пакете Dnsmasq, объединяющем кэширующий DNS-резолвер и сервер DHCP, выявлено 7 уязвимостей, которым присвоено кодовое имя DNSpooq. Проблемы позволяют осуществить атаки по подстановке фиктивных данных в кэш DNS или вызвать переполнение буфера, потенциально способное привести к удалённому выполнению кода атакующего. Уязвимости устранены в сегодняшнем обновлении Dnsmasq 2.83. В качестве обходных путей защиты рекомендуется отключить DNSSEC и кэширование запросов при помощи опций командной строки "--dnssec" и "--cache-size=0" или настроек "dnssec" (нужно закомментировать) и "cache-size=0" в файле конфигурации dnsmasq.conf.

Несмотря на то, что Dnsmasq последнее время перестал применяться по умолчанию в качестве резолвера в обычных дистрибутивах Linux, он продолжает использоваться в Android и специализированных дистрибутивах, таких как OpenWrt и DD-WRT, а также в прошивках беспроводных маршрутизаторов многих производителей. В обычных дистрибутивах не исключено неявное применение dnsmasq, например, при использовании libvirt он может запускаться для обеспечения работы DNS-сервиса в виртуальных машинах или может активироваться при изменении настроек в конфигураторе NetworkManager. Статус устранения проблем в дистрибутивах можно оценить на данных страницах: Debian, OpenWRT, SUSE, Ubuntu, RHEL, Fedora, Arch, FreeBSD.

Так как культура обновления беспроводных маршрутизаторов оставляет желать лучшего, исследователи опасаются, что выявленные проблемы могут долго оставаться неисправленными и будут вовлечены в проведение автоматизированных атак на маршрутизаторы для получения контроля над ними или для перенаправления пользователей на подставные вредоносные сайты. Всего сообщается о примерно 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 году Дэном Камински (Dan Kaminsky). Выявленные проблемы делают имеющуюся защиту неэффективной и позволяют подменить IP-адрес произвольного домена в кэше. Метод Каминского манипулирует незначительным размером поля с идентификационным номером запроса DNS, который составляет всего 16 бит. Для подбора корректного идентификатора, необходимого для спуфинга имени хоста, достаточно отправить примерно 7000 запросов и симулировать около 140 тысяч фиктивных ответов. Атака сводится к отправке на DNS-резолвер большого числа пакетов с фиктивной привязкой к IP и с разными идентификаторами DNS-транзакции.

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

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

Вторая часть проблем (CVE-2020-25681, CVE-2020-25682, CVE-2020-25683 и CVE-2020-25687) вызвана ошибками, приводящими к переполнению буфера при обработке определённых внешних данных. Для уязвимостей CVE-2020-25681 и CVE-2020-25682 не исключается создание эксплоитов, способных привести к выполнению кода в системе. Все отмеченные 4 уязвимости присутствуют в коде с реализацией DNSSEC и проявляются только при включении в настройках проверки через DNSSEC. Например, пакет dnsmasq из состава RHEL 6 и 7 не подвержен данным уязвимостям, так как собран без поддержки DNSSEC, но проблемы проявляются в пакете для RHEL 8, который собран с DNSSEC.

Для эксплуатации уязвимостей требуется совершение действий со стороны клиента - атакующий каким-то образом должен вынудить пользователя отправить к dnsmasq специально оформленные запросы, в которых фигурирует подконтрольный атакующему домен. Выделяется четыре основных сценария атаки:

  • Атаки на открытые резолверы, принимающие запросы извне.
  • Атаки на корпоративные сети с привлечением внутреннего злоумышленника, имеющего доступ к сети, или через компрометацию незащищённого устройства/пользователя во внутренней сети.
  • Атаки на открытые беспроводные сети.
  • Атаки с привлечением web-браузера для трансляции запросов к внутреннему резолверу при открытии жертвой специально подготовленной страницы или при просмотре вредоносной рекламы на обычном сайте (запросы могут генерироваться через JavaScript, по аналогии с атаками NAT slipstreaming и Cable Haunt). К счастью, проведение подобных атак существенно сложнее и возможно не во всех браузерах (например, атаку удалось провести в Safari на iPhone, но метод не сработал в Chrome).


  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Уязвимости в Dnsmasq, позволяющие удалённо выполнить код атакующего
  3. OpenNews: Для атаки на MyEtherWallet использовался захват DNS-сервиса Amazon при помощи BGP
  4. OpenNews: Зафиксирована атака по подмене DNS на уязвимых потребительских маршрутизаторах
  5. OpenNews: Атака NXNSAttack, затрагивающая все DNS-резолверы
  6. OpenNews: Атака SAD DNS для подстановки фиктивных данных в кэш DNS
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/54436-dnsmasq
Ключевые слова: dnsmasq, dns
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (30) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, leibniz (??), 12:53, 20/01/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +13 +/
     
  • 1.2, timur.davletshin (ok), 12:59, 20/01/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    OpenWRT только что обновил пакет. Остальные пока вроде не выкатывали.
     
     
  • 2.6, m (??), 13:25, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Для OpenWRT устанавливаю обновления только всей прошивки. Пакет сам обновится или нужно руками устанавливать. У сайта OpenWRT переделали дизайн, везде белый фон?
     
     
  • 3.7, m (??), 13:27, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    OpenWrt 19.07.6 - Service Release - 19 January 2021
     
  • 3.17, Hhhh (?), 14:54, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще это руками ставится, но нет гарантии что у тебя потом ничего не сломается. Разрабы OpenWRT не советуют по пакетно обновлять.
     
  • 3.20, timur.davletshin (ok), 16:29, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=8055e38794741313
     
  • 2.8, Аноним (8), 13:31, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да, обновил.
    Но версия тажа 2.80, в описании здесь указано 2.83, что подразумевает не фактическое наличие устранение уязвимости.
     
     
  • 3.11, Аноним (11), 13:54, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    opkg update делал?
     
  • 3.13, Аноним (13), 14:02, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В 18.06 обновлений не будет.
     
     
  • 4.28, Аноним (8), 23:37, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Продолжаю ветку,

    это не 18.06
    это 19.07.5


    И перепроверил, все верно. MIPSEL.

    dnsmasq 2.80-16.2 103.8 KB It is intended to provide coupled DNS and DHCP service to a LAN. Installed
    dnsmasq-dhcpv6 2.80-16.2 122.7 KB It is intended to provide coupled DNS and DHCP service to a LAN.… Install…
    dnsmasq-full 2.80-16.2 139.9 KB It is intended to provide coupled DNS and DHCP service to a LAN.…

     
  • 3.30, господин полковник АНБ (?), 08:23, 21/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Версия и должна быть 2.80-16.2
    dnsmasq - 2.80-16.2  - for stable 19.07 release
    dnsmasq - 2.83-1     - for master/snapshot
     
  • 2.19, Ivan_83 (ok), 16:27, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На OpenWRT можно поставить unbound и не пользоватся этим поделием для работы с DNS вообще.

    Но требуется доп конфигурация, не очень очевидная, чтобы оно стало работать вместо dnsmasq.

    В dnsmasq прописывается порт для приёма днс запросов как 0.
    В настройках дхцп сервера для локалки добавляется руками опция, там в гуе дан пример как добавлять кастомный днс сервер, вот IP из примера заменяется на 0.0.0.0.
    А дальше уже настройки самого unbound крутить.

     

  • 1.3, Аноним (11), 13:04, 20/01/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    ДНСпук
     
     
  • 2.5, Аноним (5), 13:15, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Исследователи из Израиля, явно знающие русский язык.
     
     
  • 3.35, Аноним (-), 22:30, 22/01/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Специально для тех, кого на почве дисбактериоза или наци^Wанальной мании величия пучит, основные значения слова "spook"
    https://translate.google.com/?sl=auto&tl=ru&text=spook&op=translate
    Не благодарите.
     

  • 1.4, ryoken (ok), 13:12, 20/01/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >>Так как культура обновления беспроводных маршрутизаторов оставляет желать лучшего

    Хорошо написано. Увесистый булыжник многим в огород.

     
     
  • 2.9, Аноним (9), 13:37, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну и что такого, мне теперь каждый день накатывать транк на роутер? Флешка там говно наверно, быстро затрётся. Нужно просто иметь какую-то рассылку с такими вещами, где была бы собрана вся корреспонденция, чтобы при удобной возможности можно было ознакомиться со всеми новыми проблемами и решить их. Т.е. рассылка с исключительно полезной информацией о вещах требующих твоего прямого вмешательства.
     
     
  • 3.25, Crazy Alex (ok), 17:18, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Транк - нет, конечно. Но вообще-то именно для этого было придумано разделение "development" и "stable", и во второй только дыры латают.
     
  • 2.14, КО (?), 14:22, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А какая разница, на мой древний роутер только извращенец позарится. Ему ещё и найти меня надо будет для проведения атаки. Глупости все эти уязвимости
     
     
  • 3.15, ryoken (ok), 14:26, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А какая разница, на мой древний роутер только извращенец позарится. Ему ещё
    > и найти меня надо будет для проведения атаки. Глупости все эти
    > уязвимости

    Во-во, про вас и выше товарища и написано. Владельцы ботнетов таких юзеров любят, поди.

     
     
  • 4.16, Аноним (9), 14:40, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если только владелец ботнета твой сосед.
     
     
  • 5.33, draw1 (?), 01:13, 22/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А в вашей вселенной владельцы ботнетов вручную прям дыры ковыряют и только у тех кого лично знают?
     
     
  • 6.34, Аноним (9), 09:56, 22/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В нашей вселенной доступ к уязвимостям максимум по вайфаю.
     
  • 2.21, Аноним (21), 16:37, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это не им увесистый булыжник в огород. Они скажут "Хотим денег. Много. Чем больше - тем лучше. Плати - будет обновление. Не хочешь платить - тебя поломают полностью." С каких это пор в обществе желание заработать денег порицалось? Наоборот порицаются нежелание заработать денег и желание не дать другим нажиться на ком-то.

    Так что это не камень в огород, а большая табличка "МОЛОДЦЫ ребята, всех поимели! Так держать! Каждый должен последовать их примеру!"

     

  • 1.10, Zenitur (ok), 13:44, 20/01/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ждём обновления DD-WRT для роутера D-Link DIR-300.
     
     
  • 2.12, Аноним (9), 13:54, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так вроде ddwrt это тухлая компиляция блобов от Васяна, не лучше будет накатить нормальный openwrt? Васян всё равно код из неё брать будет.
     
     
  • 3.18, Аноним (18), 16:13, 20/01/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    С DIR-300 лучше будет просто накатить и про все забыть
     

  • 1.29, 1 (??), 08:02, 21/01/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А как-то возможно узнать версию dnsmasq на роутере если доступа к консоли нет? в смысле извне
     
     
  • 2.32, InuYasha (??), 12:59, 21/01/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    на крайняк - попробовать попенетрировать?
     

  • 1.31, Аноним (31), 11:05, 21/01/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    сабж штука хорошая.

    надо будет на работу пакет для 7 альта пересобрать...

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру