Bloquear ataques web con Wazuh

En anteriores entradas vimos como bloquear ataques de fuerza bruta con wazuh 

En este post, veremos cómo bloquear un ataques web  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>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>

  <command>
    <name>netsh-win-2016</name>
    <executable>netsh-win-2016.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-drop para esta configuración, pero perfectamente podríamos utilizar cualquier otro que se adapte a nuestro entorno.

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-drop).
  • 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á activa
  • timeout: Bloquee la IP durante 1800 segundos en el firewall (iptables, ipfilter, etc.).

Teniendo en cuenta todo esto, realizamos la siguiente configuración

     <command>firewall-drop</command>
     <location>defined-agent</location>
     <agent_id>147</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, 31516, 87303, 31412</rules_id>
  </active-response>

De la misma forma, creamos una regla para detectar Scanners en: /var/ossec/etc/rules/local_rules.xml

 <rule id="913121" level="15">
        <if_sid>31100</if_sid>
       <match>OpenVAS|Nikto|sqlmap|Nessus</match>
       <description>Detecting port scans</description>
      <group>web, accesslog, attack, modsecurity,</group>
</rule>

Reiniciamos el servicio de wazuh-manager

systemctl restart wazuh-manager

Prueba de concepto

utilizamos sqlmap para realizar una prueba de concepto

Comprobamos que en el agente 147 (que es donde hemos configurado) el log /var/osssec/logs/active-response.log

:wq!

3 comentarios en “Bloquear ataques web con Wazuh”

  1. Hola, muy interesante tu articulo, estoy realizando algunas pruebas pero con la des habilitación del firewall de windows pero no se ejecuta la respuesta activa, crees que se deba a alguna mala configuración?

Deja una respuesta

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