Como configurar verificações personalizadas usando o Web Security Scanner

Programe e execute verificações personalizadas em um aplicativo implantado usando o Web Security Scanner no Console do Google Cloud. O Web Security Scanner é compatível com verificações de URLs públicos e IPs que não estão protegidos por um firewall.

Antes de começar

Para configurar verificações personalizadas usando o Web Security Scanner:

  • Você precisa ter um aplicativo implantado em um URL ou IP público.
  • O Security Command Center precisa estar ativado.

Antes de verificar, faça uma auditoria minuciosa do seu aplicativo para detectar qualquer recurso que possa afetar os dados, usuários ou sistemas além do escopo desejado para a verificação.

Como o Web Security Scanner preenche campos, aperta botões, clica em links e em outras interações, use-o com cuidado. O Web Security Scanner pode ativar recursos que alteram o estado de seus dados ou sistema, com resultados indesejáveis. Exemplo:

  • Em um aplicativo de blog que permite comentários públicos, o Web Security Scanner pode postar strings de teste como comentários em todos os artigos do blog.
  • Em uma página de inscrição de e-mail, o Web Security Scanner pode gerar grandes números de e-mails de teste.

Para ver dicas de como minimizar os riscos, consulte as práticas recomendadas para evitar consequências indesejadas.

Ativar o Web Security Scanner

Ative o Web Security Scanner no Security Command Center para criar e executar verificações personalizadas.

SeO Security Command Center está ativo É possível ativar o Web Security Scanner no console do Google Cloud no Security Command Center.Configurações página (em inglês).

Etapa 1: implantar um aplicativo de teste

Para concluir a configuração do Web Security Scanner para verificações personalizadas, é necessário o URL de um aplicativo do Compute Engine, do Google Kubernetes Engine (GKE) ou do App Engine que já esteja implantado. Se você não tiver um aplicativo implantado ou se quiser testar o Web Security Scanner com um aplicativo de teste, implante o aplicativo de teste do App Engine. Use o idioma que preferir:

Etapa 2: atribuir funções do IAM

Para executar uma verificação do Web Security Scanner, você precisa ter um dos seguintes papéis de gerenciamento de identidade e acesso (IAM) para o projeto que quer verificar:

  • Editor
  • Proprietário

Para adicionar um destes papéis:

  1. Acesse a página IAM e administrador no console do Google Cloud.
    Acessar a página "IAM e administrador"
  2. Clique na lista suspensa Seletor de projetos.
  3. Na caixa de diálogo Selecionar de exibida, selecione o projeto que você quer verificar usando o Web Security Scanner.
  4. Na página IAM, ao lado do seu nome de usuário, clique em Editar.
  5. No painel Editar permissões que é exibido, clique em Adicionar outro papel e selecione um dos seguintes papéis:
    • Projeto > Proprietário
    • Projeto > Editor
  6. Quando terminar de adicionar papéis, clique em Salvar.

Saiba mais sobre os papéis do Web Security Scanner.

Etapa 3: fazer uma verificação

Quando você configura uma verificação, ela fica na fila para ser executada mais tarde. Dependendo da carga atual, pode demorar várias horas até que uma verificação seja executada. Para criar, salvar e executar uma verificação:

  1. Acesse a página do Web Security Scanner no console do Google Cloud.
    Acessar a página do Web Security Scanner
  2. Selecione o projeto que contém o aplicativo implantado que você quer verificar.
  3. Para configurar uma nova verificação, clique em Nova verificação:
  4. Na página Criar uma nova verificação que é carregada, defina os seguintes valores:

    1. Em URLs iniciais, insira o URL do aplicativo que você quer verificar.
    2. Em Programação, selecione Semanal.
    3. Em Próxima execução em, selecione uma data.

    A caixa para Exportar para o Security Command Center é marcada automaticamente. Se você ativou o Web Security Scanner como uma fonte de segurança do Security Command Center, os resultados da verificação podem ser exibidos no console do Google Cloud.

    Para essa primeira verificação, use a verificação padrão sem alterar outros valores na página Criar nova verificação. Para mais informações sobre configurações de verificação, consulte Como verificar um aplicativo.

  5. Para criar a verificação, clique em Salvar.

  6. Na página do Web Security Scanner, clique no nome da verificação para carregar a página de visão geral e, em seguida, clique em Executar verificação.

    A verificação será colocada na fila e será executada posteriormente. Pode levar várias horas até que a verificação seja executada.

  7. A página de visão geral da verificação exibe uma seção de resultados quando a verificação é concluída. A imagem a seguir mostra um exemplo de resultados de verificação quando nenhuma vulnerabilidades é detectada:

    Se você tiver ativado o Web Security Scanner como uma origem de segurança do Web Security Scanner, os resultados da verificação também serão exibidos no console do Google Cloud.

    Para exibir detalhes sobre uma determinada descoberta, clique no nome dela nos resultados da verificação.

Você concluiu uma verificação básica do Web Security Scanner. Se você verificou seu próprio aplicativo, saiba como personalizar a verificação na seção Como verificar um aplicativo nesta página.

Se você implantou um aplicativo de teste para executar a verificação, conclua a etapa de limpeza a seguir nesta página para evitar cobranças do App Engine.

Etapa 4: como limpar

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

Como verificar um aplicativo

Configure uma verificação personalizada para seu app usando uma conta de teste.

Etapa 1: como criar uma conta de teste

Quando você verifica seu app, é melhor usar uma conta de teste que não tenha acesso a dados confidenciais ou operações prejudiciais. Crie uma conta de teste que possa fazer login no seu app e anote as credenciais de login para fornecer uma autenticação ao criar uma verificação. As credenciais permitem usar a conta de teste para verificar dados.

Etapa 2: como criar uma verificação

  1. Acesse a página Web Security Scanner no Console do Google Cloud.
    Acessar a página do Web Security Scanner
  2. Clique em Selecionar e selecione um projeto que já tenha um aplicativo do App Engine, do Compute Engine ou do GKE implantado.
  3. Para exibir o formulário da nova verificação, clique em Criar verificação ou Nova verificação.
  4. Para adicionar valores ao novo formulário de verificação, use a tabela a seguir como guia:
    Campo Descrição
    URLs iniciais

    Um site simples geralmente requer apenas um URL inicial, como a página inicial, principal ou de destino para o site, a partir do qual o Web Security Scanner pode encontrar todas as outras páginas do site. No entanto, talvez o Web Security Scanner não encontre todas as páginas caso um site tenha:

    • Muitas páginas
    • Ilhas de páginas não conectadas
    • navegação que exige JavaScript complexo, como um menu de vários níveis orientado por mouseover;

    Nesses casos, especifique mais URLs iniciais para aumentar a cobertura da verificação.

    URLs excluídos Para reduzir a complexidade, as exclusões são definidas usando uma protolinguagem simplificada com um ou mais caracteres curinga *, em vez de exigir uma expressão regular válida. Para detalhes e exemplos de padrões válidos, consulte Como excluir URLs posteriormente nesta página.
    Autenticação > Conta do Google

    É possível criar uma conta de teste no Gmail e usá-la para verificar seu produto. Se você for um cliente do espaço de trabalho do Google, será possível criar contas de teste no seu domínio, por exemplo, test-account@yourdomain.com. No Web Security Scanner, essas contas funcionam como contas do Gmail. Autenticação de dois fatores não é compatível.

    O Google aplica uma política de nome real nas Contas do Google. Se o nome na sua conta de teste não parecer real, a conta poderá estar bloqueada.

    Autenticação > Identity-Aware Proxy Alfa

    Para proteger recursos com o Identity-Aware Proxy, consulte o guia do IAP.

    Para usar o Web Security Scanner com um recurso protegido pelo IAP, primeiro conceda acesso à conta de serviço do Web Security Scanner:

    1. Acesse a página do IAP no Console do Google Cloud.
    2. Selecione o projeto que você quer usar com o Web Security Scanner.
    3. Selecione o recurso do aplicativo que você quer verificar e clique em Adicionar membro no painel de informações.
    4. Na caixa Novos membros no painel Adicionar membros, insira a conta de serviço do Web Security Scanner na forma de

      service-project-number@gcp-sa-websecurityscanner.iam.gserviceaccount.com.

    5. Na lista suspensa Selecionar um papel, selecione Cloud IAP > Usuário do app da Web protegido pelo IAP.
    6. Quando terminar de adicionar papéis, clique em Salvar.

    Em seguida, adicione o ID do cliente OAuth à verificação. O Web Security Scanner só pode verificar aplicativos protegidos por um único ID do cliente OAuth. Para adicionar o ID do cliente OAuth:

    1. Acesse a página do IAP no Console do Google Cloud.
    2. Selecione o projeto que você quer usar com o Web Security Scanner.
    3. No Menu flutuante, selecione Editar cliente OAuth.
    4. Na janela ID do cliente para aplicativo da Web que aparece, copie e cole o ID do cliente.
    5. Acesse a página do Web Security Scanner no console do Google Cloud.
    6. Em Autenticação, selecione Identity-Aware Proxy Alfa.
    7. Na caixa ID do cliente OAuth2, cole o ID do cliente OAuth que você copiou e clique em Salvar.
    Autenticação > Conta que não é do Google

    Selecione essa opção se você tiver criado seu próprio sistema de autenticação e não estiver usando os serviços da Conta do Google. Especifique os URLs das formas de login, o usuário e a senha. Essas credenciais são usadas para fazer login no seu aplicativo e executar a verificação.

    O Web Security Scanner tenta heurística para fazer login no seu aplicativo e a verificá-lo. Especificamente, esse método procura um formulário de login de dois campos que inclui um campo username e um campo password. A ação de login precisa resultar em um cookie de autenticação para que o scanner continue a verificação.

    Problemas comuns podem causar falha no login personalizado:

    • Usar campos de formulário HTML não padrão, por exemplo, não usar um tipo password.
    • Usar um formulário de login complicado, por exemplo, um formulário que tem mais de um único campo username e password.
    • não salvar um cookie de autenticação no login bem-sucedido;
    • Em algumas situações, o scanner é negado por contramedidas com o objetivo de proteger contra bots, DDOS e outros ataques.

    Recomendamos o uso da integração do Identity-Aware Proxy para a experiência mais consistente com a verificação autenticada de aplicativos.

    Programar É possível definir que a verificação seja executada diariamente, semanalmente, a cada duas semanas ou a cada quatro semanas. É melhor criar uma verificação agendada para garantir que versões futuras do seu aplicativo sejam testadas. Além disso, como lançamos novos verificadores que encontram novos tipos de bugs, a execução de uma verificação programada oferece mais cobertura sem esforço manual.
    Executar verificações de um conjunto predefinido de IPs de origem
    Visualizar
    Selecione esta opção para restringir o tráfego de verificação a um conjunto predefinido de endereços IP. Isso permite que o verificador acesse aplicativos protegidos por um firewall, mas pode limitar o escopo da verificação. Para modificar suas regras de firewall a fim de permitir o tráfego do Web Security Scanner, consulte Como configurar o firewall mais adiante nesta página.
    Opções de exportação Selecione esta opção para exportar automaticamente configurações de verificação e resultados de verificação para o Security Command Center.
    Ignorar erros de status HTTP Essa opção controla se um alto número de erros de status HTTP, por exemplo, 400 Solicitação inválida, durante uma verificação fará com que a verificação seja relatada como uma falha. Se a opção for selecionada, os erros de status serão ignorados. Se a opção não for selecionada e a porcentagem de erros de status exceder um limite predeterminado, a verificação será relatada como uma falha.
  5. Quando terminar de adicionar valores, clique em Criar. Agora você pode executar a nova verificação.

