fbpx
24.2 C
София

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

Най-четени

Даниел Десподов
Даниел Десподовhttps://www.kaldata.com/
Ежедневен автор на новини. Увличам се от съвременни технологии, оръжие, информационна безопасност, спорт, наука и концепцията Internet of Things.

Специалистът по информационна безопасност Дхавук Джайн от Делхи откри 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 предоставя на потребителя възможност да сподели идентификатора си за електронната поща на 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, и ни последвайте в Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iOS и Huawei!

Абонирай се
Извести ме за
guest

0 Коментара
Отзиви
Всички коментари

Нови ревюта

Asus Zenfone 9: Малкият голям смартфон

Преди седмица Asus представи новия си флагман Zenfone 9. С него компанията продължава традицията за компактен форм-фактор като флагмана от предишното си поколение. Исторически погледнато,...

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