Ось як працює лазівка ​​при покупках через додаток

Ось як працює лазівка ​​при покупках через додаток (c) IDG/Apple

покупках

Російський хакер кілька тижнів тому знайшов діру в App Store, і платні функції в додатку можна було завантажити безкоштовно.

Російський хакер Олексій Бородін розмістив власний сервер в Інтернеті за допомогою служби придбання в додатку. Користувачам залишалося лише завантажити надані сертифікати та встановити їх на iPhone, і шлях до безкоштовного магазину був відкритий. Apple напрочуд швидко відреагувала на уразливість і через кілька днів випустила інструмент для розробників та оновлення для iOS 6. Виробник iPhone стверджує, що розрив буде назавжди скорочений від iOS 6.

Кілька днів тому хакер знову виступив і опублікував покрокові інструкції щодо злому, включаючи код сервера. Інформація тепер нешкідлива, оскільки хакерство більше не працює, але вона пропонує кілька цікавих уявлень про зв'язок між серверами Apple, розробниками та iPhone.

Для придбання в додатку iPhone кілька разів спілкується із серверами Apple. За допомогою запиту на додатковий сервер iTunes (buy.itunes.apple.com) iPhone пересилає з програми таку інформацію, як ідентифікатор програми, номер версії, виробник та GUID/UUID iPhone (глобально унікальний ідентифікатор або універсально унікальний ідентифікатор). . Відповідь - добре відоме підтвердження покупки «Хочете придбати додаток X за Y євро?» Те, що виглядає як питання з двома кнопками на екрані iPhone, має значно більше параметрів у детальному вигляді. Наприклад, унікальний iTunes Adam ID - восьми- чи дев’ятизначний ідентифікаційний номер для всіх програм в iTunes - а також ціна, номер версії, виробник тощо. Бородін повідомляє, що в його тестах більшість програм змогли ігнорувати iTunes ID. Іншими словами, запит на підтвердження покупки від iTunes містить майже ту саму інформацію, яку iPhone вже надіслав на сервер. Нова інформація, така як ідентифікатор Адама, просто ігнорується.

Наступний крок у процесі покупки: користувач надсилає підтвердження в iTunes, натискаючи кнопку "Купити". App Store запитує авторизацію кожного разу, коли додаток завантажується. Під час цієї авторизації, за словами Бородіна, конфіденційні дані, такі як Apple ID та пароль, були надіслані з iPhone у незашифрованому файлі plist. Теоретично тут відкривається ще одна прогалина в безпеці: оскільки передача даних між iPhone і App Store в основному працює бездротово, злочинцям досить легко отримати конфіденційні дані доступу в будь-який момент.

accountInfo

appleId apleid
дочірній рахунок 0
адресу

ім'я Ім'я
прізвище Прізвище
passwordToken Маркер пароля (діє 15 хвилин)
clearToken token (діє 15 хв

dsPersonId Ваше посвідчення особи
CreditDisplay

кредитний баланс 1311811 (кредит iTunes)
freeSongBalance 1311811 (ймовірно, кількість доріжок для iTunes Match)

Сертифікат підтвердження вразливості

На наступних кількох кроках App Store перевіряє придбання та наявність програми на iPhone. Для цього він надсилає цифрове підтвердження покупки із загальною інформацією про програму, а також додатковою інформацією про дату покупки, номер транзакції та сертифікат підтвердження покупки. У сертифікаті перевірки Бородін виявив найважливішу вразливість, яку він використав для злому. У попередній версії App Store доставляв весь пакет файлів, тобто сертифікат разом із ключем. Макет сертифіката виглядає так:

ОТРИМАТИ ВЕРСІЮ | ПІДПИС | РОЗМІР СЕРТИФІКАТУ | СЕРТИФІКАТ
1 байт 128 4 байти ...

За допомогою звичайних шифрувань, таких як електронні листи, відправник надсилає електронні листи зі своїм виданим сертифікатом. Одержувач має приватний ключ для розшифровки. Якщо сертифікат і ключ збігаються, одержувач отримує дані в зручній для читання формі. Злочинці навряд чи мають можливість декодувати дані без дійсного ключа, навіть якщо їм вдалося отримати доступ до необроблених даних.

Бородін скористався цією логічною помилкою Apple: налаштування DNS для iPhone, які він зробив доступними, не були перенаправлені в App Store, а на інший сервер. Проксі-сервер видав підроблені сертифікати для App Store з тією ж структурою, що і оригінальний сертифікат. Оскільки ключі на iPhone також надходили від хакера, сертифікат і ключ природно збігалися, і App Store вважав покупку дійсною.

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