Через 'Sign in with Apple' можна було зламати будь-які облікові записи

2 хв. читання

У квітні дослідник безпеки Бгавук Джайн (Bhavuk Jain) знайшов критичну вразливість у системі 'Sign in with Apple' та повідомив про це компанії. В межах програми Bug Bounty він отримав 100 000 доларів винагороди.

Помилка дозволяла дистанційно зламати облікові записи користувачів у сторонніх сервісах і застосунках — якщо вони мали систему авторизації Apple (тобто кнопку 'Sign in with Apple').

Цю функцію Apple випустила торік — як конфіденційний спосіб авторизації, для якого не потрібно розкривати електронну пошту. Ідея полягала в тому, щоб приховувати свої дані та обмежити відстеження з боку систем на кшталт Facebook і Google.

Кнопку 'Sign in with Apple' додали чимало сервісів, зокрема Dropbox, Spotify, Airbnb і Giphy. У правилах App Store зазначено, що ця функція обов'язкова, якщо в застосунку є можливість авторизації через сторонні облікові записи (Google, Twitter, LinkedIn тощо).

Для технології 'Sign in with Apple' сервер генерує JSON Web Token (JWT) з прихованою інформацією, за якою застосунок підтверджує особу користувача. Далі користувач може або надіслати застосунку свій Apple ID, або ні — тоді система генерує додатковий Email ID для входу. Після цього Apple створює JWT з ідентифікатором електронної пошти, він використовується для входу в застосунок.

Саме тут і ховалась помилка. Бгавук Джайн помітив, що може отримати токени JWT для будь-якого ідентифікатора електронної пошти Apple. Коли підпис токенів перевіряється через відкритий ключ Apple, вони визнаються дійсними. Тож зловмисники могли б підробити JWT і прив'язати його до будь-якого ідентифікатора пошти та отримати доступ до потрібного облікового запису.

Видання Hacker News пише, що вразливість можна було використати, навіть якщо користувачі вирішили приховати свій ідентифікатор електронної пошти Apple від сторонніх сервісів. Його можна було б застосувати для реєстрації нового облікового запису з тим самим Apple ID.

Компанія вже виправила помилку та провела розслідування: скомпрометованих облікових записів через цю вразливість не знайшли.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 6.2K
Приєднався: 7 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація