Минулого тижня вітчизняному хакеру вдалося здійснити майже неймовірне - їм була зламана система покупок усередині додатків In-App Purchase.
Система In-App Purchase вперше була представлена в 2009 році і з тих пір користувачам ігаджетов був доступний її злом лише за допомогою спеціальних додатків Cydia. На жаль, для цього методу необхідно було зробити джейлбрейк свого ігаджета, що деяким могло бути трохи незручно.
Проте, представлений минулого тижня метод вітчизняного розробника не вимагає джейлбрейка. Для здійснення злому In-App Purchase використовується проста підміна сертифікатів, за рахунок чого застосувати її може абсолютно будь-який користувач.
Як працює In-App Purchase
Якщо не вдаватися в технічні подробиці, то система In-App Purchase працює гранично просто. Перед тим, як випускати додаток в App Store, розробники реєструють в магазині додатків різний додатковий контент, який і буде продаватися в додатку за допомогою In-App Purchase.
Для здійснення покупок за допомогою In-App Purchase, додаток перенаправляє користувача на сторінку покупки додаткового контенту, яка і запускає спеціальний скрипт для придбання цього контенту.
При здійсненні покупки, iOS підключається до серверів Apple для виконання двох ключових завдань: перевірку даних за допомогою пароля і нікнейму, а також перевірки того, чи дійсно користувач збирається придбати додатковий контент. Останнє виражається в повторному підтвердженні покупки.
Для збереження переданих даних, Apple зашифровує їх за допомогою протоколу TLS/SSL - аналогічного тим, що використовуються при відкритті сторінок в браузерах з префіксом «https://».
Для розробників ця система є повністю закритою та недоступною, що зроблено для забезпечення конфіденційності даних користувачів. Додаток просто видає запит на купівлю, який автоматично виконується стороннім додатком, що надає додатковий контент.
При цьому не проводиться ніяка перевірка платіжних даних, що значно підвищує ймовірність злому даної системи. Потрібно зауважити, що самі розробники не переймаються реалізацією способу перевірки даних через відчуття «захищеності» системи перевірки Apple. Саме завдяки цьому, Олексія Бородіну і вдалося створити настільки легкий алгоритм обходу захисту In-App Purchase.
Як працює спосіб обходу захисту In-App Purchase
При відсутності яких-небудь сторонніх способів захисту, зламати систему In-App Purchase насправді далеко не так складно, як здається. Для цього хакеру було достатньо створити спеціальний протокол, який дозволив би переконати систему безпеки, що видані дані користувачів є достовірними, за рахунок чого купівля контенту за допомогою In-App Purchase відбудеться стандартним способом. Звичайно, це було б абсолютно неможливо, якби розробники приділили хоч трохи часу розробці спеціальної системи, яка б здійснювала перевірку платіжних даних користувачів.
Крім цього, можливості злому посприяли протоколи безпеки SSL/TLS, за допомогою яких і здійснюється шифрування даних. Так як дані користувача залишаються прихованими для розробників, була розроблена спеціальна система, яка здійснює перевірку їх достовірності за допомогою електронного сертифіката, що видається Apple.
Принцип обходу захисту In-App Purchase гранично простий - хакер здійснює підміну DNS-сервера, змушує повірити» ігаджет, що він досі підключений до сервера Apple. На цьому ж сервері і видається фальшивий сертифікат, який дозволяє здійснити покупку додаткового контенту, без списання коштів з рахунку користувача.
Варто зазначити, що це також відкриває можливість по збору паролів і даних з ваших акаунтів iTunes Store для хакера, так як вся ця інформація передається на його сервера при валідації користувача.
Невже все так просто
Так, все дійсно так просто. Олексія Бородіну було достатньо лише розробити метод здійснення підміни серверів Apple, після чого залишалося лише «підняти» власний DNS-сервер.
Потрібно зауважити, що Apple чудово обізнана про даному недоліку системи безпеки In-App Purchase і саме тому настійно рекомендує розробникам використовувати власні методи перевірки автентичності користувача даних спільно з системою перевірки даних від Apple.
Звичайно ж, мало хто з розробників вважав за потрібне реалізувати подібну систему перевірки за увірування в непохитність Apple і In-App Purchase.
Для забезпечення додаткової безпеки розробники можуть створити власну систему перевірки даних, в ході якої їх персональна інформація може переадресовуватися в Apple для повторної перевірки. Так як перевірка даних користувачів буде здійснюватися на сервері розробника, здійснити його підміну і процес злому для хакерів стане значно складніше.
Одним з головних недоліків подібної схеми перевірки є необхідність її повторної розробки для кожного з нових додатків, що значно підвищує витрати на розробку програми і його підсумкову вартість в App Store.
Система In-App Purchase абсолютно не надійна
Як не дивно, але Apple сама повідомляє розробників про недосконалості захисту In-App Purchase, автоматично знімаючи з себе всю відповідальність за можливий злом.
Завдяки цьому компанія виявилося захищена від можливих позовів з боку розробників, які могли зажадати відшкодування збитку, нанесеного методом обходу захисту In-App Purchase.
Особисто мені трохи незрозуміло, чому переважна більшість розробників настільки недолугий, коли справа доходить до безпеки їх додатків.
З іншого боку, розробникам, які значно ускладнюють захист своїх додатків, тим самим значно жертвуючи зручністю їх покупки, потрібно усвідомити очевидний для багатьох факт - більшість користувачів воліють придбати ліцензійний додатковий контент лише в тому випадку, якщо він дійсно якісний.
Основні втрати у випадку з зломом системи In-App Purchase понесуть лише ті розробники, які анітрохи не дбають про якість своїх програм, сподіваючись на розкручений бренд або ж просто на заманюють опис. Не варто забувати, що і до існування методу обходу захисту In-App Purchase, довіра до таких розробникам у користувачів пропадало вже після перших хвилин «знайомства» з їх застосуванням. Саме тому їм навряд чи доводилося сподіватися на лояльність користувачам при створенні нових додатків.
Як розробники можуть убезпечити себе?
Після численних скарг від розробників, багато припускають, що Apple віддасть перевагу зробити процес покупки контенту за допомогою In-App Purchase значно більш надійним. На жаль, це стане можливо лише з виходом чергового оновлення iOS, яке стане доступним лише через кілька місяців. На даний момент представники Apple вирішили навчити розробників способів альтернативної захисту при створенні додатків з різним додатковим контентом.
Крім цього компанія почала банити Apple ID тих користувачів, які використовували сторонній DNS-сервер для обходу захисту In-App Purchase.
Також стримувати користувачів, від використання цього сервісу для злому In-App Purchase, може незахищеність їх персональних даних. Хочеться нагадати, що при використанні даного методу користувачі фактично надають хакерам абсолютно всю інформацію про своїх кредитних картах, а також Apple ID.
Як це може вплинути на Apple?
Зараз неймовірно складно передбачити надасть даний інцидент значний вплив на App Store або ж розробники просто модернізують захист процесу покупок у себе на серверах.
У будь-якому випадку, завдяки Олексія Бородіну багато розробники, а також Apple задумаються про необхідність створення додаткового захисту для своїх додатків і сервісів.
Також подібне може призвести до міграції розчарувалися в недосконалості захисту App Store, розробників на інші платформи, що може негативно позначитися на кількості доступних для iOS додатків. Однак, через злому переважно підуть виключно ті розробники, які не здатні створити щось дійсно якісне.
Хочеться зауважити, що наш портал цілком неподдерживает злом In-App Purchase, тому не варто розглядати цю статтю, як допомога по злому.
В цілому, саме завдяки Олексія Бородіну багато хто усвідомлює факт того, що зламати в наш час можливо абсолютно все і зайва впевненість у безпеці якого-небудь сервісу може призвести до значних втрат прибутку.
Немає коментарів:
Дописати коментар