На початку року компанія Apple усунула вразливість в iOS і macOS, яка потенційно могла дозволити зловмиснику отримати несанкціонований доступ до облікового запису iCloud користувача.

 

Вразливість була виявлена ​​ІБ-фахівцем з компанії Computest Тійс Алкемейд (Thijs Alkemade). Проблема була пов’язана з реалізацією біометричної функції TouchID (або FaceID), що дозволяє аутентифікувати користувачів для входу на web-сайти в браузері Safari.

Коли користувачі намагаються авторизуватися на web-сайті, для якого потрібно Apple ID, буде запропоновано для аутентифікації за допомогою Touch ID. Даний процес пропускає етап двофакторної аутентифікації, оскільки вже використовує комбінацію чинників для ідентифікації, таких як пристрій і біометрична інформація користувача.

Під час авторизації в доменах Apple (наприклад, «icloud.com») звичайним способом з ідентифікатором і паролем сайт включає iframe, який вказує на сервер перевірки входу в систему Apple ( «dmsa.apple.com») для обробки процесу аутентифікації.

 

Як показано у відеоролику, URL-адресу iframe також містить два інших параметра – «client_id», що ідентифікує сервіс (наприклад, iCloud), і «redirect_uri», який містить URL-адресу для перенаправлення після успішної перевірки.

Однак, коли користувач перевіряється за допомогою Touch ID, iframe обробляється по-іншому, оскільки взаємодіє з даемоном AuthKit (akd) для проведення біометричної аутентифікації і подальшого отримання токена ( «grant_code»). Токен використовується сторінкою icloud.com для продовження процесу входу в систему. Для цього демон зв’язується з API на gsa.apple.com для відправки подробиць запиту і отримання токена.

 

Проблема пов’язана з вищезазначеним API gsa.apple.com, що дозволяв потенційно зловживати доменами для перевірки ідентифікатора клієнта без аутентифікації. Зловмисник міг використовувати вразливість межсайтового виконання сценарію на будь-якому з піддоменів Apple для запуску шкідливого JavaScript-коду.