Por padrão, o Web Security Scanner usa endereços IP atribuídos aleatoriamente durante cada execução. Para tornar previsíveis os endereços IP do Web Security Scanner, conclua as etapas para ativar verificações de IPs estáticos posteriormente nesta página.

Etapa 3: como executar uma verificação

Para executar uma verificação:

  1. Faça login na conta de teste que você usou para criar a verificação.
  2. Acesse a página Web Security Scanner no Console do Google Cloud.
    Acessar a página do Web Security Scanner
  3. Clique em Selecionar e selecione o projeto em que você criou a verificação.
  4. Em Verificar configurações, clique no nome da verificação que você quer executar.
  5. Na página de detalhes da verificação, clique em Executar.

A verificação é colocada em uma fila e pode ser que haja um atraso até que ela comece a ser executada. A execução pode levar vários minutos ou várias horas, dependendo da carga do sistema e de recursos como:

  • Complexidade do site
  • Número de elementos acionáveis por página
  • Número de links
  • A quantidade de JavaScript no site, incluindo a navegação

É possível configurar e executar até 10 verificações diferentes antes de precisar excluir ou limpar resultados salvos anteriormente.

Como visualizar os resultados da verificação personalizada

O status e os resultados de uma verificação personalizada são exibidos na página de detalhes da verificação no Console do Cloud. Para ver os resultados da verificação:

  1. Faça login na conta de teste que você usou para criar a verificação.
  2. Acesse a página Web Security Scanner no Console do Google Cloud.
    Acessar a página do Web Security Scanner
  3. Clique em Selecionar e selecione o projeto que contém a verificação a ser analisada.
  4. Em Configs da verificação, clique no nome da verificação que você quer avaliar.

