Introducción a Wazuh

   En una entrada anterior de la presente bitácora se ha hablado de Wazuh, que es un sistema de detección de intrusos basado en anfitrión de código abierto y libre. Realiza análisis de registro, comprobación de integridad, supervisión del registro de Windows, detección de rootkits (programas maliciosos que permiten a un atacante obtener acceso y control remoto de un sistema, ocultando su propia presencia y la de otro software malicioso), alertas basadas en el tiempo y respuesta activa. Proporciona detección de intrusiones para la mayoría de los sistemas operativos, incluyendo Linux, AIX, HP-UX, macOS, Solaris y Windows. Este programa tiene una arquitectura centralizada y multiplataforma que permite que múltiples sistemas sean fácilmente monitoreados y administrados.
  Los principales componentes de Wazuh son el agente, el servidor y Elastic Stack.
  Gestión de Eventos e Información de Seguridad [GEIS; "Security Information and Event Management" ("SIEM"), ] es una tecnología que recopila, analiza y correlaciona datos de diferentes fuentes en tiempo real para identificar y responder a amenazas de seguridad. Las fuentes pueden ser registros de sistemas, aplicaciones o dispositivos de red o finales. Utiliza técnicas de correlación y análisis para identificar patrones de comportamiento malicioso y así generar alertas cuando se detecten estas actividades sospechosas. Incorpora también funciones de generación de informes, así como formas gráficas de representación visual.
  Detección y Respuesta Extendidas [DRE; "Extended Detection and Response" ("XDR"), en inglés] va más allá, puesto que amplía su alcance, llegando a una gama más amplia de dispositivos y/o servicios.

ARQUITECTURA  

  Este soporte lógico se basa en desplegar un agente en los dispositivos finales ("endpoints", en inglés) monitorizados y de tres componentes centrales: el indexador, el servidor y el cuadro de mando ("dashboard", en inglés), instalación que se puede llevar a cabo en uno o varios nodos, llegando a formar un clúster, mejorando así el rendimiento, la seguridad y la disponibilidad.
  Los componentes de Wazuh son:
  •   Indexador:  Indexa y almacena las alertas generadas por el servidor en documentos en formato JSON; estos documentos se reparten en diferentes contenedores que reciben el nombre de fragmentos ("shards", en inglés), y distribuyendo estos fragmentos en diferentes nodos se puede asegurar la redundancia, aumentar la tolerancia a errores de soporte físico así como incrementar la capacidad de consulta ("query", en inglés) cuando se cogen los nodos en un clúster. Este elemento del programa, altamente escalable y con un motor de búsqueda y análisis de texto completo, también incluye funciones como data roll-ups, alertas, detección anormal ("anormaly detection", en inglés) y gestión del ciclo de vida de los índices.
  •   Servidor: Ejecuta los siguientes servicios: el motor de análisis, la RESTful API, el servicio de registro de agentes, el demonio de clúster y Filebeat, que se utiliza para enviar información al indexador. De este modo, el servidor analiza los datos recibidos de los agentes y los procesa mediante descodificadores y reglas, utilizando inteligencia sobre amenazas para detectar indicadores de compromiso ["Indicator Of Compromise" ("IOC")] conocidos; un solo servidor puede analizar datos de cientos y miles de agentes y puede escalarse horizontalmente en forma de clúster; además, a través del servidor, es posible gestionar los agentes a distancia; las alertas utilizan el marco ATT&CK de MITRE y requisitos de cumplimiento normativo ("compliance", en inglés) como el GDPR.
  •   Cuadro de mando: Interfaz de red para que el usuario pueda visualizar los datos recogidos y el análisis de los eventos y alertas de seguridad generados. Incorpora varias funcionalidades que veremos más adelante.
  •   Agente: Se suele instalar en dispositivos finales, como ordenadores de sobremesa, servidores, instancias en la nube o máquinas virtuales, permitiendo prevenir, detectar y responder a las amenazas, con capacidad para operar en distintos sistemas operativos. Aunque los mencionados dispositivos finales están basados en agentes (requieren la instalación de soporte lógico), pero también permite monitorizar dispositivos sin agentes ("agent-less", en inglés) como cortafuegos, conmutadores, enrutadores o el Sistema de Detección de Intrusión en Red ["Network Intrusion Detection System" ("NIDS"), en inglés].

FUNCIONALIDADES

    Wazuh posee las siguientes funcionalidades:
  •   Evaluación de la Configuración de Seguridad {ECS ["Security Configuration Assessment" ("SCA"), en inglés]}:  Este programa supervisa la configuración del sistema y de las aplicaciones para garantizar el cumplimiento de las normas y políticas de seguridad. Los agentes de Wazuh realizan escaneos periódicos para detectar errores de configuración o agujeros de seguridad en los dispositivos finales que podrían ser explotados por actores maliciosos. Estos controles de configuración pueden configurarse para adaptarlos a las necesidades de la organización.
  •   Detección de programas maliciosos: Wazuh detecta la actividad maliciosa y genera indicadores de compromiso que se producen en los dispositivos finales como resultado de infecciones de malware o ciberataques.
  •   Monitorización de Integridad de Archivo {MIA ["File Integrity Monitoring", ("FIM"), en inglés]}: Este programa monitoriza el sistema de carpetas, identificando cambios en el contenido, permisos, propiedad y atributos de los archivos a monitorizar.
  •   Detección de amenazas: Wazuh ofrece una visibilidad completa de los dispositivos finales y de la infraestructura supervisada. Dispone de funciones de conservación de registros, indexación y consulta que ayudan a investigar amenazas que pueden haber eludido los controles de seguridad iniciales.
  •   Análisis de datos de bitácoras: Los agentes de este soporte lógico recopilan registros del sistema operativo y las aplicaciones y los envían de forma segura al servidor de Wazuh para su análisis y asignación basados en reglas.
  •   Detección de vulnerabilidades: Los mencionados agentes recogen los datos del inventario del programa y envían esta información al servidor de Wazuh. Los datos de inventario recopilados se correlacionan con bases de datos CVE actualizadas continuamente para identificar software vulnerable conocido.
  •   Respuesta a incidentes: Wazuh tiene respuestas activas predefinidas para llevar a cabo diversas contramedidas contra las amenazas en curso.
  •   Cumplimiento normativo: Este soporte lógico ofrece algunos de los controles de seguridad necesarios para el cumplimiento de las normas y reglamentos del sector (GDPR, NIST, TSC, HIPAA...), que también se logran a través de las funciones ECS y MIA.
  •   Higiene de TI:  Wazuh construye un inventario actualizado del sistema de todos los dispositivos finales monitorizados. Este inventario ayuda a las organizaciones a optimizar la visibilidad de los activos y a mantener una buena higiene informática.
  •   Seguridad de los contenedores: Este soporte lógico proporciona visibilidad de seguridad a anfitriones y contenedores Docker, monitorizando su comportamiento y detectando amenazas, vulnerabilidades y anomalías.
  •   Protección del trabajo e integración de terceros: Wazuh se integra con plataformas en la nube, recopilando y agregando datos de seguridad.

