La búsqueda de vulnerabilidad es una carrera encantadora, se adquiere una visión diferente de la seguridad en internet y se aprende mucho sobre programación en diferentes lenguajes y frameworks con los que esta desarrollado el internet de hoy en día.
Detrás de toda pagina web, se esconde un código que bien podría utilizar API´s de terceros, levantar Javascript para funcionalidades necesarias como una conexión a una base de datos o múltiples funciones, según sea la naturaleza y orientación del sitio en cuestión.
Las bases de datos representan un activo de valor tangible que requiere buenas practicas de seguridad en internet para evitar filtraciones, errores y otros problemas que se vean presentes por malas configuraciones.
Firebase es una plataforma para el desarrollo de aplicaciones web y aplicaciones móviles desarrollada por Google en 2014.
Una Base de datos de Firebase mal configurada puede llevar a comprometer los datos de todos los usuarios registrados en una aplicación.
Firebase Realtime Database es una base de datos NoSQL alojada en la nube que permite almacenar y sincronizar datos entre los usuarios en tiempo real. Los datos en tiempo real pueden ser transmisiones en vivo, registros de inicio de sesión, chats de clientes, registros de aplicaciones, detalles de usuario, información de GPS y mucho más.
Firebase es fácil de integrar con aplicaciones de Android, aplicaciones de iOS y aplicaciones web. Proporciona varias funciones como "Almacenamiento en la nube", "Alojamiento", "Base de datos en tiempo real" y "Crashlytics" y muchas otras configuraciones para diferentes funciones, pero el enfoque principal está en la configuración de "Base de datos".
De forma predeterminada, la configuración de la base de datos es privada, la base de datos en tiempo real necesita acceso de lectura y escritura para tener control sobre los datos, entonces, un error humano en esta parte podría exponer información sensible de miles o millones de personas y generar pérdidas dentro de la compañía.
Yolo es una App de Compras y Delivey desarrollada y mantenida por YOLOSA en Managua.
¿No quieres o no puedes salir?… Despreocúpate Yolo llevo por ti.
Con YOLO, pide tus entregas a domicilio o para recoger de restaurantes favoritos. Entra a la app, registra tu usuario, dirección o selecciona tu ubicación actual. Fácilmente estarás en contacto con un mundo de servicios desde la palma de tu mano. Yolo el verdadero marketplace! #YoloLlevo, #YoloCompro, #YoloVendo
Yolo a como muchas otras Apps en Nicaragua utiliza Firebase como plataforma de almacenamiento en tiempo real de los datos de sus aplicaciones y es aquí donde inicia lo divertido (para mí)...
El código fuente de la Web de Yolo así también su aplicación incluyen la ruta de almacenamiento que poseen en Firebase, en donde se actualizan los datos de su app.
¿Cómo explotar una base de datos mal configurada?
Una vez que obtenemos la URL de la base de datos en tiempo real, podemos verificar la configuración agregando ¨.json¨ después de la URL, por ejemplo, si la URL de Firebase es:
https://ncaintelligence.firebase.com/
Se agrega ¨.json¨ después de la URL. (https://ncaintelligence.firebase.com/.json). Si recibimos un mensaje de error "Permiso denegado", significa que la base de datos está configurada correctamente.
Si la URL modificada muestra el contenido de la base de datos, esto significa que
el acceso de lectura es "Público" en esa base de datos, y los datos son visibles para cualquiera que tenga el enlace de la base de datos. Dado que la información se almacena en formato "JSON", se puede copiar fácilmente.
La siguiente captura de pantalla muestra la base de datos de YOLO mal configurada en lectura y escritura, lo que causa filtración de datos en Firebase.
Con ¨cURL¨ se procede a realizar un POST para almacenar información en la base de datos en tiempo real de YOLO y como se puede ver en el cuadro rojo, el ¨test¨ fue positivo a escritura, dando apertura al almacenamiento de cualquier tipo de información aleatoria.
Se pueden realizar un sinnúmero de reacciones en la base de datos de esta aplicación, es importante tomar en cuenta la legislación nicaragüense, en la cual la Ley de Ciberdelitos* y Ley de Protección de Datos** son explicitas en cuanto al manejo de datos privados y de terceros, señalando la responsabilidad legal de quiénes brindan estos servicios a través de estas herramientas y dejan en indefensión a sus usuarios al dejar expuesta información privada sensible.
* Ley No. 1042, Aprobada el 27 de Octubre de 2020
** Ley N°. 787, Aprobada el 21 de Marzo de 2012