Icono del sitio Jaymon security

SPLUNK: El SIEM para el control definitivo

1. Introducción y objetivos


En este artículo nos vamos a poner en la piel de un analista de seguridad, cuya labor consiste en llevar a cabo la detección de intrusiones analizando los distintos archivos de eventos «logs» que crean las máquinas y dispositivos en busca de comportamientos anómalos. Esto se lleva a cabo para dar respuesta ante posibles incidentes, establecer normas y políticas apropiadas, y hacer que estas se cumplan. Del mismo modo es el encargado de la implantación e implementación de Sistemas de Monitorización de Eventos de Seguridad (SIEM).

Para llevar a cabo este ejercicio vamos a hacer uso de la herramienta «Splunk  Enterprise». En lo siguientes puntos definiremos esta herramienta y su funcionamiento; y además veremos brevemente algunos casos de uso que pueden sernos de gran utilidad en nuestro día a día.



2. ¿Qué es Splunk?


Básicamente podríamos definir «Splunk» como una herramienta encargada de recopilar, parsear, almacenar y correlacionar datos en tiempo real.

El origen de estos datos recolectados es muy variado, ya que pueden ser datos pertenecientes a una red empresarial, a sistemas e infraestructuras, a la nube, etc. En definitiva, cualquier máquina o dispositivo que genere un log de eventos puede ser monitorizada.

Los datos normalmente se recolectan y almacenan en la herramienta mediante el empleo de un «syslog» o de uno de uno de sus agentes, llamado «reenviador» o del inglés «forwarder», del que hablaremos más adelante. Una vez recolectados estos datos, son reenviados al servidor principal, el denominado «indexador», y son almacenados en unos cubos o «buckets» llamados «indexes».


Estos datos pueden ser tratados para realizar distintas tareas, como pueden ser el generar inteligencia, detección de posibles ataques o incluso para generar «Big data».


Estos datos son recogidos y almacenados en tiempo real, lo que permite una detección temprana y el poder aplicar las correcciones necesarias para que un ataque no llegue a ser efectivo, o por lo menos para hacer que éste sea lo menos dañino posible para la empresa.  

Splunk consta de una interfaz web bastante intuitiva, con la que el usuario puede revisar estos logs, crear paneles de control o «dashboards», generar reportes o programar alertas.

Podríamos afirmar que se trata de una herramienta realmente poderosa, flexible y escalable. Permite al usuario crear aplicaciones propias o descargarlas desde su propio repositorio «splunkbase«. En este repositorio la gran mayoría de las aplicaciones son gratuitas, unas son creadas por Splunk y otras por empresas de seguridad de renombre como Fortinet, CheckPoint o Cisco.



Existe la posibilidad de añadir a Splunk otros módulos de pago, mediante los cuales hacen posible que Splunk llegue a convertirse en uno de los SIEM más completos del mercado, como es Splunk Enterprise Security, Splunk Phantom, Splunk User Behavior Analytics entre otros.
Estos módulos de seguridad hacen más potente a Splunk proporcionando herramientas predefinidas para la búsqueda de comportamientos maliciosos, mediante indicadores claves de seguridad, correlación de eventos, aportando dashboard, lookups…


3. Instancias de Splunk


El «core» de Splunk ofrece varias soluciones que pueden adaptarse perfectamente a nuestras necesidades, según los recursos de los que se dispongan y según la infraestructura a monitorizar.

Existe una versión gratuita de Splunk Enterprise de 60 días, limitada al indexado de 500 Mb/día. Además, transcurridos esos días puedes hacer que la licencia sea indefinida, por lo que para probarlo y conocer Splunk está bastante bien, e incluso para tenerlo como instancia de pruebas y desarrollos. Una vez registrados desde su propia web se puede realizar la descarga: https://www.splunk.com


4. Componentes de Splunk Enterprise


Splunk está formado por varios componentes que nos ayuda a realizar el despliegue y la recolección de los datos de una forma fácil y eficaz. Los componentes principales de Splunk son tres:

Cada componente de Splunk cumple una o varias funciones, y tienen asignado uno o varios roles. Las funciones más destacadas son las siguientes:



5. Detectando ataques de fuerza bruta


A continuación vamos a ver el caso de un ataque de fuerza bruta sobre un sistema Windows. Aclarar que se puede monitorizar cualquier sistema que tenga un módulo de autenticación, como puede ser un panel web o la entrada a una aplicación que requiera credenciales.

Antes de realizar el análisis hemos tenido que configurar adecuadamente la recepción de logs de seguridad de Windows, instalando un «Universal Forwarder» en la máquina a monitorizar. Se podría instalar en un Directorio Activo (AD) y así poder monitorizar todas las máquinas asociadas a ese AD.

Desde el buscador que proporciona la interfaz web de Splunk, podemos realizar búsquedas en lenguaje SPL de los datos que estamos indexando.

La búsqueda a realizar sería la siguiente:




  • Index: Es el «cubo» en el que almacenamos los logs de Windows.
  • Sourcetype: Es el tipo de dato que almacenamos, en este caso eventos de windows de seguridad.
  • User= * : Se refiere a todos los usuarios.
  • User!= » «: Se refiera a que el usuario sea diferente a blanco, es decir, que tiene que haber algún dato en el campo usuario.
  • Stats count eval: Hace un conteo de todos los resultados de «action» correspondientes a «success» y «failures», y agrupa por usuario.
  • Where: Condición que obliga a que los resultados con éxito sea mayor de 0 y los resultados fallidos sea mayor de 50.

*Importante: los parámetros introducidos en «index» y «sourcetype» se deben adaptar al entorno.


6. Detectando escaneo de puertos y servicios


En estos tiempos que corren es casi inevitable recibir continuamente escaneos de puertos y servicios sobre aplicaciones expuestas en la red.

Es muy importante detectar este tipo de ataques, porque de esta manera podremos adelantarnos a otros posibles ataques más elaborados, ya que como todos sabemos una de las primeras fases de un ataque es el escaneo. De este modo podremos implementar algunas medidas, como bloqueo de direcciones IP según el número de peticiones, entre otras.

¿Cómo podríamos detectar en tiempo real un ataque de este tipo?

Una vez estemos recibiendo logs de nuestros dipositivos de red (firewall, ips, router, etc.) podremos realizar la siguiente búsqueda:





7. Detectando nuevas cuentas de administrador


Otro de los casos de uso importantes es la localización de nuevas cuentas de usuario del grupo de administradores.

Cuando los ciberdelincuentes realizan una intrusión a una máquina víctima, una de las primeras TTP (Tácticas, Técnicas y Procedimientos) que suelen ejecutar es el conseguir acceso a otras cuentas de usuario para realizar movimientos laterales en la organización (pivotar, escalada de privilegios), o el llevar a cabo la creación de nuevas cuentas de usuario con la finalidad de asegurarse la persistencia en la máquina víctima. Si te interesa conocer más sobre ciberseguridad ofensiva puedes echar un vistazo al Curso Avanzado Profesional en Ciberseguridad Ofensiva.

Desde nuestro buscador analizando los logs de seguridad de Windows podremos encontrar información de cuentas de usuario.




8. Monitorizar nuestra web


Con Splunk también podemos crearnos un panel de control de nuestra web, y así poder monitorizarla a tiempo real, con la finalidad de ver si la web está en estado de servicio, si está sufriendo un ataque de descubrimiento de directorios, si están intentando acceder desde distintos puntos del planeta, etc.

Para ello necesitamos instalar nuestro agente de Splunk (UF) en el servidor que tenga alojada la web. Después iremos a Splunk Web y realizaremos las busquedas deseadas.





Ahora vamos a convertir esta búsqueda en un panel con gráficos para que visualmente sea más atractivo y más fácil de manejar.


Seleccionamos «Visualization» y «Format» para elegir el tipo de gráfico que vamos a utilizar. Posteriormente seleccionamos «Save as» > «Dasboard Panel» y el resultado será el siguiente:


Top Error Codes

Ni qué decir tiene que tanto los colores de las gráficas como el tema oscuro que en este caso hemos elegido, pueden ser cambiados y personalizados al gusto de cada uno.


9. Control del consumo de recursos de nuestra infraestructura


Otro uso muy interesante que podemos dar a Splunk, es el llevar a cabo la monitorización del estado de nuestra infraestructura y crear alertas por si algo que no va bien.

Por ejemplo, podemos monitorizar el consumo de memoria RAM, o de los discos de almacenamiento. Y en el caso que estimemos oportuno podemos crear alertas para que nos salte un aviso, o nos llegue un correo electrónico con la información de que estamos a un 80% de capacidad del disco, o de que se está consumiendo más del 90% de la memoria RAM.

Para ello necesitamos instalar el agente de Splunk (UF) en los servidores a monitorizar, e indicar de qué contadores queremos recoger logs. Una vez hecho esto solo tenemos que ir a Splunk Web y realizar las búsquedas oportunas, o crear paneles (dashboards) con gráficos y hacer más visuales los datos en nuestro centro de vigilancia.




En las imágenes anteriores podemos ver un dashboard con las métricas recogidas del perfmon de Windows.


En la primera imagen se muestra una media de los MB disponibles de memoria, con el pico más alto y la disponibilidad actual en el momento de la medición, junto con su última actualización. En la segunda imagen podemos observar lo mismo que en la primera, pero con el añadido del uso del procesador.

Como hemos podido ver, ésta es una manera muy rápida y cómoda de tener nuestro entorno bajo control, pudiendo añadir los equipos más críticos de nuestra organización para realizar un control de ellos en tiempo real, y adelantarnos a posibles problemas de disponibilidad o de posibles ataques, ya que si observamos que se está haciendo un uso muy elevado y repentino de recursos (memoria, procesador), nos podemos encontrar ante un posible malware que esté trabajando en segundo plano realizando acciones malignas, como es el caso de los actuales y famosos ransomware.


10. Conclusiones generales


En este artículo hemos visto superficialmente de lo que es capaz de realizar Splunk, y hemos podido observar el potencial que tiene esta aplicación, la cual es un referente en Centros de Operaciones de Seguridad (SOC) a nivel mundial.

Splunk es una herramienta muy completa que nos permite estar al tanto de todo lo que ocurre en nuestra organización a tiempo real, y que nos otorga la capacidad de poder tomar medidas rápidamente en caso de incidente o comportamiento malicioso, algo vital en casos de infección de malware tipo ransomware.

Además, se caracteriza por su versatilidad y capacidad de ampliación de forma fácil y segura. Es compatible con todos los sistemas y arquitecturas, incluyendo a sistemas Android, por lo que podríamos monitorizar los teléfonos de nuestra empresa hasta el punto de su geolocalizarlos.

Para finalizar decir que otros usos que podemos darle a Splunk, más enfocados a la ciberseguridad, es la monitorización de actividad en redes TOR, detección de ransomware (como el famoso «wannacry»), entre otros muchos de gran interés.

Hasta la próxima!!! Os deseamos buen splunking 😉

Salir de la versión móvil