highCWE-319OWASP A02:2021

Conexión a Base de Datos Sin Cifrado

Tu conexión a la base de datos no usa SSL/TLS, lo que significa que todas las consultas y resultados viajan por la red en texto plano y pueden ser interceptados.

Cómo Funciona

Cuando tu app se conecta a una base de datos remota sin SSL, cada consulta — incluyendo las que contienen contraseñas, emails y datos de pago — viaja como texto legible por la red. Cualquiera en el mismo camino de red (redes internas de proveedores cloud, switches mal configurados) puede capturar este tráfico con un sniffer de paquetes como Wireshark. Esto es especialmente peligroso en entornos cloud donde el tráfico interno puede cruzar infraestructura compartida.

Código Vulnerable
// MAL: conexión a PostgreSQL sin SSL
const pool = new Pool({
  connectionString: 'postgresql://user:pass@db.example.com:5432/mydb'
  // Sin opción ssl — la conexión no está cifrada
});
Código Seguro
// BIEN: siempre requiere SSL para conexiones remotas a base de datos
const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
  ssl: {
    rejectUnauthorized: true, // verifica el certificado del servidor
    ca: process.env.DB_SSL_CERT // opcional: anclar el certificado CA
  }
});

Ejemplo Real

Una auditoría de seguridad de 2023 de apps SaaS en cloud encontró que el 23% de las conexiones a instancias PostgreSQL remotas carecían de SSL. En entornos cloud, el tráfico interno entre servicios frecuentemente atraviesa infraestructura de red compartida donde la inspección de tráfico es posible.

Cómo Prevenirlo

  • Siempre configura ssl: { rejectUnauthorized: true } o sslmode=require en tu configuración de conexión
  • Usa cadenas de conexión que incluyan explícitamente sslmode=require: postgresql://user:pass@host/db?sslmode=require
  • Nunca te conectes a una base de datos remota por el puerto 5432/3306/27017 sin SSL — localhost es la única excepción
  • Para bases de datos administradas (RDS, Cloud SQL, Supabase), usa el certificado SSL que proporcionan
  • Audita tus cadenas de conexión en CI para detectar config SSL faltante accidentalmente antes de que llegue a producción

Tecnologías Afectadas

Node.jsPythonGo

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas