Práticas recomendadas de segurança da Web

Práticas recomendadas para segurança na Web

O Cloud CDN e o Cloud Load Balancing podem ajudar a atender às práticas recomendadas de segurança da Web, seja ao exibir conteúdo de instâncias do Compute Engine, de um bucket do Cloud Storage ou de uma origem externa fora do Use o Google Cloud.

Definir cabeçalhos de segurança

A especificação do HTTP tem vários cabeçalhos que controlam o seguinte:

  • Comportamento do cliente
  • Como o conteúdo é incorporado
  • Como o conteúdo é veiculado em vários domínios
  • Se o TLS (HTTPS) sempre será usado ao se conectar a esse domínio.

Esses controles geralmente são representados como cabeçalhos de resposta HTTP, que você pode definir para cada back-end (origem, em termos de CDN) como cabeçalhos de resposta personalizados para a implantação do balanceador de carga de aplicativo externo e do Cloud CDN.

Se você estiver usando o Cloud Storage e exibindo conteúdo da Web do bucket, use o Cloud CDN na frente do bucket de armazenamento para definir cabeçalhos de segurança da Web e armazenar conteúdo em cache. de dados.

Os cabeçalhos de segurança da Web mais úteis são definidos na tabela a seguir.

Nome do cabeçalho Descrição Exemplo de uso
Strict-Transport-Security (HSTS) Garante que seus domínios tenham certificados SSL (TLS) válidos antes da configuração desse cabeçalho.

Informa aos clientes que eles precisam se conectar ao seu domínio diretamente por HTTPS (SSL/TLS), evitando a necessidade de redirecionar de HTTP para HTTPS, que é mais lento e apresenta o risco de uma pessoa no meio. ataque.

A configuração desse cabeçalho é irreversível. Depois de armazenar esse cabeçalho em cache, os clientes do navegador moderno não tentam conexões não HTTPS, e os usuários não podem acessar nenhum domínio para o qual tenham recebido esse cabeçalho, mesmo que o SSL esteja desativado. Esse comportamento impede que um invasor faça downgrade do protocolo seguro para o HTTP desprotegido, conhecido como ataque de downgrade.

Ao exibir o cabeçalho Strict-Transport-Security, tenha cuidado ao adicionar as diretivas includeSubdomains ou preload. Essas diretivas exigem que qualquer subdomínio use HTTPS, incluindo sites internos no mesmo domínio. Por exemplo, support.example.com quando exibido por example.com.

Exija que os clientes se conectem diretamente por HTTPS em todas as conexões futuras, armazenando em cache esta diretiva por até dois anos:

Strict-Transport-Security: max-age=3104000

X-Frame-Options Indica se um navegador pode renderizar uma página em um <frame>, <iframe>, <embed> ou <object>. Isso ajuda a evitar ataques de jacking jacking, não permitindo que seu conteúdo seja incorporado a outros sites. Negar todo o enquadramento do seu site: X-Frame-Options: DENY

Permitir que apenas seu site tenha um iframe (incorporado): X-Frame-Options: SAMEORIGIN

Content-Security-Policy Para avaliar a política de segurança de conteúdo do seu site, use a ferramenta CSP Evaluator do Google. Não permita scripts in-line e carregue apenas scripts por HTTPS: Content-Security-Policy: default-src https:

Tenha cuidado ao introduzir novos cabeçalhos de segurança em sites existentes, porque eles podem corromper scripts de terceiros, conteúdo incorporado (por exemplo, em iframes) ou outros aspectos dos seus sites. Antes de fazer alterações no tráfego de produção, recomendamos criar uma segunda instância do bucket ou serviço de back-end e testar.

Leia mais sobre cabeçalhos e práticas recomendadas de segurança da Web em web.dev (em inglês) e também no site Infosec da Mozilla.

TLS e gerenciamento de certificados

Os certificados gerenciados têm as seguintes características:

  • são fornecidos sem custo.
  • podem ser facilmente implantadas nos balanceadores de carga.
  • Renovar automaticamente
  • São distribuídos globalmente em todos os locais de extremidade do Google

O TLS fornece autenticidade validando que os dados não foram modificados em trânsito. Os certificados TLS fornecem confidencialidade garantindo que um interceptor não possa determinar o que está sendo trocado entre usuários e servidores. Isso é importante para a privacidade e a segurança do usuário.

Com os certificados SSL, você pode se beneficiar dos protocolos de transporte modernos, como o HTTP/2 e o protocolo QUIC do Google, que exigem SSL (TLS). de dados. Esses protocolos melhoram diretamente o desempenho do conteúdo da Web, a entrega de mídia (como streaming de vídeo) e a confiabilidade em redes congestionadas.

O Google Cloud é compatível com protocolos TLS modernos (como TLS 1.3) em todos os serviços do Cloud Load Balancing e do Cloud CDN.

Você pode usar políticas de SSL para aumentar a versão mínima do TLS. Recomendamos atualizar a versão para o TLS v1.2 se você não precisar de compatibilidade com clientes mais antigos, como dispositivos incorporados, ou com mais de 10 anos, que não sejam de navegadores. Globalmente, TLS v1.0 e TLS v1.1 representam menos de 0,5% das conexões em todo o Google Cloud. Se você precisar identificar ou associar clientes específicos a versões desatualizadas do TLS, use a variável {tls_version} em um cabeçalho de solicitação. É possível registrar essas informações.

A seguir