Checkpoints
Create the VM with desired configurations
/ 20
Download vulnerable web application files on the VM
/ 20
Enable the Web Security Scanner API
/ 20
Run a Web Security Scanner scan and detect application vulnerabilities
/ 20
Correct vulnerabilities and rescan your application using Web Security Scanner
/ 20
Identificar vulnerabilidades em aplicativos usando o Security Command Center
Informações gerais
Introdução
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. O Web Security Scanner identifica vulnerabilidades de segurança nos aplicativos da Web do App Engine, Google Kubernetes Engine (GKE) e Compute Engine.
Esse serviço rastreia seu aplicativo, 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.
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 aplicativos do Security Command Center.
Objetivos
Neste laboratório, você vai realizar as seguintes tarefas:
- Iniciar um aplicativo Python Flask vulnerável em uma instância do Compute Engine
- Usar o Web Security Scanner para verificar os aplicativos e encontrar vulnerabilidades
- Corrigir a vulnerabilidade do aplicativo
- Verificar o aplicativo 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.
Tarefa 1. Iniciar uma máquina virtual e implantar um aplicativo vulnerável
Nesta tarefa, você vai configurar a infraestrutura para demonstrar uma vulnerabilidade de aplicativo para o CTO do Cymbal Bank. Mais especificamente, você vai implantar uma máquina virtual, conseguir o código do aplicativo e introduzir uma vulnerabilidade que será detectada pelo Web Security Scanner. Este aplicativo é um formulário simples que recebe a entrada de um usuário e a envia sem alterar nada.
-
Na barra de título do console do Google Cloud, clique em Ativar o Cloud Shell (). Caso solicitado, clique em Continuar.
-
Crie um endereço IP estático que será usado para verificar um aplicativo da Web vulnerável:
- Execute este comando para gerar o endereço IP estático que você acabou de criar:
-
Copie o endereço IP (uma única linha da saída) e salve em um bloco de notas.
-
Execute este comando para criar uma instância VM e executar o aplicativo vulnerável.
O script de inicialização vai instalar o python-flask, um framework de aplicativos da Web, que é usado para executar um aplicativo Python simples que demonstra a vulnerabilidade de scripting em vários sites (XSS), que é uma vulnerabilidade comum de segurança de aplicativos da Web.
- Abra uma regra de firewall para o Web Security Scanner acessar o aplicativo vulnerável. Observe os intervalos de origem de onde o Web Security Scanner verifica os aplicativos.
Clique em Verificar meu progresso para conferir o objetivo.
-
Abra o menu de navegação e selecione Compute Engine > Instâncias de VM.
-
E 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.
Uma nova janela será aberta com a conexão SSH para sua instância de VM.
- Na janela SSH (não no Cloud Shell), execute este comando para fazer o download e extrair os arquivos de aplicativos da Web vulneráveis:
- Agora execute este comando para implantar o aplicativo:
- Logo depois, você vai receber uma mensagem indicando que o aplicativo está instalado em execução:
-
Encontre o endereço IP estático da VM que você havia copiado no seu bloco de notas.
-
Substitua
YOUR_EXTERNAL_IP
no campo URL abaixo pelo endereço IP e abra o URL em uma nova guia do navegador:
-
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:
- Agora, pressione o botão POST.
A seguinte janela de alerta 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.
Tarefa 2: Verifique o aplicativo com o Web Security Scanner
Agora que iniciamos nosso aplicativo vulnerável, chegou a hora de demonstrar as habilidades do Web Security Scanner para o CTO. Nesta tarefa, você vai configurar e definir uma verificação do aplicativo para encontrar vulnerabilidades de segurança.
-
Volte para a guia do navegador que exibe o console do Cloud.
-
Abra o menu de navegação e selecione APIs e serviços > Biblioteca.
-
Em "Pesquisar APIs e serviços", digite Web Security Scanner e pressione Enter.
-
Selecione API Web Security Scanner.
-
Clique em Ativar para ativar a API Web Security Scanner.
Clique em Verificar meu progresso para conferir o objetivo.
-
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 da porta 8080 para que o URL inicial se pareça com este:
-
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.
- Clique em Executar para começar a verificação
- Retorne à sessão SSH em outra janela.
Se a sessão expirou, execute este comando para reiniciar o aplicativo:
Na janela SSH, você vai encontrar logs gerados semelhantes ao exemplo abaixo. Este é o Web Security Scanner testando todas as URLs possíveis para potenciais vulnerabilidades:
Você pode encontrar log statements com estes códigos de status HTTP:
- 200: uma solicitação bem-sucedida, onde 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 este documento para mais informações sobre o status HTTP e códigos de erro.
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. Agora você vai corrigir a vulnerabilidade no código do aplicativo do Cymbal Bank e testar novamente.
Clique em Verificar meu progresso para conferir o objetivo.
Tarefa 3. Corrija a vulnerabilidade e verifique novamente
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 aplicativo novamente.
- Retorne à janela SSH que está conectada à sua instância de VM.
- Pare o aplicativo em execução pressionando CTRL + C.
- Edite o arquivo app.py como o editor nano, executando este comando:
- localize as duas linhas que definem a string de saída:
- Remova o símbolo ‘#' da primeira linha e adicione ao início da linha seguinte (verifique se o recuo do código está correto)
Suas últimas linhas precisam ser parecidas com as seguintes:
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. Para mais informações clique aqui.-
Digite CTRL+X > Y > Enter para salvar as alterações.
-
Agora, execute novamente o aplicativo:
-
Volte ao Console do Google Cloud (a página do Web Security Scanner precisa continuar aberta):
-
Clique em Executar na parte de cima da página.
Na janela SSH, você vai passar a encontrar logs onde o Web Security Scanner testa os URLs dos aplicativos 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. -
Você vai encontrar o formulário da Web novamente.
-
No formulário da Web, insira a mesma string que você usou antes:
-
Agora, pressione o botão POST.
-
Verifique se desta vez você a string está aparecendo no navegador:
-
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 seu aplicativo.
-
Logo depois, você vai observar que os resultados não geram mais vulnerabilidades XSS:
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.
Clique em Verificar meu progresso para conferir o objetivo.
Parabéns!
Neste laboratório, você executou as seguintes tarefas:
- Iniciou um aplicativo Python Flask vulnerável
- Usou o Web Security Scanner para verificar os aplicativos e encontrar vulnerabilidades
- Corrigiu a vulnerabilidade do aplicativo
- Verificou o aplicativo novamente e as vulnerabilidades foram resolvidas
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.
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.