Skip to content
Esta página fue generada y traducida con asistencia de IA. Si encuentra alguna imprecisión, no dude en ayudar a mejorarla. Editar en GitHub

Motor de Reglas

PRX-WAF utiliza un motor de reglas declarativo basado en YAML para detectar y bloquear ataques web. Las reglas describen qué inspeccionar, cómo coincidir y qué acción tomar. El motor evalúa cada solicitud entrante contra todas las reglas habilitadas a través de 16 fases de detección secuenciales.

Cómo Funcionan las Reglas

Cada regla consta de cuatro componentes clave:

  1. Campo -- Qué parte de la solicitud inspeccionar (ruta, consulta, cuerpo, encabezados, etc.)
  2. Operador -- Cómo coincidir el valor (regex, contains, detect_sqli, etc.)
  3. Valor -- El patrón o umbral con el que coincidir
  4. Acción -- Qué hacer cuando la regla coincide (block, log, allow)
yaml
- id: "CUSTOM-001"
  name: "Block admin path from external IPs"
  category: "access-control"
  severity: "high"
  field: "path"
  operator: "regex"
  value: "(?i)^/admin"
  action: "block"

Fuentes de Reglas

PRX-WAF incluye 398 reglas en cuatro categorías:

FuenteArchivosReglasDescripción
OWASP CRS21310OWASP ModSecurity Core Rule Set v4 (convertido a YAML)
ModSecurity446Reglas comunitarias para reputación de IPs, DoS, filtración de datos
Parches CVE739Parches virtuales para Log4Shell, Spring4Shell, MOVEit, etc.
Personalizado13Plantillas de ejemplo para reglas específicas de la aplicación

Además, PRX-WAF incluye más de 10 verificadores de detección integrados compilados en el binario:

  • Inyección SQL (libinjection + regex)
  • Cross-site scripting (libinjection + regex)
  • Ejecución remota de código / inyección de comandos
  • Inclusión de archivos local/remota
  • Server-side request forgery (SSRF)
  • Path/directory traversal
  • Detección de escáneres (Nmap, Nikto, etc.)
  • Detección de bots (bots maliciosos, rastreadores de IA, navegadores sin cabeza)
  • Detección de violaciones de protocolo
  • Detección de palabras sensibles (coincidencia multi-patrón Aho-Corasick)

Formatos de Reglas

PRX-WAF admite tres formatos de archivos de reglas:

FormatoExtensiónDescripción
YAML.yaml, .ymlFormato nativo de PRX-WAF (recomendado)
ModSecurity.confDirectivas SecRule (subconjunto básico: ARGS, REQUEST_HEADERS, REQUEST_URI, REQUEST_BODY)
JSON.jsonArray JSON de objetos de reglas

Consulta Sintaxis YAML para la referencia completa del esquema.

Niveles de Paranoia

Cada regla declara un nivel de paranoia (1-4) que controla cuán agresivamente coincide. Los niveles más altos capturan más ataques pero aumentan el riesgo de falsos positivos.

NivelNombreDescripciónRiesgo de Falsos Positivos
1PredeterminadoReglas de alta confianza, seguras para producciónMuy bajo
2RecomendadoMayor cobertura, riesgo mínimo de FPBajo
3AgresivoHeurísticas extensas, requiere ajusteModerado
4MáximoTodo, incluyendo patrones especulativosAlto

TIP

Comienza con el nivel de paranoia 1 en producción. Monitorea los registros, ajusta las exclusiones y luego habilita gradualmente niveles más altos.

Recarga en Caliente

PRX-WAF observa el directorio rules/ para cambios en archivos y recarga automáticamente las reglas cuando se crea, modifica o elimina un archivo. Los cambios surten efecto dentro de la ventana de debounce configurada (predeterminado: 500ms).

También puedes activar una recarga manual:

bash
# Via CLI
prx-waf rules reload

# Via SIGHUP (Unix only)
kill -HUP $(pgrep prx-waf)

Las recargas de reglas son atómicas -- el conjunto de reglas anterior continúa sirviendo tráfico hasta que el nuevo conjunto está completamente compilado y listo.

Estructura de Directorios

rules/
├── owasp-crs/          # OWASP CRS v4 (21 files, 310 rules)
│   ├── sqli.yaml       # SQL injection (CRS 942xxx)
│   ├── xss.yaml        # Cross-site scripting (CRS 941xxx)
│   ├── rce.yaml        # Remote code execution (CRS 932xxx)
│   └── ...
├── modsecurity/        # ModSecurity community rules
├── cve-patches/        # CVE virtual patches (Log4Shell, Spring4Shell, etc.)
├── custom/             # Your application-specific rules
└── tools/              # Rule validation and sync utilities

Próximos Pasos

Released under the Apache-2.0 License.