He oído que un APK de Android se puede depurar si se establece android:debuggable="true"
. ¿Cuáles son las posibles amenazas para permitir la depuración de una aplicación?
He oído que un APK de Android se puede depurar si se establece android:debuggable="true"
. ¿Cuáles son las posibles amenazas para permitir la depuración de una aplicación?
La aplicación de envío con depuración significa que cualquier persona con acceso físico al dispositivo puede ejecutar un código arbitrario con el permiso de esa aplicación. Si la aplicación contiene datos confidenciales, será bastante sencillo extraer esos datos confidenciales de la aplicación. Hacer lo mismo en una aplicación que no se pueda copiar requeriría que el atacante primero obtenga un privilegio de root o encuentre un exploit en la propia aplicación.
Sin embargo, el envío sin depuración no debe considerarse como una protección contra el propio usuario. El usuario legítimo de un dispositivo tiene todo el tiempo que necesita para rootear su propio dispositivo, por lo que puede obtener cualquier secreto almacenado por cualquier aplicación que se ejecute en su dispositivo con o sin la aplicación de depuración.
Esto podría ser un intento de protección de la aplicación contra el propietario del dispositivo.
Puede permitirle extraer datos confidenciales (es decir, algún token de aplicación bancaria) o elevar los privilegios de ejecución, si esa aplicación tiene UID del sistema, por ejemplo.
How?
Al conectar el depurador a la aplicación sobre adb, puede rastrear el código y ejecutar otro código. También puede usar run-as en adb shell, para cambiar UID a UID de la aplicación en cuestión.