Уязвимости KeyTrap ΠΈ NSEC3, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ DNSSEC

Π’ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… рСализациях ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° 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 — ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΉ рСкурсивныС запросы ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Π½ΠΈΡŽ доступной процСссу памяти.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru