Без пальця? Без проблем! Біометрія iOS обійдена, і це перемога у програмі Bug Bounty!

Привіт! Я Суприт Пандурангі, також відомий як s3ctat0r. Сьогодні ми поглиблено розглянемо теорію та практику використання iOS Touch ID, розкриємо, як це працює, його сильні сторони в безпеці та потенційні методи обходу.

Давайте експлуатувати!!

pic

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

Біометричні перевірки виконуються локально на пристрої, що робить їх вразливими до обходу, якщо зловмисник отримає доступ до програми або пристрою.

Реалізація коду/фрагменту для Touch ID для iOS програми:

Щоб обійти біометричну перевірку, ми можемо використати Frida script, який перехоплює функцію evaluatePolicy. Оскільки ця функція використовує зворотний виклик для визначення успіху чи невдачі, ми можемо змінити його так, щоб завжди поверталося success = 1, ефективно обхідуючи автентифікацію. Такий підхід дозволяє нам обдурити програму, змушуючи її вважати, що біометрична перевірка була успішною, незалежно від фактичного вводу користувача.

Передумови для виконання тесту:
1. Джейлбрейкнуте iOS пристрій
2. Інструмент Frida
3. Атакуюча машина

Тепер давайте обійдемо перевірку за допомогою наведеного методу:

На джейлбрейкнутому пристрої перейдіть до Sileo/Cydia, як показано нижче.

pic

Пошукайте Frida та встановіть її на пристрій.

pic

Тепер підключіть пристрій до атакуючої машини за допомогою USB-кабелю (рекомендовано: USB до lightning кабель).
Ми бачимо, що програма запитує автентифікацію через Touch ID, як показано на скріншоті нижче.

pic

Використовуйте frida-ps -Ua для переліку всіх процесів разом з їхніми відповідними назвами пакетів, що виконуються на iOS пристрої.

pic

Тепер запустіть зазначений вище Frida script за допомогою цієї команди —
frida -U -f -l ios-biometrics-bypass.js

pic

Після виконання скрипта натисніть на кнопку Cancel, як показано нижче.

pic

Бум!! Було спостережено, що автентифікація через iOS Touch ID була успішно обійдена.

pic

Я відповідально повідомив про цю вразливість до відповідної програми Bug Bounty та отримав винагороду за це відкриття.

pic

Рекомендації щодо обходу біометрії iOS/Touch ID

  • Виконувати перевірку автентифікації на стороні сервера.
  • Використовувати Secure Enclave для зберігання біометричних даних.
  • Реалізувати детекцію джейлбрейку та цілісності виконання.
  • Застосовувати резервний PIN/пароль після кількох невдалих спроб.
  • Обфускувати та шифрувати критичну логіку автентифікації.
  • Моніторити та реєструвати спроби біометричної автентифікації.

Це може бути корисним для розробників, які хочуть реалізувати перевірку на джейлбрейк з iOS Security Suite

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

Будьте допитливими, будьте в безпеці, і щасливого хакінгу 😀

Перекладено з: No Finger? No Problem! iOS Biometrics Bypassed & it’s a Bug Bounty Win!