28-05-2026

Seguridad en conexiones a bases de datos

Cuando una conexión a bases de datos no está debidamente protegida, los atacantes pueden:
  • Intercepción de datos: Capturar información sensible que viaja en texto plano entre la aplicación y la base de datos.
  • Robo de credenciales: Obtener usuarios y contraseñas mediante ataques de fuerza bruta, keyloggers o sniffing de red.
  • Manipulación: Modificar datos en tránsito, inyectando o alterando información crítica.
  • Acceso no autorizado: Explotar configuraciones débiles para conectarse directamente a la base de datos desde internet.
Una conexión segura hoy puede evitar una brecha devastadora mañana.

Elementos de una Conexión Segura

Para establecer una conexión segura se deben cumplir varias políticas fundamentales:
  • Cifrado TLS/SSL: Todos los datos deben viajar cifrados. TLS (Transport Layer Security) es el estándar actual y evita que terceros puedan leer la información.
  • Validación de Certificados: La aplicación debe verificar que el certificado del servidor sea válido y emitido por una autoridad confiable.
  • Conexión Encriptada de Extremo a Extremo: Desde la aplicación hasta la base de datos, sin puntos intermedios donde se descifre la información.
  • Configuración Segura de Drivers: Utilizar los parámetros correctos en las cadenas de conexión.
  • Redes Seguras: Complementar con VPN, VPC, redes privadas o Azure Private Link / AWS PrivateLink para aislar completamente la base de datos.

Buenas Prácticas

  • Usar siempre cifrado TLS/SSL (nunca desactives esta opción “para que funcione”).
  • Evitar puertos públicos (el clásico 5432 de PostgreSQL o 1433 de SQL Server expuestos a internet).
  • Restringir el acceso por IP o rangos específicos.
  • Aplicar el principio de mínimo privilegio: crea usuarios específicos con solo los permisos necesarios.
  • Mantener todo actualizado: motor de base de datos, drivers, librerías y sistemas operativos.
  • Monitorizar y registrar todas las conexiones y alertas de cualquier actividad sospechosa.

¿Cómo funciona TLS/SSL en la conexión?

  1. La aplicación solicita una conexión segura.
  2. Se establece el handshake TLS.
  3. Se verifica el certificado del servidor.
  4. Se crea un canal encriptado (sesión TLS) para todo el tráfico posterior.

Errores Comunes a Evitar

  • Usar contraseñas débiles o por defecto.
  • No validar certificados.
  • Desactivar TLS/SSL.
  • Conceder permisos de administrador a usuarios de aplicación.
  • Exponer la base de datos directamente a internet.
  • No monitorizar logs de conexiones sospechosas.

Recomendaciones Adicionales

  • Utilizar Secret Managers (Azure Key Vault, AWS Secrets Manager, HashiCorp Vault).
  • No almacenar credenciales en el código fuente.
  • Automatizar el cambio de contraseñas de forma periódica.
  • Realizar pruebas de penetración (pentests) y auditorías regulares.