Tabla de Contenidos

Arquitectura de seguridad

Introducción

Se describen los elementos de seguridad de cada componente de Pandora FMS, acordes a normativas como PCI/DSS, ISO 27001, ENS, LOPD y similares.

Además se incluye una descripción específica de los mecanismos de seguridad de cada elemento de Pandora FMS, se incide en los posibles riesgos y la manera de mitigarlos, utilizando las herramientas de que dispone Pandora FMS u otros mecanismos posibles.

Implementación general de seguridad

Seguridad por componentes de la arquitectura

Servidor

Posibles vulnerabilidades y salvaguardas

Solución: Implementar un contenedor asegurado externo para los archivos de configuración externos, vía NFS.

Solución: Deshabilitar configuración remota en los EndPoints especialmente sensibles después de la configuración y dejarlos funcionando sin poder alterar nada remotamente, para una seguridad absoluta. Monitorización remota -sin Endpoints- de los dispositivos más delicados.

  1. Mecanismo de protección de contraseñas (que funciona por grupo).
  2. Limitando la autocreación de agentes con los datos enviados por los EndPoints, y crearlos de manera manual.
  3. Limitando la capacidad de autodetectar cambios en el agente y no tomar información nueva a la ya existente desde los XML (suministrados por los EndPoints).

Solución: Activar la comunicación TLS entre servidor y base de datos MySQL. Configurar el método de autenticación caching_sha2_password.

Tentacle

Posibles vulnerabilidades y salvaguardas

Solución: Se protege de la misma manera que el servidor, mediante un sistema NFS externo asegurado.

Soluciones: Montar una solución de HA sobre el servicio TCP que ofrece para balanceo, o un cluster activo/activo. Vale cualquier solución hardware o software disponible al tratarse de un servicio TCP estándar.

Consola web

Posibles vulnerabilidades y salvaguardas

Solución: Se protege de la misma manera que el servidor, mediante un sistema NFS externo asegurado.

Soluciones:

  1. Implementar una política de contraseñas complejas.
  2. Implementar un mecanismo de doble autenticación.

Solución: Implementar SSL/TLS.

Solución: Implementar SSL/TLS.

Solución: Implementar almacenamiento cifrado de datos.

Soluciones:

  1. Activar el log de auditoría y mostrarle a los usuarios que existe y su precisión.
  2. Activar el sistema de ACL extendido para restringir al máximo las funciones de cada usuario.
  3. Exportar el log de auditoría a un sistema externo de forma regular.

Solución: Fortalecimiento (hardening) del servidor que contiene la aplicación.

Agentes (EndPoints)

Posibles vulnerabilidades y salvaguardas

Soluciones:

  1. Limitar cuáles usuarios pueden realizar esas modificaciones de políticas o configuraciones (via ACL ordinario de la consola o ACL extendido).
  2. Activar el modo de solo lectura (readonly) de los agentes (no permiten modificaciones de su configuración remotamente), para aquellos sistemas especialmente sensibles.

Solución: Correcta configuración de permisos.

Soluciones:

  1. Limitar cuáles usuarios pueden subir ejecutables (vía ACL ordinario de la consola o ACL extendido).
  2. Realizar una auditoría de plugins nuevos.

Base de datos

Posibles vulnerabilidades y salvaguardas

Solución: Implementación de una conexión segura TLS. MySQL la soporta.

Solución: Configuración correcta de permisos de acceso.

Aseguramiento del sistema base

El hardening de sistemas es un punto clave en la estrategia de seguridad global de una compañía.

Como fabricantes se emite una serie de recomendaciones para realizar una instalación segura de todos los componentes de Pandora FMS, basados en una plataforma estándar RHEL 8 o Ubuntu server.

Estas mismas recomendaciones son válidas para cualquier otro sistema de monitorización basado en Linux.

Credenciales de acceso

Para acceder al sistema, se crearán usuarios nominativos de acceso, sin privilegios y con acceso restringido a las necesidades que tengan.

Idealmente se debería integrar la autenticación de cada usuario con un sistema de autenticación doble basado en token. Existen alternativas gratuitas y seguras como Google Authenticator®integrables en Linux y fuera del alcance de esta guía. Considérese seriamente su uso.

Si es necesario crear otros usuarios para aplicaciones, deben ser usuarios sin acceso remoto (para ello, desactivar su Shell o método equivalente).

Acceso de superusuario

En el caso de que ciertos usuarios tengan que tener permisos de administrador se utilizará el comando sudo.

Sistema operativo actualizado

Bastará con estar conectado a internet o configurar el sistema dnf o apt para que utilice un servidor proxy.

Este comando puede ocasionar potenciales problemas de cambio de librerías, configuraciones, etcétera. Es importante actualizar el sistema operativo antes de poner el sistema en producción. Si se está revisando un sistema de producción ya activo, quizás solamente se necesite actualizar los componentes críticos, por ejemplo aquellos que tengan una vulnerabilidad.

Por ejemplo para actualizar solamente MySQL en un sistema RHEL: dnf update mysql-server.

La actualización del sistema operativo es un proceso que debería ser periódico. Mediante el inventariado de paquetes del sistema se pueden consultar versiones vulnerables y ejecutar actualizaciones de emergencia.

