arrow_back

Identificar vulnerabilidades em aplicativos usando o Security Command Center

Quick tip: Review the prerequisites before you run the lab
Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the student account, which may cause extra charges incurred to your personal account.
Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

Identificar vulnerabilidades em aplicativos usando o Security Command Center

Laboratório 1 hora 15 minutos universal_currency_alt 1 crédito show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

GSP1262

Laboratórios autoguiados do Google Cloud

Visão geral

O Web Security Scanner (WSS), um dos serviços integrados do Security Command Center, identifica vulnerabilidades de segurança nos web apps do App Engine, do Google Kubernetes Engine (GKE) e do Compute Engine.

Esse serviço rastreia seu app, seguindo todos os links no escopo dos URLs iniciais, e tenta acessar o máximo possível de entradas de usuário e manipuladores de eventos. Ele verifica e detecta automaticamente quatro vulnerabilidades comuns, incluindo scripting em vários sites (XSS), injeção flash, conteúdo misto (HTTP em HTTPS) e bibliotecas desatualizadas/desprotegidas.

O Web Security Scanner permite a identificação precoce de vulnerabilidades e oferece taxas muito baixas de falsos positivos. É possível configurar, executar, programar e gerenciar verificações de segurança com facilidade.

Neste laboratório, você usará o Web Security Scanner para verificar um app Python Flask em busca de vulnerabilidades.

Objetivos

Neste laboratório, você aprenderá a fazer o seguinte:

  • Iniciar um app Python Flask vulnerável em uma instância do Compute Engine.
  • Usar o Web Security Scanner para verificar os apps e encontrar vulnerabilidades.
  • Corrigir a vulnerabilidade do app.
  • Verificar o app novamente e conferir se as vulnerabilidades foram resolvidas.

Configuração e requisitos

Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período e sem custos financeiros.

  1. Faça login no Qwiklabs em uma janela anônima.

  2. Confira o tempo de acesso do laboratório (por exemplo, 1:15:00) e finalize todas as atividades nesse prazo.
    Não é possível pausar o laboratório. Você pode reiniciar o desafio, mas vai precisar refazer todas as etapas.

  3. Quando tudo estiver pronto, clique em Começar o laboratório.

  4. Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.

  5. Clique em Abrir Console do Google.

  6. Clique em Usar outra conta, depois copie e cole as credenciais deste laboratório nos locais indicados.
    Se você usar outras credenciais, vai receber mensagens de erro ou cobranças.

  7. Aceite os termos e pule a página de recursos de recuperação.

Cenário

Logotipo do Cymbal Bank

O Cymbal Bank é um banco americano de varejo com mais de 2.000 filiais em todos os 50 estados. Ele oferece serviços abrangentes de débito e crédito, baseados em uma plataforma de pagamentos robusta. O Cymbal Bank é uma instituição legada de serviços financeiros que promove a transformação digital.

Ele foi fundado em 1920 com o nome de Troxler. O grupo Cymbal adquiriu a empresa em 1975, depois de investir pesado nos caixas eletrônicos patenteados do próprio grupo. Conforme o banco se tornou líder nacional, ele colocou foco estratégico na modernização da experiência do cliente, tanto pessoalmente nas agências quanto digitalmente, usando um app lançado em 2014. O banco emprega 42.000 pessoas em todo o país e, em 2019, registrou US$ 24 bilhões em receita.

O Cymbal Bank tem interesse em desenvolver um novo aplicativo bancário para os clientes corporativos usando a tecnologia Google Cloud. A segurança para aplicativos é algo crítico, e é importante para o CTO saber como o Google Cloud identifica e reduz as vulnerabilidades de segurança de aplicativos. Como Cloud Security Engineer, você tem a tarefa de demonstrar os recursos avançados de verificação de vulnerabilidades de apps do Security Command Center.

Tarefa 1: iniciar uma máquina virtual e criar uma regra de firewall para o WSS

Nesta tarefa, você vai configurar a infraestrutura para demonstrar uma vulnerabilidade de app ao CTO do Cymbal Bank. Mais especificamente, você vai implantar uma máquina virtual e criar uma regra de firewall para que o Web Security Scanner possa acessar o app vulnerável que você pretende implantar.

  1. Na barra de título do console do Google Cloud, clique em Ativar o Cloud Shell (Ícone Ativar Cloud Shell). Se uma solicitação aparecer, clique em Continuar.

  2. Crie um endereço IP estático que possa ser usado para verificar um web app vulnerável executando o seguinte comando:

gcloud compute addresses create xss-test-ip-address --region={{{project_0.default_region|lab region}}}
  1. Execute este comando para gerar o endereço IP estático que você acabou de criar:
gcloud compute addresses describe xss-test-ip-address \ --region={{{project_0.default_region|lab region}}} --format="value(address)"
  1. Copie o endereço IP (uma única linha da saída) e salve em um bloco de notas.

  2. Execute este comando para criar uma instância de VM e executar o aplicativo vulnerável.

gcloud compute instances create xss-test-vm-instance \ --address=xss-test-ip-address --no-service-account \ --no-scopes --machine-type=e2-micro --zone={{{project_0.default_zone|lab zone}}} \ --metadata=startup-script='apt-get update; apt-get install -y python3-flask'

O script de inicialização vai instalar o python-flask, um framework de web apps que é usado para executar um aplicativo Python simples e demonstrar a vulnerabilidade de scripting em vários sites (XSS), que é uma vulnerabilidade comum da segurança de web apps.

  1. Execute o comando a seguir para criar uma regra de firewall e permitir que o Web Security Scanner acesse um app vulnerável. Observe os intervalos de origem de onde o Web Security Scanner verifica os apps.
gcloud compute firewall-rules create enable-wss-scan \ --direction=INGRESS --priority=1000 \ --network=default --action=ALLOW \ --rules=tcp:8080 --source-ranges=0.0.0.0/0

Clique em Verificar meu progresso para conferir o objetivo. Crie a VM com as configurações que quiser

Tarefa 2: implantar um app vulnerável para acionar uma vulnerabilidade XSS

Nesta tarefa, você vai ter acesso ao código do aplicativo e vai introduzir uma vulnerabilidade a ser detectada pelo Web Security Scanner. Isso será feito na forma de um app, que consiste em um formato simples que recebe uma entrada do usuário e a emite sem nenhuma alteração.

  1. No console do Cloud, acesse o Menu de navegação (Ícone do menu de navegação) e clique em Compute Engine > Instâncias de VM.

    A primeira inicialização pode levar alguns instantes.

  2. No botão SSH ao lado da instância:

Botão SSH no console do Cloud
  1. Talvez apareça uma mensagem pop-up pedindo autorização para acessar as VMs por SSH no navegador. Clique em Autorizar.

Isso estabelece uma conexão SSH com a instância de VM em uma nova janela.

  1. Na janela SSH (não no Cloud Shell), execute este comando para fazer o download e extrair os arquivos do web app vulnerável:
gsutil cp gs://cloud-training/GCPSEC-ScannerAppEngine/flask_code.tar . && tar xvf flask_code.tar
  1. Agora execute este comando para implantar o aplicativo:
python3 app.py
  1. Logo depois, você vai receber uma mensagem indicando que o app está instalado e em execução:

Saída:

* Serving Flask app "app" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
  1. Encontre o endereço IP estático da VM que você havia copiado no seu bloco de notas.

  2. Substitua YOUR_EXTERNAL_IP no campo de URL abaixo pelo endereço IP e abra o URL em uma nova guia do navegador:

http://<YOUR_EXTERNAL_IP>:8080 Observação: você também pode encontrar o endereço IP externo no console do Google Cloud, onde ele está listado como um campo associado à instância de VM.

Com isso, vai aparecer o portal do banco corporativo Cymbal Bank com um formulário da Web.

  1. No formulário da Web, insira esta string:
<script>alert('This is an XSS Injection')</script>
  1. Em seguida, clique no botão POST.

A janela de alerta a seguir será exibida.

Janela de alerta no navegador

Esta é uma vulnerabilidade comum em aplicativos da Web: uma vulnerabilidade de scripting em vários sites. O scripting em vários sites (XSS) é uma vulnerabilidade que permite que invasores executem scripts maliciosos nos navegadores dos usuários no contexto do aplicativo. O navegador interpreta uma string como um JavaScript legítimo e a executa.

Um invasor que usa um bug XSS para injetar JavaScript em uma página HTML consegue acesso quase ilimitado às sessões conectadas das vítimas que visitam a página: eles podem roubar dados do usuário, fazer adulterações, alterar as configurações de privacidade ou segurança ou, até mesmo, alterar completamente a aparência e o funcionamento do produto. Ou ainda pior, uma vulnerabilidade XSS em um aplicativo, por mais irrelevante que pareça, pode comprometer outro conteúdo dentro do mesmo domínio.

Esta é uma das muitas vulnerabilidades de aplicativos que o Web Security Scanner pode ajudar a identificar.

Clique em Verificar meu progresso para conferir o objetivo. Faça o download dos arquivos do web app vulnerável na VM

Tarefa 3: ativar a API Web Security Scanner

Agora que o app vulnerável foi iniciado, é hora de demonstrar ao CTO as habilidades do Web Security Scanner. Mas primeiro, você precisa configurar a API usada para a execução do WSS.

  1. Volte para a guia do navegador do console do Cloud.

  2. No Menu de navegação (Ícone do menu de navegação), selecione APIs e serviços > Biblioteca.

  3. No campo Pesquisar APIs e serviços, digite Web Security Scanner e pressione Enter.

  4. Selecione a API Web Security Scanner.

  5. Clique em Ativar para ativar a API Web Security Scanner.

Clique em Verificar meu progresso para conferir o objetivo. Ative a API Web Security Scanner

Tarefa 4: verificar o app implantado com o WSS

Nesta tarefa, você vai configurar uma verificação do app para conferir se há vulnerabilidades de segurança.

  1. Abra o Menu de navegação (Ícone do menu de navegação) e selecione Segurança > Web Security Scanner.

  2. Clique em + Nova verificação.

  3. Na seção URLs iniciais, o campo URL inicial 1 já foi preenchido com o endereço IP estático.

  4. Adicione o número de porta 8080 para que o URL inicial seja semelhante ao seguinte:

http://<EXTERNAL_IP>:8080
  1. Se estiver presente, exclua URL inicial 2.

  2. Revise os campos restantes na tela Criar nova verificação:

  • Autenticação: uma propriedade que pode ser usada para dar credenciais de aplicativo para permitir que o verificador se autentique em um app durante a digitalização.
  • Programar: uma propriedade que pode ser usada para programar verificações para serem executadas automaticamente.
  • Exportar para o Security Command Center: uma propriedade que permite exportar automaticamente as configurações de verificação e os resultados (após a conclusão) para o Cloud Security Command Center.
  1. Verifique se a Autenticação ainda está definida comoNenhum e se Programar está como Nunca.

  2. Clique em Mostrar mais para investigar as configurações restantes.

  3. Clique em Salvar para criar a verificação.

Observação: isso cria a verificação, mas ainda não a executa. Ela precisa ser executada manualmente, já que você ainda não criou uma programação.
  1. Clique em Executar para começar a verificação
Observação: devido ao número de testes possíveis, a verificação pode demorar um pouco mais de 10 minutos.
  1. Retorne à sessão SSH em outra janela do navegador.

Se a sessão expirou, execute este comando para reiniciar o app:

python3 app.py

Na janela SSH, você vai encontrar registros gerados que são semelhantes ao exemplo abaixo. Eles são provenientes do Web Security Scanner, que testa todos os URLs possíveis em busca de vulnerabilidades potenciais:

Saída:

34.29.3.21 - - [23/Mar/2023 23:30:41] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:06] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:07] "GET /favicon.ico HTTP/1.1" 404 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "POST / HTTP/1.1" 302 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /output HTTP/1.1" 200 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /favicon.ico HTTP/1.1" 404 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "POST / HTTP/1.1" 302 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "GET /output HTTP/1.1" 200 -

Você pode encontrar log statements com estes códigos de status HTTP:

  • 200: uma solicitação bem-sucedida, em que o servidor HTTP respondeu com uma resposta OK.
  • 302: indica que um recurso está temporariamente localizado em outro lugar de acordo com o cabeçalho "Localização".
  • 404: indica que um ou mais recursos não foram encontrados.

Confira a documentação Códigos de erro e status HTTP para saber mais.

Enquanto a verificação é executada, fique à vontade para acessar as guias Resultados, URLs rastreados e Detalhes. Você também pode conferir este vídeo de apresentação ou este vídeo de verificação de vulnerabilidades para saber mais sobre o Web Security Scanner.

  1. Quando a verificação terminar, a guia Resultados vai indicar as vulnerabilidades em vários locais.
Resultados do Web Security Scanner com vulnerabilidades

O Web Security Scanner conseguiu verificar todos os URLs iniciais e detectar as vulnerabilidades XSS no aplicativo do Cymbal Bank. A capacidade de automatizar a detecção dessas vulnerabilidades críticas é um grande benefício para organizações preocupadas com a segurança, como o Cymbal Bank.

Clique em Verificar meu progresso para conferir o objetivo. Execute uma verificação do Web Security Scanner e detecte vulnerabilidades no app

Tarefa 5: corrigir a vulnerabilidade e fazer uma nova verificação

Agora que você demonstrou que o Web Security Scanner pode detectar uma vulnerabilidade XSS, você precisa corrigir a vulnerabilidade e executar a verificação do app novamente.

  1. Retorne à janela SSH que está conectada à instância de VM.
  2. Pare o app em execução pressionando CTRL + C.
  3. Edite o arquivo app.py como o editor nano, executando este comando:
nano app.py
  1. Localize as duas linhas que definem a string de saída:
# output_string = "".join([html_escape_table.get(c, c) for c in input_string]) output_string = input_string
  1. Remova o símbolo # da primeira linha e adicione-o ao início da linha seguinte, com atenção para que o recuo do código fique correto.

As linhas finais vão ficar assim:

@app.route('/output') def output(): output_string = "".join([html_escape_table.get(c, c) for c in input_string]) # output_string = input_string return flask.render_template("output.html", output=output_string) Observação: html_escape_table é um dicionário que contém pares um para um de caracteres HTML especiais como "<" para sua representação de texto. Usamos essa tabela para escapar caracteres HTML especiais, para que nosso formulário processe e interprete os envios apenas como texto bruto. Você pode consultar a documentação O que é o escape de HTML? (em inglês) para saber mais.
  1. Agora digite CTRL+X, Y e pressione Enter para salvar as alterações.

  2. Execute o app novamente:

python3 app.py
  1. Retorne à guia do navegador do console do Google Cloud (mantenha a página do Web Security Scanner aberta):

  2. Clique em Executar na parte de cima da página.

Na janela SSH, você vai começar a receber registros relacionados aos testes que o Web Security Scanner faz em URLs de app em busca de possíveis vulnerabilidades.

Saída:

34.29.3.21 - - [23/Mar/2023 23:30:41] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:06] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:07] "GET /favicon.ico HTTP/1.1" 404 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "POST / HTTP/1.1" 302 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /output HTTP/1.1" 200 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /favicon.ico HTTP/1.1" 404 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "POST / HTTP/1.1" 302 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "GET /output HTTP/1.1" 200 -
  1. Enquanto aguarda os resultados da verificação, faça login no URL http://<EXTERNAL_IP>:8080 usando seu navegador em outra guia.

    O formulário da Web é exibido novamente.

  2. Nele, insira a mesma string que você usou antes:

<script>alert('This is an XSS Injection')</script>
  1. Em seguida, clique no botão POST.

  2. Verifique se, desta vez, você recebe a seguinte string no navegador:

Entrada exibida como string de texto Observação: embora esta técnica funcione neste cenário simples, para a proteção adequada do seu aplicativo da Web, é necessário usar estruturas e técnicas mais avançadas que estão fora do escopo deste laboratório.

Confira os links abaixo para mais recursos:
  1. Volte ao console do Google Cloud, para continuar de onde parou na página do Web Security Scanner.

  2. Clique em Executar na parte de cima da página para verificar novamente o app.

  3. Em seguida, você vai notar que os resultados não produzem mais vulnerabilidades XSS.

Saída do Web Security Scanner sem vulnerabilidades

Clique em Verificar meu progresso para conferir o objetivo. Corrija vulnerabilidades e verifique novamente seu aplicativo usando o Web Security Scanner

Parabéns!

Deu tudo certo! Você demonstrou ao CTO do Cymbal Bank como identificar e corrigir vulnerabilidades XSS com a poderosa solução Web Security Scanner do Google Cloud.

Finalize o laboratório

Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.

Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.

O número de estrelas indica o seguinte:

  • 1 estrela = muito insatisfeito
  • 2 estrelas = insatisfeito
  • 3 estrelas = neutro
  • 4 estrelas = satisfeito
  • 5 estrelas = muito satisfeito

Feche a caixa de diálogo se não quiser enviar feedback.

Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, on demand e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 10 de fevereiro de 2025

Laboratório testado em 10 de fevereiro de 2025

Copyright 2020 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.