Bypass Biometric Authentication (Android)
Метод 1 – Обхід без використання об'єкта Crypto
Основна увага приділяється зворотному виклику onAuthenticationSucceeded, який є критично важливим у процесі аутентифікації. Дослідники з WithSecure розробили скрипт Frida, що дозволяє обійти NULL CryptoObject у onAuthenticationSucceeded(...). Скрипт примусово викликає автоматичний обхід аутентифікації за відбитком пальця під час виклику методу. Нижче наведено спрощений фрагмент, що демонструє обхід у контексті Android Fingerprint, повна програма доступна на GitHub.
Команда для запуску скрипта Frida:
Метод 2 – Підхід обробки виключень
Ще один Frida script від WithSecure вирішує проблему обходу використання небезпечних криптооб'єктів. Скрипт викликає onAuthenticationSucceeded з CryptoObject, який не був авторизований відбитком пальця. Якщо додаток намагається використовувати інший об'єкт шифру, це викличе виключення. Скрипт готується викликати onAuthenticationSucceeded і обробляти javax.crypto.IllegalBlockSizeException у класі Cipher, забезпечуючи, щоб наступні об'єкти, які використовуються додатком, були зашифровані новим ключем.
Команда для запуску скрипта Frida:
При досягненні екрану відбитка пальця та ініціації authenticate()
, введіть bypass()
у консолі Frida, щоб активувати обхід:
Метод 3 – Інструментальні Фреймворки
Інструментальні фреймворки, такі як Xposed або Frida, можуть бути використані для підключення до методів додатка під час виконання. Для аутентифікації за відбитком пальця ці фреймворки можуть:
Мокати Виклики Аутентифікації: Підключившись до методів
onAuthenticationSucceeded
,onAuthenticationFailed
абоonAuthenticationError
класуBiometricPrompt.AuthenticationCallback
, ви можете контролювати результат процесу аутентифікації за відбитком пальця.Обійти SSL Pinning: Це дозволяє зловмиснику перехоплювати та змінювати трафік між клієнтом і сервером, потенційно змінюючи процес аутентифікації або крадучи чутливі дані.
Приклад команди для Frida:
Метод 4 – Реверс-інжиніринг та модифікація коду
Інструменти реверс-інжинірингу, такі як APKTool
, dex2jar
та JD-GUI
, можуть бути використані для декомпіляції Android-додатку, читання його вихідного коду та розуміння його механізму аутентифікації. Кроки зазвичай включають:
Декомпіляція APK: Перетворення файлу APK у більш зрозумілий формат (наприклад, Java-код).
Аналіз коду: Пошук реалізації аутентифікації за відбитками пальців та виявлення потенційних вразливостей (наприклад, механізмів резервного копіювання або неналежних перевірок валідації).
Рекомпіляція APK: Після модифікації коду для обходу аутентифікації за відбитками пальців, додаток рекомпілюється, підписується та встановлюється на пристрій для тестування.
Метод 5 – Використання спеціалізованих інструментів аутентифікації
Існують спеціалізовані інструменти та скрипти, призначені для тестування та обходу механізмів аутентифікації. Наприклад:
MAGISK Модулі: MAGISK – це інструмент для Android, який дозволяє користувачам рутувати свої пристрої та додавати модулі, які можуть модифікувати або підробляти інформацію на апаратному рівні, включаючи відбитки пальців.
Скрипти на замовлення: Скрипти можуть бути написані для взаємодії з Android Debug Bridge (ADB) або безпосередньо з бекендом додатку для симуляції або обходу аутентифікації за відбитками пальців.
Посилання
Last updated