highCWE-319M5:2024

Comunicación Insegura

La app móvil transmite datos sensibles por HTTP en vez de HTTPS, o acepta certificados SSL inválidos — habilitando ataques man-in-the-middle en WiFi público.

Cómo Funciona

Cuando una app móvil se comunica por HTTP plano o no valida certificados SSL correctamente, atacantes en la misma red (como WiFi público) pueden interceptar todo el tráfico con un ataque man-in-the-middle. Pueden leer passwords, tokens, datos personales e incluso modificar respuestas. Deshabilitar validación de certificados para debugging y olvidar re-habilitarla en producción es un error muy común.

Código Vulnerable
// Disabling SSL validation (dangerous!)
const agent = new https.Agent({
  rejectUnauthorized: false
});
fetch('https://api.myapp.com/data', { agent });
Código Seguro
// Proper SSL with certificate pinning
import { fetch } from 'react-native-ssl-pinning';
const response = await fetch('https://api.myapp.com/data', {
  sslPinning: { certs: ['my-api-cert'] }
});

Ejemplo Real

En 2014, investigadores encontraron que 73% de las 100 apps bancarias top en Android tenían fallas en la implementación SSL. Muchas aceptaban certificados auto-firmados o no validaban hostnames, haciendo ataques MITM triviales en redes WiFi públicas.

Cómo Prevenirlo

  • Siempre usa HTTPS para toda comunicación de red
  • Implementa certificate pinning para APIs sensibles
  • Nunca deshabilites validación de certificados SSL en producción
  • Usa App Transport Security (iOS) y Network Security Config (Android)

Tecnologías Afectadas

MobileReact NativeFlutter

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas