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.
// 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
});// 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
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Base de Datos Accesible Públicamente
criticalTu base de datos está vinculada a 0.0.0.0 o expuesta en una IP pública sin VPC o firewall, haciéndola directamente accesible desde internet.
Credenciales de Base de Datos por Defecto
criticalTu base de datos usa credenciales predeterminadas de fábrica como postgres:postgres, root:root o admin:admin — lo primero que prueba cualquier atacante.
Cadena de Conexión con Contraseña Inline
highUna cadena de conexión a base de datos con contraseña en texto plano está hardcodeada en tu código fuente, comprometiendo tus credenciales de base de datos en el control de versiones.
MongoDB Sin Autenticación
criticalTu conexión a MongoDB no tiene credenciales de autenticación, permitiendo que cualquiera que pueda alcanzar el puerto de la base de datos lea, modifique o borre todos los datos.