Estudio revela graves fallos en las apps de banca para iOS
Casi todos los bancos hoy en día, por no decir todos, cuentan con apps para el sistema operativo iOS que permita a sus clientes gestionar sus cuentas desde terminales iPhone o iPad. Con 40 de las apps, pertenencientes todas ellas a bancos del Top 60 mundial, el investigador Ariel Sánchez, de la conocida empresa consultora en seguridad informática IOActive, decidió hacer un estudio mirando la calidad y seguridad de las mismas. Las apps fueron elegidas de bancos distribuidos geográficamente por todo el mundo, tal y como se puede ver en este gráfico.Figura 1: Distribución de los bancos dueños de las apps auditados en este estudio |
Figura 2: Resumen de vulnerabilidades encontradas en las apps Según se publica en los resultados, algunos datos arrojan apps peligrosas: |
- 90 % de las apps contienen links en las UIWebViews que no van bajo SSL: lo que permite interceptación de datos e inyección de comandos JavaScript/HTML en el cliente para hacer ataques que permitan robar datos e incluso enviar mensajes SMS o e-mails desde el terminal.
Figura 3: Códigos JavaScript/HTML inyectados bajo un ataque man in the middle |
Figura 4: Código inyectado para hacer el robo de credenciales con un falso login |
- Ficheros de log con información sensible: La mayoría de los ficheros de log cuando se produce un crash de la app contenían información sensible filtrada que podrían ayudar a un creador de exploits a preparar un 0day contra esa app en el cliente en un esquema de ataqueAPT client-side.
Figura 5: Informe de crash con información leakeada |
- Uso incorrecto de información de debugging en el ASL: También la mayoría de las appshacían el uso abusivo de datos al Apple System Log, dando como resultado fugas de información que podrían ser accedidas por otras apps dentro del mismo terminal.
En una segunda parte del estudio se hizo un análisis estático de las apps utilizando las herramientas de ingeniería inversa como gdb, IDA Pro, Clutch o IPCU, pudiendo sacar datos más que jugosos de cómo están construidas algunas apps, como pueden ser los siguientes:
- Credenciales de desarrollo hardcoded en el código: En una app se pudo acceder a un usuario y contraseña utilizado en proceso de desarrollo de la app que se había quedado en la compilación.
- Credenciales de desarrollo hardcoded en el código: En una app se pudo acceder a un usuario y contraseña utilizado en proceso de desarrollo de la app que se había quedado en la compilación.
Figura 6: Credenciales usadas en el desarrollo de la app almacenadas en el código |
- Fuga de información de infraestructura: En muchas apps era posible conocer la estructura del sitio del servidor sólo con analizar el código, donde se puede acceder a URLs internas de la organización escritas en él.
Figura 7: Información de URLs de las apps |
- Fugas de informaciones menores: También algunas apps contenían información de los servidores internos utilizados y rutas de ficheros de los equipos de los desarrolladores.
Por último, muchas de las apps hacen uso de almacenamiento inseguro de información, algunas de ellas en bases de datos SQLite sin cifrar que permiten acceder a datos de las cuentas de los clientes de las apps de forma muy sencilla.
Hay que recordar que el uso de bases de datos SQLite puede llevar a que mucha de la información que de ellas se borra pueda ser recuperado por servicios como Recover Messagesque es capaz de localizar las páginas borradas y recomponer los datos para extraer qué registros fueron borrados de cualquier base de datos SQLite.
Figura 8: Direcciones IP internas y rutas locales de usuarios desarrolladores |
Por último, muchas de las apps hacen uso de almacenamiento inseguro de información, algunas de ellas en bases de datos SQLite sin cifrar que permiten acceder a datos de las cuentas de los clientes de las apps de forma muy sencilla.
Figura 9: Bases de datos SQLite con información sensible sin cifrar |
Hay que recordar que el uso de bases de datos SQLite puede llevar a que mucha de la información que de ellas se borra pueda ser recuperado por servicios como Recover Messagesque es capaz de localizar las páginas borradas y recomponer los datos para extraer qué registros fueron borrados de cualquier base de datos SQLite.
No hay comentarios:
Publicar un comentario