Баг в системе аутентификации ставит под сомнение безопасность всей системы.
Исследователь Иегуда Смирнов обнаружил серьезную уязвимость в системе аутентификации Windows Hello for Business (WHfB) от Microsoft. Его находка ставит под сомнение надежность биометрической защиты, которую многие считали непреодолимой.
WHfB, внедренная Microsoft в 2016 году для коммерческих и корпоративных версий Windows 10, была разработана как щит против фишинговых атак. Система использует криптографические ключи, встроенные в доверенный платформенный модуль (TPM) компьютера, и активируется с помощью биометрической верификации или PIN-кода. Однако Смирнов, работающий в команде «красных» (этичных хакеров) Accenture, обнаружил, что эту защиту можно обойти, изменяя параметры в запросе аутентификации.
Стоит отметить, что Иегуда не первый, кто обратил внимание на несовершенства платформы. Например, в 2019 году исследователи уже изучали векторы атак на WHfB, в частности, постоянный бэкдор Active Directory, который обходил средства обнаружения.
Защиту WHfB можно обойти, понизив уровень аутентификации. Смирнов использовал фреймворк Evilginx для атаки adversary-in-the-middle (AitM), чтобы перехватывать и изменять запросы к службам аутентификации Microsoft. В результате система переключалась на менее защищенные методы: обычные пароли или одноразовые SMS-коды.
Для осуществления атаки хакер модифицировал код Evilginx и создал специальный фишлет, чтобы автоматизировать процесс. Ключом к успеху атаки стало изменение параметра user-agent или «isFidoSupported» в запросе «/common/GetCredentialType».
Сама по себе уязвимость не означает, что протокол WHfB небезопасен. Проблема кроется в том, как организации настраивают и применяют строгую аутентификацию. «Какой смысл в устойчивой к фишингу аутентификации, если ее можно просто понизить до незащищенного метода?» — отмечает Смирнов.
При первой настройке Windows Hello на устройстве пользователя, система WHfB создает закрытый ключ и сохраняет его в защищенном модуле TPM компьютера. Поэтому для входа в систему требуется подтверждение личности с помощью биометрии или PIN-кода, совместимого с Windows Hello.
Microsoft создает запрос, который отправляется на устройство пользователя через API WebAuthn в браузере. Затем WebAuthn взаимодействует с Windows Hello, запрашивая подтверждение с помощью закрытого ключа. WebAuthn — это стандарт W3C, лежащий в основе современных методов аутентификации, таких как FIDO2 и passkeys.
В ответ на открытие Смирнова Microsoft в марте выпустила обновление. В портале Azure появилась новая функция под названием «authentication strength» (сила аутентификации). С ее помощью администраторы могут настроить систему так, чтобы сотрудники использовали только методы входа, устойчивые к фишингу.
Функция работает с приложениями Microsoft Entra ID и позволяет гибко настраивать уровень защиты. Администраторы могут учитывать различные факторы: важность защищаемых данных, уровень риска пользователя, требования регуляторов и даже местоположение пользователя.
Подробности исследования будут представлены на конференции Black Hat USA 2024 в Лас-Вегасе 8 августа.
Гравитация научных фактов сильнее, чем вы думаете