Sigue estas instrucciones para solucionar problemas con las políticas de seguridad de Google Cloud Armor.
Incidencias generales
Depurar políticas de seguridad
Si necesitas más información sobre qué evento concreto activa las reglas preconfiguradas, consulta Usar el registro de solicitudes y, a continuación, habilita el registro detallado. Cloud Logging registra un mayor nivel de detalle en tus registros, que puedes usar para analizar y depurar tus políticas y reglas.
Se permite el tráfico a pesar de que haya una regla de denegación configurada en la política de seguridad de Cloud Armor
Para solucionar este problema, sigue estos pasos:
Asegúrate de que la política de seguridad de Cloud Armor esté asociada a un servicio de backend de destino. Por ejemplo, el siguiente comando describe todos los datos asociados al servicio backend
BACKEND
. Los resultados devueltos deben incluir el nombre de la política de seguridad de Cloud Armor asociada a este servicio de backend.gcloud compute backend-services describe BACKEND
Revisa los registros HTTP(S) para determinar qué política y regla se han aplicado a tu tráfico, así como la acción asociada. Para ver los registros, usa Cloud Logging.
A continuación, se muestra un registro de ejemplo de una solicitud permitida con los campos de interés destacados. Comprueba los siguientes campos y asegúrate de que coincidan con la regla que has configurado para denegar el tráfico:
configuredAction
debe coincidir con la acción configurada en la regla.name
debe coincidir con el nombre de la política de seguridad de Cloud Armor asociada a este servicio de backend.outcome
debe coincidir conconfiguredAction
.priority
debe coincidir con el número de prioridad de la regla.
httpRequest: remoteIp: 104.133.0.95 requestMethod: GET requestSize: '801' requestUrl: http://74.125.67.38/ responseSize: '246' serverIp: 10.132.0.4 status: 200 userAgent: curl/7.35.0 insertId: ajvis5ev4i60 internalId: projectNumber: '895280006100' jsonPayload: '@type': type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry enforcedSecurityPolicy: configuredAction: ACCEPT name: mydev-policy-log-test1 outcome: ACCEPT priority: 2147483647 statusDetails: response_sent_by_backend logName: projects/mydev-staging/logs/requests resource: labels: backend_service_name: BACKEND_SERVICE_NAME forwarding_rule_name: FORWARDING_RULE_NAME project_id: PROJECT_ID target_proxy_name: TARGET_HTTP_PROXY_NAME url_map_name: URL_MAP_NAME zone: global type: http_load_balancer severity: INFO timestamp: '2017-04-18T18:57:05.845960288Z'
Revisa la jerarquía de las reglas para asegurarte de que se aplica la regla correcta. Es posible que una regla de mayor prioridad con una acción de permitir coincida con tu tráfico. Usa el comando
describe
en lasecurity-policies
de la CLI de Google Cloud para ver el contenido de la política de seguridad de Cloud Armor.Por ejemplo, en el siguiente ejemplo se muestra cómo una regla de permiso de mayor prioridad (prioridad 100) coincide con el tráfico procedente de la dirección IP 1.2.3.4, lo que impide que se active la regla de denegación de menor prioridad (prioridad 200) y que bloquee el tráfico.
gcloud compute security-policies describe POLICY_NAME
Resultado:
creationTimestamp: '2017-04-18T14:47:58.045-07:00 description: '' fingerprint: Yu5spBjdoC0= id: '2560355463394441057' kind: compute#securityPolicy name: POLICY_NAME rules: -action: allow description: allow high priority rule kind: compute#securityPolicyRule match: srcIpRanges: -'1.2.3.4/32' preview: false priority: 100 -action: deny description: deny lower priority rule kind: compute#securityPolicyRule match: srcIpRanges: -'1.2.3.0/24 preview: false priority: 200 -action: deny description: default rule kind: compute#securityPolicyRule match: srcIpRanges: -'*' preview: false priority: 2147483647 selfLink: http://www.googleapis.com/compute/v1/projects/bigclustertestdev0-devconsole/global/securityPolicies/sp
Una regla preconfigurada devuelve falsos positivos
La detección de XSS y SQLi se basa en la coincidencia de firmas estáticas en los encabezados de las solicitudes HTTP y otros parámetros de la capa 7. Estos patrones de expresiones regulares son propensos a los falsos positivos. Puede usar la regla preconfigurada para la detección de XSS y SQLi en el modo de vista previa y, a continuación, consultar el registro para ver si hay falsos positivos.
Si detecta un falso positivo, puede comparar el contenido del tráfico con las reglas de OWASP CRS.
Si la regla no es válida o no es pertinente, inhabilítala con la expresión evaluatePreconfiguredWaf
y especifica el ID de la regla en el argumento exclude ID list
.
Después de revisar los registros y eliminar todos los falsos positivos, inhabilita el modo de vista previa.
Para añadir una regla preconfigurada en el modo de vista previa, sigue estos pasos:
Crea una política de seguridad con el conjunto de expresiones preconfigurado en el modo de vista previa:
gcloud compute security-policies rules create 1000 --security-policy POLICY_NAME --expression "evaluatePreconfiguredWaf('xss-stable')" --action deny-403 --preview
Consulta los registros HTTP(S) para ver los campos de solicitud HTTP, como
url
ycookie
. Por ejemplo,requestUrl
se compara positivamente con el ID de regla 941180 de OWASP CRS:httpRequest: remoteIp: 104.133.0.95 requestMethod: GET requestSize: '801' requestUrl: http://74.125.67.38/foo?document.cookie=1010" responseSize: '246' serverIp: 10.132.0.4 status: 200 userAgent: curl/7.35.0 insertId: ajvis5ev4i60 internalId: projectNumber: '895280006100' jsonPayload: '@type': type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry enforcedSecurityPolicy: configuredAction: ACCEPT name: POLICY_NAME outcome: ACCEPT priority: 2147483647 preconfiguredExprIds: [ 'owasp-crs-v030001-id941180-xss' ] statusDetails: response_sent_by_backend logName: projects/mydev-staging/logs/requests resource: labels: backend_service_name: BACKEND_SERVICE forwarding_rule_name: mydev-forwarding-rule project_id: mydev-staging target_proxy_name: mydev-target-http-proxy url_map_name: mydev-url-map zone: global type: http_load_balancer severity: INFO timestamp: '2017-04-18T18:57:05.845960288Z'
Excluye el ID de regla 941180 de OWASP CRS actualizando la regla en la política de seguridad de Cloud Armor:
gcloud compute security-policies rules update 1000 \ --security-policy POLICY_NAME \ --expression "evaluatePreconfiguredWaf('xss-stable', ['owasp-crs-v030001-id941180-xss'])" \ --action deny-403 \ --preview
Vuelve a revisar los registros y, a continuación, inhabilita el modo de vista previa para implementar la regla.
Los clientes con firmas denegadas no se bloquean ni se deniegan
Si usas Cloud Armor con Cloud CDN, solo se aplican políticas de seguridad en el caso de las solicitudes de contenido dinámico, de datos que no están en caché o de otras solicitudes dirigidas al servidor CDN de origen. Los resultados en caché se sirven, incluso aunque la política de seguridad de Cloud Armor de bajada deba evitar que la solicitud llegue al servidor CDN de origen.
Problemas con las listas de direcciones IP con nombre
En esta sección se proporciona información para resolver problemas con listas de direcciones IP con nombre.
Direcciones IP de una lista de direcciones IP con nombre
Las direcciones IP de las listas siempre coinciden con las direcciones IP de los sitios web de los proveedores que se indican en la guía sobre listas de direcciones IP con nombre de Cloud Armor. Si tienes alguna pregunta sobre las listas, ponte en contacto con el equipo de Asistencia de Cloud.
Las direcciones IP de una lista de direcciones IP con nombre están obsoletas en Cloud Armor
Cloud Armor sincroniza sus listas con los proveedores de listas de direcciones IP a diario. Es posible que los datos estén obsoletos y que tengan un retraso de unas horas o un día con respecto a los datos de un proveedor. Sin embargo, si crees que los datos obsoletos se retrasan más de lo esperado (por ejemplo, más de una semana), ponte en contacto con el equipo de Asistencia de Cloud.
Problemas para crear una política de seguridad que haga referencia a una lista de direcciones IP con nombre
Puedes intentar crear una política de seguridad que haga referencia a una lista de direcciones IP con nombre mediante un comando como este:
gcloud compute security-policies rules create 750 \ --security-policy my \ --expression "evaluatePreconfiguredExpr('sourceiplist-example')" \ --action "allow"
Si el comando falla, el error que verás será similar a este:
ERROR: (gcloud.compute.security-policies.rules.create) Could not fetch resource: - Invalid value for field 'resource.match.expr': '{ "expression": "evaluatePreconfiguredExpr(\u0027sourceiplist-example\u0027)"}'. Error parsing Cloud Armor rule matcher expression: sourceiplist-example is not a valid preconfigured expression set.
Asegúrate de que el proveedor en cuestión sea compatible y de que el nombre de la lista de direcciones IP se haya indicado correctamente. Para comprobarlo, usa el siguiente comando gcloud
para enumerar los conjuntos de expresiones preconfigurados:
gcloud compute security-policies list-preconfigured-expression-sets
El tráfico se bloquea a pesar de que hay una regla preconfigurada para una lista de IPs permitidas con nombres
Es posible que el tráfico se bloquee desde una dirección IP que esté en una lista de direcciones IP con nombre:
Asegúrate de que el tráfico proceda de una dirección IP que esté en una lista de permitidas de direcciones IP con nombre.
Comprueba si hay otras reglas de seguridad con una prioridad más alta que puedan bloquear el tráfico. Si el problema persiste, ponte en contacto con el equipo de Asistencia de Cloud.
Asegúrate de que la política de seguridad esté adjunta al servicio de backend correcto:
gcloud compute backend-services describe BACKEND_SERVICE
Consulta las reglas de la política de seguridad. Por ejemplo:
gcloud compute security-policies describe POLICY_NAME
El comando devuelve información similar a la siguiente:
--- … name: POLICY_NAME rules: -action: allow description: allow fastly ip addresses kind: compute#securityPolicyRule match: expr: expression: evaluatePreconfiguredExpr('sourceiplist-fastly') preview: false priority: 100 -action: deny(403) description: Default rule, higher priority overrides it kind: compute#securityPolicyRule match: config: srcIpRanges: -'*' versionedExpr: SRC_IPS_V1 preview: false priority: 2147483647 -action: deny(404) description: deny altostrat referer kind: compute#securityPolicyRule match: expr: expression: request.headers['Referer'].contains('altostrat') preview: false priority: 50 …
La política de seguridad anterior contiene tres reglas: una regla de denegación predeterminada, una regla de permiso para las direcciones IP de Fastly y una regla de denegación para un referente que contiene
altostrat
. También se indica la prioridad de cada una.Revisa los registros para determinar qué regla coincide con tu tráfico y la acción asociada. Para obtener información sobre el registro, consulta el artículo Usar el Explorador de registros.
A continuación, se muestra un ejemplo de registro:
httpRequest: { referer: "http://www.altostrat.com/" remoteIp: "23.230.32.10" requestMethod: "HEAD" requestSize: "79" requestUrl: "http://www.example.com/" responseSize: "258" status: 404 userAgent: "Mozilla/5.0" } … jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" enforcedSecurityPolicy: { configuredAction: "DENY" name: "POLICY_NAME" outcome: "DENY" priority: 50 } statusDetails: "denied_by_security_policy" } …
En el registro anterior, la solicitud procede de
23.230.32.10
, que está cubierta por la lista de direcciones IP públicas de Fastly. Sin embargo, la solicitud coincide con una regla de denegación con una prioridad superior (50). Si comparamos esto con lo que se indica en la política de seguridad, la regla corresponde a la regla de denegación de un referente que contienealtostrat
. Como la solicitud tiene la referentehttp://www.altostrat.com/
, la aplicación de la regla de seguridad funciona correctamente.
Problemas con los resultados de Security Command Center
Esta sección contiene información sobre problemas con los resultados de Security Command Center.
La tarjeta de Cloud Armor no aparece en Security Command Center
Habilita los resultados de Cloud Armor en la interfaz de Security Command Center.
Los resultados de Cloud Armor no aparecen en Security Command Center
Si los resultados de Cloud Armor no aparecen en Security Command Center, es posible que el tráfico a los servicios de backend no cumpla los criterios para generar un resultado.
Si tienes alguna pregunta sobre el volumen de tráfico a tus backends, consulta las estadísticas de solicitudes en los paneles de control de Cloud Monitoring, en Políticas de seguridad de red.
Los resultados son demasiado ruidosos
Si necesitas ayuda con este problema, ponte en contacto con el equipo de Asistencia de Cloud.
Problemas con Adaptive Protection de Google Cloud Armor
Sigue estas instrucciones para solucionar problemas con Protección adaptativa.
Adaptive Protection está habilitado en una política de seguridad, pero no hay registros en Cloud Logging
Los registros de Adaptive Protection se generan por separado de los registros de solicitudes de Cloud Armor y aparecen en un recurso diferente de Cloud Logging. Los registros y eventos de Adaptive Protection se encuentran en el recurso Política de seguridad de red de Cloud Logging. Hay un periodo de entrenamiento de al menos una hora después de habilitar Adaptive Protection en una política de seguridad antes de que Adaptive Protection empiece a generar alertas de ataques sospechosos. Durante el periodo de entrenamiento, Adaptive Protection aprende del tráfico de solicitudes entrantes y desarrolla valores de referencia distintos para cada servicio backend protegido por esa política de seguridad. Adaptive Protection puede identificar la actividad sospechosa.
Si habilita Protección adaptativa en una política de seguridad y no observa ninguna alerta después de un periodo de entrenamiento de una hora, significa que no hay ninguna actividad que se pueda identificar como un ataque potencialmente malicioso a ninguno de los servicios de backend asociados a esa política de seguridad.
Si el posible ataque o el tráfico anómalo persiste durante más tiempo, es decir, durante varias horas, Adaptive Protection empieza a considerar ese comportamiento como normal y deja de enviar alertas sobre patrones de tráfico similares. Una vez que se haya reducido el ataque potencial y los patrones de tráfico vuelvan a la referencia original, ya sea porque el ataque haya finalizado o porque lo hayas bloqueado con las reglas de Cloud Armor adecuadas, Protección adaptativa te alertará sobre los comportamientos del tráfico futuros que se consideren desviaciones de la referencia.
Adaptive Protection analiza el tráfico que, de lo contrario, se permitiría a través de una política de seguridad de Cloud Armor. Si define la regla predeterminada para denegar el acceso con una lista de permitidos de tráfico restringida, Protección adaptativa solo detectará actividad maliciosa en el tráfico que supere la evaluación con respecto a la lista de permitidos.
Hay demasiadas alertas o demasiados registros en Cloud Logging de Adaptive Protection
Una alerta de Adaptive Protection proporciona una puntuación de confianza que indica la fiabilidad con la que los modelos de Adaptive Protection identifican la actividad detectada como anómala y potencialmente como un ataque. Puedes filtrar la entrada específica del registro a través de Cloud Logging para que solo se muestren (o se reenvíen a los sistemas posteriores) las alertas que tengan una puntuación de confianza superior a un umbral concreto.
Protección adaptativa proporciona un mecanismo para informar de alertas como falsos positivos, que se describe en la sección Monitorización, comentarios e informes de errores de eventos. Ten en cuenta que los falsos positivos pueden no provocar cambios inmediatos en las alertas de Protección adaptativa. Con el tiempo, los modelos de Adaptive Protection aprenden que estos patrones de tráfico son normales y aceptables, y dejan de enviar alertas sobre ellos.
Si las alertas de Adaptive Protection son demasiado frecuentes en un subconjunto de servicios de backend de una política de seguridad, puede que el tráfico normal de estos servicios de backend tenga fluctuaciones significativas que Adaptive Protection identifique constantemente como comportamientos anómalos. Puedes crear una política de seguridad independiente sin Protección adaptativa habilitada y asociar estos servicios de backend a la nueva política de seguridad.
Un incidente concreto notificado por Adaptive Protection se considera un falso positivo o no es relevante
Adaptive Protection ofrece un mecanismo para informar de alertas de falsos positivos. Sigue el procedimiento descrito en la sección Monitorizar, enviar comentarios e informar de errores de eventos. Ten en cuenta que las alertas de falsos positivos pueden no provocar cambios inmediatos en las alertas de Protección adaptativa. Con el tiempo, los modelos de Adaptive Protection aprenden que estos patrones de tráfico son normales y aceptables, por lo que dejan de enviar alertas sobre ellos.
¿Cómo puedo saber si se están aplicando mis políticas de seguridad perimetral?
Para consultar las acciones que se han llevado a cabo en tus políticas de seguridad perimetral, puedes consultar los paneles de control de monitorización, las métricas de monitorización o el registro por solicitud.
Paneles de control de monitorización
Cloud Monitoring está disponible en la página Políticas de seguridad de red, en Monitorización. Puede usar el desglose por política de seguridad de la página para medir el número de solicitudes permitidas y denegadas por la política de seguridad perimetral configurada. También puedes examinar el desglose por servicio backend para depurar un servicio backend concreto. Para obtener información sobre el panel de Cloud Monitoring, consulta el artículo Supervisar las políticas de seguridad de Cloud Armor.
Monitorizar métricas
Las métricas sin procesar que miden las solicitudes permitidas y denegadas están disponibles para las políticas de seguridad perimetral. Para obtener más información, consulta Monitorizar métricas de políticas de seguridad.
Registro por solicitud
La decisión de la política de seguridad perimetral se registra en los registros de solicitudes de balanceo de carga en enforcedEdgeSecurityPolicy
. Esta acción es independiente de la enforcedSecurityPolicy
, que registra la decisión de la política de seguridad del backend.
Gestión de bots
Esta sección contiene información sobre cómo solucionar problemas con la gestión de bots.
Los usuarios no están exentos como deberían
Es posible que hayas configurado reglas de política de seguridad con la acción de redirección para la evaluación de reCAPTCHA y que algunos usuarios que consideras legítimos no se hayan excluido como esperabas. Sigue los pasos que se indican a continuación para solucionar el problema.
Primero, consulta los registros por solicitud para ver si hay una regla de política de seguridad con una prioridad más alta que coincida con el tráfico y en la que la acción sea diferente. En concreto, busca los campos configured_action
y outcome
.
Ten en cuenta que, para que se exima a un usuario, deben estar implicadas al menos dos solicitudes. La solicitud inicial no incluye una cookie de exención, mientras que las solicitudes posteriores sí la incluyen si el usuario supera la evaluación de reCAPTCHA. Por lo tanto, se esperan al menos dos entradas de registro.
- Si ves
GOOGLE_RECAPTCHA
como acción configurada yREDIRECT
como resultado, significa que la solicitud se ha redirigido para que se evalúe con reCAPTCHA. - Si ves
GOOGLE_RECAPTCHA
como acción configurada yACCEPT
como resultado, significa que la solicitud se ha excluido de la redirección para la evaluación de reCAPTCHA. - Si ve valores diferentes en los campos anteriores, significa que se ha encontrado una regla con una acción diferente. En ese caso, no se espera que se redirija ni se excluya al usuario.
En segundo lugar, el usuario debe cumplir varios requisitos para que no se le redirija a la evaluación de reCAPTCHA.
- El usuario debe usar un navegador.
- El navegador debe habilitar JavaScript para permitir que la página de redirección se cargue correctamente con el JavaScript de reCAPTCHA insertado.
- El navegador debe habilitar las cookies para permitir la configuración y la adjunción automática de la cookie de exención.
- El usuario debe superar la evaluación de reCAPTCHA. Por ejemplo, debe resolver los desafíos emergentes, si los hay.
Ten en cuenta que los usuarios que no cumplan ninguno de los requisitos anteriores no recibirán ninguna exención, aunque se cumpla una regla con la acción de redirección para la evaluación de reCAPTCHA.
En tercer lugar, la evaluación de reCAPTCHA solo se ejecuta cuando se renderiza la página de redirección que inserta el código JavaScript de reCAPTCHA. Por este motivo, la redirección para la evaluación de reCAPTCHA solo se aplica a las solicitudes que esperan una respuesta que lleve a la renderización de una página completa. Otras solicitudes, como la carga de recursos en una página o las solicitudes derivadas de una secuencia de comandos insertada que no esperan que se renderice la respuesta, no deberían obtener una evaluación de reCAPTCHA. Por eso, te recomendamos que apliques esta acción con una condición de coincidencia para las rutas de URL que cumplan esta condición.
Por ejemplo, supongamos que tiene una página web que contiene elementos insertados, como imágenes, enlaces a otras páginas web y secuencias de comandos. No apliques la acción de redirección para la evaluación de reCAPTCHA en las rutas de URL que alojan imágenes o a las que se supone que deben acceder las secuencias de comandos en las que no se espera que se renderice una página completa. En su lugar, puede aplicar la acción de redirección para la evaluación de reCAPTCHA en las rutas de URL que alojan páginas web, como la página web principal u otras páginas web enlazadas.
Por último, si la página de redirección se renderiza correctamente, comprueba en la herramienta para desarrolladores que proporciona el navegador si se ha definido una cookie de exención y si se adjunta en las solicitudes posteriores del mismo sitio. Si necesitas más ayuda, puedes ponerte en contacto con el equipo de Asistencia de Cloud.
Problemas con la limitación de frecuencia
El tráfico no se limita como se esperaba
Puede que detecte que una dirección IP de cliente está enviando grandes cantidades de tráfico a una aplicación a una velocidad que supera el umbral que ha definido, pero el tráfico no se limita como esperaba. Sigue estos pasos para investigar el problema.
Primero, comprueba si una regla de mayor prioridad permite el tráfico de esa dirección IP. Examina los registros para ver si se ha activado una regla de ALLOW
para la dirección IP. Puede ser una regla ALLOW
por sí sola o en otra regla THROTTLE
o RATE_BASED_BAN
.
Si encuentras una regla de mayor prioridad, haz una de las siguientes acciones:
- Cambia las prioridades para asegurarte de que la regla de limitación de frecuencia tenga una prioridad mayor asignándole un valor numérico inferior.
- Excluye la dirección IP de la expresión coincidente en la regla que tenga una prioridad más alta.
También puede que el umbral no esté configurado correctamente. Si es así, las solicitudes se asocian correctamente, pero se activa la acción de conformidad. Examina los registros para confirmar que este es el caso y, a continuación, reduce el umbral de tu regla.
Por último, es posible que la dirección IP no coincida con la regla de limitación o de prohibición basada en la frecuencia. Para solucionarlo, comprueba si hay algún error en la condición de coincidencia y, a continuación, cambia la condición de coincidencia de la regla por el valor correcto.