Codelab sobre as regras pré-configuradas do WAF do Cloud Armor

1. Introdução

Olá! Este é o codelab sobre regras de WAF pré-configuradas do Cloud Armor.

O Google Cloud Armor é a solução de segurança de rede de borda empresarial do Google que oferece proteção contra DDoS, aplicação de regras de WAF e gerenciamento adaptativo em larga escala.

O Cloud Armor ampliou os conjuntos de regras pré-configuradas de WAF para mitigar as vulnerabilidades de segurança de aplicativos da Web do OWASP Top 10. Os conjuntos de regras são baseados na versão 3.0.2 do conjunto de regras essenciais do OWASP ModSecurity para proteger contra alguns dos riscos de segurança para aplicativos da Web mais comuns, como inclusão de arquivos locais (LFI), inclusão de arquivos remotos (RFI), execução remota de código (RCE) e muito mais.

Neste codelab, você vai aprender a mitigar algumas das vulnerabilidades comuns usando regras do WAF do Google Cloud Armor.

O que você vai aprender

  • Como configurar um grupo de instâncias e um balanceador de carga global para oferecer suporte a um serviço
  • Como configurar políticas de segurança do Cloud Armor com regras de WAF pré-configuradas para proteção contra LFI, RCE, verificadores, ataques de protocolo e fixação de sessão
  • Como validar se o Cloud Armor mitigou um ataque observando os registros.

O que é necessário

  • Conhecimento básico do Google Compute Engine ( codelab)
  • Conhecimento básico de TCP/IP e redes
  • Conhecimento básico de linha de comando do Unix/Linux
  • É recomendável ter concluído um tour de redes no GCP com o curso Redes no Google Cloud.
  • (Opcional) Conclua o laboratório do Cloud Armor Cloudnet20 para aprender a proteger cargas de trabalho com regras de injeção de SQL, baseadas em IP e em localização geográfica.

Topologia e caso de uso do codelab

119e13312f3cec25.jpeg

Figura 1: topologia do codelab de regras de WAF do Cloud Armor

O aplicativo OWASP Juice Shop é útil para treinamento de segurança e reconhecimento, porque contém, intencionalmente, instâncias de cada uma das dez principais vulnerabilidades de segurança do OWASP. Um invasor pode explorar o app para fins de teste. Neste codelab, vamos usá-lo para demonstrar alguns ataques a aplicativos e proteger o aplicativo com regras de WAF do Cloud Armor. O aplicativo será protegido por um balanceador de carga do Google Cloud, ao qual serão aplicadas a política e as regras de segurança do Cloud Armor. Ele será veiculado na Internet pública e, portanto, poderá ser acessado de quase qualquer lugar e protegido usando o Cloud Armor e as regras de firewall da VPC.

2. Configuração e requisitos

Configuração de ambiente autoguiada

  1. Faça login no console do Cloud e crie um novo projeto ou reutilize um existente. Crie uma conta do Gmail ou do Google Workspace, se ainda não tiver uma.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

Lembre-se do código do projeto, um nome exclusivo em todos os projetos do Google Cloud. O nome acima já foi escolhido e não servirá para você. Faremos referência a ele mais adiante neste codelab como PROJECT_ID.

  1. Em seguida, será necessário ativar o faturamento no Console do Cloud para usar os recursos do Google Cloud.

A execução deste codelab não será muito cara, se for o caso. Siga todas as instruções na seção "Limpeza", que orienta você sobre como encerrar recursos para não incorrer em cobranças além deste tutorial. Novos usuários do Google Cloud estão qualificados para o programa de US$300 de avaliação sem custos.

Inicie o Cloud Shell

Embora o Google Cloud e o Spanner possam ser operados remotamente do seu laptop, neste codelab usaremos o Google Cloud Shell, um ambiente de linha de comando executado no Cloud.

No Console do GCP, clique no ícone do Cloud Shell na barra de ferramentas localizada no canto superior direito:

bce75f34b2c53987.png

O provisionamento e a conexão com o ambiente levarão apenas alguns instantes para serem concluídos: Quando o processamento for concluído, você verá algo como:

f6ef2b5f13479f3a.png

Essa máquina virtual contém todas as ferramentas de desenvolvimento necessárias. Ela oferece um diretório principal persistente de 5 GB, além de ser executada no Google Cloud. Isso aprimora o desempenho e a autenticação da rede. Todo o trabalho neste laboratório pode ser feito apenas com um navegador.

Antes de começar

No Cloud Shell, verifique se o ID do projeto está configurado.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
PROJECT_ID=[YOUR-PROJECT-NAME]
echo $PROJECT_ID

Ativar APIs

Ative todos os serviços necessários

gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com        
gcloud services enable monitoring.googleapis.com 

3. criar a rede VPC

Crie uma rede VPC

No Cloud Shell

gcloud compute networks create ca-lab-vpc --subnet-mode custom

Saída

Created
NAME        SUBNET_MODE  BGP_ROUTING_MODE  IPV4_RANGE  GATEWAY_IPV4
ca-lab-vpc  CUSTOM       REGIONAL

Criar uma sub-rede

No Cloud Shell

gcloud compute networks subnets create ca-lab-subnet \
        --network ca-lab-vpc --range 10.0.0.0/24 --region us-central1

Saída

Created 
NAME           REGION       NETWORK       RANGE
ca-lab-subnet  us-central1  ca-lab-vpc    10.0.0.0/24

Criar regras de firewall da VPC

Depois de criar a VPC e a sub-rede, configure algumas regras de firewall. A primeira regra de firewall será usada para permitir que todos os IPs acessem o IP externo do site do aplicativo de teste na porta 3000. A segunda regra de firewall será usada para permitir verificações de integridade do IP de origem dos balanceadores de carga.

No Cloud Shell

gcloud compute firewall-rules create allow-js-site --allow tcp:3000 --network ca-lab-vpc

Saída

Creating firewall...done.
NAME           NETWORK     DIRECTION  PRIORITY  ALLOW     DENY  DISABLED
allow-js-site  ca-lab-vpc  INGRESS    1000      tcp:3000        False

Crie regras de firewall para permitir verificações de integridade dos intervalos de verificação de integridade do Google.

No Cloud Shell

gcloud compute firewall-rules create allow-health-check \
    --network=ca-lab-vpc \
    --action=allow \
    --direction=ingress \
    --source-ranges=130.211.0.0/22,35.191.0.0/16 \
    --target-tags=allow-healthcheck \
    --rules=tcp

Saída

Creating firewall...done.
NAME                NETWORK     DIRECTION  PRIORITY  ALLOW  DENY  DISABLED
allow-health-check  ca-lab-vpc  INGRESS    1000      tcp          False

4. Configurar o aplicativo de teste

A próxima etapa é criar o aplicativo de teste, nesse caso, o servidor da Web da OWASP Juice Shop.

Ao criar a instância de computação, usamos uma imagem do contêiner para garantir que o servidor tenha os serviços apropriados. Esse servidor será implantado em us-central1-c e terá uma tag de rede que permitirá verificações de integridade.

Criar o aplicativo OWASP Juice Shop

Use o aplicativo de código aberto OWASP Juice Shop como o aplicativo vulnerável. Você também pode usar esse aplicativo para fazer desafios de segurança do OWASP no site deles.

No Cloud Shell

gcloud compute instances create-with-container owasp-juice-shop-app --container-image bkimminich/juice-shop \
     --network ca-lab-vpc \
     --subnet ca-lab-subnet \
     --private-network-ip=10.0.0.3 \
     --machine-type n1-standard-2 \
     --zone us-central1-c \
     --tags allow-healthcheck

Saída

NAME                  ZONE           MACHINE_TYPE   PREEMPTIBLE  
owasp-juice-shop-app  us-central1-c  n1-standard-2               

INTERNAL_IP  EXTERNAL_IP     STATUS
10.0.0.3     <public IP>     RUNNING

Configure o componente do balanceador de carga do Cloud: grupo de instâncias

Crie o grupo de instâncias não gerenciadas.

No Cloud Shell

gcloud compute instance-groups unmanaged create juice-shop-group \
    --zone=us-central1-c

Saída

NAME              LOCATION       SCOPE  NETWORK  MANAGED  INSTANCES
juice-shop-group  us-central1-c  zone                     0

Adicione a instância do GCE da Juice Shop ao grupo de instâncias não gerenciado.

No Cloud Shell

gcloud compute instance-groups unmanaged add-instances juice-shop-group \
    --zone=us-central1-c \
    --instances=owasp-juice-shop-app

Saída

Updated [https://www.googleapis.com/compute/v1/projects/<project name>/zones/us-central1-c/instanceGroups/juice-shop-group].

Defina a porta nomeada como a do aplicativo Juice Shop.

No Cloud Shell

gcloud compute instance-groups unmanaged set-named-ports \
juice-shop-group \
   --named-ports=http:3000 \
   --zone=us-central1-c

Saída

Updated [https://www.googleapis.com/compute/v1/projects/<project name>/zones/us-central1-c/instanceGroups/juice-shop-group].

Agora que você criou o grupo de instâncias não gerenciado, a próxima etapa é criar uma verificação de integridade, um serviço de back-end, um mapa de URLs, um proxy de destino e uma regra de encaminhamento.

Configurar o componente do balanceador de carga do Cloud: verificação de integridade

Crie a verificação de integridade para a porta de serviço do Juice Shop.

No Cloud Shell

gcloud compute health-checks create tcp tcp-port-3000 \
        --port 3000

Saída

Created 
NAME           PROTOCOL
tcp-port-3000  TCP

Configurar o componente do balanceador de carga do Cloud: serviço de back-end

Crie os parâmetros do serviço de back-end.

No Cloud Shell

gcloud compute backend-services create juice-shop-backend \
        --protocol HTTP \
        --port-name http \
        --health-checks tcp-port-3000 \
        --enable-logging \
        --global 

Saída

NAME                BACKENDS  PROTOCOL
juice-shop-backend            HTTP

Adicione o grupo de instâncias do Juice Shop ao serviço de back-end.

No Cloud Shell

 gcloud compute backend-services add-backend juice-shop-backend \
        --instance-group=juice-shop-group \
        --instance-group-zone=us-central1-c \
        --global

Saída

Updated [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/backendServices/juice-shop-backend].

Configure o componente do balanceador de carga do Cloud: mapa de URLs

Crie o mapa de URL para enviar ao back-end.

No Cloud Shell

gcloud compute url-maps create juice-shop-loadbalancer \
        --default-service juice-shop-backend

Saída

NAME                     DEFAULT_SERVICE
juice-shop-loadbalancer  backendServices/juice-shop-backend

Configure o componente do balanceador de carga do Cloud: proxy de destino

Crie o proxy de destino para ficar na frente do mapa de URLs.

No Cloud Shell

gcloud compute target-http-proxies create juice-shop-proxy \
        --url-map juice-shop-loadbalancer

Saída

NAME              URL_MAP
juice-shop-proxy  juice-shop-loadbalancer

Configure o componente do balanceador de carga do Cloud: regra de encaminhamento

Crie a regra de encaminhamento para o balanceador de carga.

No Cloud Shell

gcloud compute forwarding-rules create juice-shop-rule \
        --global \
        --target-http-proxy=juice-shop-proxy \
        --ports=80

Saída

Created [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/forwardingRules/juice-shop-rule].

Verifique se o serviço Juice Shop está on-line

No Cloud Shell

PUBLIC_SVC_IP="$(gcloud compute forwarding-rules describe juice-shop-rule  --global --format="value(IPAddress)")"

No Cloud Shell

echo $PUBLIC_SVC_IP

Saída

<public VIP of service>

Aguarde alguns minutos antes de continuar, caso contrário, você poderá receber uma resposta HTTP/1.1 404 Not Found.

No Cloud Shell

curl -Ii http://$PUBLIC_SVC_IP

Saída

HTTP/1.1 200 OK
<...>

Você também pode acessar o navegador para visualizar a Juice Shop.

428c18eee6708c28.png

Agora você já pode analisar as vulnerabilidades do Juice Shop e se proteger contra elas com os conjuntos de regras do WAF do Cloud Armor.

5. Demonstrar vulnerabilidades conhecidas

Para economizar tempo, vamos demonstrar os estados antes e depois da propagação das regras de WAF do Cloud Armor em etapas condensadas.

Observar uma vulnerabilidade de LFI: travessia de caminho

A inclusão de arquivos locais é o processo de observar arquivos presentes no servidor explorando a falta de validação de entrada na solicitação para potencialmente expor dados sensíveis. A seguir, vemos que a travessia de caminho é possível. No navegador ou com curl, observe um caminho atual veiculado pelo aplicativo.

No Cloud Shell

curl -Ii http://$PUBLIC_SVC_IP/ftp

Saída

HTTP/1.1 200 OK
<...>

Observe também que a travessia de caminho também funciona:

No Cloud Shell

curl -Ii http://$PUBLIC_SVC_IP/ftp/../

Saída

HTTP/1.1 200 OK
<...>

Observar uma vulnerabilidade de RCE

A execução remota de código inclui vários cenários de injeção de comandos UNIX e Windows que permitem que invasores executem comandos do SO normalmente restritos a usuários privilegiados. O exemplo a seguir mostra a execução de um simples comando ls inserido.

No Cloud Shell

curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls

Saída

HTTP/1.1 200 OK
<...>

Remova as flags do curl para observar a saída completa.

Observar o acesso de um verificador conhecido

Os aplicativos de verificação comerciais e de código aberto têm várias finalidades, incluindo a busca de vulnerabilidades. Essas ferramentas usam o user agent e outros cabeçalhos. Observe que o curl funciona com um cabeçalho de user agent conhecido:

No Cloud Shell

curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"

Saída

HTTP/1.1 200 OK
<...>

Observar um ataque de protocolo: divisão de HTTP

Alguns aplicativos da Web usam a entrada do usuário para gerar os cabeçalhos nas respostas. Se o aplicativo não filtrar a entrada corretamente, um invasor poderá contaminar o parâmetro de entrada com a sequência %0d%0a (a sequência CRLF usada para separar diferentes linhas). A resposta pode ser interpretada como duas respostas por qualquer coisa que a analise, como um servidor proxy intermediário, o que pode veicular conteúdo falso em solicitações subsequentes. Insira a sequência %0d%0a no parâmetro de entrada, o que pode levar à exibição de uma página enganosa.

No Cloud Shell

curl -Ii "http://$PUBLIC_SVC_IP/index.html?foo=advanced%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2035%0d%0a%0d%0a<html>Sorry,%20System%20Down</html>"

Saída

HTTP/1.1 200 OK
<...>

Observar a fixação da sessão

No Cloud Shell

curl -Ii http://$PUBLIC_SVC_IP -H session_id=X

Saída

HTTP/1.1 200 OK
<...>

6. Definir regras de WAF do Cloud Armor

Liste as regras de WAF pré-configuradas:

No Cloud Shell

gcloud compute security-policies list-preconfigured-expression-sets

Saída

EXPRESSION_SET
Sqli-canary
RULE_ID
    owasp-crs-v030001-id942110-sqli
    owasp-crs-v030001-id942120-sqli
<...>

Criar a política de segurança do Cloud Armor

No Cloud Shell:

gcloud compute security-policies create block-with-modsec-crs \
    --description "Block with OWASP ModSecurity CRS"

Atualizar a regra padrão da política de segurança

A prioridade da regra padrão tem um valor numérico de 2147483647.

No Cloud Shell:

gcloud compute security-policies rules update 2147483647 \
    --security-policy block-with-modsec-crs \
    --action "deny-403"

Como a regra padrão está configurada com a ação "negar", precisamos permitir o acesso do seu IP. Encontre seu IP público (curl, ipmonkey, whatismyip etc.).

No Cloud Shell:

MY_IP=$(curl ifconfig.me)

Adicione a primeira regra para permitir o acesso do seu IP (INSIRA SEU IP ABAIXO)

No Cloud Shell:

gcloud compute security-policies rules create 10000 \
    --security-policy  block-with-modsec-crs  \
    --description "allow traffic from my IP" \
    --src-ip-ranges "$MY_IP/32" \
    --action "allow"

Atualizar a política de segurança para bloquear ataques de LFI

Aplique o conjunto de regras essenciais do OWASP ModSecurity que impede a travessia de caminhos para inclusões de arquivos locais.

No Cloud Shell:

gcloud compute security-policies rules create 9000 \
    --security-policy block-with-modsec-crs  \
    --description "block local file inclusion" \
     --expression "evaluatePreconfiguredExpr('lfi-stable')" \
    --action deny-403

Atualizar a política de segurança para bloquear a execução remota de código (RCE)

De acordo com o conjunto de regras essenciais do OWASP ModSecurity, aplique regras que procurem RCE, incluindo injeção de comandos. Comandos típicos do SO são detectados e bloqueados.

No Cloud Shell:

gcloud compute security-policies rules create 9001 \
    --security-policy block-with-modsec-crs  \
    --description "block rce attacks" \
     --expression "evaluatePreconfiguredExpr('rce-stable')" \
    --action deny-403

Atualize a política de segurança para bloquear verificadores de segurança

Aplique o conjunto de regras essenciais do OWASP ModSecurity para bloquear verificadores de segurança conhecidos, clientes HTTP de scripting e rastreadores da Web.

No Cloud Shell:

gcloud compute security-policies rules create 9002 \
    --security-policy block-with-modsec-crs  \
    --description "block scanners" \
     --expression "evaluatePreconfiguredExpr('scannerdetection-stable')" \
    --action deny-403

Atualize a política de segurança para bloquear ataques de protocolo

De acordo com o conjunto de regras essenciais do OWASP ModSecurity, aplique regras que procurem caracteres de retorno de carro (CR) %0d e quebra de linha (LF) %0a e outros tipos de ataques de protocolo, como o contrabando de solicitações HTTP.

No Cloud Shell:

gcloud compute security-policies rules create 9003 \
    --security-policy block-with-modsec-crs  \
    --description "block protocol attacks" \
     --expression "evaluatePreconfiguredExpr('protocolattack-stable')" \
    --action deny-403

Atualize a política de segurança para bloquear a fixação de sessão

De acordo com o conjunto de regras essenciais do OWASP ModSecurity, aplique regras que...

No Cloud Shell:

gcloud compute security-policies rules create 9004 \
    --security-policy block-with-modsec-crs  \
    --description "block session fixation attacks" \
     --expression "evaluatePreconfiguredExpr('sessionfixation-stable')" \
    --action deny-403

Anexe a política de segurança ao serviço de back-end

No Cloud Shell:

gcloud compute backend-services update juice-shop-backend \
    --security-policy block-with-modsec-crs \
    --global

As regras podem levar algum tempo para serem propagadas (mas não mais de 10 minutos). Depois de um tempo suficiente, teste as vulnerabilidades demonstradas anteriormente para confirmar a aplicação da regra do WAF do Cloud Armor na próxima etapa.

7. Observar a proteção do Cloud Armor com o conjunto de regras essenciais do OWASP ModSecurity

Confirmar se a vulnerabilidade de LFI foi mitigada

No Cloud Shell

curl -Ii http://$PUBLIC_SVC_IP/?a=../

Saída

HTTP/1.1 403 Forbidden
<...>

Confirme se o ataque de RCE foi mitigado

No Cloud Shell

curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls

Saída

HTTP/1.1 403 Forbidden
<..>

Confirmar a detecção de um verificador conhecido

No Cloud Shell

curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"

Saída

HTTP/1.1 403 Forbidden
<..>

Confirmar que um ataque de protocolo foi mitigado

De acordo com o conjunto de regras essenciais do OWASP ModSecurity ver.3.0.2, o ataque de protocolo é mitigado por

No Cloud Shell

curl -Ii "http://$PUBLIC_SVC_IP/index.html?foo=advanced%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2035%0d%0a%0d%0a<html>Sorry,%20System%20Down</html>"

Saída

HTTP/1.1 403 Forbidden
<..>

Confirmar se as tentativas de fixação de sessão foram bloqueadas

No Cloud Shell

curl -Ii http://$PUBLIC_SVC_IP/?session_id=a

Saída

HTTP/1.1 403 Forbidden
<..>

8. Revisar as regras de segurança do Cloud Armor

Agora que criamos a política de segurança, vamos conferir exatamente quais regras foram configuradas.

d00e4102fc89e44f.png

As regras são avaliadas por prioridade: números menores são avaliados primeiro e, uma vez acionadas, o processamento não continua para regras com valores de prioridade mais altos.

  • Prioridade 9000: bloquear LFI (inclusão de arquivos locais)
  • Prioridade 9001: bloquear RCE (execução remota de código/injeção de comandos)
  • Prioridade 9002: bloquear verificadores detectados
  • Prioridade 9003: bloquear ataques de protocolo, como divisão e contrabando de HTTP
  • Prioridade 9004: bloquear ataques de fixação de sessão
  • Prioridade 10000: permitir que seu IP acesse o site
  • Prioridade padrão: negar.

*A regra "permitir seu IP" está configurada com o número de prioridade mais alto para permitir o acesso ao site, mas bloqueia qualquer ataque.

9. Observar registros de políticas de segurança do Cloud Armor

Na página do console do Cloud Armor, é possível conferir os detalhes da política de segurança e clicar na guia Logs e no link View policy logs para acessar a página do Cloud Logging. Ele filtra automaticamente com base na política de segurança de interesse, por exemplo, resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(block-with-modsec-crs). Observe os códigos de resposta de erro 403 e expanda os detalhes do registro para observar o nome da política de segurança aplicada, o valor do campo correspondente e, mais abaixo, os IDs de expressão pré-configurados (ou o ID da assinatura). As capturas de tela a seguir mostram exemplos dos registros das políticas de segurança aplicadas configuradas neste codelab.

Registro de LFI

983a6cab0cff940d.png

Registro de RCE

988a3a571f9d9d45.png

Registro de detecção de verificadores

7ed661863ba27555.png

Registro de ataques de protocolo

17ee3cbe0bd98939.png

Registro de fixação de sessão

80d1ddfd0fe982e1.png

10. Limpeza do laboratório

Limpe os recursos agora que você concluiu o laboratório.

Execute estes comandos para excluir a política de segurança do Cloud Armor, o balanceador de carga, as instâncias, as regras de firewall e a rede VPC.

Remova a política de segurança do Cloud Armor do serviço de back-end

gcloud -q compute backend-services update juice-shop-backend --security-policy "" --global

Excluir a política de segurança do Cloud Armor

A exclusão da política de segurança exclui automaticamente as regras associadas.

gcloud -q compute security-policies delete block-with-modsec-crs

Excluir os recursos do balanceador de carga

Os recursos do balanceador de carga a serem excluídos incluem a regra de encaminhamento, os proxies HTTP de destino, os mapas de URL, o back-end, as verificações de integridade e o grupo de instâncias.

gcloud -q compute forwarding-rules delete juice-shop-rule --global

gcloud -q compute target-http-proxies delete juice-shop-proxy

gcloud -q compute url-maps delete juice-shop-loadbalancer

gcloud -q compute backend-services delete juice-shop-backend \
    --global

gcloud -q compute health-checks delete tcp-port-3000

gcloud -q compute instance-groups unmanaged delete juice-shop-group --zone=us-central1-c

Excluir a instância

gcloud -q compute instances delete owasp-juice-shop-app --zone us-central1-c

Exclua as regras de firewall, a sub-rede e a VPC

gcloud -q compute firewall-rules delete allow-health-check
gcloud -q compute firewall-rules delete allow-js-site
gcloud -q compute networks subnets delete ca-lab-subnet --region us-central1
gcloud -q compute networks delete ca-lab-vpc

11. Parabéns!

Parabéns por concluir o codelab sobre regras de WAF pré-configuradas do Cloud Armor.

O que vimos

  • Como configurar um grupo de instâncias e um balanceador de carga global do Cloud
  • Como configurar políticas de segurança do Cloud Armor com regras de WAF pré-configuradas para proteção contra LFI, RCE, verificadores, ataques de protocolo e fixação de sessão
  • Como validar se o Cloud Armor mitigou alguns dos 10 principais ataques da OWASP usando registros

Próximas etapas