sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo cerrar la brecha de vulnerabilidad en PostgreSQL

No importa qué tipo de tecnología o sistema de seguridad tenga, siempre existe el riesgo de ser pirateado, ya que no existe un sistema 100 % seguro. Dado que los datos son probablemente el activo más importante de una empresa, debe proteger su sistema tanto como sea posible para minimizar este riesgo.

Este blog mencionará algunas comprobaciones importantes que debe realizar en su entorno de PostgreSQL para cerrar la brecha de vulnerabilidad y evitar algunos de los problemas de seguridad más comunes.

Comunicaciones seguras

Si está utilizando diferentes proveedores de nube, una combinación de proveedor de nube y local, o incluso solo un entorno local, la comunicación en todos sus sistemas debe estar encriptada y debe restringir la tráfico solo de fuentes conocidas para reducir el riesgo de acceso no autorizado a su red.

El uso de VPN, SSH o Reglas de Firewall, o incluso una combinación de ellos, son buenas soluciones para este punto.

Control de acceso a la base de datos

Debe restringir el acceso tanto físico como remoto.

  • Acceso físico (en las instalaciones):restrinja el acceso físico no autorizado al servidor de la base de datos.

  • Acceso remoto:Limite el acceso remoto solo a las personas necesarias y desde la menor cantidad de fuentes posibles. Usar una VPN para acceder es definitivamente útil aquí, pero también hay otras opciones como SSH Tunneling. Debe encontrar la mejor solución para su empresa.

Administración de cuentas de usuario de base de datos

Hay muchas formas de mejorar la seguridad de sus cuentas de usuario en PostgreSQL.

  • Eliminar usuarios inactivos. Para esto, debes definir un período de tiempo para considerar a un usuario como inactivo, y puedes programarlo para eliminarlo automáticamente.

  • Otorgue solo los privilegios necesarios cuando cree una nueva cuenta de usuario.

  • Restringe la fuente para cada conexión de usuario usando el archivo de configuración pg_hba.conf.

  • Defina una política de contraseña segura (o habilite un complemento para esto, por ejemplo, verificación de contraseña).

Instalaciones y configuraciones seguras

Hay que hacer algunos cambios para asegurar su instalación de PostgreSQL.

  • Instale solo los paquetes y servicios necesarios en el servidor.

  • Cambie la contraseña de usuario administrador predeterminada y restrinja el uso solo del host local.

  • Cambie el puerto predeterminado y especifique la interfaz para escuchar.

  • Habilitar complemento de política de seguridad de contraseña.

  • Configure certificados SSL para cifrar datos en tránsito.

  • Cifrar datos en reposo.

  • Configure el firewall local para permitir el acceso al puerto de la base de datos solo desde la red local.

En caso de que esté utilizando una base de datos PostgreSQL administrada, algunos de los puntos mencionados anteriormente no serán necesarios.

Auditoría y registro

Registrar declaraciones puede ayudarlo a detectar problemas de seguridad o evitarlos si los detecta a tiempo.

Puede usar la función de registro estándar de PostgreSQL usando el parámetro log_statement, pero también puede usar una extensión como pgAudit para tener una sesión más detallada y un registro de auditoría de objetos.

Implemente un WAF (cortafuegos de aplicaciones web)

Las inyecciones de SQL o los ataques DoS (denegación de servicio) son los ataques más comunes a una base de datos y la forma más segura de evitarlos es usar un WAF para capturar este tipo de consultas SQL o un SQL Proxy para analizar el tráfico.

Comprobar CVE (vulnerabilidades y exposiciones comunes) con frecuencia

Todos los días, se detectan nuevas vulnerabilidades para su servidor de base de datos. Debe consultarlo con frecuencia para saber si necesita aplicar un parche o cambiar algo en su configuración. Una forma de saberlo es revisando el sitio web de CVE, donde puede encontrar una lista de vulnerabilidades con una descripción, y puede buscar la versión de su base de datos y el proveedor, para confirmar si hay algo crítico que corregir lo antes posible.

Para ser más específico, puede consultar la sección de PostgreSQL para tratar de encontrar problemas para la versión de su base de datos.

Mantenga su sistema operativo y base de datos actualizados

Hay varias correcciones y mejoras que el proveedor de la base de datos o el sistema operativo lanzan para corregir o evitar vulnerabilidades. Es importante mantener su sistema lo más actualizado posible mediante la aplicación de parches y actualizaciones de seguridad.

Monitoreo

Para conocer el estado de sus sistemas, necesitará contar con un buen sistema de monitoreo. Esto podría ser útil para encontrar problemas de seguridad o incluso para evitarlos.

Para esto, ClusterControl es una buena opción ya que es un sistema de administración y monitoreo que te ayuda a implementar, administrar, monitorear y escalar tus bases de datos desde una interfaz amigable. Es compatible con las principales tecnologías de base de datos de código abierto y puede automatizar muchas de las tareas de la base de datos que debe realizar regularmente, como agregar y escalar nuevos nodos, ejecutar copias de seguridad y restauraciones, y más.

ClusterControl le permite monitorear sus servidores en tiempo real con un conjunto predefinido de paneles para analizar algunas de las métricas más comunes.

Le permite personalizar los gráficos disponibles en el clúster y puede habilitar el monitoreo basado en agentes para generar paneles más detallados.

También puede crear alertas, que le informan sobre eventos en su clúster, o integrarse con diferentes servicios como PagerDuty o Slack.

En la sección del monitor de consultas, puede encontrar las consultas principales, las consultas en ejecución, los valores atípicos de las consultas y las estadísticas de las consultas para monitorear el tráfico de su base de datos.

Con estas funciones, puede ver cómo va su base de datos PostgreSQL.

Conclusión

Los puntos mencionados anteriormente lo ayudarán a cerrar la brecha de vulnerabilidad en su base de datos PostgreSQL, pero como mencionamos, siempre existe el riesgo de ser pirateado.

Además, debe tener un buen sistema de monitoreo como ClusterControl y ejecutar periódicamente algunas herramientas de escaneo de seguridad en busca de vulnerabilidades como Nessus para minimizar aún más los riesgos de seguridad.