Hace 6 meses, Michael Altfield descubrió muchas imágenes inesperadas cuando fue a eliminar un fichero en DiskDigger. Eran todo capturas de pantalla de sus actividades: de la posición del GPS, su cartera de Bitcoin, etc..
El autor se encontró esto en un Nexus 5X (bullhead) con Lineage OS 15.1, API 26. El teléfono está obviamente rooteado y no tiene gapps instaladas.
Como podemos saber, cuando eliminas una imagen, los bits no se pierden, solo quedan inutilizados. Estos datos se me tienen hasta que se sobrescriben o se realiza un wipe.
Para buscar el fichero deseado, el autor usó una aplicación llamada DiskDigger, la cual escanea los ficheros eliminados del dispositivo.
Primer intento de auditoría
Michael tenía una semana para averiguar el origen de estas capturas de pantalla. El lunes escribió una regla auditd para capturar la escritura y eliminado de imágenes, lanzar SELinux en un modo permisivo y emplear bastante tiempo en mirar logs para mirar el proceso responsable.
Michael se dio cuenta de que Android era Linux y pensó en instalar un set de herramientas auditctl sin ser consciente de que Google intenta prevenir que los usuarios y desarrolladores no editen las reglas selinux. No hay ningún comando auditctl en Android ni parece que habrá ninguna futura herramienta oficial. Michael dejó de lado la herramienta de selinux para realizar esto.
Segundo intento de auditoría
Hay un par de características interesantes sobre las imágenes que fueron restauradas por DiskDigger:
El autor se encontró esto en un Nexus 5X (bullhead) con Lineage OS 15.1, API 26. El teléfono está obviamente rooteado y no tiene gapps instaladas.
Como podemos saber, cuando eliminas una imagen, los bits no se pierden, solo quedan inutilizados. Estos datos se me tienen hasta que se sobrescriben o se realiza un wipe.
Para buscar el fichero deseado, el autor usó una aplicación llamada DiskDigger, la cual escanea los ficheros eliminados del dispositivo.
Primer intento de auditoría
Michael tenía una semana para averiguar el origen de estas capturas de pantalla. El lunes escribió una regla auditd para capturar la escritura y eliminado de imágenes, lanzar SELinux en un modo permisivo y emplear bastante tiempo en mirar logs para mirar el proceso responsable.
Michael se dio cuenta de que Android era Linux y pensó en instalar un set de herramientas auditctl sin ser consciente de que Google intenta prevenir que los usuarios y desarrolladores no editen las reglas selinux. No hay ningún comando auditctl en Android ni parece que habrá ninguna futura herramienta oficial. Michael dejó de lado la herramienta de selinux para realizar esto.
Segundo intento de auditoría
Hay un par de características interesantes sobre las imágenes que fueron restauradas por DiskDigger:
- Los ficheros tienen la extensión .jpg pero cuando hacemos capturas de Android se guardan en .png.
- A diferencia de capturas tradicionales, estas no incluyen [a], [b] o [c] en la barra superior.
Michael probó a buscar pistas en los metadatos de la imagen donde tenían un atributo llamado perfil de copyright con el valor "Google Inc 2016".
DiskDigger no proporciona el directorio de donde provienen las imágenes, haciendo una búsqueda en todo el dispositivo dio con el directorio /data/system_ce/0/snapshots. Dicho directorio contenía imágenes con las mismas características.
La causa principal
Buscando en Google los resultados de dicho directorio, podemos encontrar otra gente con los mismos problemas que Michael. La causa está clara: las capturas fueron tomadas por Android para la navegación de las "aplicaciones recientes". En iOS también hay un app switcher que captura imágenes por cambiar rápidamente de apps. Estos directorios son inaccesibles para la gran mayoría de las aplicaciones a menos que les des permisos de root.
El autor recomienda siempre mirar bien las cosas ya que no siempre es una vulnerabilidad de día cero aunque lo parezca.
Fuente en inglés:
https://tech.michaelaltfield.net/2018/11/09/android-security-auditing-investigating-unauthorized-screenshots/
No hay comentarios:
Publicar un comentario