Introducción
Las reglas personalizadas en Wazuh permiten detectar patrones específicos en tus logs y generar alertas cuando se cumplen ciertas condiciones. En este artículo vemos ejemplos prácticos con logs de NAS: detectar accesos a carpetas, usuarios específicos y acciones como Delete o Write.
Video: Reglas Personalizadas
15 minutos - Ejemplos prácticos con NAS
Ver en el Curso WazuhAccede al video completo con el curso de Wazuh
Estructura básica de una regla
Las reglas en Wazuh se definen en ficheros XML dentro de /var/ossec/etc/rules/. La estructura básica es:
<rule id="100071" level="10">
<if_sid>100070</if_sid>
<field name="campo">valor</field>
<description>Descripción de la alerta</description>
</rule> Componentes:
id: Identificador único de la regla (100000+ para personalizadas)level: Severidad de la alerta (0-15)if_sid: Regla padre de la que hereda (el decoder)field: Campo extraído por el decoder a evaluardescription: Texto de la alerta que aparece en el dashboard
Ejemplo 1: Detectar acceso a carpeta específica
Log de entrada:
NAS: Users: marialopez, Source IP: 192.168.1.100, Computer name: MariaPC, Connection type: SMB, Accessed resources: Dpto_direccion/Certificados/CertificadoDigital.pfc, Action: Write Regla:
<rule id="100071" level="10">
<if_sid>100070</if_sid>
<field name="resource">Dpto_direccion</field>
<description>Acceso a carpeta Direccion en NAS</description>
</rule> Cómo funciona:
- Hereda de la regla 100070 (decoder genérico de NAS)
- Filtra por el campo
resourceque contenga "Dpto_direccion" - Genera alerta nivel 10 cuando cualquier usuario accede a esa carpeta
Ejemplo 2: Usuario + Acción específica
Log de entrada:
NAS: Users: Juan, Source IP: 192.168.1.100, Computer name: MariaPC, Connection type: SMB, Accessed resources: sdsds/Certificados/CertificadoDigital.pfc, Action: Delete Regla:
<rule id="100072" level="10">
<if_sid>100070</if_sid>
<field name="srcusernas">Juan</field>
<field name="actionNas">Delete</field>
<description>El usuario Juan ha eliminado un fichero</description>
</rule> Cómo funciona:
- Usa dos campos para mayor precisión
- Solo dispara si el usuario es "Juan" Y la acción es "Delete"
- Útil para auditar acciones de usuarios específicos
Ejemplo 3: IP + Acción con variables dinámicas
Log de entrada:
NAS: Users: marialopez, Source IP: 192.168.1.155, Computer name: MariaPC, Connection type: SMB, Accessed resources: sdsds/Certificados/CertificadoDigital.pfc, Action: Write Regla:
<rule id="100073" level="10">
<if_sid>100070</if_sid>
<field name="srcipNas">192.168.1.155</field>
<field name="actionNas">Write</field>
<description>El equipo con la IP $(srcipNas) ha modificado el fichero $(resource)</description>
</rule> Cómo funciona:
- Filtra por IP origen específica + acción Write
- Usa variables dinámicas
$(campo)en la descripción - La alerta incluirá los valores reales del log: IP y recurso afectado
Resumen de sintaxis
| Elemento | Uso |
if_sid | Hereda de regla padre (decoder) |
field name="x" | Filtra por campo extraído por decoder |
$(campo) | Variable dinámica en description |
level | Severidad: 0-3 info, 4-7 medio, 8-15 crítico |
Dónde añadir las reglas
Las reglas personalizadas se añaden en /var/ossec/etc/rules/local_rules.xml. Después de modificar el fichero, reinicia el manager:
systemctl restart wazuh-manager Próximos pasos
En el curso de Wazuh vemos cómo crear decoders personalizados para extraer los campos que necesitas. Accede al curso completo.