Доменная система имен (DNS) является важнейшей частью глобальной сети Интернет. Именно благодаря DNS мы используем привычные адреса сайтов вместо числовых IP-адресов. Однако эта система уязвима для атак и фальсификации данных. 30 января 2024 многие российские сайты оказались недоступны, что, по информации координационного центра доменов, связано с ошибкой в протоколе DNSSEC.
Мы решили подробно рассмотреть, как устроена защита DNS с помощью протокола DNSSEC, из-за ошибок внедрения которого произошел масштабный сбой российского сегмента сети.
Сводка
Протокол DNSSEC решает задачу проверки целостности и подлинности данных в DNS-системе с помощью криптографии с открытым ключом.
Его внедрение актуально в связи с ростом киберугроз, однако требует значительных ресурсов на поддержание инфраструктуры.
В России пока лишь небольшая часть доменов использует этот протокол, что снижает защищенность пользователей.
Техническая ошибка в DNSSEC в 2024 году вызвала масштабный сбой Рунета, еще раз продемонстрировав критичность стабильности DNS.
Тем не менее протокол продолжают активно внедрять в мировом масштабе, и в перспективе его повсеместно задействуют для защиты DNS трафика.
Что такое DNS и зачем он нужен
Для связи компьютеров в сети используются числовые IP-адреса вида 192.168.1.1. Однако запоминать такие адреса крайне неудобно для человека, поэтому разработали доменную систему имен (Domain Name System, DNS). Она сопоставляет удобочитаемые доменные имена вроде www.wikipedia.org с соответствующими IP-адресами. Вся эта информация хранится распределено на множестве серверов по всему миру.
Для пользователя процесс выглядит так:
- Вводим в браузере доменное имя, например, www.google.com.
- Запрос автоматически направляется на DNS-сервер, обслуживающий провайдер.
- DNS-сервер обращается к корневым серверам, а те сообщают адреса серверов домена верхнего уровня, в данном случае .com.
- Далее запрос перенаправляется на эти сервера, которые возвращают информацию о серверах имен google.com.
- На этих серверах и хранится нужная запись с IP-адресом www.google.com.
- IP-адрес возвращается до нашего устройства, и браузер открывает сайт по этому адресу.
Такой механизм позволяет абстрагироваться от IP-адресов в повседневном использовании сети Интернет. Однако изначально в DNS не были заложены механизмы проверки подлинности и целостности данных. Это открывало возможности для атак и фальсификаций.
Уязвимости системы DNS
Отсутствие встроенных мер безопасности делает DNS уязвимой для следующих типов атак:
- Подмена DNS (DNS spoofing) — злоумышленник напрямую обращается к жертве от имени DNS сервера и подменяет настоящие записи своими. Жертва получает неверную информацию, ведущую на вредоносный ресурс.
- Кэширование ядовитых записей — злоумышленник намеренно «отравляет» DNS кэш на серверах провайдеров, помещая туда ложные данные. В результате многие пользователи этого провайдера получат неверные IP-адреса.
- Атака типа «отравленный корень» — если скомпрометирован DNS-сервер домена верхнего уровня, злоумышленник может заставить его возвращать неверные серверы имен и IP-адреса для многих доменов.
- DDoS-атака на инфраструктуру DNS может привести к отказу в обслуживании.
Все эти атаки могут использоваться для переадресации пользователей на фишинговые ресурсы, распространения вредоносного ПО, кражи учетных данных и других злонамеренных целей. Чтобы противостоять им, был разработан специальный защитный протокол DNSSEC.
Как устроен DNSSEC
DNSSEC использует криптографию с открытым ключом для защиты целостности данных в DNS. Процесс выглядит следующим образом:
- Администратор домена генерирует пару криптографических ключей: закрытый ключ (KSK) для подписи DNSKEY записей и закрытый ключ (ZSK) для подписи всех остальных записей в зоне.
- Открытая часть KSK публикуется в DNS в виде DS-записи и передается в родительскую зону для формирования цепочки доверия.
- Все остальные записи в зоне подписываются ZSK и публикуются в DNS вместе с подписью в поле RRSIG.
- Ключи DNSKEY так же подписываются и публикуются.
- При запросе DNS данных резолвер сверяет подписи открытыми ключами из DNS. Если подпись корректна, данные подлинные. Так формируется цепочка доверия от корневого домена до нужного сайта.
Дополнительно в DNSSEC используются так называемые записи NSEC/NSEC3, которые позволяют удостовериться в отсутствии какой-либо записи в зоне.
Внедрение DNSSEC требует значительных вычислительных ресурсов для генерации и проверки подписей. Кроме того, большая ответственность ложится на администратора — утечка закрытых ключей полностью обесценивает защиту. Тем не менее, это единственный способ обеспечить целостность и подлинность DNS данных.
На данный момент протокол DNSSEC поддерживают все популярные операционные системы и браузеры. Большинство доменов верхнего уровня используют этот протокол.
DNSSEC в российских доменах
В Рунете домены .RU и .РФ также поддерживают DNSSEC. Координационный центр этих доменов консультирует желающих по вопросам внедрения и предоставляет тестовые зоны. Однако по состоянию на 2023 год лишь около 1% российских доменов используют этот протокол. Среди крупных игроков его внедрили Яндекс, Mail.Ru Group, ВКонтакте и Рамблер. Но многие организации пока не спешат с включением DNSSEC из-за сложности настройки и обслуживания, нехватки нужных специалистов, а также потенциальных рисков, о которых напомнил инцидент 2024 года.
Масштабный сбой Рунета из-за ошибки в DNSSEC
30 января 2024 года в России произошел масштабный сбой работы множества популярных сайтов в зонах .RU и .РФ. Пользователи жаловались на чрезвычайно медленную работу или полное отсутствие доступа ко многим ресурсам.
По информации от Координационного центра доменов .ru и .рф, данный сбой связан с техническими проблемами в инфраструктуре DNSSEC. Для решения проблемы провайдерам пришлось отключить проверку подписей DNSSEC, тем самым отказавшись от проверки подлинности данных ради восстановления доступности.
Возможной причиной инцидента называли ошибку в настройках одного из корневых DNS-серверов. Однако КЦ эту версию не подтвердил. В то же время ходили слухи, что сбой вызван испытанием инфраструктуры национальной DNS системы, создание которой обсуждается в последнее время. Однако официальных заявлений на этот счет так и не последовало. Причина так и осталась неизвестной.
Этот инцидент продемонстрировал значимость стабильной работы DNS и тщательности внедрения в нее новых технологий, включая DNSSEC. Сбои в такой критически важной инфраструктуре чреваты масштабным нарушением работы всей глобальной Сети.
Перспективы применения DNSSEC
Несмотря на сложность реализации протокол DNSSEC продолжает набирать популярность. По состоянию на 2022 год его используют уже более 80% доменов верхнего уровня и более 50% всех доменных зон.
Ключевыми факторами, стимулирующими внедрение, являются:
- Рост киберугроз — все больше атак направлено на манипуляцию DNS.
- Развитие Сети — появляется критически важные сервисы, такие как интернет-банкинг, требующие надежной защиты.
- Поддержка технологий — DNSSEC реализован во всех популярных программных продуктах. Это упрощает развертывание.
- Регулирование — введены стандарты и нормативные акты, требующие использование DNSSEC для некоторых типов организаций.
Что касается России, то здесь ожидается постепенный рост доли защищенных DNSSEC доменов по мере повышения осведомленности компаний о данной технологии, а также развития отечественных разработок в этой сфере.
Ряд экспертов полагает, что в перспективе российские власти могут потребовать обязательного внедрения DNSSEC для всех значимых ресурсов в рамках повышения безопасности критической информационной инфраструктуры. Однако пока об этом речи не идет.
Тем не менее, как показывает мировой опыт, применение DNSSEC — мера защиты, к внедрению которой стоит стремиться. Но это должно происходить обдуманно, с тщательным планированием и тестированием, чтобы сами меры безопасности не нарушали стабильность работы интернета.