Las aplicaciones Flutter inseguras de Ostorlab: un campo de pruebas para aprender y probar la seguridad móvil
Las vulnerabilidades comunes de las aplicaciones Flutter, de la criptografía débil al tráfico en texto claro y los WebView inseguros, demostradas en las apps Flutter deliberadamente vulnerables de Ostorlab.
Nos complace anunciar la publicación como código abierto de dos aplicaciones Flutter inseguras con fines de prueba y educativos.
La primera aplicación es una aplicación nativa de Flutter centrada en vulnerabilidades de iOS.
La segunda aplicación es una aplicación Java/C++/Flutter.
Ambos repositorios están alojados en GitHub y están disponibles bajo la licencia Apache-2.0.
Acerca del repositorio
Ostorlab Insecure Flutter App es una aplicación Flutter deliberadamente vulnerable, diseñada para las pruebas de seguridad y la formación. La aplicación está diseñada para mostrar diversas vulnerabilidades de seguridad que son comunes en las aplicaciones móviles. Esto la convierte en un campo de pruebas perfecto para probar y conocer distintas vulnerabilidades de seguridad de Flutter.
¿Cuáles son las vulnerabilidades comunes de las aplicaciones Flutter?
Las clases de vulnerabilidades comunes de las aplicaciones Flutter, todas demostradas en las apps deliberadamente vulnerables de Ostorlab, son:
- Criptografía débil: modo ECB, IV estáticos, hash débil y credenciales codificadas de forma fija.
- Transporte inseguro: TLS sin cifrar o mal configurado y tráfico en texto claro.
- Comportamiento del cliente inseguro: ajustes inseguros de WebView, ejecución de comandos y uso peligroso de la reflexión.
- Almacenamiento y aleatoriedad inseguros: almacenamiento inseguro mediante SQLite y shared preferences, path traversal y generación de números aleatorios insegura.
Son las mismas clases que afectan a las aplicaciones móviles en general.
Para trabajarlas sobre un objetivo real, Ingeniería inversa y análisis de seguridad de Flutter muestra cómo se aborda la salida compilada de una app Flutter, y las incorporaciones del motor de IA de Ostorlab para la detección en Flutter detectan automáticamente estas clases de vulnerabilidades.
Vulnerabilidades que se demuestran
La aplicación demuestra una amplia variedad de vulnerabilidades, entre ellas, sin limitarse a ellas:
- Biometric None
CryptObject: muestra las vulnerabilidades asociadas a una implementación incorrecta o a la ausencia de protección criptográfica en la autenticación biométrica. - ECB Cipher Mode: ilustra las debilidades de utilizar el modo de operación ECB (Electronic CodeBook) para los cifrados criptográficos.
- Insecure Commands: demuestra las vulnerabilidades que surgen cuando se ejecutan comandos inseguros o del sistema desde la aplicación.
- Reflection API: ofrece ejemplos de uso inseguro de las API de reflexión.
- TLS Traffic: explica las posibles amenazas de seguridad al utilizar tráfico de Transport Layer Security (TLS) sin cifrar o cifrado de forma incorrecta.
- Clear Text Traffic: destaca los riesgos asociados a la transmisión de datos sensibles mediante tráfico en texto claro.
- Hardcoded Credentials in URL: demuestra el riesgo de codificar credenciales sensibles dentro de las URL.
- Insecure Random: muestra los problemas de utilizar generadores de números aleatorios inseguros en operaciones sensibles.
- Oracle Padding: ilustra los posibles peligros de las vulnerabilidades de oracle padding.
- SQLite Database Call: muestra prácticas inseguras relacionadas con las llamadas a bases de datos SQLite.
- Webview Insecure Settings: demuestra las posibles vulnerabilidades de una configuración insegura de WebView.
- Command Exec: muestra los posibles problemas al ejecutar comandos del sistema.
- Hash Call: demuestra el uso incorrecto de las funciones hash.
- Insecure Shared Preferences: muestra los riesgos relacionados con un manejo inseguro de las preferencias compartidas.
- Path Traversal: muestra los posibles peligros de las vulnerabilidades de path traversal.
- Static IV: demuestra los riesgos de seguridad asociados al uso de vectores de inicialización estáticos en el cifrado.
Cómo contribuir
Las contribuciones a Ostorlab Insecure iOS App son siempre bienvenidas y apreciadas. Puede contribuir de varias maneras:
- Informes de errores: si encuentra un error o algo que no parece correcto, cree una incidencia en el repositorio de GitHub para notificarlo.
- Sugerencias de mejora: si tiene una idea para mejorar la aplicación, no dude en crear una incidencia con los detalles de su sugerencia.
- Contribuciones de código: envíe pull requests para mejorar la aplicación. Puede ser cualquier cosa, desde corregir errores, mejorar la interfaz de usuario, añadir nuevas vulnerabilidades que demostrar o mejorar la documentación.
- Sus contribuciones no solo ayudarán a mejorar la aplicación, sino que también contribuirán a que la comunidad en general comprenda mejor la seguridad de las aplicaciones móviles.