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.

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
- 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).
- Verifica que la advertencia 7619 desaparezca ejecutando nuevamente
wazuh-analysisd -ty filtrando por los códigos de advertencia. - Confirma con
wazuh-logtestque 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.
