Привіт! Я Суприт Пандурангі, також відомий як s3ctat0r. Сьогодні ми поглиблено розглянемо теорію та практику використання iOS Touch ID, розкриємо, як це працює, його сильні сторони в безпеці та потенційні методи обходу.
Давайте експлуатувати!!
Використання біометрії iOS, такої як Touch ID і Face ID, забезпечує безшовний та безпечний спосіб автентифікації користувачів для чутливих дій, таких як вхід у систему тощо. Однак ці перевірки покладаються на валідацію на стороні клієнта, тому не можна вважати їх повністю безпечними від складних методів обходу.
Біометричні перевірки виконуються локально на пристрої, що робить їх вразливими до обходу, якщо зловмисник отримає доступ до програми або пристрою.
Реалізація коду/фрагменту для Touch ID для iOS програми:
Щоб обійти біометричну перевірку, ми можемо використати Frida script, який перехоплює функцію evaluatePolicy
. Оскільки ця функція використовує зворотний виклик для визначення успіху чи невдачі, ми можемо змінити його так, щоб завжди поверталося success = 1
, ефективно обхідуючи автентифікацію. Такий підхід дозволяє нам обдурити програму, змушуючи її вважати, що біометрична перевірка була успішною, незалежно від фактичного вводу користувача.
Передумови для виконання тесту:
1. Джейлбрейкнуте iOS пристрій
2. Інструмент Frida
3. Атакуюча машина
Тепер давайте обійдемо перевірку за допомогою наведеного методу:
На джейлбрейкнутому пристрої перейдіть до Sileo/Cydia, як показано нижче.
Пошукайте Frida та встановіть її на пристрій.
Тепер підключіть пристрій до атакуючої машини за допомогою USB-кабелю (рекомендовано: USB до lightning кабель).
Ми бачимо, що програма запитує автентифікацію через Touch ID, як показано на скріншоті нижче.
Використовуйте frida-ps -Ua для переліку всіх процесів разом з їхніми відповідними назвами пакетів, що виконуються на iOS пристрої.
Тепер запустіть зазначений вище Frida script за допомогою цієї команди —
frida -U -f -l ios-biometrics-bypass.js
Після виконання скрипта натисніть на кнопку Cancel, як показано нижче.
Бум!! Було спостережено, що автентифікація через iOS Touch ID була успішно обійдена.
Я відповідально повідомив про цю вразливість до відповідної програми Bug Bounty та отримав винагороду за це відкриття.
Рекомендації щодо обходу біометрії iOS/Touch ID
- Виконувати перевірку автентифікації на стороні сервера.
- Використовувати Secure Enclave для зберігання біометричних даних.
- Реалізувати детекцію джейлбрейку та цілісності виконання.
- Застосовувати резервний PIN/пароль після кількох невдалих спроб.
- Обфускувати та шифрувати критичну логіку автентифікації.
- Моніторити та реєструвати спроби біометричної автентифікації.
Це може бути корисним для розробників, які хочуть реалізувати перевірку на джейлбрейк з iOS Security Suite
Сподіваюся, що цей блог був корисним і цікавим. Розуміння та захист біометричної автентифікації є важливими в сучасному цифровому середовищі, і я вдячний, що ви знайшли час, щоб дослідити цю тему зі мною.
Будьте допитливими, будьте в безпеці, і щасливого хакінгу 😀
Перекладено з: No Finger? No Problem! iOS Biometrics Bypassed & it’s a Bug Bounty Win!