Ho sentito che è possibile eseguire il debug di un APK Android se è impostato android:debuggable="true"
. Quali sono le possibili minacce nel consentire a un'app di eseguire il debug?
Ho sentito che è possibile eseguire il debug di un APK Android se è impostato android:debuggable="true"
. Quali sono le possibili minacce nel consentire a un'app di eseguire il debug?
L'applicazione di spedizione con debug significa che chiunque abbia un accesso fisico al dispositivo può eseguire codice arbitrario sotto l'autorizzazione di tale applicazione. Se l'applicazione contiene dati sensibili, sarà abbastanza semplice estrarre i dati sensibili dall'applicazione. Fare lo stesso su un'applicazione non intercettabile richiederebbe all'utente malintenzionato di ottenere prima il privilegio di root o trovare un exploit nell'applicazione stessa.
Tuttavia, la spedizione senza debug non dovrebbe essere considerata una protezione contro l'utente stesso. L'utente legittimo di un dispositivo ha tutto il tempo necessario per eseguire il root del proprio dispositivo e così può ottenere qualsiasi segreto memorizzato da qualsiasi applicazione in esecuzione sul proprio dispositivo con o senza un'applicazione di debug.
Potrebbe trattarsi di un tentativo di protezione dell'applicazione contro il proprietario del dispositivo.
Potrebbe consentire di estrarre dati sensibili (ad esempio un token di app bancari) o di elevare i privilegi di esecuzione, se l'app ha l'UID di sistema, ad esempio.
Come?
Utilizzando il collegamento del debugger all'applicazione su adb, è possibile tracciare il codice ed eseguire altro codice. Puoi anche usare run-as in adb shell, per cambiare UID in UID dell'app in questione.