VENTAJAS E INCONVENIENTES

  Entre las ventajas de este soporte lógico se encuentran:
  •   Código abierto y escalable: Se trata de una solución gratuita que se puede adaptar a las necesidades específicas de cualquier infraestructura, permitiendo personalización y flexibilidad.
  •   Monitorización integral: Proporciona una visibilidad completa de la infraestructura de TI, centralizando datos de bitácoras, eventos y alertas de servidores, ordenadores portátiles, aplicaciones en la nube y más.
  •   Cumplimiento normativo: Ayuda a las organizaciones a cumplir con estándares como GDPR, PCI-DSS y HIPAA, ofreciendo funciones para la seguridad y la auditoría de cumplimiento.
  •   Detección de amenazas: Su motor de detección de intrusiones identifica patrones de comportamiento sospechosos y ofrece capacidades para la respuesta a incidentes, incluyendo automatización.
  •   Seguridad en la nube y contenedores: Permite monitorizar entornos en la nube (AWS, Azure) y contenedores Docker, identificando vulnerabilidades y anomalías.

  No obstante, tiene los siguientes inconvenientes:
  •   Complejidad: La gran flexibilidad y la alta personalización pueden ser un desafío, requiriendo más tiempo y esfuerzo en la configuración y el mantenimiento.
  •    Curva de aprendizaje: La interfaz y la configuración inicial pueden resultar complejas y requieren una inversión de tiempo para dominar las capacidades avanzadas.
  •   Dependencia de otras herramientas: Su funcionamiento puede requerir la implementación de otros sistemas, como la plataforma ELK, lo que implica un mayor consumo de recursos del sistema.
  •   Gestión de alertas: Algunos usuarios han señalado que los cuadros de mando y las reglas de alerta de fábrica pueden no ser suficientes para todos los casos de uso, aunque esto se puede solucionar con personalización.

INSTALACIÓN

  Tras actualizar los paquetes y el sistema [comando apt update && apt upgrade (anteponiendo sudo si no se es usuario administrador)], se debe utilizar el comando curl -sO https://packages.wazuh.com/<versión del programa>/wazuh-install.sh && chmod 744 wazuh-install.sh && bash ./wazuh-install.sh -a -i -o.
  Es posible que dé algún tipo de error. Entre los más comunes se encuentran un error de permisos (se debe lanzar el comando nuevamente sustituyendo "744" por "777"), o un error de puertos {se soluciona comprobando qué procesos están usando los puertos afectados con el comando netstat -tulnp | grep -E '<nombre de puerto>'  (anteponiendo sudo si no se es usuario administrador), se usará el comando lsof -i :<nombre del puerto> (anteponiendo sudo si no se es usuario administrador) para identificar el proceso, y, si es necesario y el proceso lo permite, se detendrá el servicio que usa el proceso [systemctl stop <nombre del servicio> (anteponiendo sudo si no se es usuario administrador)], o se matará [kill <identificador del proceso> (anteponiendo sudo si no se es usuario administrador)], según sea el caso}.
  Cuando finaliza, el proceso, el programa lo indica tras dar un usuario y una contraseña de acceso.
  Puede  comprobarse si funciona mediante el comando systemctl status wazuh-manager (anteponiendo sudo si no se es usuario administrador).
 Para acceder al programa, se abre un navegador, se accede a la dirección IP indicada en la instalación, y se abre la sesión (en este ejemplo, usuario "admin", contraseña "admin").

CONFIGURACIONES PREVIAS

  Una vez instalado el programa, es recomendable realizar ciertas configuraciones antes de comenzar a utilizar plenamente este.
  En primer lugar, se debe desactivar el repositorio de Wazuh o bloquear los paquetes [ponerlos en estado pausado ("hold", en inglés)] para prevenir actualizaciones accidentales.
  Para desactivar el repositorio de actualizaciones de este programa se debe editar (o inhabilitar) el archivo "wazuh.list" en la ruta "/etc/apt/sources.list.d/".
  Si se pretende bloquear los paquetes, primeramente se utiliza el comando echo "wazuh-manager hold" | dpkg --set-selections (anteponiendo sudo si no se ha iniciado la sesión como administrador), y después el comando echo "wazuh-api hold" | dpkg --set-selections (anteponiendo sudo si no se ha iniciado la sesión como administrador), o bien el comando apt-mark hold wazuh-manager (anteponiendo sudo si no se ha iniciado la sesión como administrador) para los paquetes del manager y el comando apt-mark hold wazuh-agent (anteponiendo sudo si no se ha iniciado la sesión como administrador) para los paquetes de los agentes.
  El resto de las configuraciones se deben hacer en el archivo "ossec.conf", alojado en la ruta "/var/ossec/etc/".
  De este modo, se pueden integrar aplicaciones de terceros (VirusTotal, por ejemplo) que filtren algunas de las monitorizaciones de Wazuh. En este caso, tras registrarse en la aplicación y obtener la clave de aplicación ("API Key", en inglés; normalmente es necesario), se edita el archivo antes mencionado y, en la sección <ossec_config>, se añade el siguiente texto:

<integration>
  <name><nombre de la API></name>
  <api_key><Clave de API></api_key> <!-- Reemplazar con la clave apropiada-->
  <group>syscheck</group>
  <alert_format>json</alert_format>
</integration>

    Después, se debe configurar la monitorización de integridad de archivo, que en este soporte lógico se conoce como "Syscheck", añadiendo (o revisando) en el archivo anterior del servidor o del agente las siguientes líneas:

<syscheck>
  <directories check_all="yes" realtime="yes"><ruta del monitor>r</directories>
</syscheck>

  Finalmente, se reinicia el servidor de Wazuh mediante al comando systemctl restart wazuh-manager (anteponiendo sudo si no se ha iniciado la sesión como administrador).
  Tras esto, se debe crear una regla personalizada para generar alertas basadas en los resultados de la aplicación recién añadida en el archivo "local_rules.xml" de la ruta "/var/ossec/etc/rules/" del servidor de Wazuh añadiendo las siguientes líneas:

<group name="<nombre representativo>,">
  <rule id="100200" level="12">
    <if_sid>550</if_sid> <!-- Alertas de FIM -->
    <description><Texto representativo></description>
  </rule>
</group>

DESPLEGAR UN AGENTE

 Para desplegar un agente, primeramente, se pulsa en el botón "Despliegue de nuevo agente" de la sección "RESUMEN DE AGENTES".

    A continuación, se escogen las opciones para configurar el agente (en este ejemplo "Windows", con IP "192.168.10.144", el nombre del agente "PruebaW1" del grupo predeterminado).

   Después, se debe copiar el comando que aparece en el campo de la sección "Ejecute los siguientes comandos para descargar e instalar el agente:", abrir una consola de PowerShell (mejor como administrador), copiarlo, y pulsar en el botón de entrada.
  Acto seguido, se busca la sonda recién instalada en el menú de inicio y se pulsa dos veces sobre la misma.
  Luego, en la ventana emergente que aparecerá, se pulsa en la ruta "Manage > Start", seguidamente en el botón "Refresh" (aparecerá una contraseña), y finalmente en el botón "Save". Se cierra la ventana.
  Puede verse en el cuadro de mando, el agente recién creado.
  Si se pulsa sobre la fila del agente, pueden verse sus estadísticas específicas.
  Al igual que con el programa principal, es recomendable deshabilitar las actualizaciones automáticas (con el mismo sistema que se ha explicado anteriormente) para evitar incompatibilidades y otros problemas.

Error 403
   Es posible que al utilizar el comando determinado por el panel éste no se ejecute correctamente y dé un error "403 Forbidden".
  En estos casos, además de realizar las comprobaciones propias de este error, se deberá importar la clave GPG de la página de red oficial de Wazuh [comando curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && chmod 644 /usr/share/keyrings/wazuh.gpg (anteponiendo sudo si no se ha iniciado sesión como usuario administrador) en un sistema operativo de tipo debian] ejecutar el comando por partes, es decir, primero la parte que descarga el paquete del repositorio oficial de este soporte lógico, y después la parte que lo ejecuta (si el nodo tiene un sistema operativo de tipo debian y no funciona el comando dpkg mostrado por el programa, se puede emplear apt install en su lugar).
 
  Espero que la presente entrada haya sido interesante para el lector. Si es así, aguardo que éste la comente y/o la comparta, por favor.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.