Almacenamiento y comunicaciones inseguros
Fallos habituales
Almacenamiento y comunicaciones inseguros es una lección gratuita de Ethical Hacking Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ethical Hacking Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ethical Hacking Academy incluye 4 lecciones en total.
Los dos fallos clásicos
Dos de las vulnerabilidades móviles más comunes son el almacenamiento de datos inseguro y las comunicaciones inseguras. Ambas aparecen en las 10 principales vulnerabilidades móviles de OWASP.
Las dos se deben a que los desarrolladores confían demasiado en el dispositivo y protegen los datos de forma deficiente.
Dónde almacenan datos las aplicaciones
Las aplicaciones almacenan datos en /data/data/<package>/:
- SharedPreferences: archivos XML de clave-valor.
- Bases de datos SQLite.
- Archivos internos y externos.
Los pentesters inspeccionan cada ubicación en busca de secretos almacenados en texto plano.
/data/data/com.app/shared_prefs/prefs.xmlSecretos en texto plano
Un fallo frecuente consiste en almacenar contraseñas, tokens o PII en texto plano en SharedPreferences o en una base de datos.
En un dispositivo con root, mediante una copia de seguridad o con Objection, un atacante puede leerlos directamente. Los datos confidenciales deben cifrarse o conservarse en hardware seguro.
<string name="auth_token">eyJhbGci...plaintext...</string>Riesgos del almacenamiento externo
Los datos escritos en el almacenamiento externo (el área de la tarjeta SD) podían ser leídos por cualquiera en versiones antiguas de Android, y cualquier aplicación con permiso de almacenamiento puede acceder a ellos.
Guardar allí archivos confidenciales los expone a otras aplicaciones. Los registros escritos en disco constituyen una filtración relacionada.
La forma correcta de almacenar secretos
Entre las opciones seguras se incluyen Android Keystore (las claves se almacenan en hardware y nunca se exponen a la aplicación) y EncryptedSharedPreferences.
Keystore puede realizar operaciones criptográficas sin revelar la clave, lo que es mucho más seguro que incluir una clave codificada de forma fija en el código.
Comunicaciones inseguras
Las comunicaciones inseguras se producen cuando los datos viajan sin la protección adecuada. El peor caso es el HTTP en texto plano, en el que cualquiera conectado a la red puede leer o modificar el tráfico.
Todo el tráfico confidencial debe utilizar HTTPS/TLS.
http://api.app.com/login # cleartext, credentials exposedInterceptación del tráfico
Para inspeccionar el tráfico, dirija el dispositivo a través de un proxy de interceptación como Burp Suite. Debe instalar el certificado de CA de Burp en el dispositivo para poder leer el tráfico HTTPS.
Esto revela los endpoints de la API, los parámetros y cualquier dato confidencial transmitido.
Fijación de certificados
Las aplicaciones bien desarrolladas utilizan la fijación de certificados para rechazar cualquier certificado que no sea el suyo, lo que neutraliza un proxy básico.
Como ha aprendido, la omisión de la fijación SSL mediante Frida desactiva esta protección para que aún pueda interceptar y evaluar la seguridad real de la API.
TLS débil y validación deficiente
Incluso con HTTPS, pueden existir fallos como confiar en todos los certificados, aceptar certificados caducados o desactivar la verificación del nombre de host, prácticas que a menudo se incorporan para facilitar el desarrollo.
Esto permite que un atacante realice un ataque de intermediario aunque TLS esté presente.
Copias de seguridad y registros
Otras dos filtraciones:
android:allowBackup="true"permite que cualquiera con acceso al dispositivo extraiga los datos de la aplicación medianteadb backup.- La salida detallada de logcat puede mostrar tokens o PII.
Ambas opciones deben desactivarse o depurarse en producción.
adb backup -f data.ab com.appPortapapeles y capturas de pantalla
Dos filtraciones que a menudo se pasan por alto son copiar datos confidenciales al portapapeles (que otras aplicaciones podían leer en versiones antiguas de Android) y la captura de pantalla del sistema que se toma cuando una aplicación pasa a segundo plano.
Las aplicaciones bancarias mitigan este riesgo con el indicador de ventana FLAG_SECURE, que bloquea las capturas de pantalla y la vista previa del selector de tareas.
Comprobación rápida
Recuerde cuál es el lugar más seguro para guardar claves criptográficas en Android.
Resumen
Ahora comprende el almacenamiento y las comunicaciones inseguras:
- Las aplicaciones filtran secretos en texto plano en SharedPreferences, bases de datos, almacenamiento externo y registros.
- Guarde los secretos en Android Keystore o EncryptedSharedPreferences.
- Las comunicaciones inseguras van desde el HTTP en texto plano hasta una validación TLS débil; intercéptelas con Burp.
- Omita la fijación de certificados con Frida, desactive allowBackup y depure los registros.
Ha completado el curso de pruebas de penetración de aplicaciones móviles.
Preguntas frecuentes
¿La lección «Almacenamiento y comunicaciones inseguros» es gratis?
Sí — el texto completo de «Almacenamiento y comunicaciones inseguros» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ethical Hacking Academy, actualiza a CoddyKit PRO. El curso de Ethical Hacking Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Almacenamiento y comunicaciones inseguros»?
Fallos habituales Practicas Ethical Hacking Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Ethical Hacking Academy?
No se requiere experiencia previa. Ethical Hacking Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Almacenamiento y comunicaciones inseguros»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Ethical Hacking Academy?
Sí. Cada lección de Ethical Hacking Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Estructura de aplicaciones Android
- Análisis estático de APK
- Análisis dinámico con Frida
- Almacenamiento y comunicaciones inseguros