Bypass Biometric Authentication (Android)
Metodo 1 - Bypass tramite l'assenza di utilizzo di Crypto Object
L'attenzione qui è sul callback onAuthenticationSucceeded, che è cruciale nel processo di autenticazione. I ricercatori di WithSecure hanno sviluppato uno script Frida, che consente di bypassare il CryptoObject NULL in onAuthenticationSucceeded(...). Lo script forza un bypass automatico dell'autenticazione delle impronte digitali al momento dell'invocazione del metodo. Di seguito è riportato un frammento semplificato che illustra il bypass in un contesto di impronte digitali Android, con l'applicazione completa disponibile su GitHub.
Comando per eseguire lo script di Frida:
Metodo 2 - Approccio di gestione delle eccezioni
Un altro script Frida di WithSecure affronta il bypass dell'uso insicuro dell'oggetto crittografico. Lo script invoca onAuthenticationSucceeded con un CryptoObject che non è stato autorizzato da un'impronta digitale. Se l'applicazione cerca di utilizzare un oggetto cifratura diverso, verrà generata un'eccezione. Lo script si prepara ad invocare onAuthenticationSucceeded e gestisce l'eccezione javax.crypto.IllegalBlockSizeException nella classe Cipher, garantendo che gli oggetti successivi utilizzati dall'applicazione siano crittografati con la nuova chiave.
Comando per eseguire lo script Frida:
Una volta raggiunta la schermata dell'impronta digitale e l'avvio di authenticate()
, digita bypass()
nella console di Frida per attivare il bypass:
Metodo 3 - Strumenti di Instrumentation
I framework di instrumentazione come Xposed o Frida possono essere utilizzati per agganciarsi ai metodi dell'applicazione durante l'esecuzione. Per l'autenticazione delle impronte digitali, questi framework possono:
Simulare i Callback di Autenticazione: Agganciandosi ai metodi
onAuthenticationSucceeded
,onAuthenticationFailed
oonAuthenticationError
dell'AuthenticationCallback
diBiometricPrompt
, è possibile controllare l'esito del processo di autenticazione delle impronte digitali.Bypassare l'SSL Pinning: Ciò consente a un attaccante di intercettare e modificare il traffico tra il client e il server, potenzialmente alterando il processo di autenticazione o rubando dati sensibili.
Esempio di comando per Frida:
Metodo 4 - Reverse Engineering e Modifica del Codice
Strumenti di reverse engineering come APKTool
, dex2jar
e JD-GUI
possono essere utilizzati per decompilare un'applicazione Android, leggerne il codice sorgente e comprendere il suo meccanismo di autenticazione. I passaggi generalmente includono:
Decompilazione dell'APK: Convertire il file APK in un formato più leggibile per gli esseri umani (come il codice Java).
Analisi del Codice: Cercare l'implementazione dell'autenticazione tramite impronta digitale e individuare eventuali debolezze (come meccanismi di fallback o controlli di convalida impropri).
Ricompilazione dell'APK: Dopo aver modificato il codice per bypassare l'autenticazione tramite impronta digitale, l'applicazione viene ricompilata, firmata e installata sul dispositivo per il testing.
Metodo 5 - Utilizzo di Strumenti di Autenticazione Personalizzati
Esistono strumenti e script specializzati progettati per testare e bypassare i meccanismi di autenticazione. Ad esempio:
Moduli MAGISK: MAGISK è uno strumento per Android che consente agli utenti di eseguire il root dei propri dispositivi e aggiungere moduli in grado di modificare o falsificare informazioni a livello hardware, inclusi le impronte digitali.
Script personalizzati: Gli script possono essere scritti per interagire con il ponte di debug di Android (ADB) o direttamente con il backend dell'applicazione per simulare o bypassare l'autenticazione tramite impronta digitale.
Riferimenti
Last updated