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 oferece suporte a verificações para URLs e IPs públicos que não estão protegidos por 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 da verificação, audite cuidadosamente seu aplicativo para detectar qualquer recurso que possa afetam dados, usuários ou sistemas além do escopo escolhido da 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.

Se o Security Command Center estiver ativo, será ativar o Web Security Scanner no console do Google Cloud na o Security Command Center Página Configurações

Etapa 1: implantar um aplicativo de teste

Para concluir a configuração do Web Security Scanner para verificações personalizadas, você precisa do URL de um Compute Engine, Google Kubernetes Engine (GKE) ou aplicativo do App Engine que já foi implantado. Se você não tiver um aplicativo implantado ou quiser testar o Web Security Scanner com um aplicativo de teste, implante-o aplicativo 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, 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 Web Security Scanner no console do Google Cloud.

    Acesse 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 poderão 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 as configurações de verificação, consulte Como verificar um app.

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

    A verificação será colocada na fila e será executada posteriormente. A verificação pode levar várias horas.

  7. A página de informações gerais da verificação vai mostrar uma seção de resultados quando ela for concluída. A imagem a seguir mostra um exemplo dos resultados de uma verificação quando não há vulnerabilidades detectado:

    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ê digitalizou próprio aplicativo, saiba como personalizar a verificação no seção como verificar um app 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. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

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.

    Acesse 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 básico geralmente requer apenas um URL inicial, como a página inicial, principal ou de destino do site, a partir do qual o Web Security Scanner pode encontrar todas as outras páginas do site. No entanto, O Web Security Scanner pode não encontrar todas as páginas se um site tiver:

    • Muitas páginas
    • Ilhas de páginas não conectadas
    • Navegação que requer JavaScript complexo, como um menu multinível ativado por mouseover

    Nesses casos, especifique URLs iniciais adicionais 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 mais detalhes e exemplos de padrões válidos, consulte Exclua URLs posteriormente nesta página.
    Autenticação > Conta do Google

    Crie uma conta de teste no Gmail e use-a para escaneie seu produto. Se você é cliente do Google Workspace, pode 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. A autenticação de dois fatores não é suporte.

    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 bloco primeiro conceda acesso ao serviço Web Security Scanner conta:

    1. Acesse o 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 principal no Painel de informações.
    4. Na caixa Novos principais em Adicionar principais digite a conta de serviço do Web Security Scanner no 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. Web Security Scanner só verifica se há aplicativos protegidos por uma única ID do cliente. Para adicionar o ID do cliente OAuth:

    1. Acesse o 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 é exibida, Copie o ID do cliente.
    5. Acesse o 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 esta opção se você tiver criado sua própria autenticação e você não estiver usando os serviços da Conta do Google. Especifique o o URL do formulário de login, o nome de usuário e a senha. Essas credenciais são usados para fazer login e escanear o aplicativo.

    O Web Security Scanner tenta heurística para fazer login no seu aplicativo e a verificar. Especificamente, esse método procura um formulário de login de dois campos que inclui um campo username e 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 password.
    • Usar um formulário de login complicado, por exemplo, um formulário com mais do que uma única username e password .
    • não salvar um cookie de autenticação no login bem-sucedido;
    • Em algumas situações, o scanner é negado por contramedidas para proteção contra bots, DDoS e outros ataques.

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

    Programar É possível configurar a verificação para ser executada diariamente, semanalmente, a cada duas semanas ou a cada quatro semanas. É melhor criar uma verificação agendada para garantir que os do seu aplicativo são testadas. Além disso, como às vezes lançar verificações que encontram novos tipos de bugs, executando verificações programadas oferece mais cobertura sem esforço manual.
    Executar verificações a partir de um conjunto predefinido de IPs de origem (Prévia) 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 as 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 as configurações de verificação e os resultados da 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 Bad Request**, 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 estiver selecionada, e o a porcentagem de erros de status exceder um limite predeterminado, o verificação é reportada como falha.
  5. Quando terminar de adicionar valores, clique em Criar. Agora é possível executar digitalizar.

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.

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

    Acesse Web Security Scanner

  3. Clique em Selecionar e escolha o projeto que contém a verificação que você quer revisar.

  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 um estiver em andamento, a guia Resultados exibirá o resultado atual de 100%. 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)

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

    Acesse 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 Editing [scan name] que aparece, faça as alterações que você desejado e em Salvar.

A verificação personalizada editada é executada na próxima vez que for programada ou pode ser executada manualmente para receber 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.

    Acesse Web Security Scanner

  3. Clique em Selecionar e escolha 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

Esta seção descreve como ativar as 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. Este recurso está em pré-lançamento, e o IP do Web Security Scanner podem 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. 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. Esse recurso não é compatível com verificações que usam autenticação de conta que não é do Google.

Etapa 1: como configurar o firewall

  1. Acesse a página "Regras de firewall" no Console do Google Cloud.

    Acessar as 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 uma 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 as 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 sejam usados, configure a verificação para usar IPs predefinidos:

  1. Acesse a página Web Security Scanner no console do Google Cloud.

    Acesse 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 nenhum 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 usa o esquema HTTPS e está 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 esteja 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 . ou /.
http://foo.*.bar/baz Se * estiver no host, ele precisa 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