03 octubre, 2024

Proyecto SIEM Open Source: Wazuh - Parte I

En mis años de experiencia, creo que llego el momento maduro de un SIEM open source sin nada que envidiarle a grandes tecnologías pagas como IBM 


Viví varias migraciones de SIEM, cambios de paradigmas, lidiando casos de uso , y si, todas un gran dolor de cabeza. En una serie de post contaré una nueva vivencia por colocar un SIEM (nuevamente)

 si queres ir a los bifes para la instalación podes ir directamente a la parte II

Que es un SIEM (explicación para CEOs)

Un SIEM (Security Information and Event Management) ayuda a proteger los activos críticos de la empresa al centralizar los datos de seguridad, identificar amenazas y cumplir con normativas y regulaciones, brindando una visión integral y permitiendo tomar decisiones informadas para mitigar riesgos y evitar posibles ciberataques.

Por que uno? (explicación para Jr)

Tener un SIEM (Security Information and Event Management) es fundamental en ciberseguridad porque ayuda a centralizar, correlacionar y analizar los eventos y logs de seguridad de toda la infraestructura de una empresa. Para un analista junior, esto significa que en lugar de revisar manualmente miles de registros y alertas dispersos, un SIEM recopila toda esa información en un solo lugar, facilitando la detección de amenazas, actividades sospechosas y posibles incidentes de seguridad.

El SIEM permite ver patrones y correlaciones que, de otra manera, serían difíciles de identificar, ayudando a responder más rápido a incidentes y a reducir el tiempo que un atacante podría tener acceso a los sistemas de la organización. Además, contribuye a la generación de reportes de cumplimiento y auditoría, esenciales para demostrar que se están tomando las medidas adecuadas para proteger los datos y sistemas.

Paraná Wazuh ? 😆 - Gestando la idea

 

Mas allá del chiste malo, existen muchos SIEM empezando por su diferencia en el costo de su licencia.

Es una decisión importante su selección ya que va ser como mi oráculo al momento de detectar un incidente, la practica y el tiempo (o mejor dichos los palos) hacen al maestro. 

En definitiva tengo que eligir algo que: 

  • perdure en el tiempo (que tenga actualizaciones, soporte)
  • se integre con todo
  • se ajuste a nuestro presupuesto
  • se ajuste a las capacidades del equipo que lo va operar
  • se ajuste a la capacidad de TI instalada y/o que se pueda acceder
  • sea flexible para integrar cosas no soportadas o extracción de datos
  • permita visualizar lo que necesito

Uff, falta que le pida que trabaje por nosotros !

Como algo grande, se tiene que plasmar en proyecto y como todo proyecto hay que buscar un buen sponsor ...

Cuando propongo la idea al CEO para conocer con cuanto presupuesto puedo contar para este maravilloso y necesario proyecto, la respuesta que se vuelve un clásico en Argentina en estos tiempos:

Pero como profesional de la seguridad algo debo hacer, por algo me pagan mis servicios no?

Para ello negocié que no dispondrá de dinero pero si de tiempo 😉, si hay tiempo podre avanzar con alguna solución open source para lograr la visibilidad necesaria de los eventos de seguridad.

Acá donde el tiempo vivido vale, recuerdo un proyecto de hace mucho llamado OSSEC que en realidad era un IDS de Host y de Graylog un concentrador de logs. Ambos con un poco de amor pude hacer mucho para seguridad (eso va ser historia a relatar en algún otro post). Volviendo a transitar caminos recorridos me encuentro con un excelente proyecto (derivado del OSSEC) que es Wazuh 

Bien, teniendo el producto, investigo su repositorio para conocer su madurez y actividad, ver varios reviews en foros especializados, y  ver una comparativa provista por Gartner (lo compara con QRadar de IBM, es otra historia para contar ese despliegue)

Ya no me quedan dudas, Wazuh es el elegido


Escena de Matrix donde Neo es el elegido

Wazuh es una plataforma de SIEM (Security Information and Event Management) y detección de intrusiones de código abierto que ayuda a monitorear la seguridad de la infraestructura de una organización. Combina capacidades de recolección de logs, análisis de amenazas, detección de anomalías y gestión de alertas, proporcionando una visión centralizada de la seguridad. Wazuh es especialmente útil para detectar actividades sospechosas, vulnerabilidades y cumplir con normativas de seguridad, todo desde una interfaz amigable y con un alto grado de personalización.

Tiene todo lo que necesito y ademas permite medir el hardening utilizando CIS y emplea la matriz de MITRE ATT&CK para detectar posibles tácticas de ataques conocidas 😍.


Stack de Wazuh propuesto

A grandes rasgos tenemos tres bloques que se dan en todos los SIEM:

 

Identificadas las partes vamos mas a la arquitectura que menciona su documentación oficial :


 

Hermoso, pero acá es donde los ajusto a la infraestructura que tengo disponible (no se puede tener todo en la vida), pero con la posibilidad que sea escalable (no me limito a que un futuro disponga de mas recursos).

