Zerologon — это уязвимость алгоритма криптографии, который используется в процессе аутентификации Netlogon. Она позволяет атаковать контроллеры домена MS Active Directory. Zerologon позволяет хакеру выдать себя за любой компьютер, включая корневой контроллер домена.
Zerologon — это название уязвимости с идентификатором CVE-2020-1472. Ее так назвали из-за изъяна процесса Netlogon: вектор инициализации (IV), который должен был бы представлять собой случайное число, всегда состоит из одних нулей.
Критическая уязвимость Zerologon получила максимальную оценку в 10 баллов по шкале CVSS v3.1. Уже появились PoC (Proof-of-Concept), моделирующие работу эксплойтов, и были отмечены реальные атаки с использованием уязвимости.
Агентство кибербезопасности и защиты инфраструктуры США (Cybersecurity and Infrastructure Security Agency, CISA) приказало федеральным гражданским организациям срочно применить исправление для уязвимости или отключить все затронутые ей Windows серверы. Негосударственные организации также получили соответствующее предупреждение. Компания Microsoft выпустила первое из двух исправлений в августе 2020 года. Эти исправления нужно применить ко всем контроллерам доменов.
Уязвимость заключается в недостаточно стойкой криптографии протокола Active Directory Netlogon Remote Protocol (MS-NRPC). Он позволяет пользователям выполнить вход на серверы, использующие протокол сетевой аутентификации NTLM (NT LAN Manager).
Самый главный риск состоит в том, что MS-NRPC также применяется для передачи изменений в данных учетных записей — сюда относятся и пароли учетных записей служб. Если вспомнить о его происхождении, то можно понять, почему добавили эту возможность. Однако отсутствие проверки подлинности источника запроса на изменение паролей — серьезная проблема безопасности.
Это еще не все. Для шифрования в MS-NRPC был выбран не самый лучший алгоритм. В 1883 году нидерландский специалист по криптографии Огюст Керкгоффс опубликовал два эссе под названием «Военная криптография» (La Cryptographie Militaire), обозначив в них шесть ключевых принципов проектирования криптографических систем.
Самый известный из принципов Керкгоффса гласит, что устойчивость шифра к атакам основана на тайне ключа, а не на секретности алгоритма шифрования. Не следует выбирать малоизвестный алгоритм в надежде, что противник его не знает, наоборот, нужно использовать общеизвестные, проверенные, хорошо зарекомендовавшие себя алгоритмы.
Изначально для Windows NT при процессе входа применялось шифрование с помощью алгоритма 2DES, который, как мы сейчас знаем, не очень надежен. Сегодня MS-NRPC использует аглоритм AES, который считается эталоном в сфере шифрования.
Однако одного проверенного стойкого алгоритма для надежной защиты данных недостаточно, следует выбирать надежные параметры. Но для MS-NRPC выбрали малоизвестный режим AES-CFB8, который был недостаточно протестирован.
Применение AES-CFB8 в MS-NRPC ведет к проблеме с вектором инициализации, который должен быть случайным числом, но вместо этого его значение всегда 16 байтов нулей. Такое значение нельзя назвать случайным. Оно полностью предсказуемо. Шифр часто взламывают на предсказуемом участке.
Сведения об уязвимости были обнародованы в сентябре 2020 года Томом Терфортом (Tom Tervoort), голландским исследователем из компании Secura. Хотя исправление для этой уязвимости было выпущено еще в августе, прототипы эксплойтов и прочие попытки задействовать уязвимость начали появляться только после сентябрьского отчета Терфорта.
В своем отчете Терфорт подробно описывает уязвимость и то, как он ее обнаружил. Во время своих исследований Терфорт заметил, как мало информации доступно о MS-NRPC. Он был заинтригован, поэтому решил изучить протокол подробнее.
Изначально исследователь рассматривал возможность атаки «человек посередине», но затем выявил уязвимость, описанную как CVE-2020-1424. Продолжив работу, он также идентифицировал уязвимость, сейчас известную под названием Zerologon.
В ходе исследования он обнаружил важную деталь — Microsoft использовал уникальный вариант шифрования, не применяемый в других протоколах RPC. Во времена Windows NT учетная запись, назначенная компьютеру, не идентифицировалась как принципал — уникальное имя клиента, для которого разрешается аутентификация с помощью стандартного протокола Kerberos. То есть Microsoft не мог использовать этот протокол для аутентификации учетных записей компьютеров и машин.
По этой причине разработчики создали альтернативный способ. Крайне трудно разработать код и протоколы для шифрования, которые нельзя взломать. При этом до обнаружения их недостатков может пройти очень много времени — как и в этом случае.
Как происходит атака
Уязвимость Zerologon позволяет атакующему получить контроль над любым контроллером домена (DC), в том числе, корневым DC. Используя уязвимость, хакер изменяет пароль и использует учетную запись контроллера для развития атаки. После этого злоумышленник может просто выполнить DoS-атаку или же захватить всю сеть.
Чтобы злоумышленники могли воспользоваться этой уязвимостью, они должны настроить сеанс связи с контроллером домена по TCP. Если они физически находятся внутри сети, то могут сделать это с рабочего стола пользователя или с помощью открытого порта, например, в таком месте, как конференц-зал.
В этом случае мы имеем дело с инсайдерской атакой — на данный момент самым убыточным для компаний типом атак. Однако для использования уязвимости не обязательно находиться в сети, главное — каким-либо образом установить TCP-сессию с контроллером.
Изучая AES-CFB8 с вектором инициализации (IV), всегда состоящим из 16 байтов нулей, Терфорт выявил возможность того, что один из 256 используемых ключей создаст зашифрованный текст полностью из нулей. Злоумышленнику потребуется очень мало попыток отправки ключа, чтобы получить такой текст. Это займет максимум 2–3 секунды.
Что это значит?
Если компьютер, подключающийся к контроллеру домена, принадлежит обычному пользователю, проблем не возникает. Шифрование текста оставляет желать лучшего, но процесс аутентификации по сети все равно выполняет свою задачу. Проблемы начинаются, когда какой-либо злоумышленник решает воспользоваться уязвимостью.
В атаке, продемонстрированной Терфортом, злоумышленнику сначала нужно получить учетную запись или пароль настоящего клиента сети. Из-за неудачно реализованном в MS-NRPC вектора инициализации для этого нужно не более 256 попыток.
Обычно учетную запись пользователя блокируют после трех попыток угадать пароль, но это правило не применяется к учетным записям компьютеров и других устройств. Из-за этого злоумышленники могут за небольшой промежуток времени перебрать множество паролей и в конце концов осуществить вход. Им лишь нужно найти ключ, с которым зашифрованный текст будет состоять из одних нулей.
Что могут сделать злоумышленники, притворившись существующим в сети компьютером? Злоумышленник еще не знает сессионный ключ шифрования для актуального сеанса связи. На первом этапе он сможет обойти процесс аутентификации, когда подберет один из 256 ключей, который даст зашифрованный текст, состоящий только из нулей. Второй этап — отключение механизма signing and sealing.
Механизм RPC signing and sealing используется в MS-NRPC для шифрования на транспортном уровне. Обычно данные обязательно шифруются при передаче. Однако в MS-NRPC это необязательная функция, которую пользователь может отключить, убрав флажок в заголовке сообщения.
Если RPC signing and sealing отключен, то сообщения будут отправляться в открытом виде. После этого злоумышленники могут делать, что угодно, в том числе удалить пароль или присвоить ему другое значение. В феврале 2021 года Microsoft выпустила второе исправление, которое делает шифрование обязательным.
Третий шаг злоумышленников — сменить пароль для взломанной учетной записи. Предпочтительной целью является сервер Active Directory, желательно, управляющий корневым доменом. Чтобы изменить пароль, злоумышленники используют сообщение NetServerPasswordSet2 в MS-NRPC.
Для изменения пароля можно просто отправить фрейм с желательным новым паролем. Самое простое — удалить пароль совсем или задать ему пустое значение. После этого злоумышленник может входить в систему обычным способом.
Если атака направлена на случайный компьютер в сети, этот компьютер не сможет войти в систему. Таким образом, первым последствием эксплуатации уязвимости является простая DOS-атака на этот компьютер.
Глобальные последствия
Сейчас доступно множество PoC-эксплойтов. Серверы Active Directory без исправлений могут стать причиной крупного ущерба поскольку, используя уязвимость, злоумышленники могут заразить корпоративную сеть программами-вымогателями.
Однако также доступны и инструменты для проверки уязвимости серверов. Например, Терфорт и Secura выложили на GitHub инструмент, позволяющий проверить, установлены ли исправления на контроллеры домена, или обнаружить их уязвимость.
В августе 2020 года компания Microsoft выпустила исправление уязвимости CVE-2020-1472 (Zerologon). Предписывалось как можно скорее установить его на все контроллеры доменов Windows Server 2008 R и выше. Однако в среднем от выпуска исправлений до их применения проходит слишком много времени.
Исследователи утверждают, что в среднестатистической организации этот период составляет от 60 до 150 дней, т. е. около 5 месяцев. Он называется Mean Time to Patch (MTTP).
К сожалению, в случае c Zerologon исправлению не удалось полностью закрыть уязвимость. Компании Microsoft пришлось дополнительно выпустить исправление, которое гарантировало бы шифрование.
На этот раз от всех устройств требовалось использовать защищенный канал передачи данных, иначе им будет отказано в доступе. Таким образом, устаревшие устройства, которые не поддерживают такую функцию, придется вручную добавлять в специальную групповую политику, которая разрешает доступ для этих устройств.
В организации обязательно должны использоваться традиционные средства безопасности для выявления вредоносного трафика, взлома учетных записей или сетей и других индикаторов компрометации. Также нельзя обойтись без систем предотвращения вторжений и инструментов защиты от вредоносных программ, обеспечивающих безопасность сети и хостов (всех конечных точек) благодаря мониторингу на наличие вирусов, программ-вымогателей и других угроз.
Записи из журналов событий необходимо централизованно собирать и передавать в систему SIEM для анализа. Если анализ выявил индикаторы компрометации, для реагирования на них в организации должны быть конкретные специалисты и процессы. Команда по реагированию на инциденты безопасности, обладающая большим опытом и вооруженная нужными процедурами, должна перенять эстафету, чтобы определить масштаб компрометации и начать устранение проблемы.
Даже если вендор выпустил исправление для своего продукта, многим клиентам требуется определенное время для применения этого исправления и внедрения дополнительных мер безопасности. Виртуальные исправления, доступные через инструменты вроде системы предотвращения вторжений, дают администраторам и специалистам безопасности дополнительные механизмы
для быстрой защиты сети. По прежнему рекомендуется применять пакеты исправлений, которые выпускает вендор для устранения уязвимости. Виртуальные исправления помогают защитить машины, на которые не установлены такие пакеты. Во многих случаях виртуальные исправления также предоставляют ценную информацию о попытках эксплуатации сети после установки официальных исправлений, выполняя проверку журналов.
Клиенты Trend Micro могут получить больше информации о лучших практиках по устранению этой уязвимости и о том, как Trend Micro может этому способствовать, перейдя на следующую статью из базы знаний: https://success.trendmicro.com/solution/000270328