Servidor Wazuh (SIEM)

Wazuh SIEM

Hace algunos meses ya teníamos la idea de implementar en la empresa un SIEM. Hace algunas semanas fue que nos liberamos un poco la agenda y pudimos dedicarle tiempo a esta tarea.

Cuando se busca por soluciones libres SIEM los clásicos son AlienVault OSSIM y SIEM Monster, pero de hace algunos años para acá hay uno que viene pisando fuerte (tanto así que hay soluciones pagadas usuandolo como backend) y es el que les presantamos hoy: Wazuh

Qué es un SIEM?

La gestión de eventos e información de seguridad (SIEM) es un campo dentro del campo de la seguridad informática, donde los productos y servicios de software combinan la gestión de información de seguridad (SIM) y la gestión de eventos de seguridad (SEM). Proporcionan análisis en tiempo real de alertas de seguridad generadas por aplicaciones y hardware de red. Los proveedores venden SIEM como software, dispositivos o servicios gestionados; estos productos también se utilizan para registrar datos de seguridad y generar informes con fines de cumplimiento. En pocas palabras: es un sistema que permite monitorizar y gestionar en tiempo real las alertas de seguridad en nuestro entorno.

1- Qué es Wazuh?

Wazuh es una plataforma gratuita y de código abierto para la detección de amenazas, monitoreo de seguridad, respuesta a incidentes y cumplimiento normativo. Se puede usar para monitorear puntos finales, servicios en la nube y contenedores, y para agregar y analizar datos de fuentes externas. Wazuh proporciona las siguientes capacidades:

  • Análisis de seguridad.
  • Detección de intrusos.
  • Monitoreo de Integridad de Archivos (FIM).
  • Detecciónde vulneribilidades.
  • Respuesta ante incidentes.
  • Seguridad a contenedores dockers.

Vista del Wazuh

El servidor Wazuh consta de 3 elementos:

  • El propio servidor: Analiza los datos recibidos de los agentes, los procesa a través de decodificadores y reglas, y usa inteligencia de amenazas para buscar indicadores de compromiso (IOC) conocidos. Un solo servidor puede analizar datos de cientos o miles de agentes y escalar horizontalmente cuando se configura como un clúster. El servidor también se utiliza para administrar los agentes, configurándolos y actualizándolos de forma remota cuando sea necesario.
  • Un agente: Instalado en terminales como portátiles, equipos de escritorio, servidores, instancias en la nube o máquinas virtuales, proporciona capacidades de prevención, detección y respuesta. Es compatible con las plataformas Windows, Linux, MacOS, HP-UX, Solaris y AIX.
  • Elastic stack: Indexa y almacena alertas generadas por el servidor Wazuh. Además, la integración entre Wazuh y Kibana proporciona una potente interfaz de usuario para la visualización y el análisis de datos. Esta interfaz también se usa para administrar la configuración de Wazuh y monitorear su estado.

Además de las capacidades de monitoreo basadas en agentes, la plataforma Wazuh puede monitorear dispositivos sin agentes, como firewalls, conmutadores, enrutadores o IDS de red, entre otros.

La plataforma Wazuh se utiliza para proteger y monitorear sistemas de diferentes maneras. Debido a todas sus capacidades, a menudo se usa para la prevención, detección y respuesta a amenazas.

2- Instalación del servidor

(El presente artículo sólo mostrará lo básico: instalación del servidor all-in-one y el agente en un cliente linux)

Wazuh puede ser desplegado con todos sus componentes en un mismo servidor (all-in-one, usualmente como prueba de concepto) o distribuido en la red. Si se va a realizar un despliegue (all-in-one) los requisitos mínimos para este tipo de despliegue son 4GB de RAM y 2 núcleos de CPU, y los recomendados son 16GB de RAM y 8 núcleos de CPU. Se requiere un sistema operativo de 64 bits (es instalable en muchos OSs: CentOS 7+, Debian8+, Ubuntu14+, Fedora31+, etc).

Se puede hacer el despliegue mediante el uso de un script que los buenos de Wazuh nos dejan aqui, pero a nosotros no nos funcionó, así que nos fuimos por la via manual.

En este escenario se realizará un despliegue all-in-one, usando como OS Ubuntu 20.04 y el servidor tendrá el IP: 192.168.43.101

Instalar todas las dependencias necesarias:

Agregar llave GPG y el repo:

Instalar Wazuh manager:

Habilitar, iniciar el servicio y verificar su estado:

2.1- Instalación de Elasticsearch

Instalar Elasticsearch desde Open Distro ofrece seguridad avanzada, alertas, profundas mejoras de análisis, gestión de indexación y muchas otras mejoras.

Instalar Elasticsearch OSS y Open Distro para Elasticsearch:

Correr el siguiente comando para descargar el fichero de configuración /etc/elasticsearch/elasticsearch.yml:

Se necesita agregar usuarios y roles para poder usar Wazuh Kibana adecuadamente. Correr los siguientes comandos para agregar los usuarios de Wazuh y los roles adicionales a Kibana:

Los siguientes usuarios de Wazuh fueron agregados, con los comandos anteriores:

  • wazhur_user: Es creado para usuarios que necesiten solo permisos de solo lectura para acceder al Wazuh Kibana plugin.
  • wazuh_admin: Es recomendado para usuarios que necesitan permisos administrativos.

Roles adicionales agregados al Kibana para dar los permisos apropiados a los usuarios:

  • wazuh_ui_user: Provee al usuario wazhur_user de permisos para leer los indices de Wazuh.
  • wazuh_ui_admin: Permite al usuario wazuh_admin a ejecutar lectura, escritura, gestión y tareas de indexación en los índices de Wazuh.

Estos usuarios y roles estan diseñados para operar junto con el plugin Wazuh Kibana, pero están protegidos y no pueden ser modificados desde la interfaz de Kibana. Para modificarlos o agregar nuevos usuarios o roles, el script securityadmin se debe correr.

2.2- Creación de Certificados

Remover los certificados de la demo:

Descargar el script wazuh-cert-tool.sh:

Ejecutar el script wazuh-cert-tool.sh:

Lo cual debe de devolver:

Mover los crtificados de Elasticsearch para su correspondiente destino:

Agregar la siguiente configuración para mitigar la vulnerabilidad Apache Log4j2 Remote Code Execution (RCE) – CVE-2021-44228 – ESA-2021-31:

Habilitar el servicio e iniciarlo:

Correr el script securityadmin de Elasticsearch para cargar la nueva información de los certificados e iniciar el servicio:

Debe devolver, algo como lo siguiente:

Correr el siguiente comando para asegurar que la instalacion fue exitosa:

Debe devolver lo siguiente:

El plugin analizador de desempeño OpenDistro para Elasticsearch está instalado por defecto y puede tener un impacto negativo en los recursos del sistema. Se recomienda removerlo con el siguiente comando:

Reiniciar el servicio de elasticsearch:

2.3- Instalación de FileBeat

Filebeat es una herramienta en el servidor Wazuh que reenviará, de manera segura, las alertas y eventos archivados a Elasticsearch.

Descargar la preconfiguración de Filebeat usada para reenviar las alertas de Wazuh a Elasticsearch:

Descargar las plantillas para alertas de Elasticsearch:

Descargar el módulo de Wazuh para Filebeat:

Debe devolver lo siguiente:

Copiar los certificados de Elasticsearch en el directorio /etc/filebeat/certs:

Habilitar e iniciar el servicio de filebeat:

Para asegurarse de que el agente funciona, correr lo siguiente:

2.3- Instalación de Kibana

Instalar Kibana:

Descargar el fichero de configuración de Kibana:

En el fichero de configuración /etc/kibana/kibana.yml la opción server.host tiene el valor 0.0.0.0. Esto significa que Kibana podrá ser accedido desde afuera y aceptar todas las IPs disponibles en el host. Este valor puede ser cambiado por una dirección IP especifica, si es necesario.

Crear el directorio /usr/share/kibana/data:

