BookinglyTech News
Ciberseguridad

Regla personalizada de Wazuh no se activa por el nombre del archivo

En Wazuh 4.14.7, las reglas en /var/ossec/etc/rules se cargan según el orden alfabético del nombre de archivo, lo que puede impedir que una regla hija se registre.

2 min de lecturaDev.to0 vistas

En un contenedor de prueba con Wazuh 4.14.7, el autor creó una regla hija de la regla base sshd (ID 5715) y la colocó en cinco archivos con nombres diferentes bajo /var/ossec/etc/rules/. En todos los casos wazuh-analysisd -t devolvió código 0, pero la regla nunca se disparó y los eventos aparecían bajo la regla padre.

Los logs mostraron dos advertencias idénticas en cada intento:

WARNING: (7617): Signature ID '5715' was not found and will be ignored in the 'if_sid' option of rule '100080'.
WARNING: (7619): Empty 'if_sid' value. Rule '100080' will be ignored.

Esto ocurre porque los archivos en etc/rules se fusionan con los de ruleset/rules y se cargan en orden alfabético completo del nombre. Si el archivo que contiene la regla hija se ordena antes que el que contiene la regla padre (0095‑sshd_rules.xml), el ID del padre aún no existe y la regla hija se descarta. Cuando el nombre del archivo se sitúa después (por ejemplo 0095‑zzz.xml o local_rules.xml), la regla se carga correctamente.

La herramienta de comprobación (wazuh-analysisd -t) solo indica advertencias, no falla, por lo que un script de despliegue que solo verifica el código de salida puede pasar por alto el problema y arrancar el manager con una regla menos.

Solución

  1. Mueve la regla hija a un archivo cuyo nombre se ordene después del archivo del padre: usar local_rules.xml o prefijar con un número mayor (p.ej. 0096‑mi_regla.xml).
  2. Verifica que la advertencia 7619 desaparezca ejecutando nuevamente wazuh-analysisd -t y filtrando por los códigos de advertencia.
  3. Confirma con wazuh-logtest que el evento se asocie al ID de la regla hija.

Para localizar el archivo del padre puedes buscar el ID en el directorio de reglas:

grep -l 'id="5715"' /var/ossec/ruleset/rules/*.xml /var/ossec/etc/rules/*.xml

Si trabajas con un clúster, revisa los logs de cada nodo, ya que la carga de reglas se repite en cada uno.

El autor también ofrece un servicio de diagnóstico y corrección (USD 490 por regla) para casos donde la regla no se dispara y no se quiere investigar internamente.

Enlace al servicio de corrección