Microsoft улучшает безопасность Windows, предлагая отказаться от NTLM

23 ноября 2023 г.
Пришло время перестать полагаться на небезопасный протокол аутентификации, встроенный в Windows. Microsoft упрощает переход на безопасные современные варианты.

NTLM — это простой и понятный метод аутентификации для подключения к приложениям на корпоративных серверах, но он также устарел и небезопасен. Несмотря на это, NTLM по-прежнему широко используется, отчасти по инерции, но также и потому, что предпочтительная замена Kerberos в настоящее время не справляется с некоторыми важными сценариями.

Теперь Microsoft планирует расширить Kerberos в версиях Windows и Windows Server, которые появятся в ближайшие два года, чтобы помочь организациям отказаться от NTLM. Вот что изменится и как к этому подготовиться.

Перейти к:

    Что такое НТЛМ? Что не так с NTLM? Почему NTLM все еще используется? Как мне подготовиться к отказу от NTLM? Узнайте, где вы используете NTLM Когда будут доступны расширения Kerberos?

Что такое НТЛМ?

NTLM — это протокол аутентификации, который позволяет клиенту подключаться к серверу с помощью имени пользователя и пароля. Его легко реализовать и использовать, и он не требует подключения к контроллеру домена или центральной базе данных учетных записей и разрешений.

Название выдает, насколько стар NTLM: New Technology LAN Manager появилась в Windows NT 3.1 в 1993 году – 30 лет назад. Даже немного более безопасный NTLM v2 появился еще в Windows 2000.

Что не так с NTLM?

Имя пользователя и пароль NTLM зашифрованы, а протокол NTLM гарантирует, что сервер проверяет совпадение имени пользователя и пароля. Но хотя ответ на сервер отправляется с использованием довольно безопасного шифрования MD5, пароли хранятся в диспетчере учетных записей безопасности или файле NTDS на контроллере домена с использованием гораздо более слабой криптографии MD4, а хэши паролей не подсаливаются (добавление случайных данных к паролям делает сложнее обнаружить повторяющиеся пароли).

В NTLM нет аутентификации сервера, поэтому клиент не может быть уверен, что он подключается к ожидаемому серверу, а не к злонамеренной имитации. Кроме того, были ошибки в использовании Windows NTLM.

Все это делает NTLM уязвимым для целого ряда атак: от перехвата и повторного использования учетных данных для атаки на другие серверы (атаки «человек посередине», ретрансляция и передача хэша) до простого взлома паролей. Восьмизначные пароли NTLM, которые являются стандартом во многих организациях, можно подобрать всего за три минуты с использованием оборудования потребительского уровня. А у NTLM нет возможности использовать современные учетные данные, такие как биометрия, многофакторная аутентификация или ключи FIDO; вы застряли с паролями.

Почему NTLM все еще используется?

Kerberos, который имеет лучшую криптографию и аутентификацию сервера, позволяет вам использовать современные учетные данные, такие как Windows Hello для бизнеса, вместо того, чтобы придерживаться паролей; официально это уже должно быть основным вариантом аутентификации в Windows.

Однако, несмотря на свой возраст, небезопасность, недостатки конструкции и общую низкую производительность по сравнению с Kerberos, NTLM по-прежнему широко используется: каждый день в системах Windows отправляются триллионы аутентификационных сообщений. Иногда это происходит из-за устаревших приложений, которые не были обновлены, или просто из-за сложности работы с Kerberos. Но чаще всего это происходит потому, что существуют распространенные ситуации в корпоративной сети, с которыми Kerberos в настоящее время не справляется.

В течение многих лет официальное руководство Microsoft заключалось в использовании SPNEGO, механизма стандарта IETF в Windows для согласования того, какой протокол аутентификации использовать, который часто называется просто Negotiate и всегда пытается сначала использовать Kerberos, но в некоторых случаях это все равно может означать возврат к NTLM. случаи. Например, если у вас есть рабочие группы с локальными учетными записями пользователей, где пользователь аутентифицируется непосредственно сервером приложений, Kerberos не будет работать.

Учетные записи локальных пользователей очень распространены на предприятиях — многие среды полагаются на них, например, решение для паролей локального администратора Windows для управления паролями учетных записей локального администратора, которое Microsoft выпустила в прошлом году. На недавней технической онлайн-сессии главный разработчик Стив Сифухс из группы Microsoft по криптографии, идентификации и аутентификации Windows заявил, что локальные пользователи составляют почти треть всего использования NTLM.

Другими распространенными проблемами являются межмашинная аутентификация, например SMB или RDP, а также устаревшие домены.

