FIDO2: Устойчив к фишингу, но не к токенам
В статье рассказывается о том, как MITM-атаки могут обойти защиту FIDO2 от фишинга; подробно описывается процесс аутентификации в FIDO2, освещаются уязвимости в обработке токенов сеанса и приводятся реальные примеры, связанные с использованием единого входа Entra ID, PingFederate и Yubico Playground, а также стратегии устранения неполадок для повышения безопасности.
FIDO2
📌FIDO2 — это современный стандарт аутентификации без пароля, разработанный Альянсом FIDO Alliance для замены паролей
📌Он предназначен для защиты от фишинга, атак типа «человек посередине» (MITM) и перехвата сеанса
📌Процесс аутентификации включает в себя регистрацию устройства и аутентификацию с использованием криптографии с открытым ключом
Функции безопасности FIDO2
📌FIDO2 разработан для предотвращения фишинговых атак, MITM и перехвата сеанса
📌 Однако исследование показало, что реализации FIDO2 часто не защищают токены сеанса после успешной аутентификации
Атака на FIDO2 с помощью MITM
📌Автор исследовал атаки MITM на поставщиков идентификационных данных (IDP)
📌 Хотя MITM сложнее использовать с помощью TLS, такие методы, как подмена DNS, отравление ARP и кража сертификатов, могут помочь в этом
📌Выполнив MITM для IdP, злоумышленник может перехватить токен сеанса после проверки подлинности FIDO2
EntraID SSO (Microsoft)
📌Обзор: Entra ID SSO — это решение для единого входа, которое поддерживает различные протоколы единого входа и современные методы аутентификации, включая FIDO2.
📌Уязвимость: Исследование показало, что злоумышленник может перехватывать сеансы, используя способ, которым Entra ID обрабатывает токены сеанса.
📌Метод атаки: Злоумышленнику не нужно ретранслировать весь процесс аутентификации. Вместо этого он может использовать подписанный токен, предоставленный IdP, срок действия которого составляет один час. Этот токен может быть повторно использован в течение допустимого периода времени для создания файлов cookie состояния на более длительный период.
📌Пример: Собственное приложение портала управления Azure не проверяет токен, предоставленный службой единого входа, что позволяет злоумышленнику использовать украденный токен для получения несанкционированного доступа.
PingFederate
📌Обзор: PingFederate — это решение для единого входа, которое использует сторонние адаптеры для выполнения аутентификации. Эти адаптеры могут быть объединены в поток политики аутентификации.
📌Уязвимость: Исследование показало, что если разработчик, которому доверяют, не проверит токен OIDC (или SAML-ответ), атака MITM может быть успешной.
📌Метод атаки: Атака использует самое слабое звено в цепочке аутентификации. Поскольку протоколы единого входа основаны на предоставлении токенов, которые могут быть повторно использованы различными устройствами, злоумышленник может перехватить сеанс, украв эти токены.
📌Пример: Адаптер PingOne можно использовать с поддержкой FIDO2. Если токен OIDC не будет подтвержден, злоумышленник может обойти защиту FIDO2 и получить несанкционированный доступ.
Yubico Playground
📌Обзор: Yubico Playground — это среда тестирования функций и ключей безопасности FIDO.
📌Уязвимость: Исследование показало, что можно использовать простой сеансовый файл cookie, сгенерированный после аутентификации FIDO2.
📌Метод атаки: На устройстве, запросившем сеансовый файл cookie, отсутствует проверка подлинности. Любое устройство может использовать этот файл cookie до истечения срока его действия, что позволяет злоумышленнику обойти этап аутентификации.
📌Пример: Получив файл cookie сеанса, злоумышленник может получить доступ к личному кабинету пользователя и удалить ключ безопасности из профиля пользователя, демонстрируя простой сценарий перехвата сеанса