Vulnerabilidades en Android y ataques con imágenes trampa

Vulnerabilidades en Android y ataques con imágenes trampa

Vulnerabilidades en Android. Un trío de bugs causados por inconsistencias de programación pueden haber abierto Android 7,8 y 9 ante ataques remotos con ficheros de imagen comprometidos.

Según Google, estos problemas pueden permitir que un atacante remoto, utilizando un fichero PNG específicamente creado, ejecute código dentro de un proceso privilegiado.

Si quieres conocer los números de estas vulnerabilidades, son: CVE-2019-1986, CVE-2019-1987 y CVE-2019-1988.

Las vulnerabilidades se han heredado de una herramienta de código abierto para la gestión de imágenes llamada Skia, que es gestionada y propiedad de Google, y que la utiliza como motor gráfico en muchos de sus productos, incluyendo Chrome, ChromeOS y Android.

A pesar de los problemas que mencionamos en este artículo, vale la pena que eches un vistazo a Skia si estás buscando una librería de gráficos gratuita que tenga un buen rendimiento, incluso en ordenadores poco potentes.

Esta tanda de vulnerabilidades implica variables no inicializadas y gestión imprecisa de errores en el código responsable de procesar imágenes PNG.

Alimentar ficheros PNG trampa en el código de renderización de Skia puede provocar que se pueda acceder y utilizar memoria que no deberíamos.

En teoría, este tipo de vulnerabilidad significa que un atacante puede casi con toda seguridad hacer que Skia falle, e incluso pueden hacer que falle de una manera que pueden controlar.

Por ejemplo, si puedes engañar a un programa para que consuma y confíe en memoria que no autoinició el mismo, y puedes encontrar una forma de manipular los contenidos de esa memoria no segura con anticipación, entonces es probable tener una oportunidad para crear un exploit de ejecución de código remoto o RCE.

Normalmente, un RCE basado en la gestión fallida de memoria implica persuadir a un programa para que descargue y utilice datos trampa (algo que tiene que ser perfectamente seguro), si la comprobación de errores del programa fuese correcta, y después engañarlo para que ejecute el código en vez de simplemente procesarlo.

¿A salvo por defecto?

Las vulnerabilidades desencadenadas por ficheros de imagen como JPEG y PNG son muy útiles para los atacantes ya que pueden considerarse no peligrosas para software como el navegador que suele descargarlas y mostrar imágenes de webs remotas por defecto.

Normalmente tenemos mucho cuidado al abrir ficheros como PDF, Word y programas si los hemos descargado de Internet o los hemos recibido por correo electrónico, porque sabemos que pueden contener componentes peligrosos como macros o scripts.

En efecto, PDF, DOC y EXE pueden contener malware, incluso si los ficheros no se han creado específicamente con ese fin y no existen vulnerabilidades que explotar.

Pero se supone que las imágenes no pueden contener código ejecutable, e incluso si lo tienen no debería causar problemas, porque los navegadores y los visores de imagen simplemente cogen las imágenes de servidores remotos, normalmente solo las procesan para poder enseñarlas sin hacer mucho más.

Esa es la razón por la que las vulnerabilidades en las librerías que se suponen tienen que gestionar imágenes suelen levantar muchas preocupaciones.

¿Es muy peligroso?

Las malas noticias en este caso es que la vulnerabilidad afecta a Android 7,8 y 9 por lo que tener una versión moderna de ese sistema operativo no te salvará.

La buena noticia es que la actualización de febrero de 2019 de Google parcheaba estos problemas.

Por supuesto, dado el tamaño y la idiosincrasia del ecosistema Android, solo podemos elucubrar cuando o si llegará esa actualización a tu dispositivo.

La otra buena noticia es que no parece que los “malos” encontraran esta vulnerabilidad antes que Google, porque no hay evidencias de que la utilizaran en ataques.

Por lo tanto, el peligro de este RCE es más teórico que real.

De hecho, no todos los RCE potenciales pueden convertirse en ataques efectivos, gracias a mitigaciones como DEP o ASLR.

DEP es la abreviatura de data execution prevention (prevención de ejecución de datos), y se trata de un método por el que el sistema operativo rechazará ejecutar código que fuera inicialmente presentado como datos.

ASLR es la abreviatura de address space layout randomization (aleatoriedad en la disposición del espacio de direcciones), y es una técnica de software que carga el sistema en diferentes lugares de la memoria en cada dispositivo, para que un atacante no pueda acertar donde encontrar las funciones vitales del sistema o los datos que necesita para que sus exploits funcionen.

¿Qué hacer?

Si eres un usuario de Android con la versión 7 o posterior, asegúrate que tienes la actualización de febrero 2019

Si no la tienes pregúntale al fabricante o tu compañía de teléfonos cuando la recibirás.

Presionar a los proveedores de Android para que aceleren el proceso de actualización es una forma de ayudar a poner fin a la inconsistencia y confusión sobre las actualizaciones en Android.

Deje una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *