Saltar al contenido principal

Reglas personalizadas

Las reglas personalizadas te dejan decidir sobre el tráfico con tu conocimiento de la aplicación, sin depender de las reglas genéricas del conjunto OWASP. No hay script, expresión ni expresión regular: cada regla es una condición elegida en una lista y una acción.

Reglas personalizadas​

Una regla tiene tres partes:

ParteQué define
CondiciónQué debe tener la solicitud para coincidir
AcciónQué hace el WAF cuando la condición coincide
PrioridadEl orden de evaluación entre tus reglas

Una misma regla puede combinar más de una condición. La regla solo coincide cuando todas las condiciones valen al mismo tiempo.

Condiciones​

CondiciónCómo funcionaEjemplo
IPCompara la dirección del cliente con una dirección203.0.113.10
CIDRCompara la dirección del cliente con un rango, IPv4 o IPv6203.0.113.0/24
COUNTRYCompara el país del cliente; acepta varios paísesBR, US
URL_PATHCompara la ruta, exacta o por prefijo/admin como prefijo
HTTP_METHODCompara el método de la solicitudPOST
HTTP_HEADERCompara una cabecera, por igualdad, contenido o prefijoX-Api-Version contiene 2.
USER_AGENTCompara el agente del cliente, por igualdad, contenido o prefijocurl como contenido

El país viene de la base DB-IP Lite, actualizada mensualmente. La atribución requerida es: IP geolocation by DB-IP, licencia CC BY 4.0. La geolocalización es una aproximación — no uses el país como único control de acceso para datos sensibles.

Algunas cabeceras no pueden usarse como condición, porque el WAF las necesita para enrutar y entregar la solicitud: Authorization, Cookie, Host y la familia X-Forwarded-*. Para tratar datos de autorización o sesión, usa el conjunto OWASP y una excepción puntual, no una regla personalizada.

Acciones​

AcciónCódigo devueltoQué pasa
BLOCK403La solicitud se rechaza y se registra como evento
ALLOW—La evaluación de las reglas personalizadas siguientes se detiene para esa solicitud
MONITOR—La solicitud pasa y el caso se registra como evento
RATE_LIMIT429La solicitud entra en el límite de tasa definido en la regla

ALLOW es el punto que más confunde: detiene solo las reglas personalizadas siguientes. La inspección del conjunto OWASP y la limitación de tasa siguen valiendo para esa solicitud.

RATE_LIMIT en la regla sirve para limitar una ruta específica, además del límite general del dominio. El exceso recibe 429 y aparece en los eventos. Ver Limitación de tasa.

Orden de evaluación​

controles de la plataforma → limitación de tasa → reglas personalizadas (por prioridad) → conjunto OWASP
  1. Controles de la plataforma — la línea base de NNumbers, igual para todos.
  2. Limitación de tasa — el límite del dominio y los límites por ruta.
  3. Reglas personalizadas — en orden de prioridad: el número menor se evalúa antes.
  4. Conjunto OWASP — la evaluación de anomalía que decide el bloqueo en prevención.

Si dos reglas tuyas coinciden con la misma solicitud, la de menor número decide. Por eso, deja las reglas de permiso con número bajo cuando necesitan vencer a las de bloqueo.

Ejemplos​

ObjetivoCondiciónAcciónPrioridad
Bloquear el acceso al panel administrativo fuera de BrasilURL_PATH prefijo /admin y COUNTRY distinto de BRBLOCK10
Permitir un socio que usa una integración antigua en /api/legacyIP igual a la dirección del socio y URL_PATH prefijo /api/legacyALLOW20
Observar intentos de PUT en la API antes de bloquearHTTP_METHOD PUT y URL_PATH prefijo /apiMONITOR30
Limitar la descarga masivaURL_PATH prefijo /exportRATE_LIMIT40
Bloquear agentes de barrido conocidosUSER_AGENT contiene masscanBLOCK50
Una acción equivocada no se corrige en el conjunto OWASP

Si un ALLOW está dejando pasar algo que debería bloquearse, el ajuste es en la prioridad o en la condición de la regla — no en el nivel de paranoia.

Próximos pasos​