Almacenamiento de Datos Inseguro
Datos sensibles como tokens, passwords o información personal guardados en texto plano en el dispositivo — en AsyncStorage, SharedPreferences o bases de datos locales sin encriptación.
Cómo Funciona
Los dispositivos móviles pueden perderse, ser robados o accedidos por apps maliciosas con acceso root. Guardar datos sensibles en texto plano en AsyncStorage (React Native), SharedPreferences (Android), UserDefaults (iOS) o SQLite sin encriptación significa que cualquiera con acceso físico o root puede leerlos. Esto incluye tokens de auth, datos personales, información financiera y respuestas de API cacheadas con datos sensibles.
// Storing sensitive data in plaintext
import AsyncStorage from '@react-native-async-storage';
await AsyncStorage.setItem('user_ssn', '123-45-6789');
await AsyncStorage.setItem('credit_card', '4111-1111-1111-1111');// Using encrypted storage
import EncryptedStorage from 'react-native-encrypted-storage';
await EncryptedStorage.setItem('user_token', token);
// For sensitive data: store on server, not on device
// SSN and credit cards should never be stored locallyEjemplo Real
En 2018, investigadores encontraron que la app Uber Driver guardaba tokens de sesión en texto plano en SharedPreferences. Una app maliciosa o dispositivo rooteado podía robar el token y acceder a la cuenta del conductor, ganancias e información personal.
Cómo Prevenirlo
- Usa almacenamiento encriptado (react-native-encrypted-storage, Keychain, EncryptedSharedPreferences)
- Nunca guardes datos altamente sensibles (SSN, tarjetas) en el dispositivo
- Limpia datos sensibles cacheados cuando el usuario cierra sesión
- Usa el secure enclave de la plataforma para keys criptográficas
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Uso Incorrecto de Credenciales
criticalAPI keys, passwords o tokens hardcodeados directamente en el código fuente de la app móvil — fácilmente extraíbles al decompilar el bundle.
Seguridad de Cadena de Suministro Móvil
mediumSDKs vulnerables, librerías nativas desactualizadas o módulos de terceros comprometidos introducen riesgos de seguridad desde tus dependencias.
Autenticación/Autorización Insegura
highApps móviles con autenticación débil — guardando sesiones de forma insegura, sin refresh de tokens o checks de autorización solo en el cliente.
Validación Insuficiente de Input/Output
mediumApps móviles que no validan input de usuario o sanitizan output son vulnerables a ataques de inyección, corrupción de datos y comportamiento inesperado.