Puedes ajustar las reglas excluyendo los campos de solicitud de la evaluación para reducir los falsos positivos.
Cuando configuras exclusiones para una regla, puedes excluir los siguientes campos de la inspección:
- Encabezados de la solicitud
- Cookies de solicitud
- Parámetros de consulta de solicitud
- URIs de solicitud
- Cuerpos de la solicitud
Excluye los campos de solicitud de la evaluación de reglas
Para configurar una exclusión de campo de solicitud para una regla, asocia la configuración con una regla de política de seguridad.
Estas reglas no usan IDs de regla. En su lugar, puedes configurar la
marca --target-rule-set con uno de los siguientes valores:
cel(--target-rule-set "cel"): Aplica exclusiones solo a las reglas de CEL personalizadas en esa regla de política de seguridad.*(--target-rule-set "*", exclusión global): Aplica exclusiones a todas las reglas adjuntas a esa política de seguridad, incluidas las reglas de CEL personalizadas y las que usanevaluatePreconfiguredWaf().
En las políticas de seguridad de backend (tanto globales como regionales), puedes configurar hasta
100 de cada uno de los siguientes elementos por destino (cel o *):
- Encabezados de la solicitud
- Cookies de solicitud
- Parámetros de consulta de solicitud
- URI de solicitud
- Cuerpos de la solicitud
Los operadores de campo disponibles son los siguientes:
EQUALS: Coincide si el valor del campo es igual al valor especificado.STARTS_WITH: Coincide si el valor del campo comienza con el valor especificado.ENDS_WITH: Coincide si el valor del campo termina con el valor especificado.CONTAINS: Coincide si el valor del campo contiene el valor especificado.EQUALS_ANY: Coincide si el valor del campo es cualquier valor.
Encabezados de la solicitud
Puedes excluir encabezados de la solicitud específicos de la inspección durante la evaluación de reglas con sus nombres de encabezado en el campo de exclusión.
Cuando un encabezado de la solicitud coincide con una exclusión, se quita toda la entrada del encabezado (tanto su
nombre como su valor) del mapa request.headers antes de la evaluación de la
regla.
Ejemplo
En el siguiente ejemplo, se actualiza la regla en la política de seguridad
POLICY_NAME en PRIORITY para excluir de la evaluación de reglas (cel) los encabezados de la solicitud que comienzan con
abc o terminan con xyz:
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-header-to-exclude "op=STARTS_WITH,val=abc" \
--request-header-to-exclude "op=ENDS_WITH,val=xyz"
Reemplaza lo siguiente:
PRIORITY: Es la prioridad de la regla.POLICY_NAME: el nombre de la política de seguridad
Cookies de solicitud
Puedes excluir cookies de solicitud específicas de la inspección durante la evaluación de reglas usando sus nombres de cookie en el campo de exclusión.
Cuando una cookie de solicitud coincide con una exclusión, toda la entrada de la cookie (tanto su nombre como su valor) se excluye de los atributos de la solicitud antes de la evaluación de la regla.
Ejemplo
En el siguiente ejemplo, se actualiza la regla en la política de seguridad
POLICY_NAME en PRIORITY para excluir las cookies de solicitud
que comienzan con session_ de la evaluación de reglas (cel):
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-cookie-to-exclude "op=STARTS_WITH,val=session_"
Reemplaza lo siguiente:
PRIORITY: Es la prioridad de la regla.POLICY_NAME: el nombre de la política de seguridad
Parámetros de consulta de solicitud
Puedes excluir parámetros de solicitud específicos de la inspección durante la evaluación de la regla
con sus nombres de parámetro en el campo de exclusión. La marca
--request-query-param-to-exclude se aplica a los parámetros de consulta de URL y
a los parámetros analizados del cuerpo de la solicitud (JSON, datos de formulario
y GraphQL).
Cuando un parámetro coincide con una exclusión, se quita toda la entrada del parámetro (tanto su clave
como su valor) de request.params antes de la evaluación de la regla, por lo que
has(request.params.param_name) se evalúa como false.
Para los cuerpos de solicitud analizados, puedes usar la notación de puntos para segmentar campos anidados y elementos de array:
- Campo de nivel superior:
val=user - Campo anidado:
val=user.name - Elemento de array:
val=items.0.name
Ejemplo
En el siguiente ejemplo, se actualiza la regla en la política de seguridad
POLICY_NAME en PRIORITY para excluir el
parámetro de consulta de URL bad-param, el campo JSON anidado user.name y el
campo de elemento de array JSON items.0.name de la evaluación de reglas (cel):
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-query-param-to-exclude "op=EQUALS,val=bad-param" \
--request-query-param-to-exclude "op=EQUALS,val=user.name" \
--request-query-param-to-exclude "op=EQUALS,val=items.0.name"
Reemplaza lo siguiente:
PRIORITY: Es la prioridad de la regla.POLICY_NAME: el nombre de la política de seguridad
URI de solicitud
Puedes excluir los URIs de la línea de solicitud (sin incluir los datos de la cadena de consulta) de la inspección durante la evaluación de la regla.
Cuando se excluye un URI, todo el campo de URI se excluye de la inspección.
Ejemplo
En el siguiente ejemplo, se actualiza la regla en la política de seguridad
POLICY_NAME en PRIORITY para excluir los URIs de solicitud
que contienen /bad-path de la evaluación de reglas (cel):
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-uri-to-exclude "op=CONTAINS,val=/bad-path"
Reemplaza lo siguiente:
PRIORITY: Es la prioridad de la regla.POLICY_NAME: el nombre de la política de seguridad
Cuerpos de la solicitud
Puedes excluir valores específicos del cuerpo de la solicitud de la inspección durante la evaluación de la regla.
Cuando el cuerpo de una solicitud coincide con una exclusión, el atributo request.body se
excluye de la evaluación de la regla.
Ejemplo
En el siguiente ejemplo, se actualiza la regla en la política de seguridad
POLICY_NAME en PRIORITY para excluir los cuerpos de solicitud
que contienen bad-body-value de la evaluación de reglas (cel):
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-body-to-exclude "op=CONTAINS,val=bad-body-value"
Reemplaza lo siguiente:
PRIORITY: Es la prioridad de la regla.POLICY_NAME: el nombre de la política de seguridad
Valores de campo
Debes especificar un valor de campo si usas un operador de campo que no sea
EQUALS_ANY.
En el caso de los encabezados de la solicitud, las cookies y los parámetros de consulta de la solicitud, el grupo de caracteres permitido para los valores de campo incluye los siguientes caracteres:
!,#,$,%,&,*,+,-,.,^,_,`,|,~- Caracteres alfabéticos de la
Aa laZ(tanto en mayúsculas como en minúsculas) - Caracteres de dígitos del
0al9
En el caso de los cuerpos de las solicitudes, el grupo de caracteres permitido para los valores de los campos incluye todos
los caracteres ASCII imprimibles, excepto ', \`,(, and)`:
- Espacio (
) y caracteres especiales:!,",#,$,%,&,*,+,,,-,.,/,:,;,<,=,>,?,@,[,],^,_,`,{,|,},~ - Caracteres alfabéticos de la
Aa laZ(tanto en mayúsculas como en minúsculas) - Caracteres de dígitos del
0al9
Cuando aplicas exclusiones para estos campos de solicitud, el valor del campo configurado
(val=) se compara sin distinguir mayúsculas de minúsculas (después de la transformación) con lo
siguiente para determinar qué entidades se deben excluir de la inspección:
- Encabezados de la solicitud: Coincide con el nombre del encabezado (clave) para excluir todo el encabezado (nombre y valor).
- Cookies de solicitud: Coincide con el nombre de la cookie para excluir toda la cookie (tanto el nombre como el valor).
- Parámetros de consulta de la solicitud: Coincide con el nombre del parámetro o la ruta de acceso JSON anidada (clave) para excluir todo el parámetro (tanto la clave como el valor).
- Cuerpos de la solicitud: Coincide con la cadena de contenido del cuerpo de la solicitud para
excluir todo el atributo
request.body.
No necesitas realizar una codificación adicional si deseas excluir un carácter específico que no esté en el grupo de caracteres permitido.
Para los URI de solicitud, el valor del campo se debe proporcionar en un formato de URI con las siguientes restricciones de componentes:
| Componente | Restricción |
|---|---|
| Esquema | Permitida, pero restringida a http o https |
| Host | Se permite (puede ser una dirección IP) |
| Puerto | Permitido |
| Ruta | Permitido |
| Consulta | No permitido |
| Fragment | No permitido |
Cuando aplicas exclusiones para los URIs de solicitud, los valores de campo configurados se comparan sin distinguir mayúsculas de minúsculas (después de la transformación) con los URIs de la línea de solicitud, sin incluir la cadena de consulta. Los URI de la línea de solicitud pueden ser relativos o absolutos. Ten esto en cuenta cuando configures exclusiones para los URI de solicitud.
Quita exclusiones
Para quitar las exclusiones de campos de solicitud de una regla de política de seguridad, usa el
comando remove-preconfig-waf-exclusion. Puedes quitar exclusiones de campos específicas
indicando las marcas de exclusión de campos correspondientes o puedes omitir las
marcas de campos para quitar todas las exclusiones de ese conjunto de reglas de destino (cel o *).
Ejemplos
En el siguiente ejemplo, se actualiza la regla en la política de seguridad
POLICY_NAME en PRIORITY para quitar la
exclusión de los encabezados de la solicitud que comienzan con abc de la evaluación de reglas
(cel):
gcloud compute security-policies rules remove-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-header-to-exclude "op=STARTS_WITH,val=abc"
En el siguiente ejemplo, se omiten las marcas de campo para quitar todas las exclusiones de campos de solicitud
configuradas para la evaluación de reglas (cel) en la regla en
PRIORITY:
gcloud compute security-policies rules remove-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel"
Reemplaza lo siguiente:
PRIORITY: Es la prioridad de la regla.POLICY_NAME: el nombre de la política de seguridad