ELK Stack en Ciberseguridad: Fortalece tu Seguridad Informática

Descubre cómo utilizar ELK Stack en seguridad informática con nuestro último post en el blog. Aprende cómo la combinación de Elasticsearch, Logstash y Kibana puede ayudarte a monitorear, analizar y responder en tiempo real a las amenazas de seguridad.

ELK Stack

1. Introducción a ELK Stack: Qué es y para qué sirve.

En esta sección, vamos a introducir ELK Stack y a explicar por qué es una herramienta importante en el ámbito de la ciberseguridad.

ELK Stack es un conjunto de herramientas de análisis de datos que incluye Elasticsearch, Logstash y Kibana. Elasticsearch es un motor de búsqueda y análisis distribuido que nos permite almacenar y buscar grandes volúmenes de datos. Logstash es un procesador de datos que nos permite filtrar, transformar y enriquecer los datos antes de enviarlos a Elasticsearch. Kibana es una plataforma de visualización de datos que nos permite crear visualizaciones y dashboards para analizar los datos almacenados en Elasticsearch.

En el ámbito de la ciberseguridad, ELK Stack es una herramienta muy valiosa. Con ELK Stack, podemos recopilar, almacenar y analizar los registros de eventos de nuestros sistemas informáticos y aplicaciones, lo que nos permite detectar patrones y anomalías en el comportamiento de los usuarios y los sistemas. Además, podemos crear alertas para notificarnos cuando se produzcan eventos sospechosos o peligrosos en tiempo real.

En resumen, ELK Stack es una herramienta esencial en el ámbito de la ciberseguridad, ya que nos permite analizar grandes cantidades de datos de registro de eventos y detectar amenazas en tiempo real. En las secciones siguientes, profundizaremos en cada una de las herramientas que componen ELK Stack y exploraremos cómo podemos utilizarlas para mejorar la seguridad de nuestros sistemas informáticos.

2. Componentes de ELK Stack: Elasticsearch, Logstash y Kibana.

ELK Stack es una plataforma de análisis y visualización de datos que consta de tres componentes principales: Elasticsearch, Logstash y Kibana.

Elasticsearch es un motor de búsqueda y análisis de datos distribuido, basado en Lucene, que permite almacenar, buscar y analizar grandes cantidades de datos en tiempo real. Es el corazón de ELK Stack y proporciona una capa de abstracción sobre los datos para hacer búsquedas, agregaciones y visualizaciones de manera eficiente.

Logstash es una herramienta de procesamiento de datos que permite recopilar, filtrar y transformar datos de diferentes fuentes, como logs de aplicaciones, bases de datos, sistemas de archivos, entre otros. Logstash procesa los datos y los envía a Elasticsearch para su almacenamiento y análisis.

Por último, Kibana es una plataforma de visualización y análisis de datos que permite crear gráficos, tablas, mapas y dashboards interactivos basados en los datos almacenados en Elasticsearch. Kibana es altamente personalizable y ofrece una amplia gama de opciones de visualización y análisis para adaptarse a las necesidades de los usuarios.

Además de los componentes principales, ELK Stack también incluye herramientas adicionales como Beats, que son agentes de recolección de datos ligeros y modulares que envían datos a Logstash o Elasticsearch, y X-Pack, que proporciona características adicionales de seguridad, monitoreo y alertas para ELK Stack.

En resumen, ELK Stack es una plataforma de análisis y visualización de datos altamente escalable y flexible que consta de varios componentes esenciales. Elasticsearch, Logstash y Kibana trabajan juntos para proporcionar una solución completa para la recopilación, almacenamiento, procesamiento, análisis y visualización de datos. Con la adición de herramientas adicionales como Beats y X-Pack, ELK Stack ofrece una amplia gama de opciones para adaptarse a cualquier necesidad de análisis de datos.

3. Por qué utilizar ELK Stack en seguridad informática.

ELK Stack se ha convertido en una herramienta indispensable para la seguridad informática debido a su capacidad para recolectar, analizar y visualizar grandes cantidades de datos de forma eficiente y en tiempo real. A continuación, se presentan algunas de las principales razones por las que ELK Stack es una excelente opción para la seguridad informática:

  • Escalabilidad: Elasticsearch, el componente principal de ELK Stack, es altamente escalable y puede manejar grandes cantidades de datos en tiempo real sin afectar el rendimiento. Esto lo convierte en una opción ideal para la recolección y el análisis de datos de seguridad.
  • Análisis de logs: Logstash, el componente encargado de la recolección y el procesamiento de logs, permite la normalización de los datos y su análisis en tiempo real, lo que permite detectar y responder rápidamente a posibles amenazas.
  • Visualización: Kibana, el componente de visualización de ELK Stack, ofrece una amplia variedad de herramientas gráficas para visualizar los datos de seguridad, lo que permite una rápida identificación de patrones y tendencias anómalas.
  • Integración: ELK Stack cuenta con numerosas integraciones con otras herramientas de seguridad, lo que permite una mayor flexibilidad y personalización de las soluciones de seguridad.

En resumen, ELK Stack ofrece una solución completa y escalable para la recolección, análisis y visualización de datos de seguridad, lo que lo convierte en una opción ideal para cualquier organización que desee mejorar su capacidad de detección y respuesta a amenazas de seguridad.

4. Casos de uso de ELK Stack en seguridad informática.

ELK Stack es una herramienta muy versátil y puede ser utilizada en una amplia variedad de casos de uso en el ámbito de la seguridad informática. A continuación, se describen algunos de los casos más comunes:

  1. Análisis de logs: Una de las principales funcionalidades de ELK Stack es la capacidad de procesar y analizar grandes cantidades de logs. Esto permite a los equipos de seguridad detectar patrones, identificar comportamientos anómalos y correlacionar eventos que podrían ser indicativos de un ataque.
  2. Detección de intrusiones: Al utilizar ELK Stack en conjunto con herramientas de detección de intrusiones como Snort o Suricata, los equipos de seguridad pueden analizar los eventos generados por estas herramientas y obtener una visión más completa de las posibles amenazas. Si quieres saber más de como implementar ELK Stack con Suricata, visita: ELK Stack + Suricata.
  3. Monitorización de la red: Al recopilar datos de diferentes fuentes, como logs de firewall, registros de tráfico de red y registros de sistemas, se pueden detectar comportamientos anómalos en la red, identificar posibles puntos de ataque y tomar medidas preventivas antes de que ocurra un incidente de seguridad.
  4. Análisis forense: ELK Stack también se puede utilizar en la investigación de incidentes de seguridad. Al recopilar y analizar datos de diferentes fuentes, los equipos de seguridad pueden reconstruir el ataque y determinar cómo ocurrió, cuándo ocurrió y qué información se vio comprometida.
  5. Cumplimiento normativo: Las organizaciones pueden utilizar ELK Stack para recopilar y analizar datos que les permitan cumplir con diferentes normativas de seguridad, como PCI DSS, HIPAA, entre otras.

En resumen, ELK Stack es una herramienta muy poderosa y versátil que puede ser utilizada para una amplia variedad de casos de uso en el ámbito de la seguridad informática. Al aprovechar sus capacidades de procesamiento y análisis de logs, detección de intrusiones y monitorización de la red, los equipos de seguridad pueden obtener una visión más completa de su infraestructura y detectar posibles amenazas antes de que se conviertan en un problema.

5. Monitoreo de seguridad con ELK Stack: Análisis de datos en tiempo real.

Monitorear y analizar datos de seguridad en tiempo real es crucial para detectar y responder a posibles amenazas de manera oportuna. ELK Stack ofrece una solución integral para el monitoreo y análisis de seguridad en tiempo real mediante la combinación de Elasticsearch, Logstash y Kibana.

Elasticsearch es la pieza central de la pila ELK y se utiliza para almacenar y buscar grandes cantidades de datos. En el contexto de la seguridad informática, Elasticsearch puede usarse para indexar y buscar registros de auditoría, eventos de seguridad y otros datos relevantes.

Logstash se utiliza para recopilar, procesar y enviar datos a Elasticsearch. Los datos pueden provenir de múltiples fuentes, como archivos de registro, bases de datos, sistemas de detección de intrusiones, entre otros. Logstash puede aplicar filtros y transformaciones a los datos antes de enviarlos a Elasticsearch, lo que permite una mejor comprensión y análisis.

Kibana proporciona una interfaz gráfica de usuario para visualizar y analizar los datos almacenados en Elasticsearch. Esto permite a los usuarios crear paneles personalizados y visualizaciones que proporcionan una visión clara y detallada del estado de seguridad de su infraestructura.

Al combinar estos tres componentes, los profesionales de la seguridad pueden monitorear y analizar en tiempo real los datos de seguridad, identificar patrones sospechosos y responder rápidamente a las posibles amenazas. Además, ELK Stack ofrece una serie de características de seguridad integradas, como la autenticación y autorización basada en roles, que aseguran que solo los usuarios autorizados puedan acceder a los datos y configuraciones relevantes.

En resumen, ELK Stack ofrece una solución integral y potente para el monitoreo y análisis de seguridad en tiempo real. Los profesionales de la seguridad pueden utilizar esta herramienta para detectar, investigar y responder a posibles amenazas de manera oportuna y eficaz.

6. Caso de uso. Recopilación de Logs Windows con ELK Stack: Configuración y uso.

Este tipo de solución, se puede desplegar de una manera más eficiente utilizando el agente en servidores de AD donde podemos centralizar todos los logs de la red Windows, por otro lado también podemos realizar el mismo escenario en entornos de Linux utilizando Rsyslog, así de esta manera rebajamos el número de agentes desplegados en los equipos de una red.

6.1 Instalación de Elasticsearch.

Vamos a comenzar por la instalación de los componentes. Lo primero que vamos a realizar será Instalar los paquetes necesarios para empezar a importar la key de los repositorios de elasticsearch:

apt -y install gnupg gnupg2

Descargamos las keys de los repositorios:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

Añadimos el repositorio a nuestro equipo:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list

Procedemos a actualizar los repositorios:

apt -y update

El siguiente paso, será instalar el paquete de elasticsearch desde el repositorio que hemos añadido:

apt -y install elasticsearch

Procedemos a iniciar el servicio y posteriormente a habilitarlo, esto servirá para que inicie cada vez que el servidor se reinicia o se enciende:

systemctl start elasticsearch
systemctl enable elasticsearch
ELK Stack

Comprobamos el estado de elasticsearch, realizando una petición con CURL:

curl -X GET “localhost:9200/”
ELK Stack

6.2 Instalación de Logstash.

Procedemos a realizar pasos similares a los anteriores, descargamos e instalamos el repositorio de Logstash:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
apt update
apt -y install logstash=1:7.10.2-1

Procedemos a configurar Logstash con la siguiente configuración. El directorio donde se encuentra este fichero es «/etc/logstash/logstash.yml»:

path.config: /etc/logstash/conf.d/*.conf
config.reload.automatic: true
config.reload.interval: 60s
pipeline.batch.size: 125
pipeline.batch.delay: 50
path.data: /var/lib/logstash
path.logs: /var/log/logstash
queue.type: memory
queue.max_bytes: 1gb
queue.drain: true
path.queue: /var/lib/logstash/queue
path.dead_letter_queue: /var/lib/logstash/dead_letter_queue
dead_letter_queue.enable: true

A parte de establecer una configuración para logstash, tendremos que crear una configuración para que pueda recibir la información desde Winlogbeat y lo pueda indexar en elasticsearch. Esto lo haremos creando un archivo de configuración para Logstash en “/etc/logstash/conf.d/logstash.conf”:

touch /etc/logstash/conf.d/logstash.conf
input {
  beats {
    port => 5044
    host => "192.168.0.19"
  }
}

filter {
  if [agent][type] == "winlogbeat" {
    # Windows Event Log parsing
    if [event_data][param1] {
      grok {
        match => { "message" => "%{SYSLOG5424PRI}%{NONNEGINT:syslog5424_ver} +(?:%{TIMESTAMP_ISO8601:syslog5424_ts}|-) +(?:%{HOSTNAME:syslog5424_host}|-) +(?:%{NOTSPACE:syslog5424_app}|-) +(?:%{NOTSPACE:syslog5424_proc}|-) +(?:%{WORD:syslog5424_msgid}|-) +(?:%{SYSLOG5424SD:syslog5424_sd}|-|) +%{GREEDYDATA:syslog5424_msg}" }
      }
      mutate {
        replace => { "message" => "%{[event_data][param1]}" }
        remove_field => [ "[event_data]" ]
      }
    }
  }

  # Additional filters for Linux logs go here
}

output {
  if [agent][type] == "winlogbeat" {
    elasticsearch {
      hosts => ["localhost:9200"]
      index => "winlogbeat-%{+YYYY.MM.dd}"
    }
  } else {
    elasticsearch {
      hosts => ["localhost:9200"]
      index => "filebeat-%{+YYYY.MM.dd}"
    }
  }
}

Una vez configurado el servicio, procedemos a iniciar y habilitar el servicio:

systmctl start logstash
systemctl enable logstash
ELK Stack

6.3 Instalación de Kibana.

Como hemos realizado con los anteriores servicios, procedemos a instalar el repositorio de Kibana y el propio paquete:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/kibana.list
apt update
apt install kibana

Editar el archivo “/etc/kibana/kibana.yml”, donde también dejaremos configurado un acceso con kibana para poder configurar posteriormente usuarios adicionales y roles. También estableceremos una clave de encriptación para poder cifrar la información sensible de algunas secciones, en este caso la sección futura que utilizaremos para crear alertas:

ELK Stack

Una vez configurado el servicio, procedemos a iniciar y habilitar el servicio:

systemctl start kibana
systemctl enable kibana
ELK Stack

6.4 Instalación de Winlogbeat.

Winlogbeat es un agente de envío de logs diseñado por Elastic para integrarse con la pila de ELK y recopilar logs de eventos de Windows de forma centralizada. Winlogbeat recopila datos de los registros de eventos de Windows y los envía a Elasticsearch para su posterior indexación.

En este caso de uso, lo vamos a utilizar para sincronizar los datos de un Windows 10, para ello descargamos el cliente de winlogbeat:

ELK Stack

El siguiente paso, será descomprimir el zip resultante y de esta manera podremos configurar el servicio:

ELK Stack

Procedemos a configurar el servicio, modificando el archivo «winlogbeat.yml», donde tendremos que comentar lo seleccionado en la captura y descomentar la sección de logstash. Esta configuración hará que este cliente se comunique con nuestro servidor Logstash y de esta manera enviará los logs de nuestro windows:

Finalmente, tras configurar el servicio, procedemos a instalar el agente. Esto lo realizaremos con un powershell y haciendo bypass a la política de ejecución de scripts:

powershell.exe -ExecutionPolicy Bypass -File .\install-service-winlogbeat.ps1

Tras instalar el servicio, procedemos a iniciar el servicio:

Net start winlogbeat

6.5 Configuración de Index en Kibana para visualizar los datos.

El siguiente paso es, acceder a nuestro Kibana para poder comprobar que los datos se envían correctamente a nuestro Stack:

Vamos a la sección de “stack management” – “Index Patterns” para poder crear un nuevo index:

Ahí encontraremos varios indices creados dependiendo de toda la información que haya sido transmitida a logstash desde el equipo Windows, en mi caso seleccionare uno de ejemplo:

Seleccionamos el campo que determina el tiempo:

A continuación se nos muestra un resumen de todos los campos del índice:

Finalmente, si nos dirigimos a la sección “discover” de Kibana, seleccionando el indice que hemos añadido de Winlogbeat, veremos todos los logs del equipo que hemos conectado:

ELK Stack

Finalmente, una vez tenemos los datos en nuestro ELK Stack, podemos realizar todas las búsquedas que queramos dentro de los datos e incluso la construcción de Dashboards para la visualización de los datos en base a filtros establecidos. Por otro lado tenemos que tener en cuenta que Kibana implementa una sección de alertas que en base a cambio o detecciones en los datos podríamos configurar alertas para la detección de patrones o eventos específicos. Esto nos permitirá tener control de reacción en caso de que ocurra un evento malicioso.

7. Conclusiones y recomendaciones sobre el uso de ELK Stack en seguridad informática.

La utilización de ELK Stack en seguridad informática puede ser muy beneficiosa para las empresas que necesitan analizar grandes cantidades de datos en tiempo real. Con la ayuda de Elasticsearch, Logstash y Kibana, los equipos de seguridad pueden recopilar, procesar y visualizar los datos de forma más eficiente, lo que les permite tomar decisiones informadas en tiempo real.

Sin embargo, es importante recordar que la implementación de ELK Stack en seguridad informática no es una solución completa y debe ser utilizada junto con otras herramientas y prácticas de seguridad. Además, se recomienda que los equipos de seguridad tengan un conocimiento profundo de la configuración y administración de ELK Stack para aprovechar al máximo sus capacidades.

En conclusión, ELK Stack es una herramienta valiosa para la seguridad informática y puede ayudar a las empresas a analizar grandes cantidades de datos en tiempo real. Sin embargo, su uso debe ser complementado con otras herramientas y prácticas de seguridad, y se requiere un conocimiento profundo de su configuración y administración para aprovechar al máximo sus capacidades.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.