Auditoría de acceso

Es necesario tener activo el log de seguridad /var/log/secure y monitorizar esos logs con la monitorización.

Por defecto esto viene activado, si no es así, revisar el fichero /etc/rsyslog.conf o /etc/syslog.conf.

Se recomienda que se lleven los logs del sistema de auditoría y sean recogidos con un sistema externo de gestión de logs. Pandora FMS puede hacerlo y será útil para establecer alertas o revisarlos de manera centralizada en caso de necesidad.

Servidor SSH

El servidor SSH permite la conexión remota a sistemas Linux para la ejecución de comandos, por lo que se trata de un punto crítico y debe asegurarse prestando atención a los siguientes puntos (para ello edite el fichero /etc/ssh/sshd_config y posteriormente, reinicie el servicio).

#Port 22     ->     Port 31122
#PermitRootLogin yes        ->    PermitRootLogin no
#AllowTcpForwarding yes        ->    AllowTcpForwarding no
#PermitTunnel no        ->    PermitTunnel no
Banner /etc/issue.net

Servidor MySQL

Si el MySQL solamente da servicio a un elemento interno se debe verificar con netstat de que únicamente escucha en localhost:

netstat -an | grep 3306 | grep LIST
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN

En el anterior ejemplo se está escuchando sin restricciones, se debe editar el fichero /etc/my.cnf, sección [mysqld], añadiendo la siguiente línea:

bind-address = 127.0.0.1

Tras reiniciar el servicio vuelva a comprobar el puerto de escucha.

Contraseña MySQL

Conectar a la consola de MySQL con un usuario con privilegios:

mysql -h host -u root -p

Verificar que la contraseña es compleja y que ha solicitado contraseña. De no ser así, se establece con el comando:

mysqladmin password

Esta medida de seguridad es imprescindible para proteger bases de datos no solamente ante ataques externos sino ante usos incorrectos por parte de usuarios internos.

Servidor web Apache

ServerTokens Prod

Añadir la anterior línea para ocultar la versión del servidor web (Apache, Nginx) en las cabeceras de información del servidor:

Motor de aplicaciones PHP

Para asegurar bien el motor de aplicaciones sobre el que funciona Pandora FMS, puede ser necesario, en algunos entornos especialmente sensibles con la seguridad, asegurar el acceso a la aplicación para que las cookies de sesión solamente sean transmitidas con SSL.

Esto hará que la aplicación no funcione cuando se usa sobre HTTP (sin cifrado).

Para ello, en el fichero php.ini se deben incluir los siguientes tokens de configuración:

session.cookie_httponly = 1
session.cookie_secure = 1

Minimizar servicios en el sistema

Esta técnica, que puede ser muy exhaustiva, consiste en eliminar todo lo innecesario en el sistema. Así se evitan posibles problemas en un futuro con aplicaciones mal configuradas que realmente no se necesitan. Para simplificar la aproximación a esta práctica, considérense únicamente aquellas aplicaciones que tienen un puerto abierto en la máquina, para ello ejecutar: netstat -tulpn.

Se debería investigar cada puerto y conocer la aplicación que hay detrás. Para ello se puede usar el comando lsof, que habrá que instalar con dnf o apt.

Aquellos servicios que escuchan en localhost (127.0.0.1) son más seguros que los que escuchan a todas las direcciones IP (0.0.0.0) y algunos de ellos, si están escuchando en puerto abierto, se debería intentar corregirlos para que escuchen solamente a localhost.

Mediante el sistema de inventario de procesos de Pandora FMS, se deben verificar que no se inicien nuevos procesos a lo largo del tiempo.

Configuración adicional

Sincronización de tiempos NTP

Se recomienda configurar la sincronización horaria del sistema, en un sistema RHEL:

dnf install ntpdate
echo "ntpdate 0.us.pool.ntp.org"> /etc/cron.daily/ntp
chmod 755 /etc/cron.daily/ntp

Monitorización local

El sistema debería tener un EndPoint Pandora FMS instalado y ejecutado en el PFMS server. Para el sistema operativo MS Windows®, a partir de la versión 761, los ejecutables de instalación están firmados digitalmente.

Se recomiendan los siguientes chequeos activos además de los chequeos estándar:

module_plugin grep_log_module /var/log/messages Syslog \.\*
module_plugin grep_log_module /var/log/secure Secure \.\*

Una vez instalado el EndPoint, habrá que definir manualmente al menos la siguiente información en la ficha de agente:

Monitorización de la seguridad en Linux

El plugin oficial permite monitorizar de forma proactiva la seguridad en el agente, en cada ejecución, casi en tiempo real, ofreciendo algunos chequeos que pueden alertar de algunos sucesos relevantes.

Este plugin está pensado para funcionar solamente en equipos Linux modernos. Contiene una compilación personalizada de John the ripper 1.8 + parches Contrib con binarios estáticos de 32 y 64 bits. El concepto principal del plugin es ser monolítico, detectar lo que puede ser reforzado y tratar de resolver las diferencias entre distribuciones sin preguntar nada al administrador, por lo que el despliegue podría ser el mismo para cualquier sistema, ignorando versiones, distro o arquitectura.

Este plugin comprobará:

Volver al índice de documentación de Pandora FMS