Monitorización orientada a host con OSSEC III

dom, 16 nov 2008 by Foron

En este último post de la serie vamos a ver, como siempre muy por encima, la funcionalidad "active response" que ofrece ossec. En definitiva, se trata de ser capaces de ejecutar un script cuando se activa un evento. Esto normalmente se usa para añadir reglas en firewalls, para añadir reglas tcp wrapper o para bloquear usuarios, pero en el fondo se puede hacer cualquier cosa que se pueda escribir en un programa. Por ejemplo, si una de las máquinas monitorizadas es un servidor de correo se podría añadir una IP que generase una alerta a una lista de acceso, o a una base de datos RBL. O también se podrían añadir reglas de modsecurity en un servidor web.

Para el ejemplo de este post, digamos que como administradores ya estamos usando psad para crear reglas en nuestro firewall. Digamos, además, que sólo queremos que sea psad el responsable de las reglas dinámicas en el cortafuegos.

Infraestructura ossec

Rootkits, accesos no permitidos, .... No parece necesario justificar la necesidad de tener el firewall monitorizado, ¿Verdad?

Nuestro objetivo es crear reglas para psad desde ossec. Primero definimos el comando en ossec.conf para poder usarlo más adelante en la configuración de la respuesta activa.

  <command>
    <name>psad</name>
    <executable>psad.sh</executable>
    <expect>user,srcip</expect>
  </command>

El script "psad.sh" (que guardaremos en $ossec_instalacion/active-response/bin con permisos de ejecución) tiene el siguiente contenido:

  #!/bin/bash
  # Anyade una regla de psad usando la IP origen. Tambien pasamos el usuario, pero no lo vamos a usar.
  # Entrada: user, srcip
  # Salida: Nada. Ejecuta una regla psad
  ACCION=$1
  USUARIO=$2
  IP=$3

  psad -fw-block-ip $IP

Ahora sólo queda configurar la respuesta activa en ossec.conf.

  <active-response>
    <disabled>no</disabled>
    <command>psad</command>
    <location>defined-agent</location>
    <agent_id>001</agent_id>
    <level>10</level>
    <rules_group>authentication_failures</rules_group>
  </active-response>

Estamos diciendo que vamos a ejecutar en el agente 001 (el firewall) el comando psad cuando ocurra un evento de nivel 10 y del grupo authentication_failures (por ejemplo la regla 5720).

Veamos si funciona bien intentando loguearnos varias veces desde una máquina (después de haber recargado la configuración de ossec). Este es el resultado

  Nov  9 00:50:03 firewall psad: added iptables auto-block against 192.168.10.133 for 3600 seconds

  Chain PSAD_BLOCK (1 references)
  target     prot opt source               destination
  DROP       all  --  192.168.10.133       0.0.0.0/0

Como siempre, y para aquellos que quieran profundizar más, recomiendo el libro http://www.elsevierdirect.com/product.jsp?isbn=9781597492409.


Comments