Portada Artículo

 

Emulación de adversarios

La emulación de adversarios es un ejercicio de seguridad ofensiva en el que se busca imitar las técnicas utilizadas por los atacantes. El objetivo principal es evaluar si una organización tiene la visibilidad necesaria para detectar, responder y mitigar un ataque similar al que podría llevar a cabo un adversario real pudiendo evaluar de esta forma la resiliencia ante amenazas cibernéticas y mejorar la colaboración entre los equipos de seguridad. Al comprender cómo actuaría un adversario, las organizaciones pueden fortalecer sus defensas y estar mejor preparadas para enfrentar ataques reales. Sus características clave son:

  1. Imitar al Enemigo:

    • La emulación de adversarios se basa en la premisa de conocer a tu enemigo. Siguiendo el consejo de Sun-Tzu en “El arte de la guerra”, se busca entender las tácticas, técnicas y procedimientos que un atacante sofisticado podría emplear.
    • Se construye un escenario realista basado en alguna metodología o marco de trabajo. Luego, un equipo atacante (Red team) ejecuta este escenario en la organización para simular un ataque.
  2. Equipo Colaborativo Purple Team:

    • La emulación de adversarios no solo evalúa los aspectos tecnológicos de la seguridad, sino también la madurez de los procesos y los roles de seguridad dentro de la organización.
    • Surge un equipo virtual colaborativo llamado Purple team, que combina los conocimientos del Red team (atacantes) y el Blue team (defensores).
  3. Metodologías y Frameworks:

    • MITRE ATT&CK: Es una base de conocimiento que describe tácticas, técnicas y procedimientos de adversarios basados en observaciones del mundo real. Se utiliza como base para desarrollar otras metodologías e inteligencia específica para instituciones públicas y privadas.

 

En la serie Automatización de la emulación de adversarios con Atomic Red Team (ART), Sysmon y Splunk diseñaremos, implementaremos y pondremos a prueba un laboratorio completo en el que ejecutaremos tests utilizando Atomic Red Team (ART) en una máquina Windows Server. Monitorizaremos los eventos generados por Sysmon y los enviaremos a Splunk Enterprise, el cual será utilizado como SIEM, por lo que nos permitirá crear alertas de seguridad que serán enviadas a Splunk SOAR mediante el cual podremos investigar, contener y mitigar los incidentes y de esta forma validemos los controles de seguridad implementados.

En esta primera entrega vamos a detallar paso a paso cómo configurar todos los elementos del laboratorio necesarios pasando por la instalación de Atomic Red Team y Sysmon en el servidor Windows Server hasta la instalación de Splunk Enterprise y Splunk SOAR y el envío de datos mediante el agente Universal Forwarder.

 

 

 

 

Configuración del servidor Microsoft Windows

El servidor Windows utilizado en el laboratorio se trata de la versión Windows Server 2022, el cual puede obtenerse del centro de evaluación de Microsoft en este enlace.

 

Instalación de Sysmon

 

Windows Sysmon es una utilidad que pertenece al conjunto de herramientas Sysinternals de Microsoft, las cuales están enfocadas a la administración de sistemas Windows.
Sysmon se mantiene residente en el sistema permitiendo supervisar y registrar toda la actividad en el registro de eventos de Windows. Es especialmente útil para la recolección de eventos para su envío a SIEM ya que proporciona información detallada de creación de procesos, conexiones de red y cambios en ficheros la cual queda almacenada en C:\Windows\System32\winevt\Logs

Para comenzar con la instalación descargamos desde la web de Microsoft el fichero zip que contiene varios ejecutables (para cada arquitectura).

A continuación necesitamos generar un fichero de configuración el cual se usa para el filtrado de eventos capturados. Existen numerosos repositorios que ofrecen configuraciones que pueden tomarse como base, en nuestro caso utilizaremos la disponible en sysmon-modular en el fichero sysmonconfig.xml

 

Ejecutamos el siguiente comando para instalar Sysmon con el archivo de configuración descargado:

sysmon -accepteula -i c:\windows\config.xml

 

 
 

Configuración de Atomic Red Team (ART)

 

 

Atomic Red Team es una librería de tests mapeados con el framework MITRE ATT&CK® la cual se utiliza para probar y evaluar la efectividad de los entornos de seguridad en cuanto a lo que a detección y respuesta se refiere. Cada uno de los tests está diseñado para mapear una táctica en concreto. Son pruebas atómicas que tienen pocas dependencias y se definen en un formato estructurado que permiten ser usados en frameworks de automatización. Su repositorio se encuentra en atomic-red-team

Para realizar la configuración en nuestro entorno, utilizaremos Invoke-AtomicRedTeam el cual es un módulo en PowerShell que permite ejecutar todos los tests definidos en la carpeta atomic del proyecto.
Para cada técnica definida en el framework Mitre encontraremos una carpeta en la cual se encuentra un fichero yaml que define el procedimiento de ataque de cada test atómico así como una versión de fácil lectura con los mismos datos en formato Markdown.

A continuación se detallan los pasos para realizar la instalación y configuración de Invoke-Atomic, aunque toda la información está disponible en la Wiki del módulo.

  1. Instalamos el framework de ejecución y la carpeta Atomics:


  2. Importamos el módulo a nuestro perfil de PowerShell:


  3. Validamos que podemos utilizar la herramienta:


Configuración del Splunk Universal Forwarder

La recolección de los eventos originados por Sysmon será gestionada por el agente Universal Forwarder cuyo único propósito es el de enviar datos a la plataforma Splunk para su indexación y posterior análisis.

Descargamos el agente desde el siguiente enlace eligiendo el instalador más adecuado de acuerdo a nuestra plataforma.

 

Una vez ejecutado, simplemente tenemos que seguir el proceso de instalación. En la documentación de Splunk podemos encontrar más información para ello.

 

Nota
En uno de los pasos el instalador nos solicitará la dirección del deployment Server y la dirección del servidor al que enviar los datos. Como realizaremos una instalación de Splunk en modo Standalone, asumirá ambos roles, por lo que la IP a configurar será la misma. Si aún no hemos configurado Splunk Enterprise, podemos indicar la IP que reservaremos para éste.

 


 

Instalación y configuración de la plataforma Splunk

Para la configuración del sistema operativo Linux se ha usado la distribución CentOS 7.
Es una distribución que el 30 de junio de 2024 dejará de tener soporte, sin embargo como realizaremos la instalación tanto de Splunk SOAR como de Splunk Enterprise (a modo de laboratorio, ya que en un entorno de producción ambos servicios no deberían convivir juntos), debemos tener en cuenta que los sistemas operativos soportados por Splunk SOAR son muy reducidos.

 

Instalación de Splunk SOAR

 

Splunk SOAR (anteriormente denominado Splunk Phantom) es una solución de orquestación, automatización y respuesta de seguridad (SOAR). La automatización de la seguridad implica la ejecución de acciones de seguridad basadas en máquinas para detectar, investigar y remediar amenazas de forma automatizada. Splunk SOAR proporciona orquestación de infraestructura de seguridad, gestión de casos, automatización de manuales e inteligencia sobre amenazas integrada. La solución puede ingestar eventos de seguridad de varias fuentes, lo que le permite rastrear, analizar y clasificar eventos, y utilizar guías para automatizar respuestas desde una interfaz.

Comenzamos configurando los prerequisitos indicados por el manual de instalación consistentes en la descarga y activación del firewall:

$ sudo yum install firewalld
$ sudo systemctl start firewalld
$ sudo systemctl enable firewalld

 

Además necesitaremos crear algunas reglas que nos permitan acceder posteriormente a la máquina:

$ sudo firewall-cmd --permanent --zone public --add-port 22/tcp
$ sudo firewall-cmd --permanent --zone public --add-port 2222/tcp
$ sudo firewall-cmd --reload

 

Descargamos el paquete de instalación de Splunk Soar compatible con nuestra distribución RHEL.

 

y descomprimimos el fichero tar descargado:

$ tar -xzvf ./splunk_soar-unpriv-6.2.1.305-7c40b403-el7-x86_64.tgz

 

Una vez descomprimido ejecutamos el script de preparación de la instalación indicando la carpeta de destino y el puerto de acceso a la interfaz web, aunque estos valores juntos con otros parámetros de configuración se pueden indicar de forma interactiva a medida que el prompt del script lo va solicitando:

$ ./soar-prepare-system --splunk-soar-home /opt/splunk-soar --https-port 443

 

Ahora sí, una vez finalizada la preparación del entorno, procedemos a la ejecución del script de instalación con los mismos argumentos indicados en el script de preparación:

$ ./soar-install --splunk-soar-home /opt/splunk-soar --https-port 443

 

Una vez hayamos concluido la instalación, podremos acceder a la interfaz web utilizando los credenciales por defecto soar_local_admin / password

 

Instalación de Splunk Enterprise

 

Splunk es una herramienta de análisis de datos en tiempo real que facilita la monitorización y análisis de datos de toda la infraestructura TI. Esto incluye desde servidores y aplicaciones hasta dispositivos de red, bases de datos y servicios basados en la nube. Todos los datos recolectados permiten ser interpretados mediante gráficos, alertas y dashboards personalizados con información clara y útil para la toma de decisiones. Una de las aplicaciones de Splunk es la de ser utilizado como una solución de seguridad de la información y gestión de eventos (SIEM) permitiendo recopilar y correlacionar datos de seguridad para la detección y respuesta a amenazas de seguridad.

Comenzaremos la instalación descargando el paquete de instalación de Splunk Enterprise que se ajuste a nuestro sistema operativo:

 

En nuestro caso descargaremos el paquete en formato .tgz, el cual descomprimiremos en /opt/splunk. Para ello ejecutamos el siguiente comando:

$ tar xvzf splunk-9.2.1-78803f08aabb-Linux-x86_64.tgz-C /opt

 

Dependiendo de la plataforma deberemos seguir un procedimiento de instalación específico, el cual podemos encontrar en el manual de instalación de Splunk Enterprise.

A continuación creamos un nuevo usuario específico:

$ sudo useradd splunk -d /opt/splunk -s /bin/bash -U 
$ sudo passwd splunk

 

Establecemos la variable de entorno en el sistema

$ export SPLUNK_HOME=/opt/splunk

 

Iniciamos Splunk aceptando la licencia de uso

$ /opt/splunk/bin/splunk start --accept-license --answer-yes

 

Validamos que el servicio ha arrancado correctamente:

$ /opt/splunk/bin/splunk status

 

 

Nota: Debemos tener en cuenta que necesitaremos añadir al firewall todos los puertos que necesitemos. Para Splunk enterprise añadirmos los siguientes usados por defecto:

$ firewall-cmd --permanent --zone public --add-port 8000/tcp
$ firewall-cmd --permanent --zone public --add-port 8089/tcp
$ firewall-cmd --permanent --zone public --add-port 9997/tcp
$ firewall-cmd --reload $ firewall-cmd --list-ports

 

Una vez hayamos finalizado la configuración podremos acceder a través de la IP de nuestro servidor y el puerto 8000:

 

Conclusiones

En esta primera entrega hemos completado la instalación de todo el software necesario para comenzar a trabajar en nuestro laboratorio. En la siguiente entrega abordaremos la implementación de una alerta en Splunk Enterprise y su validación mediante los tests atómicos de Atomic Red Team.

 
 
 
 
 
Entregas de la serie:

 

 

 

Un comentario en “Automatización de la emulación de adversarios con Atomic Red Team (ART), Sysmon y Splunk Parte I: Configuración de la arquitectura

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *