Como Implementar HSTS e CSP no Edge com Azion Applications

Guia prático para aplicar HSTS e Content Security Policy (CSP) no edge usando Azion. Passo a passo com exemplos de Rules Engine, checklist de rollout, monitoramento e métricas antes/depois para melhorar a segurança e reduzir riscos de downgrade, MITM e XSS.

Artur Rossa - Principal Product Manager

Introdução

Em um cenário de crescentes ameaças digitais, cabeçalhos de segurança como HSTS e CSP são essenciais para proteger aplicações web e seus usuários. No entanto, muitos domínios ainda não implementam essas proteções de forma eficaz. Este artigo tem como objetivo fornecer um guia técnico e prático para implementar HSTS e CSP no edge usando Azion Applications, com exemplos de regras no Rules Engine e um checklist para garantir uma implementação bem-sucedida.


Por que HSTS + CSP são importantes?

  • HSTS (Strict-Transport-Security): instrui navegadores a sempre usar HTTPS para o domínio por um período definido (max-age). Protege contra ataques de downgrade e reduz janelas para ataques MITM (Man-in-the-Middle).
  • CSP (Content-Security-Policy): define fontes confiáveis para scripts, estilos, imagens, conexões, frames, entre outros, mitigando ataques de XSS (Cross-Site Scripting) e exfiltração de dados via recursos de terceiros.
  • Benefícios combinados: reduzem a superfície de ataque, aumentam a segurança de aplicações que manipulam dados sensíveis e ajudam a atender requisitos regulatórios como LGPD e HIPAA.

Benefícios da aplicação no edge com Azion

  • Entrega com latência reduzida: cabeçalhos são aplicados na primeira linha de presença, reduzindo latência e protegendo antes que as requisições cheguem à origem.
  • Deploys instantâneos: mudanças podem ser aplicadas e revertidas rapidamente via Rules Engine, sem necessidade de alterações na infraestrutura da origem.
  • Proteção contínua: mesmo se a origem estiver indisponível, as políticas de segurança continuam sendo aplicadas no edge.

Resultados esperados após a implementação

  • Conexões forçadas para HTTPS: elimina riscos de downgrade.
  • Prevenção de XSS: bloqueio de scripts maliciosos com CSP.
  • Redução de latência: entrega de cabeçalhos diretamente no edge, reduzindo o tempo de aplicação de políticas.
  • Menos tráfego malicioso: bloqueio de requisições maliciosas antes de chegarem à origem.
  • Melhor postura de compliance: cabeçalhos de segurança ajudam a atender requisitos regulatórios e auditorias.

Implementação técnica — passo a passo no Console Azion

1. Forçar HTTPS (HTTP → HTTPS)

Objetivo: garantir que todas as conexões sejam feitas via HTTPS.

  1. Acesse o Console Azion > Applications.
  2. Selecione a Application desejada.
  3. Clique na aba Rules Engine.
  4. Clique em + Rule.
  5. Defina um nome e descrição, como “Redirect to HTTPS”.
  6. Selecione Request Phase.
  7. Em Criteria, defina para quais casos o header será adicionado. Caso queira adicioná-lo para todos, use esta regra:
  • IF `${uri}` STARTS WITH `/` .
  1. Em Behavior defina:
  • “Redirect HTTP to HTTPS”.
  1. Clique em Save.

2. Adicionar Header HSTS

Header recomendado:

  1. Acesse o Console Azion > Applications.
  2. Selecione a Application desejada.
  3. Clique na aba Rules Engine.
  4. Clique em + Rule.
  5. Defina um nome e descrição, como “Add HSTS Header”.
  6. Selecione Response Phase.
  7. Em Criteria, defina para quais casos o header será adicionado. Caso queira adicioná-lo para todos, use esta regra:
  • IF `${uri}` STARTS WITH `/` .
  1. Em Behavior defina:
  • Add Response Header e Strict-Transport-Security: max-age=31536000. includeSubDomains.
  1. Clique em “Save”.

Boas práticas:

  • Preload: só adicione o parâmetro preload após garantir que todos os subdomínios suportam HTTPS. Submeta o domínio em hstspreload.org para inclusão na lista de preload.
  • includeSubDomains: use apenas se todos os subdomínios estiverem configurados para HTTPS.

3. Inserir CSP

