Investigadores de seguridad informática encontraron que los desarrolladores han expuesto datos al incorporar sus credenciales en miles de apps.
Esa es la mala noticia. ¿La peor? Según un estudio reciente, estas exposiciones han ocurrido incluso en algunas de las más populares aplicaciones móviles que han sido implementadas en servicios de back-end basados en la nube de una manera que permite el acceso a millones de registros sensibles creados por los usuarios.
El análisis fue realizado por investigadores de la Technical University y the Fraunhofer Institute for Secure Information Technology en Darmstadt, Alemania, y de sus resultados fueron presentados en la conferencia Friday at the Black Hat Europe security en Amsterdam.
Explicaros que las exposiciones ocurrieron en aplicaciones que utilizan infraestructura Backend-como-servicio-(BAAS) de proveedores propietarios como Facebook Parse, CloudMine o Amazon Web Services.
Estas infraestructura Baas ofrecen almacenamiento basado en la nube de bases de datos, notificación de inserción, administración de usuarios y otros servicios que los desarrolladores pueden utilizar fácilmente en sus aplicaciones. Su objetivo es reducir al mínimo los conocimientos necesarios para mantener los servidores back-end de una aplicación.
Todos lo que los desarrolladores tienen que hacer es registrarse con un proveedor de Baas, integrar su kit de desarrollo de software (SDK) en sus aplicaciones y, a continuación, utilizar los servicios a través de interfaces simples de programación de aplicaciones (API).
Verificación catastrófica
Los investigadores observaron cómo los desarrolladores usaron APIs y descubrieron que muchos de ellos incluyen sus claves principales de acceso Baas dentro de sus aplicaciones.
Esta es una práctica muy peligrosa, ya que las aplicaciones, especialmente las móviles, se les puede revertir el diseño fácilmente para extraer dichas credenciales y acceder a sus bases de datos de back-end.
Con el fin de ver cuán extendido estaba el problema, los investigadores construyeron una herramienta que utiliza tanto el análisis estático como el dinámico para identificar qué proveedor de Baas es utilizado por una aplicación y extraer las claves de acceso Baas de ella, incluso si están confundidos o computados en tiempo de ejecución.
Corrieron su herramienta contra más de dos millones de aplicaciones Android y de iOS, extrajeron 1.000 credenciales de back-end y los nombres de tablas de base de datos asociadas.
Muchas de esas credenciales fueron reutilizados en múltiples aplicaciones del mismo desarrollador y, en total, proporcionaron acceso a más de 18,5 millones de registros que contenían 56 millones de elementos de datos.
Por fortuna, los investigadores no descargaron en realidad los registros, pero fueron capaces de contarlas y averiguar su tipo con sólo mirar las tablas de bases de datos. Los registros incluían información de accidentes de tráfico, datos de localización específicos del usuario, cumpleaños, información de contacto, números de teléfono, fotos, direcciones de correo electrónico válidas, datos de compra, mensajes privados, datos de crecimiento del bebé e, incluso, las copias de seguridad enteras del servidor.
Baas como vector
Los investigadores incluso encontraron un troyano móvil que utiliza un servicio de Baas para almacenar datos y mensajes SMS robados de dispositivos infectados, junto con las propias órdenes de los atacantes y las tareas planificadas.
La inclusión de las credenciales Baas en aplicaciones no sólo expone los registros de datos a robo por cualquier persona, sino también a la manipulación o eliminación.
Los atacantes también podrían utilizar las credenciales para almacenar datos en las bases de datos a expensas de los propietarios de las cuentas reales que ni siquiera podría darse cuenta de que esto está sucediendo.
Se estableció contacto con Google, Apple y otros proveedores Baas sobre el tema desde abril y, además, se ha notificado a algunos de los desarrolladores cuyas aplicaciones fueron afectadas.
Sin embargo, según destacaron los investigadores, hasta la fecha el acceso a más de 52 millones de datos siguen siendo de libre acceso con las credenciales expuestas.
Algunos de estos datos se encuentra en el limbo debido a que las aplicaciones que las crearon ni siquiera existen ya que sus desarrolladores se trasladaron a otras cosas. Los proveedores de servicios no pueden simplemente eliminarlos ya que las cuentas siguen activas.
Esto sugiere que los desarrolladores o bien no les importa o no saben cómo solucionar el problema.
Soluciones parciales
Algunos proveedores de Baas, como Amazon y Parse, ofrecen control de acceso más avanzado y la capacidad de autenticar usuarios de aplicaciones individuales con los servicios de back-end en lugar de toda la aplicación. Sin embargo, estas medidas pueden ser difíciles de implementar.
En algunos casos, la aplicación de dicha gestión de identidad es tan complicada que derrota el objetivo principal de los infraestructura Baas que es simplificar el trabajo de los desarrolladores.
“No sorprende que los desarrolladores eligen el camino fácil, que es también el de la inseguridad”, dijeron los investigadores.
Si bien esto es, en última instancia, un problema de los desarrolladores, proveedores de Baas podrían mejorar su documentación por lo que incluso los creadores de aplicaciones sin estudios de seguridad pueden entender cómo utilizar la tecnología y los riesgos a que están expuestos a si ellos no lo hacen correctamente.
“Los proveedores podrían incluso obligar a los desarrolladores a tomar medidas mediante la detección de aplicaciones que acceden a sus servicios a través de claves de acceso de la root y mostrar una advertencia”, recomendaron.
3 comentarios