martes, 15 de mayo de 2012

SQLite Journal: revelación de información en Android

Roee Hay (@roeehay), del equipo de IBM Application Security Research Group, ha publicado una vulnerabilidad en los sistemas Android que afectaría (al menos) a la versión 2.3.7 y permitiría la revelación de información sensible.

La vulnerabilidad se encontraría en unas incorrectas políticas de seguridad a la hora de gestionar y controlar el acceso a las bases de datos SQLite Journal del sistema.

Cuando se instala y ejecuta un programa, Android gestiona los datos generados para las aplicaciones que soporten SQLite guardándolos en la ruta:

/data/data/<aplicación>/databases

Al utilizar SQLite, se producen una serie de 'journals' o respaldos que generalmente poseen el nombre del programa más la extensión "–Journal". El fallo es que no se limita correctamente el acceso a estos ficheros. Se ha comprobado el establecimiento de permisos de acceso totales, tanto de carpeta como de fichero para todos los usuarios. En concreto:

  • La carpeta de datos de programa posee permisos de ejecución para todos los usuarios.
      
  • El directorio: '/data/data/<aplicación>/databases' posee permisos de lectura/escritura globales:
    [rwxrwx--x]
       
  • Y como los 'journals' de la base de datos son creados en la carpeta '/databases' con permisos
    [-rw-r--r--], éstos pueden ser leídos por cualquier aplicación.

Un atacante podría distribuir una aplicación especialmente manipulada que, utilizando SQLite, tendría acceso a los logs de historiales, chats, mensajes e incluso contraseñas.

Como demuestra la prueba de concepto (con código) y vídeo publicado por el investigador, se comprueba el acceso al historial y la caché del navegador:


La vulnerabilidad ya ha sido reportada y corregida por el del Android Security Team en la versión 4.0.1

Más información:

Android SQLite Journal Information Disclosure CVE-2011-3901


José Mesa Orihuela


1 comentario: