Специалисты из компании Palo Alto Networks выявили три различные уязвимости в Google Password Manager, которые дают возможность перехватывать аккаунты, защищенные посредством passkey. Несмотря на то, что данные атаки требуют предварительного заражения компьютера пользователя, они не требуют получения прав администратора, введения PIN-кода, использования биометрических данных или какого-либо взаимодействия с пользователем. Серия атак получила обозначение Pass-ta-key, Silver Pass-ta-key и Golden Pass-ta-key. Все три вектора атаки воздействуют на браузер Chrome в операционной системе Windows на ПК с модулем Trusted Platform Module (TPM).

По мнению экспертов, уязвимости Pass-ta-key не нарушают криптографическую защиту менеджера паролей, а используют недостатки в системах проверки доверия, регистрации устройств, восстановления и синхронизации учетных данных.

Первый сценарий атаки (Pass-ta-key) заключается в том, что вредоносный код с правами обычного пользователя выдает себя за надежное устройство и требует аутентификационный ответ для одного из passkey жертвы. Вредонос извлекает сохраненный в Chrome элемент данных, содержащий ключ идентификации устройства. Хотя приватный ключ защищен в TPM, вредонос может получить доступ к нему через Windows CNG и заставить его подписать запрос атакующего. В результате облачный сервис Google воспринимает запрос как поступивший от проверенного устройства и предоставляет корректный ответ для входа в профиль. Однако при этом отсутствует флаг User Verified (UV), который должен подтверждать, что владелец верифицировал операцию с использованием PIN или биометрии. Из-за этой недостаточности атака не срабатывает на сервисах, которые проверяют UV. К примеру, GitHub отклонил подготовленный тестовый запрос, тогда как eBay его принял (впоследствии eBay исправила эту уязвимость).

Вторая уязвимость (Silver Pass-ta-key) связана с процедурой повторной регистрации оборудования. Вредонос повреждает локальные настройки Google Password Manager (удаляет локальные файлы), принуждая Chrome повторно регистрироваться на облачном сервисе. Исследователи выяснили, что злоумышленник может успеть зарегистрировать свой ключ для верификации пользователя до того, как это будет проверено. Облачный сервис Google начинает принимать запросы, подписанные ключом атакующего, как подтверждение разблокировки устройства (запросам присваивается флаг UV). Такой ключ позволяет хакеру входить в чужие аккаунты с собственного оборудования, даже без доступа к исходному ПК жертвы.

Третья и наиболее серьезная уязвимость (Golden Pass-ta-key) позволяет украсть Security Domain Secret (SDS) объемом 32 байта — главный ключ для защиты всех синхронизированных passkey в Google Password Manager жертвы. При повторной регистрации устройства на облачном сервисе Chrome временно хранит SDS в открытом виде в оперативной памяти процесса, откуда его может извлечь вредонос. После получения SDS злоумышленник может расшифровать приватные ключи passkey, скопировать их на другое устройство и подделать личность жертвы. Более того, SDS теоретически дает возможность расшифровывать любые новые ключи доступа, которые появятся в аккаунте впоследствии.

На данный момент остается неясным, можно ли аннулировать украденный SDS путем изменения пароля или удаления синхронизированных данных. Исследователи не предоставили CVE-идентификаторы, перечень уязвимых версий браузера и информацию о том, устранены ли проблемы в настоящее время. Вместе с тем эксперты подчеркивают, что passkey остаются надежнее стандартных паролей, но не защищают от вредоноса на скомпрометированном оборудовании. Владельцам веб-сервисов рекомендуется всегда проверять личность и валидировать флаг UV. Разработчикам менеджеров рекомендуется проверять подлинность новых ключей, укреплять защиту процедур восстановления и не допускать попадания главных ключей в служебные логи и оперативную память приложений.