PRUEBAS DE CONCEPTO (PDC) WAZUH MANAGER
PDC 1: BLOQUEO DE DIRECCIÓN IP MALICIOSA CONOCIDA.
Se configurará servidor web Apache en Ubuntu y se intenta acceder a ellos desde un terminal Debian que simulara a un atacante con una IP con baja reputación en listas de IP maliciosas.
TERMINAL |
DESCRIPCIÓN |
Debian | Terminal del atacante que se conecta al servidor web de la víctima en el que usa la capacidad de la lista CDB de Wazuh para marcar su dirección IP como maliciosa. |
Ubuntu | Terminal de la víctima que ejecuta un servidor web Apache 2.4.54. Se utiliza el módulo de respuesta activa de Wazuh para bloquear automáticamente las conexiones desde el terminal del atacante. |
Configuración.
En Wazuh Manager.
Se debe agregar la dirección IP del extremo de Debian a una lista negra de usuarios peligrosos para la red y luego configurar las reglas y la respuesta activa.
En la guía de procedimientos de prueba de Wazuh manager se encuentran pasos de instalación del comando:
sudo apt update && sudo apt install -y wget
Descargue la base de datos de reputación de IP de Alienvault:
sudo wget https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/alienvault_reputation.ipset -O /var/ossec/etc/lists/alienvault_reputation.ipset
Agregamos la dirección IP del extremo del atacante (Debian) a la base de datos de reputación de IP. La dirección IP de Debian en el ejemplo es (192.168.24.73).
sudo echo 192.168.24.73 >> /var/ossec/etc/lists/alienvault_reputation.ipset
Descargamos el siguiente script para convertir del formato “.ipset” (formato utilizado para crear conjuntos de direcciones IP que se pueden usar como tablas para comparación) al formato “.cdb” (formato de lista que utiliza wazuh enlistar las direcciones maliciosas para su posterior bloqueo).
sudo wget https://wazuh.com/resources/iplist-to-cdblist.py -O /tmp/iplist-to-cdblist.py
Convertimos el archivo “alienvault_reputation.ipset” a un formato “.cdb” usando el script descargado previamente:
sudo /var/ossec/framework/python/bin/python3 /tmp/iplist-to-cdblist.py /var/ossec/etc/lists/alienvault_reputation.ipset /var/ossec/etc/lists/blacklist-alienvault
Eliminamos “alienvault_reputation.ipset” y el script “iplist-to-cdblist.py”, para que no sean usados erronea o de forma maliciosa.
sudo rm -rf /var/ossec/etc/lists/alienvault_reputation.ipset
sudo rm -rf /tmp/iplist-to-cdblist.py
Asignamos los permisos y la propiedad correctos al archivo generado:
sudo chown wazuh:wazuh /var/ossec/etc/lists/blacklist-alienvault
La siguiente regla personalizada se utiliza para para activar una secuencia de comandos de respuesta activa de Wazuh cuando se detecte un evento en el cual se haya reconocido una dirección IP maliciosa realizando intercambio de información con puntos finales monitoreados por Wazuh manager, para esto ingresamos al archivo de reglas personalizadas de Wazuh.
sudo nano /var/ossec/etc/rules/local_rules.xml
En el archivo de conjunto de reglas personalizado del servidor Wazuh:
<group name="attack,">
<rule id="100100" level="11">
<if_group>web|attack|attacks</if_group>
<list field="srcip" lookup="address_match_key">etc/lists/blacklist-alienvault</list>
<description>IP address found in AlienVault reputation database.</description>
</rule>
</group>
Editamos el archivo de configuración del servidor Wazuh.sudo nano /var/ossec/etc/ossec.conf
Para que se pueda comparar con la lista de direcciones de alienvault agregamos la lista creada “etc/lists/blacklist-alienvault” a la sección “<ruleset>”.<ossec_config>
<ruleset>
<!-- Default ruleset -->
<decoder_dir>ruleset/decoders</decoder_dir>
<rule_dir>ruleset/rules</rule_dir>
<rule_exclude>0215-policy_rules.xml</rule_exclude>
<list>etc/lists/audit-keys</list>
<list>etc/lists/amazon/aws-eventnames</list>
<list>etc/lists/security-eventchannel</list>
<list>etc/lists/blacklist-alienvault</list>
<!-- User-defined ruleset -->
<decoder_dir>etc/decoders</decoder_dir>
<rule_dir>etc/rules</rule_dir>
</ruleset>
</ossec_config>
Agrega una respuesta activa al wazuh manager (con permisos de root):sudo nano /var/ossec/etc/ossec.conf
Se debe quitar el símbolo de comentario al apartado <active-response> y escribir de acuerdo al ID de la regla creada en este caso 100100. <active-response>
<command>firewall-drop</command>
<location>local</location>
<rules_id>100100</rules_id>
</active-response>
En la víctima terminal Ubuntu.
Se instala un servidor web con Apache para las pruebas, este tendrá un agente que constantemente está realizando el monitoreo de los registros de acceso del servidor Apache.
Configuramos el agente de Wazuh:
sudo nano /var/ossec/etc/ossec.conf
<localfile>
<log_format>syslog</log_format>
<location>/var/log/apache2/access.log</location>
</localfile>
Emulación del ataque.
Para la emulación de ataque se debe acceder al servidor web desde el extremo Kali utilizando la dirección IP correspondiente:
Wazuh manager identificara la dirección IP de conexión para ser analizada y al coincidir con la dirección IP de la base de datos de reputación enviara la alerta para activar la respuesta inmediata bloqueando la dirección IP con el número de ID de alerta 100100 que es el creado manualmente para el servidor.
Resultados.
Posteriormente Wazuh manager bloquea el intento de acceso y el servidor se hace inaccesible por parte del atacante.
PDC 2: MONITOREO DE INTEGRIDAD DE ARCHIVOS.
Wazuh tiene un módulo FIM (File Integrity Monitoring) el cual es un proceso de seguridad que se utiliza para monitorear la integridad de los archivos del sistema se revisan los cambios en el sistema de archivos para detectar la creación, modificación y eliminación de archivos.
Configuración.
Para esta prueba utilizaremos Debian, el módulo FIM de Wazuh supervisa un directorio (/root) para detectar la creación, los cambios y la eliminación de archivos.
Se debe editar el archivo de configuración agregando dentro del bloque <syscheck> directorios para ser monitoreados (se puede configurar cualquier ruta en específico).sudo nano /var/ossec/etc/ossec.conf
<directories check_all="yes" report_changes="yes" realtime="yes">/root</directories>
Reiniciamos para aplicar los cambios.sudo systemctl restart wazuh-agent
Emulación del ataque.
En el ámbito de la seguridad informática existen directorios que no deben ser modificados ya que contienen configuraciones para el funcionamiento correcto de los programas ó en su defecto la copia de archivos maliciosos que contienen malware, por lo cual la prueba consiste en crear un archivo de texto en el directorio monitoreado.
cd /root/
touch archivo.txt
Agregue contenido al archivo de texto y guárdelo.echo "contenido de archivo" >> archivo.txt
Elimine el archivo de texto del directorio supervisado.rm archivo.txt
Resultados.
Con la creación del archivo se genera una alerta de nivel 3 ya que el archivo esta vacío.
La modificación del archivo genera una alerta de nivel 8 al ser un directorio importante para ser monitorizado.
Por ultimo se genera la alerta de eliminación del archivo de nivel 7.
PDC 3: ATAQUE DE FUERZA BRUTA.
TERMINAL |
DESCRIPCIÓN |
Debian |
Terminal del atacante que realiza ataques de fuerza bruta. Con SSH instalado. |
Ubuntu |
Terminal víctima de ataques de fuerza bruta SSH. Es necesario tener un servidor SSH instalado y habilitado en este punto final. |
Configuración:
Realice los siguientes pasos para configurar el terminal de Debian. Esto permite realizar intentos de falla de autenticación en la víctima Ubuntu.
En Debian instalar Hydra para utilizar un ataque de fuerza bruta mediante el protocolo ssh.sudo apt update
sudo apt install -y hydra
Emulación del ataque
Crearemos un archivo de texto con 10 o más contraseñas aleatorias, esto simulara un diccionario de contraseñas de los cuales existen en la red que puede contener millones de contraseñas frecuentes para romper la seguridad mediante fuerza bruta.
sudo nano PASSWD_LIST.txt
123456
Password
Passwd
123
Root
Admin
Admin123
Root123
Server
Linux
Guardamos este archivo como nuestro diccionario limitado de contraseñas y configuramos el terminal victima con una de estas contraseñas inseguras.
Por último ejecutamos "Hydra" desde el terminal atacante para realizar ataques de fuerza bruta contra el extremo de la víctima.
La sintaxis del comando es la siguiente tomando en cuenta xubuntu como nombre de usuario, PASSWD_LIST.txt como el diccionario de contraseñas, 192.168.24.72 la direccion IP de la víctima y por ultimo el protocolo de acceso que será ssh.
sudo hydra -l xubuntu -P PASSWD_LIST.txt 192.168.24.72 ssh
Resultados.
Visualización de las alertas en Wazuh manager:
Se pueden visualizar los datos de alerta en el panel de control de Wazuh, se debe acceder al módulo Eventos de seguridad para consultar las alertas.
PDC 4: DETECCIÓN DE PROCESOS NO AUTORIZADOS.
En este caso de uso, utiliza la capacidad de monitoreo de comandos de Wazuh para detectar cuándo se está ejecutando Netcat en un punto final (Netcat es una utilidad de red informática que se utiliza para escanear y escuchar puertos).
En el terminal víctima modificamos el modulo de monitoreo desde el agente de Wazuh, de esta forma podremos detectar un proceso de Netcat en ejecución.
Configuración.
Agregamos la siguiente configuración al archivo de configuración del agente de Wazuh. Nos permite obtener periódicamente una lista de procesos en ejecución:
sudo nano /var/ossec/etc/ossec.conf
<ossec_config>
<localfile>
<log_format>full_command</log_format>
<alias>process list</alias>
<command>ps -e -o pid,uname,command</command>
<frequency>30</frequency>
</localfile>
</ossec_config>
Reiniciar el wazuh-agent para aplicar los cambios.sudo systemctl restart wazuh-agent
Posteriormente instalamos Netcat para realizar las pruebas.sudo apt install ncat nmap -y
Servidor de Wazuh.
Se configuran los siguientes pasos para crear una regla que se active cada vez que se inicie el programa Netcat.
Agregando las siguientes reglas al archivo local de reglas en el servidor:
sudo nano /var/ossec/etc/rules/local_rules.xml
<group name="ossec,">
<rule id="100050" level="0">
<if_sid>530</if_sid>
<match>^ossec: output: 'process list'</match>
<description>Lista de procesos en ejecución </description>
<group>process_monitor,</group>
</rule>
<rule id="100051" level="7" ignore="900">
<if_sid>100050</if_sid>
<match>nc -l</match>
<description>netcat esta escuchando las conexiones entrantes.</description>
<group>process_monitor,</group>
</rule>
</group>
Reiniciamos el servidor para aplicar cambios.sudo systemctl restart wazuh-manager