¿Puede un hacker simplemente copiar preferencias compartidas de un dispositivo a otro para secuestrar una sesión/estado de usuario?

Soy un desarrollador de aplicaciones Android. Estoy tratando de solucionar un problema de seguridad en una de mis aplicaciones.

Necesito probar un escenario en el que alguien intente copiar el archivo (o archivos) de preferencias compartidas de un dispositivo Android a otro para tener el mismo estado que tiene el usuario original y usar la aplicación como si fuera el usuario original. (secuestrar sus sesiones existentes, por ejemplo).

Traté de copiar el archivo de preferencias compartidas de un dispositivo a otro (donde había instalado una copia nueva de la aplicación con un archivo de preferencias compartidas vacío). Copié el archivo del dispositivo original usando adb, lo copié en la tarjeta SD del dispositivo de destino y lo muevo al directorio de preferencias compartidas correcto usando una aplicación de administración de archivos con privilegios de raíz. Esto no funcionó.

Cuando inicio la aplicación en el dispositivo de destino, puedo ver que el archivo de preferencias de trituración se "revierte" a su forma inicial. Tal vez Android tenga algún tipo de mecanismo para evitar la manipulación de los archivos/datos de una aplicación.

Entonces mi pregunta es: ¿cómo puedo probar este escenario de otras maneras? ¿Alguna forma de transferir las preferencias de acciones de un dispositivo a otro?

¡Gracias!

define hacker, xD
Hacker: una persona tecnológica malvada que quiere robar la sesión del usuario o el estado de una aplicación accediendo a su dispositivo, obteniendo su archivo de preferencias y copiándolo en otro dispositivo.
Hay más datos dentro del archivo de preferencias y, debido a que no se ajusta a su dispositivo (diferente número de serie, por ejemplo), elimina todo el archivo. Esto puede tener muchas razones: incompatibilidad, configuración, seguridad incluso. Tal vez el servidor incluso se negó a aceptar la sesión y ya la invalidó. Todo depende de la aplicación y el desarrollador.
En este caso, soy el desarrollador responsable de esta aplicación. Revisé el código y verifiqué que no restablece el archivo de preferencias. Trabajo con el equipo del lado del servidor, por lo que sé con certeza que no es el servidor el que hace que se restablezca el archivo. He desconectado el dispositivo de la red y la aplicación se comporta exactamente igual. Los datos dentro del archivo de preferencias están cifrados y sería difícil descifrarlos, pero el escenario que estoy examinando no es el de la pérdida de información, sino el de la "duplicación" de la aplicación al copiarla en otro dispositivo. Gracias por tu comentario.

Respuestas (1)

Normalmente necesita copiar la carpeta de datos de la aplicación.

Cada aplicación contiene caché para restaurar sus propios datos. Si ejecuta su aplicación> genera preferencias compartidas> minimizar/cerrar aplicación> y eliminar esas preferencias compartidas. Cuando abre/reanuda la aplicación, el sistema restaura los datos de sesión de la memoria caché. A veces, esto depende del tamaño y el contenido de las preferencias compartidas.

Si le preocupa "piratear" su aplicación, puede proteger los datos guardados con algún método de cifrado. como base64 + salt, hash + salt, o cualquier método que quieras. Reversible o no.

O simplemente puede almacenar sus datos persistentes en una ruta/archivo personalizado y protegerlos como pueda con los métodos anteriores.