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

1. Introdução

Olá! Este é o codelab das regras pré-configuradas do WAF 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 WAF e gerenciamento adaptável em escala.

O Cloud Armor ampliou os conjuntos de regras pré-configuradas do WAF para mitigar as 10 principais vulnerabilidades de segurança de aplicativos da Web do OWASP. Os conjuntos de regras são baseados no conjunto de regras principais do OWASP Modsecurity versão 3.0.2 para proteção contra alguns dos riscos mais comuns de segurança de aplicativos da Web, como a inclusão de arquivos locais (lfi), a inclusão remota de arquivos (rfi), a execução remota de código (rce) e muito mais.

Neste codelab, você vai aprender a mitigar algumas vulnerabilidades comuns usando as 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 dar 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, scanners, ataques de protocolo e fixação de sessão.
  • Como validar se o Cloud Armor mitigou um ataque observando 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
  • É útil fazer um tour de rede no GCP com o curso Networking in the Google Cloud
  • (Opcional) Conclua o laboratório Cloudnet20 Cloud Armor para aprender a proteger cargas de trabalho com injeção de SQL, regras baseadas em IP e com base na localização geográfica.

Topologia e caso de uso

119e13312f3cec25.jpeg

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

O aplicativo OWASP Juice Shop é útil para treinamentos e conscientização sobre segurança, porque contém instâncias das 10 principais vulnerabilidades de segurança da OWASP desde a concepção. Um invasor pode explorá-la para fins de teste. Neste codelab, vamos usá-lo para demonstrar alguns ataques a aplicativos, seguidos pela proteção do aplicativo com as regras WAF do Cloud Armor. O aplicativo estará à frente de um balanceador de carga do Google Cloud, em que a política e as regras de segurança do Cloud Armor serão aplicadas. Ele será disponibilizado na Internet pública e poderá ser acessado de praticamente qualquer lugar e protegido pelo uso de regras de firewall do Cloud Armor e 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 custo financeiro.

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

Crie regras de firewall de VPC

Depois de criar a VPC e a sub-rede, configure algumas regras de firewall. A primeira regra de firewall vai 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 firmware 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, neste caso, o servidor da Web OWASP Juice Shop.

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

Crie o aplicativo OWASP Juice Shop

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

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

Configurar 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 gerenciadas.

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 gerenciadas, a próxima etapa é criar verificação de integridade, serviço de back-end, mapa de URLs, proxy de destino e regra de encaminhamento.

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

Crie a verificação de integridade da porta de serviço da loja de sucos.

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 da 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].

Configurar 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

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

Crie o proxy de destino para a frente do mapa de URL.

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

Configurar 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].

Verificar se o serviço da loja de sucos 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, é possível que você recupere uma resposta HTTP/1.1 404 Not Found.

No Cloud Shell

curl -Ii http://$PUBLIC_SVC_IP

Saída

HTTP/1.1 200 OK
<...>

Outra opção é acessar o navegador para acessar a loja de sucos.

428c18eee6708c28.png

Agora estamos prontos para explorar as vulnerabilidades da loja de sucos e saber como se proteger contra elas com os conjuntos de regras do WAF do Cloud Armor.

5. Demonstrar vulnerabilidades conhecidas

Para poupar tempo, vamos demonstrar em etapas resumidas os estados antes e depois das regras do WAF do Cloud Armor.

Observar uma vulnerabilidade de LFI: travessia de caminhos

A inclusão de arquivos locais é o processo de observação de arquivos presentes no servidor explorando a falta de validação de entradas na solicitação para expor dados sensíveis. O exemplo a seguir mostra simplesmente uma travessia de caminhos possível. No navegador ou com curl, observe um caminho existente disponibilizado 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 caminhos também funciona:

No Cloud Shell

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

Saída

HTTP/1.1 200 OK
<...>

Observar uma vulnerabilidade do RCE

A execução remota de código inclui vários cenários de injeção de comando do UNIX e do Windows, permitindo que os invasores executem comandos do SO geralmente restritos a usuários privilegiados. O exemplo a seguir mostra uma execução simples do comando "ls" transmitida.

No Cloud Shell

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

Saída

HTTP/1.1 200 OK
<...>

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

Observar o acesso de um verificador conhecido

Aplicativos comerciais e de verificação de código aberto para diversas finalidades, incluindo a verificação de vulnerabilidades. Essas ferramentas usam um user agent conhecido 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
<...>

Observe um ataque de protocolo: divisão HTTP

Alguns aplicativos da Web usam entradas do usuário para gerar os cabeçalhos nas respostas. Se o aplicativo não filtrar a entrada adequadamente, um invasor poderá envenenar o parâmetro de entrada com a sequência %0d%0a (a sequência CRLF usada para separar linhas diferentes). A resposta poderia, então, ser interpretada como duas respostas por qualquer coisa que acontecesse para analisá-la, como um servidor proxy intermediário, possivelmente veiculando conteúdo falso em solicitações subsequentes. Insira a sequência %0d%0a no parâmetro de entrada. Isso pode levar à veiculaçã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 as regras do WAF do Cloud Armor

Liste as regras pré-configuradas de WAF:

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
<...>

Crie 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

Observe que 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 é configurada com negação de ação, 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 principais 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 principais do ModSecurity do OWASP, aplique as regras que procuram rce, incluindo injeção de comando. 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

Atualizar a política de segurança para bloquear verificações de segurança

Aplique o conjunto de regras principais do OWASP ModSecurity para bloquear verificadores de segurança conhecidos, clientes HTTP de script 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

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

De acordo com o conjunto de regras principais do ModSecurity do OWASP, aplique as regras que procuram os caracteres de retorno de carro (CR) %0d e feed de linha (LF) %0a e outros tipos de ataques de protocolo, como Smuggling de solicitação 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

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

De acordo com o conjunto de regras principais do ModSecurity do OWASP, aplique as 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 (não mais de 10 minutos). Quando tiver certeza de que passou tempo suficiente, teste as vulnerabilidades demonstradas anteriormente para confirmar a aplicação das regras do WAF do Cloud Armor na próxima etapa.

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

Confirme se a vulnerabilidade da LFI foi mitigada

No Cloud Shell

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

Saída

HTTP/1.1 403 Forbidden
<...>

Confirmar se o ataque RCE foi mitigado

No Cloud Shell

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

Saída

HTTP/1.1 403 Forbidden
<..>

Confirmar detecção de scanner conhecida

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 principais do ModSecurity da OWASP versão 3.0.2, o ataque do protocolo é mitigado pela

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 que as tentativas de fixação de sessão estão bloqueadas

No Cloud Shell

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

Saída

HTTP/1.1 403 Forbidden
<..>

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

Agora que criamos a política de segurança, vamos dar uma olhada exatamente nas regras que foram configuradas.

d00e4102fc89e44f.png

As regras são avaliadas por prioridade: os números mais baixos são avaliados primeiro e, depois de acionados, o processamento não continua para as regras com valores de prioridade mais altos.

  • Prioridade 9000 - Bloquear LFI (inclusão de arquivo local)
  • Prioridade 9001: bloquear RCE (execução de código remoto/injeção de comando)
  • Prioridade 9002: scanners de bloco detectados
  • Prioridade 9003 - Bloquear ataques de protocolo, como divisão de HTTP e contrabando de HTTP
  • Prioridade 9004 - Bloquear ataques de fixação de sessão
  • Prioridade 10000: permitir que seu IP acesse o site
  • Padrão de prioridade: negar.

*Observe a opção é configurada com o número de prioridade mais alto para permitir o acesso ao site, mas bloqueia qualquer ataque.

9. Observar os registros da política 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, seguida do link View policy logs para acessar a página do Cloud Logging. Ele vai filtrar automaticamente com base na política de segurança relevante, 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 os IDs de expressão pré-configurados (ou o ID da assinatura). As capturas de tela abaixo mostram exemplos dos registros das políticas de segurança aplicadas configuradas neste codelab.

Registro da LFI

983a6cab0cff940d.png

Registro do RCE

988a3a571f9d9d45.png

Registro de detecção do scanner

7ed661863ba27555.png

Registro de ataque 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.

Remover 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

Exclua os recursos do balanceador de carga

Entre os recursos do balanceador de carga que devem ser excluídos estão a regra de encaminhamento, target-http-proxies, url-maps, back-end, 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 das regras pré-configuradas do WAF do Cloud Armor.

O que vimos

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

Próximas etapas