При использовании Kerberos клиент, подключающийся к серверу приложений, должен иметь возможность сначала подключиться к центру распространения ключей Kerberos, службе, которая работает на контроллере домена Active Directory. Если вы получаете доступ к SMB-серверу из-за пределов корпоративной сети, брандмауэр или топология сложной внутренней сети могут означать, что вы не сможете подключиться к KDC и вам придется вернуться к NTLM. VPN здесь не помогут, поскольку VPN все равно необходимо подключиться к контроллеру домена.

Аналогичным образом, хотя все службы удаленных рабочих столов в Windows Server 2019 и более поздних версиях уже поддерживают Kerberos, способ обычной настройки служб удаленных рабочих столов также может заставить их вернуться к NTLM. Это связано с тем, что вполне разумное внимание к обеспечению безопасности удаленного доступа может означать, что контроллер домена не виден для RDS, поэтому он не сможет использовать Kerberos для аутентификации. Старым клиентам RDP, особенно на устройствах, не работающих под управлением Windows, также может потребоваться вернуться к NTLM.

Если вы используете Microsoft Entra ID, который теперь называется Azure Active Directory, он не использует NTLM. Но если вы используете облачную синхронизацию Microsoft Entra Connect или Entra Connect для доступа к локальным ресурсам, а согласование Kerberos невозможно из-за топологии сети или неправильной конфигурации, вы вернетесь к NTLM.

Как Microsoft расширяет Kerberos, чтобы полностью заменить NTLM?

На эту проблему «прямой видимости» приходится лишь около 5% использования NTLM, но Microsoft представляет расширение протокола Kerberos под названием «Начальная и сквозная аутентификация с использованием Kerberos», которое решит эту проблему без необходимости перенастройки сетей организациям.

Клиент, который хочет пройти аутентификацию в серверном приложении, возможно, не сможет получить доступ к KDC в сети, но сервер может, поскольку ему необходимо подключиться к контроллеру домена для выполнения NTLM. IAKerb принимает сообщение Kerberos, которое обычно отправляется непосредственно в KDC через порт 88, оборачивает его в протокол Negotiate и отправляет на сервер приложений для пересылки в KDC, а затем таким же образом упаковывает ответ и отправляет его обратно в KDC. клиент.

IAKerb не помогает локальным пользователям, потому что, когда сервер приложений сам выполняет аутентификацию, он не передает ее внутренней службе, такой как KDC. Но вы можете заставить сервер приложений самостоятельно обрабатывать сообщения Kerberos, запустив код KDC, который обычно есть только на вашем контроллере домена, работающем в других системах Windows Server (и клиентах Windows), используя локальное шифрование SAM и AeS.

Microsoft называет это локальным KDC, и вам не нужно открывать новые порты или беспокоиться о запуске DNS, netlogon или DCLocator, чтобы все заработало.

Kerberos также дает сбой с неправильно настроенными доменами, а это около 14% случаев использования NLTM, но эту проблему вам придется решить самостоятельно, не в последнюю очередь потому, что если вы подключаетесь к неизвестному серверу, то вы подключаетесь к сервер, не зная, можно ли ему доверять.

Как мне подготовиться к отказу от NTLM?

Чуть более половины использования NTLM приходится на приложения, жестко использующие NTLM. Если вы сделали это в своих собственных приложениях, вам необходимо обновить приложение: в Windows нет никаких прокладок или обходных путей, которые Microsoft могла бы сделать. Но оказывается, что некоторые службы в Windows, особенно те, которые используют RPC, также жестко используют NTLM: вместо этого Microsoft изменит их на использование Negotiate, избавившись от значительной части использования NTLM по умолчанию.

И IAKerb, и локальный KDC будут частью протокола согласования внутри Windows, поэтому Windows всегда будет сначала пытаться использовать Kerberos, полагаясь на IAKerb при необходимости. Если это не сработает, он вернется к местному KDC. Если и это не сработает, NTLM все равно останется в качестве запасного варианта для обеспечения совместимости – по крайней мере, на этом первом этапе.

Если вы уже используете Negotiate, вам не нужно будет вносить какие-либо изменения, чтобы воспользоваться преимуществами IAKerb и локального KDC при обновлении до версий Windows, которые их включают. Если вы не используете Negotiate, обновить приложения для использования Negotiate вместо NTLM относительно просто, и сделать это до выхода новых функций покажет вам, нужно ли вам на них полагаться.

Вы можете встретить системы, которые не работают с Kerberos, поскольку в них не настроены имена участников службы или которые используют IP-адреса вместо имен DNS. Kerberos не работает с IP-адресами по умолчанию, поскольку они могут меняться со временем, но вы уже можете установить политику, позволяющую использовать IP-адреса для Kerberos.

Если вы обнаружите проблемы совместимости с IAKerb и локальным KDC в вашей среде, будут существовать политики, позволяющие их отключить или настроить, какие приложения, службы и отдельные серверы могут продолжать использовать NTLM, а какие вы хотите заблокировать NTLM.

В долгосрочной перспективе Microsoft хочет полностью отказаться от NTLM, включая хэши паролей, которые в настоящее время хранятся в SAM и NTDS на контроллере домена. Но, как и в случае с прекращением поддержки SMB1 в Windows, вы можете ожидать, что это займет несколько лет с множеством предупреждений и возможностей для обратной связи. Как и в случае с SMB1, вы можете ожидать, что NTLM пройдет через стадии устаревания: его отключат по умолчанию, но групповая политика снова включит его, не будет устанавливаться по умолчанию и, наконец, будет полностью удалена и доступна только как функция по требованию.

Узнайте, где вы используете NTLM

Повышение безопасности аутентификации в Windows начинается с выяснения того, где вы используете NTLM для подготовки к переходу на Kerberos. Это будет особенно важно, если у вас есть устройства, отличные от Windows, которые проверяют подлинность приложений, работающих на Windows Server, или если вы используете программное обеспечение с открытым исходным кодом, такое как Samba. Как и Negotiate, IAKerb стандартизируется через IETF, чтобы другие поставщики программного обеспечения могли работать с ним и с местным KDC; но им может потребоваться время, чтобы добавить поддержку, и вам нужно знать, актуальна ли эта работа для вас, поскольку это может означать, что вы продолжите видеть NTLM в своей сети.

Фактически инструменты и настройки для блокировки NTLM были представлены в Windows 7 и Windows Server 2008 R2 в 2012 году, но, учитывая, насколько широко используется NTLM, немногие организации смогут полностью удалить его. Вы можете использовать политику безопасности сети: Ограничить NTLM: Аудит входящего трафика NTLM (см. Конфигурация компьютера | Настройки Windows | Настройки безопасности | Локальные политики | Параметры безопасности в групповой политике) для аудита использования NTLM — убедитесь, что журналы просмотра событий достаточно большие, потому что, вероятно, там достаточно трафика, чтобы заполнить их быстрее, чем вы ожидаете.

Хотя вы уже можете включить аудит NTLM в групповой политике, Microsoft расширяет информацию, которая будет включена, чтобы было проще определить, какие приложения используют NTLM. На данный момент вы получаете идентификатор процесса, но в будущем он будет показывать конкретный EXE-файл, связанный с ним, поскольку он может быть не виден в журнале.

Получив подробную информацию о том, какие приложения, службы и серверы используют NTLM, вы можете начать создавать детальные политики для контроля над этим и постепенно заменять их Kerberos.

Когда будут доступны расширения Kerberos?

Как обычно, изменения будут реализованы в новых версиях Windows 11 и Windows Server сначала в 2024 и 2025 годах соответственно, а серверные приложения, такие как IIS, будут обновлены для поддержки IAKerb, как только эта функция будет выпущена.

Возможность заблокировать Windows от разрешения аутентификации NTLM для SMB также появится в Windows 11, начиная с Windows 11 Insider Preview Build 25951, которая была выпущена на канале Canary в сентябре этого года.

Как только эти новые выпуски выйдут, Microsoft может или не может перенести эти функции в уже поставляемые версии ОС. Пока неясно, появятся ли IAKerb и Local KDC в Windows 10 из-за объема проделанной работы и прекращения поддержки Windows 10 в 2025 году. Внесение подобных серьезных изменений всегда сопряжено с риском возникновения проблем совместимости со старыми приложениями.

Это делает еще более важным воспользоваться инструментами аудита NTLM, чтобы узнать, как и где вы используете NTLM и как быстро вы можете от него отказаться.

Подпишитесь на информационный бюллетень Cybersecurity Insider Укрепите защиту ИТ-безопасности вашей организации, будучи в курсе последних новостей, решений и лучших практик в области кибербезопасности. Доставка по вторникам и четвергам Адрес электронной почты Подписываясь на нашу рассылку, вы соглашаетесь с нашими Условиями использования и Политикой конфиденциальности. Вы можете отписаться в любое время. Подписаться
Подпишитесь на информационный бюллетень Cybersecurity Insider Укрепите защиту ИТ-безопасности вашей организации, будучи в курсе последних новостей, решений и лучших практик в области кибербезопасности. Доставка по вторникам и четвергам Адрес электронной почты Подписываясь на нашу рассылку, вы соглашаетесь с нашими Условиями использования и Политикой конфиденциальности. Вы можете отписаться в любое время. Подписаться

Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE