¿Es posible obtener datos de la aplicación en ejecución desde un teléfono no rooteado?

3

Estoy escribiendo un pequeño informe de seguridad sobre los dispositivos Android en general relacionados con el acceso a la información desde la RAM. La condición principal es que el dispositivo inicialmente no está rooteado.

Caso de uso: el usuario abre una aplicación de terceros, ingresa alguna contraseña en el campo de contraseña. Después de que el dispositivo se pierde con esta aplicación en ejecución. El código fuente de esta aplicación muestra que la información de esta contraseña está disponible en la RAM mientras la aplicación está en funcionamiento. Por ejemplo, en la clase AllMyAppPasswords en la cadena pública myPassword. Ahora es la pregunta sobre la posible forma de acceder a la información de esta contraseña (corríjame si me equivoco):

  1. La forma de acceder a este pwd es volcar la memoria.
  2. Para el volcado de memoria, necesito tener un dispositivo para ser rooteado.
  3. Para poder rootear el dispositivo, necesito desbloquear el cargador de arranque.
  4. Para lograr desbloquear las operaciones del gestor de arranque y la raíz, es necesario que el dispositivo se reinicie al menos una vez.
  5. Después de reiniciar el dispositivo, la información sobre la contraseña desaparece de la RAM

Más información sobre el caso de uso actual: asumimos que el usuario acaba de desempaquetar el nuevo dispositivo y estamos 100% seguros de que no está rooteado y no contiene ninguna aplicación de keylogger. Por lo tanto, el usuario acaba de instalar mi aplicación, ingresó la contraseña y la aplicación usa esta contraseña internamente durante el tiempo de ejecución para conectar periódicamente el servidor (contraseña solo RAM, nunca almacenada en el disco). Por lo tanto, visualmente no queda nada en los campos Editar texto, información sobre la contraseña solo en la memoria de la aplicación para uso interno, por supuesto, no es posible leer el texto de la contraseña en la pantalla. Ahora el usuario perdió su teléfono.

Conclusión y mi pregunta: No es posible obtener la contraseña que reside en la memoria RAM de la aplicación si el dispositivo no está rooteado (sin el desensamblaje físico del chip de memoria congelado). ¿Es correcto? ¿Debería el usuario preocuparse por alguien que encontró su teléfono puede obtener esta información de contraseña de la RAM?

    
pregunta PerecFX 07.03.2013 - 14:52
fuente

2 respuestas

3

Sus suposiciones acerca de enraizar un teléfono no son necesariamente correctas. La forma más típica es desbloquear el cargador de arranque, ya que permite que se otorgue la raíz en el momento del arranque, sin embargo, una falla en el sistema operativo podría hacer que sea posible enraizar el teléfono sin desbloquear el cargador de arranque. Si bien no estoy al tanto de ninguna forma actual de hacer esto contra Android 4, fue muy posible en versiones anteriores a la 2.2 e incluso hubo un virus que estaba enraizado en un teléfono en ejecución que lo hizo en libertad. Probablemente este es el motivo por el cual ese defecto en particular (que se había utilizado para rootear los teléfonos durante algún tiempo) fue finalmente reparado.

El enraizamiento solo requiere una vulnerabilidad que permita que los permisos se eleven al contexto del superusuario. Hay muchas formas de hacer esto, pero la mayoría de las personas no se molestan en intentar encontrarlos, ya que solo quieren desbloquear sus dispositivos y el gestor de arranque es el camino de menor resistencia.

    
respondido por el AJ Henderson 07.03.2013 - 15:28
fuente
1

Si recuerdo correctamente, dependiendo de la versión de Android que estés usando, incluso cuando el teléfono es robado, no es fácil acceder a la RAM a menos que estés dispuesto a congelarlo . La técnica anterior vinculada incluso permite eludir los mecanismos de cifrado.

Creo que los vectores de ataque más interesantes serían encontrar contraseñas almacenadas en la tarjeta SD o en el almacenamiento interno. Nuevamente, si el usuario está utilizando el cifrado completo del disco, es probable que esto no funcione.

El mayor problema con Android es que hay toneladas de versiones diferentes disponibles

    
respondido por el Lucas Kauffman 07.03.2013 - 15:28
fuente

Lea otras preguntas en las etiquetas