The OpenNET Project / Index page

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

Уязвимости KeyTrap и NSEC3, затрагивающие большинство реализаций DNSSEC

14.02.2024 17:53

В различных реализациях протокола DNSSEC выявлены две уязвимости, затрагивающие DNS-резолверы BIND, PowerDNS, dnsmasq, Knot Resolver и Unbound. Уязвимости позволяют добиться отказа в обслуживании DNS-резолверов, выполняющих валидацию при помощи DNSSEC, из-за возникновения высокой нагрузки на CPU, мешающей обработке других запросов. Для совершения атаки достаточно отправить на DNS-резолвер, использующий DNSSEC, запрос, приводящий к обращению к специально оформленной DNS-зоне на сервере злоумышленника.

Выявленные проблемы:

  • CVE-2023-50387 (кодовое имя KeyTrap) - при обращении к специально оформленным DNS-зонам приводит к отказу в обслуживании из-за создания значительной нагрузки на CPU и длительного выполнения проверки DNSSEC. Для совершения атаки необходимо разместить на подконтрольном атакующему DNS-сервере доменную зону с вредоносными настройками, а также добиться обращения этой зоне рекурсивного DNS-сервера, отказа в обслуживании которого добивается атакующий.

    Вредоносные настройки сводятся к использованию для зоны комбинации из конфликтующих между собой ключей, записей RRSET и цифровых подписей. Попытка проверки с использованием данных ключей приводит к выполнению длительных ресурсоёмких операций, которые могут полностью нагружать CPU и блокировать обработку других запросов (например, утверждается, что при атаке на BIND удалось остановить обработку других запросов на 16 часов).

  • CVE-2023-50868 (кодовое имя NSEC3) - отказ в обслуживании из-за выполнения значительных вычислений при вычислении хэшей в записях NSEC3 (Next Secure v3) при обработке специально оформленных ответов DNSSEC. Метод атаки напоминает первую уязвимость, за исключением того ,что на DNS-сервере злоумышленника создаётся специально оформленный набор записей NSEC3 RRSET.

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

В качестве мер для блокирования уязвимостей в резолверах ограничено максимальное число ключей DNSSEC, задействованных в процессе построения цепочки доверия, и максимальное число вычислений хэшей для NSEC3, а также лимитированы повторные попытки проверки для каждого RRSET (комбинации ключей и подписей) и каждого ответа сервера.

Уязвимости устранены в обновлениях Unbound (1.19.1), PowerDNS Recursor (4.8.6, 4.9.3, 5.0.2), Knot Resolver (5.7.1), dnsmasq (2.90) и BIND (9.16.48, 9.18.24 и 9.19.21). Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware, NetBSD, FreeBSD.

