Mejorar la analítica de Seguridad con el Elastic Stack, Wazuh e IDS

El Elastic Stack ofrece capacidades de analítica de Seguridad que se usan ampliamente para la detección de amenazas, la visibilidad y la respuesta ante incidentes. La velocidad y escala a las que Elasticsearch puede indexar y buscar información relacionada con la seguridad permiten que los analistas hagan su trabajo de manera más eficiente, y los dashboards de Kibana proporcionan una amplia visibilidad y permiten la búsqueda interactiva de amenazas. A su vez, el motor de Machine Learning puede automatizar el análisis de sets de datos complejos, lo que permite detectar intrusos que de otra forma pasarían inadvertidos.

En los sistemas de detección de intrusiones (IDS) populares, como Wazuh o Suricata, se aplica un enfoque basado en firmas para la detección de amenazas. Es decir, se comparan los patrones hallados en archivos, logs y el tráfico de red con una base de datos de patrones conocidos por estar vinculados a actividades malintencionadas y se emiten alertas cuando se encuentra una coincidencia. Estos sistemas proporcionan sets de reglas para analizar y correlacionar datos, y generalmente emiten miles o millones de alertas por día en un entorno de producción.

La transmisión en una red completa puede garantizar la detección de todos los posibles eventos de seguridad, pero también suma el trabajo de verificar miles (o millones) de alertas todos los días. Las características de Machine Learning de Elastic ayudan a reducir el ruido al identificar automáticamente los comportamientos atípicos. Este es un caso de uso claro en el que las tecnologías basadas en anomalías y firmas se complementan para facilitar la detección de amenazas y aumentar la eficiencia en la investigación.

Wazuh, que comúnmente se despliega con el Elastic Stack, es un sistema de detección de intrusiones basado en host (HIDS) de tipo open source. Ofrece análisis de logs, monitoreo de integridad de archivos, detección de rootkits y vulnerabilidades, evaluación de configuración y capacidades de respuesta ante incidentes. La arquitectura de soluciones de Wazuh se basa en agentes ligeros multiplataforma que funcionan en sistemas monitoreados y envían reportes a un servidor centralizado en el que se ejecutan análisis de datos. Además, proporciona un plugin completo de Kibana para administración de configuración, monitoreo de estado, búsquedas y visualización de datos.

Por otra parte, Suricata es un motor open source de detección de amenazas de red gratuito con capacidad de detección de intrusiones de red (NIDS) en tiempo real, prevención de intrusiones en línea (NIPS), monitoreo de seguridad de red (NSM) y procesamiento de pcap fuera de línea. Suricata inspecciona el tráfico de red usando sus reglas y lenguaje de firmas para buscar coincidencias con amenazas conocidas, infracciones de políticas y comportamientos malintencionados, y ofrece soporte de scripting para la detección de amenazas complejas.

En este blog, proporcionaremos una visión general sobre la forma de detectar intrusiones usando una integración de Wazuh y Suricata, junto con tareas de Machine Learning de Elastic, para ayudar a priorizar las investigaciones.

Integración de Wazuh, Suricata y el Elastic Stack

Para este blog, hemos configurado un entorno de laboratorio en el que se desplegaron agentes de Wazuh en varios servidores con conexión a Internet, para monitorear los datos de logs de sistema y aplicaciones, la integridad de los archivos y las llamadas del sistema.

A su vez, usaremos un sensor de Suricata que se encarga del monitoreo del tráfico de red. Este sensor a menudo se configura para monitorear el tráfico a través de un punto de acceso de prueba de red, un puerto de creación de reflejo o un puerto SPAN (analizador de puertos conmutados), pero también puede desplegarse directamente en tus servidores.

Para aprovechar al máximo estas dos herramientas, decidimos analizar alertas de Suricata usando reglas de Wazuh, lo que sirvió para unificar el formato de las alertas y nos permitió establecer correlaciones (por ejemplo, con fuentes de inteligencia sobre amenazas) y activar respuestas automáticas.

Esta integración se realizó configurando un agente de Wazuh para que leyera la salida JSON de Suricata. Este agente se comporta como un recopilador que reenvía las alertas de NIDS de Suricata al servidor de Wazuh, donde se procesan mediante reglas de análisis de logs de Wazuh. Esto da como resultado eventos de seguridad nuevos y enriquecidos.

Ahora, como resultado de este trabajo, las alertas de NIDS y HIDS se envían a Elasticsearch a través de Filebeat (configurado para leer alertas de Wazuh) y Logstash (también se usa para enriquecimiento de geolocalización), donde emplearemos tareas de Machine Learning para detectar anomalías y comportamientos atípicos.

A continuación, se ofrece un ejemplo de un despliegue de tecnologías de IDS basadas en host y red e integradas con el Elastic Stack:

Analítica de seguridad integral con el Elastic Stack y Wazuh

Detección de actores malintencionados con tareas de Machine Learning

En nuestro entorno de laboratorio, habilitamos todas las reglas y descubrimos que, para solo uno de nuestros servidores web con conexión a Internet, nuestro agente de Wazuh reporta entre 4 y 10 mil alertas de IDS por día. Estas se relacionan mayormente con ataques web, fallas de autenticación, problemas de configuración (detectados mediante verificaciones de protección), cambios en la integridad de los archivos o software vulnerable.

Para facilitar la tarea de los analistas de seguridad, las alertas de IDS de Wazuh se enriquecen con metadatos, como un level value o group, lo que permite aplicar filtros por prioridad o tipo. A su vez, el plugin de Kibana de Wazuh proporciona dashboards configurados previamente que contienen información útil relacionada con el estado, la configuración y las alertas de los agentes. Ver captura de pantalla siguiente:

La información proporcionada por Wazuh ciertamente es útil, pero no nos aporta datos sobre comportamientos atípicos. Aquí se muestra la utilidad que puede tener para nosotros una tarea de Machine Learning de Elastic.

Machine Learning de Elastic nos permite crear varios tipos de “tareas”. La tarea es el elemento básico de análisis de Machine Learning. En nuestro caso, decidimos crear lo que se conoce como “análisis de grupo”, en el que indicamos al motor de Machine Learning que creara un modelo de base de referencia de comportamiento típico de direcciones IP en un período de tiempo e identificara las que se comportaran de manera anormal en comparación con el resto del grupo.

Dicho en términos más específicos, en nuestro caso quisimos buscar direcciones IP de origen que, al compararse con todas las demás, generen una cantidad de tipos de alertas anormalmente alta. Esto no puede hacerse con solo crear tablas de agregación, ya que las anomalías se produjeron en un momento determinado, desconocido por nuestro analista de seguridad, y hay más de 60 días de datos de alerta (detectamos algunos ataques para los cuales la duración no superó los dos minutos).

Como resultado de nuestro análisis de grupo, detectamos varios comportamientos anormales (con la forma de una lista de direcciones IP de origen) que decidimos investigar. Usamos el “explorador de anomalías” para saber el momento en que cada uno de esos posibles actores malintencionados atacaban nuestro entorno.

Investigación de un intento de intrusión

A modo de ejemplo de un análisis de seguridad, resaltamos la investigación de una de las direcciones IP identificadas por la tarea de Machine Learning. Esta dirección IP en particular generó varias alertas de NIDS y HIDS en menos de un minuto, y con ello activó una acción automatizada de Wazuh que bloqueó la dirección IP en el firewall local de nuestro servidor web.

Como se muestra en la captura de pantalla anterior, el sensor NIDS de Suricata detectó tráfico malintencionado de la dirección IP de origen indicada. Cuatro reglas coincidieron con el tráfico entrante, lo que generó las siguientes alertas:

  • ET DROP Dshield Block Listed Source group 1
  • ET CINS Active Threat Intelligence Poor Reputation IP group 77
  • SURICATA HTTP URI terminated by non-compliant character
  • SURICATA HTTP METHOD terminated by non-compliant character

Las dos primeras reglas, parte del set de reglas de Emerging Threats, indican que la dirección IP de origen tiene mala reputación según fuentes de inteligencia sobre amenazas (TI): Dshield y la inteligencia activa contra amenazas.

Además, otras dos firmas detectaron actividad HTTP anómala proveniente de la misma dirección IP de origen, lo que muy probablemente forma parte de una etapa de análisis en la que el atacante reúne información buscando posibles vulnerabilidades.

El componente HIDS de Wazuh también activó diferentes alertas según el análisis de los logs de acceso del servidor web. Este enfoque, totalmente diferente de la inspección de paquetes de red, generó finalmente las siguientes alertas:

  • IP address found in AlienVault reputation database
  • Host Blocked by firewall-drop.sh Active Response
  • Host Unblocked by firewall-drop.sh Active Response

La primera alerta indica que la dirección IP de origen, según los registros, también forma parte de otra fuente de TI: la base de datos de reputación de IP de AlienVault OTX.

Las otras dos alertas se activan a través del Módulo de respuesta activa de Wazuh que, como resultado de las alertas mencionadas previamente, agregó de forma automática una regla de firewall para bloquear el tráfico de esa dirección IP de origen en particular durante exactamente 60 segundos (esto se puede configurar). Esta acción bastó para bloquear actividades de análisis e hizo que el actor malintencionado abandonara el intento de intrusión.

Conclusión

Mediante detección de intrusiones basada en firmas y anomalías, con tecnologías como Wazuh, Suricata y Machine Learning de Elastic, se puede facilitar la detección de amenazas y aumentar la eficiencia en la investigación.

A su vez, la integración de un IDS basado en host (para monitorear sistemas a nivel de host) con un IDS basado en la red (para inspeccionar el tráfico de red) también puede aumentar la detección de amenazas y la visibilidad en materia de seguridad. Wazuh facilita este proceso, ya que puede usarse para integrar sistemas de IDS de host y red con el Elastic Stack, y puede proporcionar el mecanismo para implementar respuestas automatizadas y bloquear ataques en tiempo real.