Como criar uma política CSP eficaz:

  1. Comece com um inventário de recursos:

    • Liste todos os scripts, estilos, imagens e outros recursos usados pelo seu site
    • Identifique todos os domínios de terceiros que fornecem recursos
  2. Defina diretivas por tipo de conteúdo:

    • default-src: diretiva fallback para outras diretivas não especificadas
    • script-src: controla quais scripts podem ser executados
    • style-src: controla estilos CSS
    • img-src: controla imagens
    • connect-src: limita origens para requisições fetch, XHR e WebSockets
  3. Evolua gradualmente:

    • Comece com políticas menos restritivas em modo report-only
    • Analise os relatórios e refine as regras
    • Migre para modo enforced quando tiver confiança na política
  4. Teste em diferentes ambientes:

    • Verifique o comportamento em vários navegadores
    • Teste com diferentes fluxos de usuário

Nota: Para referência completa sobre diretivas e valores suportados pelo CSP, consulte: https://content-security-policy.com/.

  1. Configurando o header CSP no Console Azion:

Aqui usamos em header com valores exemplo. Lembre de ajustar os valores para os seus domínios e recursos.

Inicie com o modo report-only: permite coletar relatórios de violações antes de aplicar a política em modo enforced.
Exemplo de como configurar o CSP header em modo report-only:

  1. Acesse o Console Azion > Applications.
  2. Selecione a Application desejada.
  3. Clique na aba Rules Engine.
  4. Clique em + Rule.
  5. Defina um nome e descrição, como “Add CSP Header”.
  6. Selecione Response Phase.
  7. Em Criteria, defina para quais casos o header será adicionado. Caso queira adicioná-lo para todos, use esta regra:
  • IF `${uri}` STARTS WITH `/` .
  1. Em Behavior defina:
  • Add Response Header e Content-Security-Policy-Report-Only: default-src 'self'. script-src 'self' https://trusted-scripts.example.com. style-src 'self' 'unsafe-inline'. img-src 'self' data: https:. connect-src 'self' https://api.example.com. frame-ancestors 'none'. report-uri https://example.com/csp-report.
  1. Clique em Save.

Após ajustes, aplique em modo enforced:

  1. No mesmo local do passo anterior, edite o valor do “Add Response Header” para:
  • Content-Security-Policy: default-src 'self'. script-src 'self' https://trusted-scripts.example.com. style-src 'self' 'unsafe-inline'. img-src 'self' data: https:. connect-src 'self' https://api.example.com. frame-ancestors 'none'..
  1. Clique em “Save”.

Boas práticas para CSP:

  • Minimize o uso de 'unsafe-inline' e prefira hashes ou nonces para scripts inline.
  • Use report-to para relatórios modernos, mas mantenha report-uri para compatibilidade com navegadores antigos.
  • Ajuste a política com base nos relatórios coletados antes de aplicar em modo enforced.

Checklist de rollout e monitoramento

  • Deploy canário: aplique as políticas em um subdomínio ou em uma pequena porcentagem do tráfego para testes iniciais.
  • Coleta de relatórios: envie relatórios CSP para um endpoint configurado para análise (ex.: SIEM ou banco de dados).
  • Ferramentas de verificação:
    • securityheaders.com para validação de cabeçalhos.
    • curl para verificar respostas HTTP diretamente.
  • Monitoramento contínuo: use ferramentas como Sentry ou Datadog para monitorar erros relacionados a CSP e HSTS.

Próximos passos

Deseja que eu gere as regras Azion prontas para importação no formato de sua preferência (UI JSON, API payload ou Terraform)? Ou prefere um guia detalhado para testes automatizados com curl?

Notas técnicas:

  • Exemplos fornecidos são representativos e podem precisar de ajustes conforme a versão do Azion Console ou API.
  • Certifique-se de validar as políticas em um ambiente de staging antes de aplicar em produção.
  • Para HSTS preload, siga os requisitos do hstspreload.org para submissão.

Impacto esperado:

  • Antes: Sem HSTS e CSP. maior exposição a ataques de downgrade, MITM e XSS.
  • Depois: HTTPS forçado. HSTS e CSP aplicados no edge. Menor latência, maior segurança e conformidade regulatória.

fique atualizado

Inscreva-se na nossa Newsletter

Receba as últimas atualizações de produtos, destaques de eventos e insights da indústria de tecnologia diretamente no seu e-mail.