Специалист по безопасности Дирк-Ян Моллема продемонстрировал неожиданный способ злоупотребления Windows Hello for Business. При наличии доступа к активной сессии пользователя, злоумышленник может использовать встроенный криптографический ключ для входа через WebAuthn без необходимости повторного введения пароля, сканирования биометрических данных или PIN-кода.

Несмотря на то что Windows Hello for Business хранит свои приватные ключи в защищенном модуле TPM, предотвращая их извлечение и передачу на другие устройства, Моллема обнаружил способ обойти это ограничение. Используя системный интерфейс Ncrypt.dll и поставщика хранилища ключей Passport, исследователь смог заставить операционную систему подписывать произвольные данные без прав администратора и без запроса дополнительной биометрической верификации.

Первоначально злоумышленник может получить Primary Refresh Token (PRT), используемый Microsoft для единого входа в облачные приложения. Цифровая подпись, созданная на скомпрометированном компьютере, действительна пять минут и может быть обменена на долгосрочный токен, сохраняющий свою силу до трех месяцев с возможностью автоматического продления.

Методика может быть расширена благодаря использованию того же ключа как FIDO2-идентификатора через протокол WebAuthn. Поскольку запросы аутентификации не привязаны к конкретной сессии, пользователю или облачному тенанту, злоумышленник может получить такой запрос на своем компьютере, отправить его на инфицированную систему, подписать криптографическим ключом жертвы и применить подпись для входа в течение пяти минут.

Система облачной идентификации воспринимает такой вход как полноценную аутентификацию Windows Hello for Business, что позволяет преодолеть политики условного доступа, требующие фишинг-устойчивые методы входа. Поскольку выданные токены не содержат идентификатор устройства, это позволяет регистрировать новые подконтрольные устройства в облачной системе и получать для них долгосрочные токены доступа.

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

Моллема не классифицирует это как традиционную уязвимость Windows Hello. Проблема вытекает из архитектурных решений в Windows Hello for Business, необходимых для функционирования аппаратно-защищенных ключей в различных сценариях, включая удаленные рабочие столы. Критическая проблема возникает при компрометации уже разблокированной пользовательской сессии, когда приложение может обращаться к ключам без дополнительного подтверждения личности владельца.

Для выявления таких атак рекомендуется мониторить входы через Windows Hello, не содержащие идентификатор устройства. Хотя такие случаи иногда происходят законным путем при использовании приватного режима браузера или браузеров без поддержки единого входа, в корпоративных сетях они встречаются редко. Также рекомендуется отслеживать неожиданные регистрации новых устройств пользователями.