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 e IPs públicos 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 da verificação, 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 escolhido 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.
Se o Security Command Center estiver ativo, será possível ativar o Web Security Scanner no console do Google Cloud na página de configurações do Security Command Center.
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:
Acesse a página IAM e administrador no console do Google Cloud.
Clique na lista suspensa Seletor de projetos.
Na caixa de diálogo Selecionar de exibida, selecione o projeto que você quer verificar usando o Web Security Scanner.
Na página IAM, ao lado do seu nome de usuário, clique em Editar.
No painel Editar permissões, clique em Adicionar outro papel e selecione um dos seguintes papéis:
- Projeto > Proprietário
- Projeto > Editor
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:
Acesse a página Web Security Scanner no console do Google Cloud.
Selecione o projeto que contém o aplicativo implantado que você quer verificar.
Para configurar uma nova verificação, clique em Nova verificação:
Na página Criar uma nova verificação que é carregada, defina os seguintes valores:
- Em URLs iniciais, insira o URL do aplicativo que você quer verificar.
- Em Programação, selecione Semanal.
- 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 as configurações de verificação, consulte Como verificar um app.
Para criar a verificação, clique em Salvar.
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. Pode levar várias horas até que a verificação seja executada.
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 de resultados de verificação quando nenhuma vulnerabilidade é 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 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
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- 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
Acesse a página Web Security Scanner no console do Google Cloud.
Clique em Selecionar e selecione um projeto que já tenha um aplicativo do App Engine, do Compute Engine ou do GKE implantado.
Para exibir o formulário da nova verificação, clique em Criar verificação ou Nova verificação.
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 detalhes e exemplos de padrões válidos, consulte Como excluir URLs mais adiante 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 Google Workspace, poderá 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 é aceita.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:
- Acesse a página do IAP no console do Google Cloud.
- Selecione o projeto que você quer usar com o Web Security Scanner.
- Selecione o recurso do aplicativo que você quer verificar e clique em Adicionar participante no painel de informações.
-
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
. - Na lista suspensa Selecionar um papel, selecione Cloud IAP > Usuário do app da Web protegido pelo IAP.
- 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:
- Acesse a página do IAP no console do Google Cloud.
- Selecione o projeto que você quer usar com o Web Security Scanner.
- No menu flutuante, selecione Editar cliente OAuth.
- Na janela ID do cliente para aplicativo da Web que aparece, copie o ID do cliente.
- Acesse a página Web Security Scanner no console do Google Cloud.
- Em Autenticação, selecione Identity-Aware Proxy Alfa.
- 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 do formulário de login, o nome de 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 verificar. Especificamente, esse método procura um formulário de login de dois campos que inclui um campo
username
epassword
. 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 com mais
do que um único campo
username
epassword
; - não salvar um cookie de autenticação no login bem-sucedido;
- Em algumas situações, o scanner pode ser negado por medidas de medição destinadas à 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 definir que a verificação seja executada diariamente, semanalmente, a cada duas semanas ou a cada quatro semanas. É melhor criar uma verificação programada para garantir que versões futuras do 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 (pré-lançamento) 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 essa 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 for selecionada e a porcentagem de erros de status exceder um limite predeterminado, a verificação será relatada como uma falha. 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:
- Faça login na conta de teste que você usou para criar a verificação.
Acesse a página Web Security Scanner no console do Google Cloud.
Clique em Selecionar e selecione o projeto em que você criou a verificação.
Em Verificar configurações, clique no nome da verificação que você quer executar.
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:
- Faça login na conta de teste que você usou para criar a verificação.
Acesse a página Web Security Scanner no console do Google Cloud.
Clique em Selecionar e selecione o projeto que contém a verificação que você quer analisar.
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 vai mostrar 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)
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:
- Faça login na conta de teste que você usou para criar a verificação.
Acesse a página Web Security Scanner no console do Google Cloud.
Clique em Selecionar e selecione o projeto que contém a verificação que você quer editar.
Em Configs da verificação, clique no nome da verificação que você quer editar.
Na página de detalhes da verificação que aparece, clique em Editar.
Na página Editando [nome da verificação] que aparece, faça as alterações pretendidas e clique 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:
- Faça login na conta de teste que você usou para criar a verificação.
Acesse a página Web Security Scanner no console do Google Cloud.
Clique em Selecionar e selecione o projeto que contém a verificação que você quer editar.
Em Verificar configurações, marque a caixa de seleção ao lado de uma ou mais verificações que você quer excluir.
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. 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. 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 seja do Google.
Etapa 1: como configurar o firewall
Acesse a página "Regras de firewall" no Console do Google Cloud.
Clique em Selecionar e selecione seu projeto.
Na página Regras de firewall exibida, clique em Criar regra de firewall.
Na página Criar uma regra de firewall, defina os seguintes valores:
- Nome: insira
web-security-scanner
ou um nome semelhante. - 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.
- Intervalos de IP de origem: insira
34.66.18.0/26
e34.66.114.64/26
. - 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
e443
para as portas.
- Nome: insira
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:
Acesse a página Web Security Scanner no console do Google Cloud.
Clique em Selecionar e selecione seu projeto.
Crie uma nova verificação ou edite uma atual.
Marque a caixa de seleção Executar verificações a partir de um conjunto predefinido de IPs de origem.
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 segmentosquery
efragment
não forem especificados. Esse valor corresponde a qualquerpath
ou nenhumpath
./
ou umpath
vazio, se o segmentoquery
oufragment
for especificado.
Se o segmento
query
não for especificado, o padrão será:?*
, se o segmentofragment
não for especificado. Esse valor corresponde a qualquerquery
ou nenhumquery
.?
ou umquery
vazio, sefragment
for especificado.
Se o segmento
fragment
não for especificado, o padrão será#*
, que corresponde a qualquerfragment
ou nenhumfragment
.
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://*/foo* |
Corresponde a qualquer URL que usa o esquema HTTP em qualquer host se o caminho começar
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://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 .
|
|
*://mail.google.com/* |
Corresponde a qualquer URL que comece com http://mail.google.com ou
https://mail.google.com . |
|
*://*/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
- Saiba como corrigir as descobertas do Web Security Scanner.