Apple плати $100 000 на хакер за открит 0day бъг в системата Sign in with Apple

Най-четени

Даниел Десподов
Даниел Десподов
Новинар. Увличам се от съвременни технологии, информационна безопасност, спорт, наука и изкуствен интелект.

Специалистът по информационна безопасност Дхавук Джайн от Делхи откри 0day бъг в системата за авторизация „Влезте в профила си с Apple“ (Sign in with Apple). Уязвимостта е значителна. Хакерът демонстрира, че за логването в чужд акаунт е достатъчен само идентификатора на електронната поща на жертвата. При това, експлойтът е съвсем опростен.

Уязвимостта води до цялостното прихващане на чуждите акаунти в други платформи, в които съществува бутонът Sign in with Apple – Spotify, Dropbox и т.н., при това независимо дали жертвата използва електронната поща на Apple или не.

Техническите детайли

Функцията Sign in with Apple работи аналогично на OAuth 2.0. Налични са два възможни начина за логване – или с помощта на JWT (JSON Web Token),  или с помощта на код, генериран от сървъра на Apple. След това този код се използва за създаването на JWT. На показаното по-долу изображение е демонстрирано как работи и как става проверката на JWT:

Apple плати 0 000 на хакер за открит 0day бъг в системата Sign in with Apple

На втория етап от авторизацията Apple предоставя на потребителя възможност да сподели идентификатора си за електронната поща на Apple или да се откаже от това споделяне. Ако потребителят е решил да разкрие този идентификатор на електронната поща, то Apple генерира собствен междинен Email ID. В зависимост от избора на потребителя, след успешното логване Apple създава JWT с този Email ID, който след това се използва от съответното външно приложение за авторизация в това приложение.

Най-важната от гледна точка на уязвимостта част от JWT кода изглежда по  следния начин:

{
  "iss": "https://appleid.apple.com",
  "aud": "com.XXXX.weblogin",
  "exp": 158XXXXXXX,
  "iat": 158XXXXXXX,
  "sub": "XXXX.XXXXX.XXXX",
  "c_hash": "FJXwx9EHQqXXXXXXXX",
  "email": "[email protected]", // or "[email protected]"
  "email_verified": "true",
  "auth_time": 158XXXXXXX,
  "nonce_supported": true
}

 

Бъгът

Хакерът е открил, че може да да направи запитване за JWT токен за произволен идентификатор на електронната поща на Apple и когато електронният подпис на тези токени се проверява с публичния ключ на Apple, то те се признават за действителни. А това означава, че с лекота може да се подправи JWT (JSON Web Token), като е запише в него произволен идентификатор на електронната поща на Apple и да се получи пълен достъп до акаунта на потребителя с този идентификатор.

Пример за подобно запитване:

POST /XXXX/XXXX HTTP/1.1
Host: appleid.apple.com

{"email":"[email protected]"}

В този случай при подаване на произволен адрес на електронна поща Apple генерира действителен JWT (id_token) за този конкретен Email ID.

Пример за отговора:

{
  "authorization" : {
    "id_token" : "eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ.XXXXX.XXXXX",
    "grant_code" : "XXX.0.nzr.XXXX",
    "scope" : [ "name", "email" ]
  },
  "authorizedData" : {
    "userId" : "XXX.XXXXX.XXXX"
  },
  "consentRequired" : false
}

Уязвимостта е изключително критична, понеже дава възможност за цялостното отнемане на акаунта. Голям брой разработчици интегрираха логването чрез системата на Apple, което е задължително за приложенията, включващи и други подобни бутони. А и Apple твърде активно предлага своята система за авторизация и буквално я натрапва на сайтовете. Последно време бутонът Sign in with Apple поставиха Dropbox, Spotify, Airbnb, Giphy (наскоро закупена от Facebook), както и огромен брой приложения. Очевидно е, че всички те са били уязвими.

Възнаграждението

Критичната уязвимост в системата Sign in with Apple бе разкрита през месец април тази година, като корпорацията от Купъртино заплати на хакера $100 000 в рамките на своята програма bug bounty. Бъгът вече е оправен, а Apple заяви, че компрометирани акаунти не са открити.

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

Нови ревюта

Подобни новини