O Web Security Scanner identifica vulnerabilidades de segurança e configurações incorretas nas suas aplicações Web do App Engine, Google Kubernetes Engine (GKE) e Compute Engine. Analisa a sua aplicação, seguindo todos os links no âmbito dos URLs de início e tenta exercer o maior número possível de entradas do utilizador e controladores de eventos. O Web Security Scanner apenas suporta URLs e IPs públicos que não estejam atrás de uma firewall.
O Web Security Scanner suporta o ambiente padrão do App Engine e os ambientes flexíveis do App Engine, as instâncias do Compute Engine e os recursos do GKE.
O Web Security Scanner foi concebido para complementar os seus processos de design e desenvolvimento seguros existentes. Para evitar distrair com falsos positivos, o Web Security Scanner tende a subestimar os relatórios e não apresenta alertas de confiança baixa. Não substitui uma revisão de segurança manual e não garante que a sua aplicação não tenha falhas de segurança.
As conclusões categorizadas como configurações incorretas representam problemas que podem ser resolvidos através da ação do cliente, atualizando as configurações. Embora estas conclusões sejam importantes para melhorar a postura de segurança, são distintas das vulnerabilidades, que representam fraquezas ativamente exploráveis. Pode ver estas configurações incorretas na página Resultados do Security Command Center. Para mais informações, consulte o artigo Resultados de configuração incorreta do Web Security Scanner.
Tipos de análises
O Web Security Scanner oferece análise de vulnerabilidades Web gerida e personalizada para aplicações Web públicas do App Engine, GKE e Compute Engine.
Análises geridas
As análises geridas do Web Security Scanner são configuradas e geridas pelo Security Command Center. As análises geridas são executadas automaticamente uma vez por semana para detetar e analisar os pontos finais da Web públicos. Estas análises não usam autenticação e enviam pedidos apenas GET, pelo que não enviam formulários em Websites ativos.
As análises geridas são executadas separadamente das análises personalizadas.
Se o Security Command Center estiver ativado ao nível da organização, pode usar as análises geridas para gerir centralmente a deteção de vulnerabilidades básicas de aplicações Web para projetos na sua organização, sem ter de envolver equipas de projetos individuais. Quando são detetadas conclusões, pode trabalhar com essas equipas para configurar análises personalizadas mais abrangentes.
Quando ativa o Web Security Scanner como um serviço, as conclusões da análise geridas ficam automaticamente disponíveis na página Vulnerabilidades do Security Command Center e nos relatórios relacionados. Para obter informações sobre como ativar as análises geridas do Web Security Scanner, consulte o artigo Configure os serviços do Security Command Center.
As análises geridas suportam apenas aplicações que usam a porta predefinida, que é 80 para ligações HTTP e 443 para ligações HTTPS. Se a sua aplicação usar uma porta não predefinida, faça uma análise personalizada.
Análises personalizadas
As análises personalizadas do verificador de segurança Web fornecem informações detalhadas sobre as conclusões de vulnerabilidades das aplicações, como bibliotecas desatualizadas, scripting entre sites ou utilização de conteúdo misto.
Define as análises personalizadas ao nível do projeto.
Os resultados da análise personalizada estão disponíveis no Security Command Center depois de concluir o guia para configurar análises personalizadas do Web Security Scanner.
Resultados da análise
Esta secção descreve os tipos de resultados do Web Security Scanner e as normas de conformidade relevantes.
Detetores e conformidade
O Web Security Scanner suporta categorias no OWASP Top Ten, um documento que classifica e fornece orientações de remediação para os 10 principais riscos de segurança de apps Web mais críticos, conforme determinado pelo Open Web Application Security Project (OWASP).
O mapeamento de conformidade é incluído para referência e não é fornecido nem revisto pela OWASP Foundation. Destina-se apenas a monitorizar violações dos controlos de conformidade. Os mapeamentos não são fornecidos para utilização como base ou substituição da auditoria, certificação ou relatório de conformidade dos seus produtos ou serviços com quaisquer referências ou normas regulamentares ou da indústria.
Para mais informações sobre a conformidade, consulte o artigo Avalie e comunique a conformidade com as referências de segurança.
Tipos de localização
As análises personalizadas e geridas do Web Security Scanner identificam os seguintes tipos de resultados. No nível Standard, o Web Security Scanner suporta análises personalizadas de aplicações implementadas com IPs e URLs públicos que não estão atrás de uma firewall.
Categoria | A encontrar a descrição | Categoria dos resultados | 10 principais OWASP 2017 | 10 principais OWASP de 2021 |
---|---|---|---|---|
|
Um repositório Git é exposto publicamente. Para resolver esta descoberta, remova o acesso público não intencional ao repositório GIT. Nível de preços: Premium ou Standard |
Vulnerabilidade | A5 | A01 |
|
Um repositório SVN é exposto publicamente. Para resolver esta deteção, remova o acesso público não intencional ao repositório SVN. Nível de preços: Premium ou Standard |
Vulnerabilidade | A5 | A01 |
|
Um ficheiro ENV é exposto publicamente. Para resolver esta descoberta, remova o acesso público não intencional ao ficheiro ENV. Nível de preços: Premium ou Standard |
Vulnerabilidade | A5 | A01 |
|
As palavras-passe introduzidas na aplicação Web podem ser armazenadas em cache numa cache do navegador normal em vez de num armazenamento seguro de palavras-passe. Nível de preços: Premium |
Vulnerabilidade | A3 | A04 |
|
As palavras-passe estão a ser transmitidas em texto não codificado e podem ser intercetadas. Para resolver esta localização, encriptar a palavra-passe transmitida através da rede. Nível de preços: Premium ou Standard |
Vulnerabilidade | A3 | A02 |
|
Um ponto final HTTP ou HTTPS entre sites valida apenas um sufixo do cabeçalho de pedido Nível de preços: Premium |
Vulnerabilidade | A5 | A01 |
|
Um ponto final HTTP ou HTTPS entre sites valida apenas um prefixo do cabeçalho de pedido Nível de preços: Premium |
Vulnerabilidade | A5 | A01 |
|
Foi carregado um recurso que não corresponde ao cabeçalho HTTP Tipo de conteúdo da resposta. Para
resolver esta descoberta, defina o cabeçalho HTTP com o valor correto. Nível de preços: Premium ou Standard |
Vulnerabilidade | A6 | A05 |
|
Um cabeçalho de segurança tem um erro de sintaxe e é ignorado pelos navegadores. Para resolver esta descoberta, defina os cabeçalhos de segurança HTTP corretamente. Nível de preços: Premium ou Standard |
Vulnerabilidade | A6 | A05 |
|
Um cabeçalho de segurança tem valores duplicados ou em conflito, o que resulta num comportamento indefinido. Para resolver esta descoberta, defina os cabeçalhos de segurança HTTP corretamente. Nível de preços: Premium ou Standard |
Vulnerabilidade | A6 | A05 |
|
Um cabeçalho de segurança tem um erro ortográfico e é ignorado. Para resolver esta descoberta, defina os cabeçalhos de segurança HTTP corretamente. Nível de preços: Premium ou Standard |
Vulnerabilidade | A6 | A05 |
|
Os recursos estão a ser publicados através de HTTP numa página HTTPS. Para resolver esta descoberta, certifique-se de que todos os recursos são publicados através de HTTPS. Nível de preços: Premium ou Standard |
Vulnerabilidade | A6 | A05 |
|
Foi detetada uma biblioteca com vulnerabilidades conhecidas. Para resolver esta descoberta, atualize as bibliotecas para uma versão mais recente. Nível de preços: Premium ou Standard |
Vulnerabilidade | A9 | A06 |
|
Foi detetada uma vulnerabilidade de falsificação de pedidos do lado do servidor (SSRF). Para resolver esta descoberta, use uma lista de autorizações para limitar os domínios e os endereços IP para os quais a aplicação Web pode fazer pedidos. Nível de preços: Premium ou Standard |
Vulnerabilidade | Não aplicável | A10 |
|
Quando faz um pedido entre domínios, a aplicação Web inclui o identificador da sessão do utilizador
no respetivo cabeçalho do pedido Nível de preços: Premium |
Vulnerabilidade | A2 | A07 |
|
Foi detetada uma potencial vulnerabilidade de injeção SQL. Para resolver esta descoberta, use consultas parametrizadas para impedir que as entradas do utilizador influenciem a estrutura da consulta SQL. Nível de preços: Premium |
Vulnerabilidade | A1 | A03 |
|
Foi detetada a utilização de uma versão vulnerável do Apache Struts. Para resolver esta deteção, atualize o Apache Struts para a versão mais recente. Nível de preços: Premium |
Vulnerabilidade | A8 | A08 |
|
Um campo nesta aplicação Web está vulnerável a um ataque de cross-site scripting (XSS). Para resolver esta descoberta, valide e escape os dados fornecidos pelo utilizador não fidedignos. Nível de preços: Premium ou Standard |
Vulnerabilidade | A7 | A03 |
|
Uma string fornecida pelo utilizador não tem carateres de escape e o AngularJS pode interpolá-la. Para resolver esta detetada, valide e escape os dados fornecidos pelo utilizador não fidedignos processados pela framework Angular. Nível de preços: Premium ou Standard |
Vulnerabilidade | A7 | A03 |
|
Um campo nesta aplicação Web está vulnerável a um ataque de cross-site scripting. Para resolver esta descoberta, valide e escape os dados fornecidos pelo utilizador não fidedignos. Nível de preços: Premium ou Standard |
Vulnerabilidade | A7 | A03 |
|
Foi detetada uma vulnerabilidade de entidade externa XML (XXE). Esta vulnerabilidade pode fazer com que a aplicação Web divulgue um ficheiro no anfitrião. Para resolver esta descoberta, configure os analisadores XML para não permitir entidades externas. Nível de preços: Premium |
Vulnerabilidade | A4 | A05 |
|
A aplicação está vulnerável à poluição de protótipos. Esta vulnerabilidade surge quando as propriedades do objeto Nível de preços: Premium ou Standard |
Vulnerabilidade | A1 | A03 |
|
Foi detetado um cabeçalho HTTP Strict Transport Security (HSTS) configurado incorretamente. Para reduzir significativamente o risco de alteração das ligações HTTP para versões inferiores e de ataques de escutas, resolva o cabeçalho HSTS configurado incorretamente. Os cabeçalhos HSTS forçam as ligações através de canais encriptados (TLS) para que as ligações HTTP em texto simples falhem. Saiba mais sobre os cabeçalhos HSTS
Nível de preços: Premium |
Erro de configuração | Não aplicável | Não aplicável |
|
Foi detetado um cabeçalho de resposta HTTP da Política de Segurança de Conteúdos (CSP) em falta. Os cabeçalhos CSP mitigam a exploração de vulnerabilidades Web comuns, particularmente o cross-site scripting XSS, impedindo o carregamento de scripts ou plug-ins não fidedignos. Recomendamos um cabeçalho CSP rigoroso. Saiba mais acerca dos cabeçalhos CSP
Nível de preços: Premium |
Erro de configuração | Não aplicável | Não aplicável |
|
Foi detetado um cabeçalho de resposta HTTP da Política de Segurança de Conteúdos (CSP) configurado incorretamente. Os cabeçalhos CSP mitigam a exploração de vulnerabilidades Web comuns, particularmente o cross-site scripting XSS, impedindo o carregamento de scripts ou plug-ins não fidedignos. Recomendamos um cabeçalho CSP restritivo. Saiba mais acerca dos cabeçalhos CSP
Nível de preços: Premium |
Erro de configuração | Não aplicável | Não aplicável |
|
Foi detetado um cabeçalho HTTP Cross-Origin-Opener-Policy (COOP) em falta. A COOP é um mecanismo de segurança Web que restringe o acesso de uma página aberta numa nova janela às propriedades da respetiva página de origem. A COOP oferece uma camada de proteção forte contra ataques Web comuns.
Nível de preços: Premium |
Erro de configuração | Não aplicável | Não aplicável |
|
Foi detetado um cabeçalho de resposta em falta. Para evitar o clickjacking, implemente um cabeçalho de resposta HTTP, como um
Nível de preços: Premium |
Erro de configuração | Não aplicável | Não aplicável |
Advertências de utilização
As funções do IAM para o Security Command Center podem ser concedidas ao nível da organização, da pasta ou do projeto. A sua capacidade de ver, editar, criar ou atualizar resultados, recursos e origens de segurança depende do nível para o qual lhe é concedido acesso. Para saber mais sobre as funções do Security Command Center, consulte o artigo Controlo de acesso.
Outros aspetos importantes a ter em atenção quando usar o Web Security Scanner:
- Uma vez que o Web Security Scanner está a ser continuamente melhorado, uma análise futura pode comunicar problemas que não são comunicados pela análise atual.
- Algumas funcionalidades ou secções da sua aplicação podem não ser testadas.
- O Web Security Scanner tenta ativar todos os controlos e entradas que encontra.
- O Web Security Scanner só suporta Websites que usam IPv4. Os Websites que usam IPv6 não são analisados.
- Se expuser ações de alteração de estado para as quais a sua conta de teste tem autorização, é provável que o Web Security Scanner as ative. Isto pode levar a resultados indesejáveis.
- O Web Security Scanner tem um limite de 15 análises por projeto. Uma vez que as análises são executadas em simultâneo, recomendamos aos utilizadores que atingem este limite que adicionem vários URLs iniciais por análise ou que adicionem análises a projetos diferentes que ainda não tenham atingido o limite.
Quem pode executar uma análise de segurança?
Para obter informações acerca das funções de gestão de identidade e de acesso (IAM) disponíveis para o Web Security Scanner, consulte o artigo Controlo de acesso.
Quanto tempo é necessário para uma análise de segurança?
A análise de segurança não é executada imediatamente. É colocado em fila e, em seguida, executado mais tarde, possivelmente horas mais tarde, consoante a carga do sistema. Depois de a análise começar a ser executada, o tempo necessário depende do tamanho da sua aplicação. Uma análise de uma aplicação grande com muitos URLs pode demorar várias horas ou até dias. Se uma análise não for concluída no prazo de 20 dias, é interrompida automaticamente, e todos os resultados da rastreio e as conclusões encontradas durante a análise ficam visíveis como o resultado da análise.
Restrições de alvos
O Web Security Scanner tem filtros implementados que restringem os alvos da análise à instância específica do App Engine para a qual a análise é criada. A introdução de URLs para um projeto do App Engine diferente ou um domínio externo resulta numa mensagem de erro.
As análises do Compute Engine e do GKE estão restritas a domínios que mapeiam para endereços IP externos estáticos reservados para o mesmo projeto e endereços IP externos estáticos que pertencem ao mesmo projeto. Para ver instruções sobre como reservar endereços IP para projetos, consulte os seguintes links:
Compute Engine: Reservar um endereço IP externo estático
O App Engine não oferece uma forma de mapear endereços IP estáticos para uma aplicação. No entanto, pode usar o Cloud Load Balancing e os grupos de pontos finais de rede sem servidor para reservar um endereço IP estático para o equilibrador de carga, que, em seguida, direciona o tráfego para a sua aplicação. Para ver informações sobre preços, consulte Todos os preços de rede.
No seu projeto, o Web Security Scanner tenta automaticamente evitar URLs de saída e outras localizações genéricas que possam afetar negativamente uma análise. No entanto, para ter a certeza, pode usar as definições de análise para excluir URLs manualmente.
Validação
As configurações de análise são validadas quando são criadas e antes de cada análise. O Web Security Scanner verifica as definições do Security Command Center e as credenciais de autenticação da sua aplicação para garantir que as análises estão configuradas corretamente e que é possível iniciar sessão na sua aplicação com êxito. Os parâmetros de configuração, incluindo a velocidade de leitura máxima, também são verificados para garantir que estão dentro dos intervalos suportados.
Tem de resolver os erros antes de criar ou atualizar uma análise. As aplicações que são alteradas após a configuração inicial podem produzir erros durante as análises. Por exemplo, se um domínio já não apontar para um endereço IP pertencente ao projeto, o recurso não é analisado e é comunicado um erro na página de configuração da análise.
Práticas recomendadas
Uma vez que o Web Security Scanner preenche campos, prime botões, clica em links e executa outras ações do utilizador, deve usá-lo com precaução, especialmente se estiver a analisar recursos de produção. O verificador de segurança Web pode potencialmente ativar funcionalidades que alteram o estado dos seus dados ou sistema, com resultados indesejáveis.
Por exemplo:
- Numa aplicação de blogue que permita comentários públicos, o Web Security Scanner pode publicar strings de teste como comentários em todos os artigos do seu blogue.
- Numa página de inscrição por email, o Web Security Scanner pode gerar um grande número de emails de teste.
Seguem-se algumas técnicas que pode usar, separadamente ou em combinação, para evitar resultados indesejados:
- Execute as análises num ambiente de teste. Configure um ambiente de teste criando um projeto do App Engine separado e carregando a sua aplicação e dados aí. Se usar a CLI do Google Cloud, pode especificar o projeto de destino como uma opção de linha de comandos quando carregar a sua app.
- Use uma conta de teste. Crie uma conta de utilizador que não tenha acesso a dados confidenciais ou operações prejudiciais e use-a ao analisar a sua app. Muitas aplicações apresentam um fluxo de trabalho especial durante o primeiro início de sessão de um utilizador, como aceitar termos e criar um perfil. Devido ao fluxo de trabalho diferente, uma conta de teste para um utilizador inicial pode ter resultados da análise diferentes de uma conta de utilizador estabelecida. É melhor fazer a análise com uma conta que esteja no estado de utilizador normal, após a conclusão do fluxo de primeira vez.
- Bloqueie elementos individuais da interface do utilizador que não quer que sejam ativados aplicando a classe CSS
inq-no-click
. Os controladores de eventos anexados a este elemento não são ativados durante a indexação nem os testes, independentemente de serem JavaScript inline ou anexados através deaddEventListener
ou anexados definindo a propriedade do controlador de eventos adequada. - Use dados de cópia de segurança. Recomendamos que faça uma cópia de segurança dos seus dados antes de analisar.
- URLs excluídos. Pode especificar padrões de URL que não vão ser rastreados nem testados. Para informações sobre a sintaxe, consulte o artigo Excluir URLs.
Antes de analisar, audite cuidadosamente a sua aplicação para verificar se existe alguma funcionalidade que possa afetar os dados, os utilizadores ou os sistemas fora do âmbito da sua análise.
O que se segue?
- Comece a usar o Web Security Scanner.