A página de detalhes da verificação é carregada e exibe os resultados da verificação mais recente. Se uma verificação estiver em andamento, a guia Resultados exibirá a porcentagem de conclusão atual. Para exibir os resultados de verificações anteriores, selecione a data e a hora da verificação na lista suspensa.

Os detalhes das verificações personalizadas concluídas incluem:

  • A guia Resultados exibe uma lista de vulnerabilidades encontradas, se houver.
  • A guia URLs rastreados exibe uma lista de URLs verificados pela verificação.
  • A guia Detalhes inclui:
    • URLs iniciais
    • Authentication
    • User-agent
    • Velocidade máxima de verificação em consultas por segundo (QPS)

Veja mais informações sobre a verificação na página de registros do projeto.

Como editar uma verificação personalizada

Para editar uma verificação personalizada:

  1. Faça login na conta de teste que você usou para criar a verificação.
  2. Acesse a página Web Security Scanner no Console do Google Cloud.
    Acessar a página do Web Security Scanner
  3. Clique em Selecionar e selecione o projeto que contém a verificação que você quer editar.
  4. Em Configs da verificação, clique no nome da verificação que você quer editar.
  5. Na página de detalhes da verificação que aparece, clique em Editar.
  6. Na página Editando [nome da verificação] que será exibida, faça as alterações desejadas e clique em Salvar.

A verificação personalizada é executada na próxima vez programada ou é possível executá-la manualmente para receber os resultados atualizados.

Como excluir uma verificação personalizada

Para excluir uma ou mais verificações personalizadas:

  1. Faça login na conta de teste que você usou para criar a verificação.
  2. Acesse a página Web Security Scanner no Console do Google Cloud.
    Acessar a página do Web Security Scanner
  3. Clique em Selecionar e selecione o projeto que contém a verificação que você quer editar.
  4. Em Verificar configurações, marque a caixa de seleção ao lado de uma ou mais verificações que você quer excluir.
  5. Clique em Excluir e em OK.

Todas as verificações selecionadas serão excluídas.

Como configurar uma verificação com IPs estáticos

Nesta seção, você verá como ativar verificações personalizadas do Web Security Scanner a partir de endereços IP estáticos. Quando você ativa esse recurso, o Web Security Scanner usa endereços IP previsíveis para verificar seus aplicativos públicos do Compute Engine e do Google Kubernetes Engine (GKE). Esse recurso está na versão Beta, e os endereços IP do Web Security Scanner poderão mudar em uma versão futura.

Antes de começar

Para usar o recurso personalizado de verificações do Web Security Scanner dos IPs estáticos, você precisa do seguinte:

  • Um aplicativo público do Compute Engine ou do GKE. No momento, esse recurso não é compatível com aplicativos do App Engine.
  • Uma verificação criada sem autenticação ou com autenticação de Conta do Google. No momento, esse recurso não é compatível com verificações que usam autenticação de conta que não seja do Google.

Etapa 1: como configurar o firewall

  1. Acesse a página "Regras de firewall" no Console do Google Cloud.
    Acesse a página Regras de firewall
  2. Clique em Selecionar e selecione seu projeto.
  3. Na página Regras de firewall exibida, clique em Criar regra de firewall.
  4. Na página Criar regra de firewall, defina os seguintes valores:
    1. Nome: insira web-security-scanner ou um nome semelhante.
    2. Prioridade: selecione uma prioridade mais alta (valor de número menor) do que todas as regras que negam o tráfego de saída para seu aplicativo.
    3. Intervalos de IP de origem: insira 34.66.18.0/26 e 34.66.114.64/26.
    4. Protocolos e portas: selecione Permitir todos ou especifique os protocolos e portas para seu aplicativo. Normalmente, é possível marcar a caixa de seleção tcp e, em seguida, inserir 80 e 443 para as portas.
  5. Quando terminar de definir valores, clique em Criar.

Etapa 2: como configurar a verificação

Depois de configurar o firewall para permitir que os endereços IP previsíveis do Web Security Scanner, configure a verificação para usar IPs predefinidos:

  1. Acesse a página Web Security Scanner no Console do Google Cloud.
    Acessar a página do Web Security Scanner
  2. Clique em Selecionar e selecione seu projeto.
  3. Crie uma nova verificação ou edite uma atual.
  4. Marque a caixa de seleção Executar verificações a partir de um conjunto predefinido de IPs de origem.
  5. Salve a verificação.

Na próxima vez em que a verificação for executada, ela verificará os aplicativos públicos do Compute Engine e do GKE que estão por trás do firewall.

Como excluir URLs

É possível especificar até 100 padrões de URL excluídos para evitar o teste de seções de um site durante uma verificação personalizada. O Web Security Scanner não solicita recursos que correspondem a nenhuma das exclusões. As seções a seguir descrevem a correspondência de padrões usados pelo Web Security Scanner.

Correspondência do padrão de URL

A correspondência de URLs excluídos é feita com base em um conjunto de URLs definido por padrões de correspondência. Um padrão de correspondência é um URL com cinco segmentos:

  • scheme: por exemplo, http ou *
  • host: por exemplo, www.google.com, *.google.com ou *
  • path: por exemplo, /*, /foo*, ou /foo/bar. *
  • query: por exemplo, ?*, ?*foo=bar*
  • fragment: por exemplo, #*, #access

Veja a seguir a sintaxe básica:

<exclude-pattern> := <scheme>://<host><path><query><fragment>
<scheme> := '*' | 'http' | 'https'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars except '?' or '#'>
<query> := '?' <any chars except '#'>
<fragment> := '#' <any chars>

O * em cada parte tem a seguinte função:

  • scheme: * corresponde a HTTP ou HTTPS.
  • host:
    • * corresponde a qualquer host
    • *.hostname corresponde ao host especificado e a qualquer um dos subdomínios dele.
  • path: * corresponde a 0 ou mais caracteres.

Todos os segmentos não são necessários em um padrão excluído.

  • Se o segmento scheme não for especificado, o padrão será *://.
  • O segmento host sempre precisa ser especificado.
  • Se o segmento path não for especificado, o padrão será:
    • /*, se os segmentos query e fragment não forem especificados. Esse valor corresponde a qualquer path ou nenhum path.
    • / ou um path vazio, se o segmento query ou fragment for especificado.
  • Se o segmento query não for especificado, o padrão será:
    • ?*, se o segmento fragment não for especificado. Esse valor corresponde a qualquer query ou nenhum query.
    • ? ou um query vazio, se fragment for especificado.
  • Se o segmento fragment não for especificado, o padrão será #*, que corresponde a fragment ou nenhum fragment.

Correspondentes de padrão válidos

A tabela a seguir fornece exemplos de padrões válidos:

Padrão Comportamento Exemplos de URLs correspondentes
http://*/* Corresponde a qualquer URL que usa o esquema HTTP.

http://www.google.com/

http://example.org/foo/bar.html

http://*/foo* Corresponde a qualquer URL que usa o esquema HTTP em qualquer host, se o caminho começar com /foo.

http://example.com/foo/bar.html

http://www.google.com/foo

https://*.google.com/foo*bar Corresponde a qualquer URL que use o esquema HTTPS e esteja em um host google.com, como www.google.com, docs.google.com ou google.com, se o caminho começar com /foo e terminar com bar.

http://www.google.com/foo/baz/bar

http://docs.google.com/foobar

http://example.org/foo/bar.html Corresponde ao URL especificado. http://example.org/foo/bar.html
http://127.0.0.1/* Corresponde a qualquer URL que usa o esquema HTTP e está no host 127.0.0.1.

http://127.0.0.1/

http://127.0.0.1/foo/bar.html

*://mail.google.com/* Corresponde a qualquer URL que comece com http://mail.google.com ou https://mail.google.com.

http://mail.google.com/foo/baz/bar

https://mail.google.com/foobar

*://*/foo*?*bar=baz* Corresponde a qualquer URL em que o caminho começa com /foo e tem o parâmetro de consulta bar=baz. https://www.google.com/foo/example?bar=baz
google.com/app#*open* Corresponde a qualquer URL com um host google.com em que o caminho começa com /app e tem o fragmento open. https://www.google.com/app/example#open

Correspondentes de padrão inválidos

A tabela a seguir mostra exemplos de padrões inválidos:

Padrão Motivo
http://www.google.com O URL não inclui um caminho.
http://*foo/bar * no host precisa ser seguido por um . ou /.
http://foo.*.bar/baz Se * estiver no host, ele precisará ser o primeiro caractere.
http:/bar O URL é um separador de esquema não formatado corretamente. O "/" precisa ser "//".
foo://* O esquema de URL é inválido.

A seguir