criticalCWE-1392OWASP A07:2021

Credenciales de Base de Datos por Defecto

Tu base de datos usa credenciales predeterminadas de fábrica como postgres:postgres, root:root o admin:admin — lo primero que prueba cualquier atacante.

Cómo Funciona

Las credenciales por defecto son conocimiento público. Cada script de pentesting y de ataque las prueba primero. Cuando inicializas una base de datos en un contenedor Docker o servicio en la nube y nunca cambias la contraseña por defecto, estás dejando la puerta principal sin llave. Combina esto con una base de datos públicamente accesible (ID 210) y tienes un breach instantáneo.

Código Vulnerable
// MAL: usando credenciales por defecto en la cadena de conexión
const pool = new Pool({
  host: 'db.example.com',
  user: 'postgres',     // usuario PostgreSQL por defecto
  password: 'postgres', // contraseña por defecto — nunca aceptable en prod
  database: 'postgres'
});
Código Seguro
// BIEN: las credenciales vienen de variables de entorno, nunca hardcodeadas
const pool = new Pool({
  connectionString: process.env.DATABASE_URL, // configura una contraseña fuerte aleatoria
});
// Genera una contraseña fuerte: openssl rand -base64 32

Ejemplo Real

La variante de la botnet Mirai en 2023 específicamente escaneaba bases de datos con credenciales por defecto. Dispositivos IoT y servicios en la nube con credenciales mysql root:root o postgres:postgres por defecto eran comprometidos en minutos después de ser expuestos a internet.

Cómo Prevenirlo

  • Genera una contraseña aleatoria fuerte (32+ caracteres) para cada base de datos durante el aprovisionamiento — nunca dejes los valores por defecto
  • Usa un gestor de secretos (AWS Secrets Manager, HashiCorp Vault) para almacenar y rotar credenciales de base de datos
  • En Docker Compose, siempre configura POSTGRES_PASSWORD a un valor fuerte en tu archivo .env, nunca directamente en docker-compose.yml
  • Audita tus archivos docker-compose y manifiestos de Kubernetes en busca de contraseñas por defecto hardcodeadas
  • Habilita auditoría de login en tu base de datos para detectar intentos de fuerza bruta

Tecnologías Afectadas

Node.jsPythonGo

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas