En anteriores entradas vimos como Bloquear ataques web con Wazuh pero estos bloqueos se basaba en servidores GNU/Linux
En este post, veremos cómo bloquear un ataques web en FreeBSD usando la funcionalidad de active response en Wazuh.
Active Response de wazuh ejecuta comandos en los agentes en respuesta de ciertas alertas. En este ejemplo, veremos como bloquear un ataque de fuerza bruta.
Toda esta configuración se realizara en /var/ossec/etc/ossec.conf dentro de Wazuh Manager. En primer lugar tenemos que revisar en dicho archivo si tenemos los siguientes comandos activados
<command>
<name>disable-account</name>
<executable>disable-account.sh</executable>
<expect>user</expect>
<timeout_allowed>yes</timeout_allowed>
</command>
<command>
<name>restart-ossec</name>
<executable>restart-ossec.sh</executable>
<expect></expect>
</command>
<command>
<name>firewall-drop</name>
<executable>firewall-drop.sh</executable>
<expect>srcip</expect>
<timeout_allowed>yes</timeout_allowed>
</command>
<command>
<name>firewall-ipfw</name>
<executable>ipfw.sh</executable>
<expect>srcip</expect>
<timeout_allowed>yes</timeout_allowed>
</command>
<command>
<name>host-deny</name>
<executable>host-deny.sh</executable>
<expect>srcip</expect>
<timeout_allowed>yes</timeout_allowed>
</command>
<command>
<name>route-null</name>
<executable>route-null.sh</executable>
<expect>srcip</expect>
<timeout_allowed>yes</timeout_allowed>
</command>
<command>
<name>win_route-null</name>
<executable>route-null.cmd</executable>
<expect>srcip</expect>
<timeout_allowed>yes</timeout_allowed>
</command>
<command>
<name>win_route-null-2012</name>
<executable>route-null-2012.cmd</executable>
<expect>srcip</expect>
<timeout_allowed>yes</timeout_allowed>
</command>
<command>
<name>netsh</name>
<executable>netsh.cmd</executable>
<expect>srcip</expect>
<timeout_allowed>yes</timeout_allowed>
</command>
Para mas información sobre cada uno de los script podemos revisarlo aqui
Configurar Active Response
En este caso, utilizaremos firewall-ipfw para esta configuración, dado que por defecto FreeBSD ipfw pero podríamos emplear otro como: pf.sh
Para mas información sobre cada uno de los script podéis visitar la pagina oficia de wazuh
A la hora de configurar Active Reponse tenemos que tener en cuenta lo siguiente:
command
: El comando definido previamente (firewall-ipfw).location
: Donde se debe ejecutar el comando. Las opciones para configurar son:- Local: Esto ejecuta el comando en el agente que generó el evento.
- Server: Esto ejecuta el comando en el administrador de Wazuh.
- defined-agent: Se ejecuta en un agente especifico (agent_id)
- all: Se ejecuta el comando en el administrador de Wazuh y en todos los agentes.
rules_id
: El comando se ejecuta si la X regla está activatimeout
: Bloquee la IP durante 1800 segundos en el firewall (iptables, ipfilter, etc.).
Teniendo en cuenta todo esto, realizamos la siguiente configuración
<active-response>
<command>firewall-ipfw</command>
<location>defined-agent</location>
<agent_id>008</agent_id>
<timeout>1800</timeout>
<rules_id>331166, 31167, 913121, 913122, 81628, 31152, 31153, 31154, 31510, 31103, 31104, 31105, 31106, 31110, 31109, 31164, 31165, 31411, 31501, 31502, 31503, 31504, 31505, 31506. 31507, 31508, 31512, 31513, 31514, 31515, 87303, 31412</rules_id>
</active-response>
Reiniciamos el servicio de wazuh-manager
systemctl restart wazuh-manager
Podemos realizar una prueba de concepto realizando cualquier tipo de ataque. Una vez realizada la prueba comprobamos que funciona correctamente
También podemos ver su correcto funcionamiento en Kibana:
:wq!