criticalCWE-798M1:2024

Uso Incorrecto de Credenciales

API keys, passwords o tokens hardcodeados directamente en el código fuente de la app móvil — fácilmente extraíbles al decompilar el bundle.

Cómo Funciona

Las apps móviles se distribuyen como paquetes que pueden ser decompilados. Cualquier credencial hardcodeada en el código es trivialmente extraíble. Esto incluye API keys, config de Firebase, tokens de backend o passwords de base de datos en el código. Los atacantes usan herramientas como jadx (Android) o class-dump (iOS) para extraer estos secretos en minutos. A diferencia del código de servidor, el código móvil corre en el dispositivo del atacante.

Código Vulnerable
// config.ts
export const API_KEY = 'sk_live_abc123xyz';
export const DB_PASSWORD = 'supersecret';
export const STRIPE_KEY = 'sk_live_stripe_key';
Código Seguro
// config.ts
import Config from 'react-native-config';
export const API_KEY = Config.API_KEY;
// Keys stored in .env, not committed to repo
// Sensitive ops happen on the backend, not mobile

Ejemplo Real

En 2022, investigadores encontraron miles de apps móviles en Google Play con credenciales AWS hardcodeadas. Una sola app expuso acceso a buckets S3 con 10 millones de registros de usuarios. Las keys se encontraron con simples búsquedas de strings en el APK decompilado.

Cómo Prevenirlo

  • Nunca hardcodees secretos en código fuente móvil
  • Usa variables de entorno cargadas en build time
  • Mueve operaciones sensibles a APIs de backend
  • Usa almacenamiento seguro de la plataforma (Keychain/Keystore)

Tecnologías Afectadas

MobileReact NativeFlutter

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas