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.
Faça login no Qwiklabs em uma janela anônima.
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.
Quando tudo estiver pronto, clique em Começar o laboratório.
Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.
Clique em Abrir Console do Google.
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.
Aceite os termos e pule a página de recursos de recuperação.
Cenário
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.
Na barra de título do console do Google Cloud, clique em Ativar o Cloud Shell (). Se uma solicitação aparecer, clique em Continuar.
Crie um endereço IP estático que possa ser usado para verificar um web app vulnerável executando o seguinte comando:
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.
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.
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.
No console do Cloud, acesse o Menu de navegação () e clique em Compute Engine>Instâncias de VM.
A primeira inicialização pode levar alguns instantes.
No botão SSH ao lado da instância:
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.
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
Agora execute este comando para implantar o aplicativo:
python3 app.py
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)
Encontre o endereço IP estático da VM que você havia copiado no seu bloco de notas.
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.
No formulário da Web, insira esta string:
<script>alert('This is an XSS Injection')</script>
Em seguida, clique no botão POST.
A janela de alerta a seguir será exibida.
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.
Volte para a guia do navegador do console do Cloud.
No Menu de navegação (), selecione APIs e serviços>Biblioteca.
No campo Pesquisar APIs e serviços, digite Web Security Scanner e pressione Enter.
Selecione a API Web Security Scanner.
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.
Abra o Menu de navegação () e selecione Segurança>Web Security Scanner.
Clique em + Nova verificação.
Na seção URLs iniciais, o campo URL inicial 1 já foi preenchido com o endereço IP estático.
Adicione o número de porta 8080 para que o URL inicial seja semelhante ao seguinte:
http://<EXTERNAL_IP>:8080
Se estiver presente, exclua URL inicial 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.
Verifique se a Autenticação ainda está definida comoNenhum e se Programar está como Nunca.
Clique em Mostrar mais para investigar as configurações restantes.
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.
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.
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:
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.
Quando a verificação terminar, a guia Resultados vai indicar as vulnerabilidades em vários locais.
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.
Retorne à janela SSH que está conectada à instância de VM.
Pare o app em execução pressionando CTRL + C.
Edite o arquivo app.py como o editor nano, executando este comando:
nano app.py
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
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.
Agora digite CTRL+X, Y e pressione Enter para salvar as alterações.
Execute o app novamente:
python3 app.py
Retorne à guia do navegador do console do Google Cloud (mantenha a página do Web Security Scanner aberta):
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.
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.
Nele, insira a mesma string que você usou antes:
<script>alert('This is an XSS Injection')</script>
Em seguida, clique no botão POST.
Verifique se, desta vez, você recebe a seguinte string no navegador:
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:
Volte ao console do Google Cloud, para continuar de onde parou na página do Web Security Scanner.
Clique em Executar na parte de cima da página para verificar novamente o app.
Em seguida, você vai notar que os resultados não produzem mais vulnerabilidades XSS.
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.
Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
No canto superior esquerdo da tela, clique em Começar o laboratório
Usar a navegação anônima
Copie o nome de usuário e a senha fornecidos para o laboratório
Clique em Abrir console no modo anônimo
Fazer login no console
Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
Aceite os termos e pule a página de recursos de recuperação
Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto
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
Um laboratório por vez
Confirme para encerrar todos os laboratórios atuais e iniciar este
Use a navegação anônima para executar o laboratório
Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
Neste laboratório, você vai usar o recurso Web Security Scanner, um dos serviços integrados do Security Command Center, para verificar vulnerabilidades no aplicativo Python Flask.
Duração:
Configuração: 0 minutos
·
Tempo de acesso: 75 minutos
·
Tempo para conclusão: 75 minutos