ZeroLogon (CVE-2020-1472) — это критическая уязвимость, обнаруженная в протоколе Netlogon, который используется в Windows Server для аутентификации пользователей и устройств в доменной сети. Эта уязвимость была выявлена исследователями из компании Secura и объявлена публично в августе 2020 года. Уязвимость получила наивысший балл 10.0 по шкале CVSS (Common Vulnerability Scoring System), что подчеркивает её критическую важность.
Суть уязвимости
ZeroLogon эксплуатирует проблему в криптографическом алгоритме, используемом протоколом Netlogon для установления защищенного канала между клиентом и сервером. Основные аспекты уязвимости:
- Неустойчивость криптографического алгоритма:
- Протокол Netlogon использует шифрование на основе AES (Advanced Encryption Standard) для защиты своих операций. Однако в алгоритме есть недостаток, который позволяет злоумышленнику обнулить некоторые параметры (вектора инициализации).
- В процессе установления соединения Netlogon использует значение, называемое "client challenge", которое по сути является случайным числом. Однако, если это число обнулить, это создаст предсказуемый шаблон в криптографическом алгоритме.
- Атака на векторы инициализации:
- Злоумышленник может отправить специально сформированные пакеты к контроллеру домена с обнуленным значением "client challenge".
- Из-за этой предсказуемости контроллер домена принимает эти пакеты как легитимные, позволяя злоумышленнику обойти проверку подлинности.
- Сброс пароля контроллера домена:
- Используя уязвимость, злоумышленник может сбросить пароль учетной записи компьютера контроллера домена на пустое значение.
- Это позволяет злоумышленнику получить полный доступ к контроллеру домена, что фактически дает ему контроль над всей доменной сетью.
Аутентификация в протоколе Netlogon
Протокол Netlogon используется для аутентификации пользователей и устройств в доменной среде Windows. Он обеспечивает безопасное взаимодействие между клиентами и контроллерами домена, а также между различными контроллерами домена. В контексте аутентификации Netlogon выполняет следующие функции:
- Аутентификация пользователей и компьютеров.
- Синхронизация паролей учетных записей компьютеров.
- Поддержка доверительных отношений между доменами.
Давайте рассмотрим процесс аутентификации в Netlogon более подробно.
- Запрос аутентификации: Клиент отправляет запрос на аутентификацию к контроллеру домена (DC), включая идентификационные данные.
- Предварительная проверка: Контроллер домена выполняет начальную проверку идентификационных данных клиента.
- Создание сеанса аутентификации: Контроллер домена генерирует уникальный сеансовый ключ.
- Вызов (Challenge): Контроллер домена отправляет клиенту случайное число для проверки подлинности.
- Ответ (Response): Клиент шифрует вызов с использованием своего секретного ключа и отправляет зашифрованный ответ обратно контроллеру домена.
- Проверка ответа: Контроллер домена расшифровывает ответ клиента и проверяет его на совпадение с исходным вызовом.
- Установка защищенного канала: При успешной проверке устанавливается защищенный канал для дальнейшей коммуникации, вся дальнейшая передача данных шифруется.