criticalCWE-284OWASP A05:2021

Base de Datos Accesible Públicamente

Tu 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.

Cómo Funciona

Una base de datos vinculada a 0.0.0.0 escucha en todas las interfaces de red, incluyendo las públicas. Combina esto con un security group en la nube que permita tráfico entrante en el puerto 5432 desde cualquier lugar (0.0.0.0/0), y tu base de datos es un servicio con cara a internet sin defensa perimetral. Escáneres automatizados como Shodan los descubren constantemente en horas después del despliegue.

Código Vulnerable
# MAL: PostgreSQL config vinculado a todas las interfaces
# postgresql.conf
listen_addresses = '*'  # se vincula a todas las interfaces incluyendo públicas

# MAL: Security group de AWS permitiendo acceso a BD desde cualquier lugar (Terraform)
resource "aws_security_group_rule" "db_inbound" {
  cidr_blocks = ["0.0.0.0/0"]  # abierto a todo internet
  from_port   = 5432
}
Código Seguro
# BIEN: PostgreSQL solo escuchando en interfaz interna
# postgresql.conf
listen_addresses = '127.0.0.1'  # solo localhost, o usa IP privada de VPC

# BIEN: Security group restringe acceso a BD solo a servidores de app
resource "aws_security_group_rule" "db_inbound" {
  source_security_group_id = aws_security_group.app.id  # solo desde el tier de app
  from_port = 5432
}

Ejemplo Real

La ola de ransomware de MongoDB de 2017 borró más de 27,000 bases de datos en días porque eran accesibles públicamente sin autenticación. El mismo patrón se repite anualmente — en 2022 fue Elasticsearch, en 2023 Redis. Shodan muestra decenas de miles de bases de datos accesibles públicamente en cualquier momento dado.

Cómo Prevenirlo

  • Despliega tu base de datos dentro de una VPC y nunca le asignes una dirección IP pública
  • Usa security groups o reglas de firewall que solo permitan tráfico entrante a la BD desde el security group de tus servidores de app
  • Para bases de datos administradas (RDS, Cloud SQL), deshabilita explícitamente la accesibilidad pública en la consola o config de Terraform
  • Usa un bastion host o VPN para acceso de desarrolladores — nunca abras el puerto de BD a 0.0.0.0/0 por conveniencia
  • Corre escaneos de puertos regulares en tu infraestructura para detectar bases de datos expuestas accidentalmente

Tecnologías Afectadas

Node.jsPythonGo

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas