Полгода мой резолвер не проверял DNSSEC: узнал об этом от чужого теста, а не от мониторинга

cyberscoper 34 минуты назад Полгода мой резолвер не проверял DNSSEC: узнал об этом от чужого теста, а не от мониторинга Средний 8 мин 1.1K Сетевые технологии * Информационная безопасность * Системное администрирование *...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: cyberscoper 34 минуты назад Полгода мой резолвер не проверял DNSSEC: узнал об этом от чужого теста, а не от мониторинга Средний 8 мин 1. 1K Сетевые технологии * Информационная безопасность * Системное администрирование * DevOps * IT-инфраструктура * Кейс Привет, Хабр! Я в одиночку делаю VantageDNS, рекурсивный DNS-резолвер с фильтрацией.
На днях от нечего делать прогнал свой прод через публичный тест DNS-OARC. Рандомизация портов зелёная, рандомизация DNS ID зелёная, TCP, IPv6, QNAME-минимизация зелёные. И одна красная строка: Lookup succeeded while signature was invalid.
Технические детали
Перевожу: мой резолвер отдавал клиентам ответы с невалидными DNSSEC-подписями и делал вид, что всё хорошо. При этом мониторинг был зелёный все эти полгода, и он не врал. Ниже про то, почему выключенная валидация это самый неудобный класс багов, как я её включал и уронил резолвер в crash-loop с первой попытки, и как проверять результат, чтобы не обмануть себя.
Одна красная строка среди зелёныхТест DNS-OARC (cmdns) гоняет через ваш резолвер несколько десятков запросов с рандомными именами в своей зоне и смотрит, что происходит по дороге. Он проверяет энтропию source-портов, энтропию DNS ID, умеет ли резолвер в TCP и IPv6, минимизирует ли QNAME, и отдельно проверяет DNSSEC. Мой результат выглядел так:Port Number Randomization Success stdev 12137.
36 DNS ID Randomization Success stdev 17760. 91 TCP Success IPv6 Success QNAME Minimisation Success Invalid DNSSEC Signature Failure Lookup succeeded while signature was invalid Пять из шести зелёные, и это даже приятно: над рандомизацией и QNAME-минимизацией я работал осознанно. А вот шестая строка означала, что одного свойства у меня нет вообще.
Отраслевые последствия
Проверяю руками на эталонном домене, у которого подпись сломана специально: $ dig @127. 1 -p 5353 dnssec-failed. org A +noall +comments ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16345 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0 NOERROR и один ответ там, где обязан быть SERVFAIL.
То есть если кто-то подсунет мне подделанные данные с битой подписью, я их приму и отдам пользователю. Ровно от этого DNSSEC и придуман. Почему это не поймал мониторингТут интересный момент, ради которого я и пишу статью.
У меня есть health-check каждые 60 секунд, есть probe-агент, есть алерты на degraded и down, есть метрики latency и cache hit rate. Всё это отлично ловит падения. Ничего из этого не могло поймать отсутствие валидации, потому что отсутствие валидации не выглядит как поломка.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.