Voy a prescindir de balanceadores de carga  ya que solo voy a trabajar con un solo nodo  del server y un nodo del indexer. 

Ademas le adiciono el Graylog para la recepción de eventos como de syslog ya que es mucho mas ameno para configurar las reglas para el mapeo de campos (normalización de la ingesta) que el wazuh server. También sirve como capa de supervisión de normalización y buffer intermedio.

La arquitectura inicial propuesta es la siguiente:


Todo los equipos están montados sobre equipos virtuales que recaen sobre un server físico y una caja de discos que poseen RAID 5.

Las versiones que voy a trabajar en el proyecto son:

  • Graylog Comunity 6.0.5
  • Wazuh 4.8.2
  • Ubuntu  22.04.5 LTS

*Las versiones corresponden a las disponibles en ese momento, ya que el post se publica en forma asincrónica respecto al despliegue

En los post posteriores, ampliaremos la arquitectura a fin de integrar otras funcionalidades correspondiente a otras etapas del proyecto.

 

Dimensionamiento

Esta es una de las partes de mayor dolor en un SIEM, ya que un mal dimensionamiento tira todo por la ventana a mitad de proyecto o incurre en gastos extra de storage. No hay regla mágica, y cada contexto es muy particular.

Entre la experiencia y leyendo la documentación (si, toca leer), aparecen unos números mágicos basado en la cantidad de agentes. También existen algunas planillas por google (creo que son de Fortinet) para dimensionar la famosa unidad de EPS (Events Per Seconds) en base a los roles que tienen instalados los equipos.

En forma general, el espacio en disco requerido es proporcional a:

  • Cantidad de equipos que recolectamos eventos

  • Nivel de log que genera cada equipo

  • Tiempo de retención.


Siempre es bueno dar algún margen extra (ej un 15%) a nuestros cálculos por si aparece algo inesperado a integrar o nuevos tipos de eventos a ingestar.


Entonces es momento que nos tenemos que hacer algunas preguntas:


  • Por cuanto tiempo quiero Retener los eventos para una investigación forense?
    • 1 semana ? 1 mes ? 3 meses ? 1 año?
  • Existen algún requerimiento legal/normativo que me piden una retención mínima de eventos?
  • De cuantos equipos voy a recibir eventos de mi parque informático ?
    • Necesito de todos? solo servidores ? solo servidores productivos? incluyo firewall y routers? los teléfonos IP los incluyo?
  •  Que tipo de eventos voy a registrar? 
    • Solo autenticación? de aplicaciones? Asignaciones DHCP? POST del Webserver?
    • Solo nivel crítico o también los informativos?

 Luego de autopreguntarme llego a la determinación que necesito unos 90 días que van a requerir 3 TB. El sistema de particionamiento de linux esta preparado para poder expandir el almacenamiento en caso que se requiera en el futuro usando LVM.


Y de que la juega SOCFortress  ?

En mi investigación me cruzo con este otro formidable proyecto, en el cual su autor comparte la misma visión armando un stack con Wazuh y otras herramientas open source. En particular tomo el desarrollo publicado de SOCFortress CoPilot para la interfaz visual (GUI) que se enfoca en proporcionar un único panel para todas sus necesidades de operaciones de seguridad. Simplificando el stack de seguridad de código abierto con una única plataforma centrada en hacer que las herramientas de seguridad de código abierto sean más fáciles de usar y más accesibles.



Proyecto

Teniendo toda la investigación y sponsor, es necesario bajarlo por escrito para evaluar correctamente su avance.

Adecuándome a las necesidades del lugar donde se implementa el SIEM se documenta:

  • Objetivo
  • Alcance
  • Hitos (con fechas tentativas)
    • Instalación del stack (servidores)
      • Wazuh Indexer
      • Wazuh Server (Manager)
      • Wazuh Dashboard
      • Graylog
    • Despliegue de Agentes
    • Reglas avanzadas de detección
    • Inregración Active Directory
    • Instalación SOCFortness Copilot
    • Integración con Firewall
    • Integración con Antivirus
    • Monitoreo de salud del stack
    • Threat Intelligence (MISP/GrayNoise)
 

y cuanto tiempo va llevar?? Depende de la organización, disponibilidad de personal técnico, disponibilidad de los recursos tecnológicos y tiempo que se le dedique a realizar todas las etapas. A priori es un proyecto que lleva mínimo 3 meses, con personal que no se encuentra dedicado.

En particular, yo considero que empiezo con todos los recursos de TI disponibles.

Referencias

  • https://en.wikipedia.org/wiki/OSSEC
  • https://www.ossec.net/
  • https://graylog.org/
  • https://wazuh.com/
  • https://www.gartner.com/reviews/market/security-information-event-management/compare/product/ibm-security-qradar-siem-vs-wazuh-the-open-source-security-platform
  • https://github.com/socfortress/CoPilot

0 comments:

Publicar un comentario