В версиях DNS-сервера BIND 9.16.48, 9.18.24 и 9.19.21 дополнительно устранено ещё несколько уязвимостей:

  • CVE-2023-4408 - разбор больших DNS-сообщений может привести к созданию высокой нагрузки на CPU.
  • CVE-2023-5517 - запрос специально оформленной обратной зоны может привести к аварийному завершению из-за срабатывания assert-проверки. Проблема проявляется только в конфигурациях с включённой настройкой "nxdomain-redirect".
  • CVE-2023-5679 - рекурсивное определение хоста может привести к аварийному завершению из-за срабатывания assert-проверки на системах с включённой поддержкой DNS64 и "serve-stale" (настройки, stale-cache-enable и stale-answer-enable) .
  • CVE-2023-6516 - специально оформленный рекурсивные запросы могут привести к исчерпанию доступной процессу памяти.


  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Сбой в доменной зоне RU из-за ошибки при замене ключей DNSSEC
  3. OpenNews: Ошибка при обновлении ключей DNSSEC привела к нарушению работы доменной зоны NZ
  4. OpenNews: Уязвимости в PowerDNS Authoritative Server
  5. OpenNews: Уязвимости в Dnsmasq, позволяющие подменить содержимое в кэше DNS
  6. OpenNews: Обновление DNS-сервера BIND 9.16.33, 9.18.7 и 9.19.5 c устранением уязвимостей
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60599-dnssec
Ключевые слова: dnssec, bind, powerdns, dnsmasq, unbound
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (47) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 18:16, 14/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Knot dns не подвержен? Получается, настоящие днс в безопасности?
     
     
  • 2.4, Аноним (4), 18:29, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Только что обновление вышло https://www.knot-resolver.cz/2024-02-13-knot-resolver-5.7.1.html
     

  • 1.2, Аноним (2), 18:23, 14/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +13 +/
    >В качестве мер для блокирования уязвимостей

    полный отказ от DNSSEC по причине ugly by design

     
     
  • 2.3, Аноним (3), 18:28, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +9 +/
    DNS без DNSSEC слишком прост и надёжен.

    Кому вообще нужны системы, которые просто работают? Если ничего не падает, то зачем нужен админ?

     
     
  • 3.6, Аноним (6), 18:48, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > DNS без DNSSEC слишком прост и надёжен.

    DNS (и с DNSSEC, и без) не прост и не надёжен. То, что у тебя дома на OpenWRT dnsmasq без проблем годами работает не значит, что так везде. Кто публичные резолверы держал тот знает.

     
     
  • 4.7, Аноним (3), 18:53, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    # echo 'showServers()' | dnsdist -c
    #   Name                 Address                                      State     Qps    Qlim        Ord         Wt    Queries   Drops Drate   Lat   TCP Outstanding Pools
    0                        10.75.0.53:53                                  up    74.0       0          1          1    4049028     277   0.0   0.2   0.3           0
    1                        10.85.0.53:53                                  up    49.0       0          1          1    3674731     262   0.0   0.8   2.0           0
    All                                                                           121.0                                  7723759     539                              

    Этот кусочек инфры сойдёт за маленький dnsmasq?

     
     
  • 5.11, Гость (??), 20:16, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    dnsdist, по сравнению с dnsmasq жрёт ресурсы немерено и не умеет также быстро опросить все серверы и ответить, если часть из них не работает
     
     
  • 6.12, Sw00p aka Jerom (?), 20:54, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это же балансировщик
     
  • 6.18, Аноним (3), 21:48, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > dnsdist, по сравнению с dnsmasq жрёт ресурсы немерено

    Поэтому и запускаем мы его не на роутере с OpenWRT.

    > и не умеет также быстро опросить все серверы и ответить, если часть из них не работает

    Это не входит в его задачи. Его функция — распределять нагрузку, а не умножать её, дублируя один и тот же запрос на все апстримы.

     
     
  • 7.39, Аноним (6), 18:39, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Первое, от чего стоит избавиться в проде — от балансировщика днс. Его функция — увеличивать задержки и являться единой точкой отказа. Хуже придумать просто нельзя.
     
     
  • 8.42, Аноним (3), 21:25, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    это от советов людей, которые прода никогда не видели и наивно верят, чт... текст свёрнут, показать
     
     
  • 9.46, Аноним (6), 22:28, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Больше балансировщиков к трону бога балансировщиков Ну наслаждайся своим ланчик... текст свёрнут, показать
     
  • 5.38, Аноним (6), 18:34, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Без аптайма это фигня какая-то, а не инфа. 7723759 — это за день? За час? В секунду? Или может быть ты «работает — не трогай» и это за три года?

    Впрочем, я по «красивеньким» RFC1918 адресам вижу, что это какой-то нескучный ланчик — то ли общажная сеть, то ли завод, то ли местячковый провайдер с тысячей клиентов.

     
     
  • 6.43, Аноним (3), 21:28, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >  Без аптайма это фигня какая-то, а не инфа. 7723759 — это за день? За час? В секунду? Или может быть ты «работает — не трогай» и это за три года?

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

    > Впрочем, я по «красивеньким» RFC1918 адресам вижу, что это какой-то нескучный ланчик — то ли общажная сеть, то ли завод, то ли местячковый провайдер с тысячей клиентов.

    И действительно, серьёзные дяди выставляют все бэкенды голой задницей в интернет.

     
     
  • 7.47, Аноним (6), 22:37, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Для умеющих читать, там есть столбец Qps.

    А для умеющих думать ещё и очевидно, что Qps сильно зависит от времени измерений, и чем оно уже, тем больший вес имеют случайные пики. Так что твой выпендрёж снова мимо кассы. Как и смешная цифра в 121 запрос в секунду. Для таких тривиальных объёмов городить три уровня балансировки — это уровень университетской лабы, где надо показать уверенное понимание модели OSI.

    > И действительно, серьёзные дяди выставляют все бэкенды голой задницей в интернет.

    Серьёзные дяди пользуются публичным адресным пространством и хардварными фаерволлами. Клиенты за лишнюю миллисекунду задержки ответа начинают ЗВОНИТЬ в саппорт и требовать всё срочно починить.

     
  • 5.50, Аноним (50), 14:59, 17/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Прастити, у вас ДНС работают на ZX-Spectrum, раз перед ими при нагрузке аж в 121 запрос в секунду пришлось поставить балансировщик?
     
  • 4.29, Ivan_83 (ok), 23:21, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И что же он знает?
     
     
  • 5.44, Аноним (3), 21:30, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, уважаемый "Аноним (6)" явно знает, как делать громкие заявления, но определённо не знает, как устроены продовые DNS-резолверы (судя по его реакции на балансировщик).
     

  • 1.5, Аноним (6), 18:45, 14/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Валидация DNSSEC сейчас используется примерно на 30% публичных резолверов. Начали более-менее массово использовать, появился интерес со стороны исследователей, начали находить дыры. Нормальный процесс в действии. Но диванные в комментариях всё равно будут ныть о том, что им сразу нормально не сделали™. Собаки лают, караван идёт.
     
     
  • 2.8, Аноним (3), 19:00, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если стандарт 2005 года начали "массово использовать" только в 2024, то караван не очень-то идёт.

    Ну и главное отличие DNSSEC от HTTPS — в случае проблем с HTTPS пользователь видит в браузере нормальное сообщение о том, что произошло (просроченый серт, некорректное доменное имя, самоподпись), а в случае проблем с DNSSEC — "не удалось найти сервер". И это приговор DNSSEC как системе.

     
     
  • 3.16, Аноним (1), 21:44, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так ослаблять сеть начали не так давно, раньше это никому в голову не приходило. Теперь нельзя доверять совершенно никому.
     
     
  • 4.20, Аноним (3), 21:49, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    То ли дело раньше, никакого SSL и TLS. Что перехватил — все твоё!
     
     
  • 5.23, Аноним (1), 22:04, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну собственно провайдеры занимавшиеся продажей подобных данных поступали незаконно, но хотя бы не встраивали рекламные сети с малварью в трафик. Как это стало обычной практикой, все перешли на шифрованный трафик. Начали подменять dns, dnssec получил распространение.
     
     
  • 6.25, Аноним (3), 22:16, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    О да, наш любимый DNSSEC очень вам поможет, если провайдер встроит что-то в текст страницы.
     
  • 3.37, Аноним (6), 18:28, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > главное отличие DNSSEC от HTTPS

    В том же, в чём отличие мягкого от зелёного. Дальше читать твои измышления смысла нет, ты не понимаешь базовых вещей.

     
     
  • 4.45, Аноним (3), 21:33, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > В том же, в чём отличие мягкого от зелёного

    Ну да, точно. У них действительно нет ничего общего, даже предназначения. HTTPS нужен для безопасности (в том числе, для аутентификации открываемого сайта), DNSSEC — для прикола.

     
     
  • 5.48, Аноним (6), 22:43, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я не могу тебе запретить упорствовать в твоём невежестве.
     

  • 1.10, Tron is Whistling (?), 19:39, 14/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    DNSSEC - это конечно редкостное удолбище.
     
     
  • 2.13, birdie (ok), 21:02, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Хорошо, что товарищ майор не состоит в ISO.
     
     
  • 3.17, Аноним (3), 21:46, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Там только господа майоры.
     

  • 1.14, birdie (ok), 21:02, 14/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что с systemd-resolved? Неуязвим?
     
     
  • 2.15, Аноним (15), 21:23, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Там DNSSEC дописан наполовину и выключен по умолчанию и разработчиков колышет слабо: https://github.com/systemd/systemd/issues/25676#issuecomment-1634810897
     
     
  • 3.21, Аноним (3), 21:54, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > It's very hard to get this work in a reasonable way given the state of DNSSEC servers in the wild.

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

    Поттеринг выбрал второе. Потому что он очень злой и нехороший. Только и думает о том, как бы сделать, чтобы пользователи не страдали.

     

  • 1.19, IdeaFix (ok), 21:49, 14/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    nsd еще жив?
     
     
  • 2.22, anonymous (??), 21:57, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты дурной? NSD authoritative only, он валидацией не занимается.
     
     
  • 3.27, IdeaFix (ok), 23:11, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты дурной? NSD authoritative only, он валидацией не занимается.

    Если оставить за скобками что ты дурной и перечитать мой вопрос, будет ли там что-то про то, что nsd занимается валидацией? Правильно, не будет. Так что, ты дурной, да. На вопрос можешь не отвечать.

     
     
  • 4.31, Аноним (3), 00:10, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то, тут обсуждают новость про

    > Уязвимости позволяют добиться отказа в обслуживании DNS-резолверов, выполняющих валидацию при помощи DNSSEC

    И авторитативные серверы тут вообще не при делах.

     
  • 2.24, Editor (-), 22:04, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > CVE-2023-50868 (кодовое имя NSEC3)

    Уважаемый автор новости, NSEC3 это не кодое имя уязвимости. У этой уязвимости нет "имени" типа KeyTrap. NSEC3 это тип записей в DNS зонах, где используется DNSSEC. Является альтернативой записям типа NSEC.

    (пишу в ветке, потому что не удаётся постить комментарий первого уровня).

     
     
  • 3.26, Аноним (3), 22:18, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В первоисточнике
    > CVE-2023-50387 (referred here as the KeyTrap vulnerability) and
    > CVE-2023-50868 (referred here as the NSEC3 vulnerability).

     

     
     
  • 4.34, Editor (-), 02:42, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошо, но контест тоже важен. И в отличие от KeyTrap vulnerability, где уязвимости дали название (тренд поставил Heartbleed в OpenSSL, если помните) "NSEC3 vulnerability" имеется в виду "уязвимость связанный с NSEC3", а не уязвимость, которое имеет "кодовое имя NSEC3".

    В любом случае, не важно. Спасибо автору за перевод, 100%-ая корректность тут не важна.

     
     
  • 5.36, Аноним (3), 10:57, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ниже приводится выдержка из описания CVE, в которой уточнено, что уязвимость назвали NSEC3 в честь, неожиданно, NSEC3.
     
  • 3.28, IdeaFix (ok), 23:15, 14/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> CVE-2023-50868 (кодовое имя NSEC3)
    > Уважаемый автор новости, NSEC3 это не кодое имя уязвимости. У этой уязвимости
    > нет "имени" типа KeyTrap. NSEC3 это тип записей в DNS зонах,
    > где используется DNSSEC. Является альтернативой записям типа NSEC.
    > (пишу в ветке, потому что не удаётся постить комментарий первого уровня).

    The Closest Encloser Proof aspect of the DNS protocol (in RFC 5155 when RFC 9276 guidance is skipped) allows remote attackers to cause a denial of service (CPU consumption for SHA-1 computations) via DNSSEC responses in a random subdomain attack, aka the "NSEC3" issue.

    https://www.cve.org/CVERecord?id=CVE-2023-50868

    aka the "NSEC3" issue говорят...

     

  • 1.30, Ivan_83 (ok), 23:23, 14/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Нет DNSSEC - нет проблем.
    Сколько вам ещё должно сломатся чтобы понять?
     
     
  • 2.32, Аноним (3), 00:11, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Просто кому-то эти проблемы выгодны.
     
     
  • 3.33, Ivan_83 (ok), 01:00, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, просто DNSSEC это костыль, который не хотят выкидывать ибо везде театр безопасности.
     

  • 1.35, bOOster (ok), 10:15, 15/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Будет время - надо свои YADIFA погонять на предмет уязвимости. Хотя разговор вроде идет о проблемах в проектировании самого DNSSEC
     
  • 1.49, Tron is Whistling (?), 10:28, 16/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Название - тоненький намёк на то, что NSEC3 - это и есть дыра.
     

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



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

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