Apple выплатила 100 000 долларов за уязвимость в Sign in with Apple

Индийский ИБ-специалист Бхавук Джайн (Bhavuk Jain) получил от компании Apple 100 000 долларов по программе bug bounty за обнаружение критической уязвимости в механизме Sign in with Apple. Проблема позволяла удаленным злоумышленникам обходить аутентификацию и захватывать учетные записи пользователей в сторонних сервисах и приложениях, которые поддерживали Sign in with Apple.

Напомню, что функциональность Sign in with Apple была представлена в прошлом году на WWDC 2019. Этот механизм позволяет пользователям авторизоваться в сторонних приложениях и сервисах, используя Apple ID и iCloud (речь идет не только о приложениях для iOS). В сущности, Sign in with Apple работает так же, как аналогичные системы, предоставляемые Facebook и Google, однако разработчики Apple делают больший упор на конфиденциальность пользователя, борьбу со слежкой и спамом. Так, кнопку Sign in with Apple можно интегрировать в любое приложение, и чаще всего, пользователю потребуется лишь пройти аутентификацию FaceID или Touch ID на своем устройстве, не раскрывая никаких личных данных и местоположения.

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

Так,  во время аутентификации пользователя через Sign in with Apple сервер генерирует веб-токен JSON (JSON Web Token, JWT), содержащий секретную информацию, которую стороннее приложение использует для подтверждения личности пользователя, вошедшего в систему. Однако специалист обнаружил, что хотя Apple и просит пользователей войти в учетную запись перед исходным запросом, система не проводит валидацию, не подтверждая, что на следующем этапе веб-токен JSON запрашивает тот же самый человек.

Отсутствие валидации позволяло злоумышленникам обмануть серверы Apple, предоставив им Apple ID, принадлежащий жертве, и вынудив сгенерировать JWT, который позволял бы, используя личность жертвы, войти в учетную запись стороннего приложения или сервиса.

«Я обнаружил, что могу запросить JWT для любого email-ID, и когда подпись этих токенов была верифицирована с использованием публичного ключа Apple, оказалось, что они действительны. Это означает, что злоумышленник может подделать JWT, связав с ним любой идентификатор электронной почты и получив доступ к аккаунтам жертвы», — пишут исследователь.

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

«Последствия от [использования] этой уязвимости были бы критическим, поскольку проблема допускала полный захват учтенной записи. Многие разработчики интегрировали в свои продукты Sign in with Apple, так как это обязательное условие для приложений, поддерживающих вход через социальные сети. К примеру, Sign in with Apple используют Dropbox, Spotify, Airbnb, Giphy».

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

Мария Нефёдова: Блондинка, гик, книжный червь, синефил. Редактор ленты новостей; иногда автор Сцены.

Комментарии (2)

Похожие материалы