Instalar el plugin Wazuh Kibana. La instalación del plugin debe hacerse desde el directorio home de Kibana, como sigue:

Debe devolver lo siguiente:

Copiar los certificados de Elasticsearch en el directorio /etc/kibana/certs:

Enlazar el socket de Kibana al puerto privilegiado 443:

Habilitar e iniciar el servicio de Kibana:

Acceder a la interfaz web:
– URL: https://<wazuh_server_ip>
– user: admin
– password: admin

3- Instalación del agente en Linux

El agente corre en el host que se desea monitorear y se comunica con el Wazuh manager, enviando datos casi en tiempo real a traves de un canal encriptado y autenticado. El despliegue de un agente Wazuh en sistemas Linux usa variables de despliegue que facilitan la tarea de instalaciUn, registro y configuración del agente.

El agente también puede desplegarse en hosts windows.

Entonces, en la PC/VM que se desee monitorear:

Instalar la llave GPG y agregar el repo:

Actualizar la informacion de paquetes:

3.1- Registro del agente por el método de inscripción

Wazuh incluye un proceso de registro que provee al usuario con mecanismo automatizado para inscribir agentes con pasos mínimos de configuración. Esta característica está disponible para Wazuh >=4.0.0

Editar la variable WAZUH_MANAGER y especificar la dirección IP o el hostname del servidor, así como el nombre del agente (en este caso wazuh-server):

Modificar el fichero de configuración del agente:

Dejar el bloque de configuración del cliente, como sigue:

Habilitar e iniciar el agente:

Y ya podremos ver en la web los agentes desplegados.

5- Ideas finales

En muchas empresas es una necesidad imperiosa tener un SIEM. Wazuh no solo trae como opciones el monitoreo de archivos sensibles, las alertas en caso de malware, detección de vulnerabilidades (al más puro estilo de GVM), sino que además puede ser integrado con Suricata, con VirusTotal, IPAbuse

Autores:

  • Frank Morales
  • Franco Díaz

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 4.9 / 5. Recuento de votos: 11

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

5 comentarios

  1. Google Chrome 98.0.4758.102 Google Chrome 98.0.4758.102 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36

    Saludos hermano muy bueno e manual, es una gran herramienta.
    Veo que usas un certificado autogenerado por un script de la herramienta, seria bueno que hicieran uno con una entidad certificadora propia. Y si pudieran seguir la serie con la configuración de los parámetros de detección de intrusiones contra MITRE,o algo practico de la integración con Suricata,VT. o IPAbuse. ??

  2. Firefox 97.0 Firefox 97.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0

    Pasate por https://t.me/sysadmincuba (mi alias es @kCyborg) y ahi te dejo la continuacion, hay varias cosas mas, este tutorial ha sido solo con el objetivo de dejar las bases creadas para la continuacion.

  3. Firefox 91.0 Firefox 91.0 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0

    Hola, es un gusto saber que se ha puesto el empeño de implementar esta solucion, contrarestando los efectos negativos de los cyberataques, creo que esta solucion no es un simple SIEM, es mas bien a mi parecer ademas de ser un SIEM es un EDR.

    Saludos y agradecido por su esfuerzo.

  4. Google Chrome 99.0.4844.74 Google Chrome 99.0.4844.74 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36

    En estos momentos lo que tengo desplegado en mis infraestructuras es Splunk que es el SIEM nativo de Snort, pero debido a las leyes del embargo es un dolor de cabeza adquirir las licencias y demas, gracias a los autores de este tutorial, y de todos los otros que hay en esta maravillosa pagina

  5. Google Chrome 99.0.4844.84 Google Chrome 99.0.4844.84 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36

    Excelente post y guia de instalacion, estoy iniciandome con esta herramienta de siem, donde lo tengo montado es en aws y pues necesito integrar https pero unicamente en la red interna no para tener acceso de manera publica, tengo unos certificados pero al momento de implementarlos ya no levanto el servicio trate reestablecerlo y ya no funciono jaja elimine y monte uno nuevo pero si necesito que desde un equipo (en la misma red interna de aws) poder acceder al wazuh por https valido….

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.