Headers HTTP e segurança de aplicações: entenda a relação

Você sabe o que são headers HTTP? Trata-se de um recurso relativamente simples que você pode utilizar para aprimorar a segurança das suas aplicações.

Neste artigo, vamos explicar o que eles são, quais são os tipos e como configurá-los. Confira nos tópicos seguintes!

 

O que são Headers HTTP?

Para que seja estabelecida uma comunicação entre uma aplicação de um servidor web e o navegador do usuário, é necessária a troca de algumas mensagens que se movimentam através da internet. 

Os grupos de mensagens utilizados são chamados de pacotes e os pacotes da aplicação contam com alguns marcadores específicos em seu início.

Esses marcadores são os headers HTTP, que correspondem aos campos de cabeçalho do protocolo HTTP

Eles têm um papel fundamental na definição sobre como será realizada a operação de comunicação via internet.

A partir de alguns ajustes feitos nos headers HTTP é possível melhorar a segurança das suas aplicações.

É claro que somente a implementação dos headers HTTP não garante uma segurança 100% livre de brechas, mas, quando eles são configurados de maneira adequada, cooperam no que diz respeito à proteção contra determinados tipos de ataques.   

Não se trata de uma configuração complexa. Ela é bastante simples de fazer. Contudo, existem grandes aplicações que ainda não contam com os headers HTTP implementados e configurados adequadamente. 

Como possuem implementação relativamente simples e oferecem uma ajuda significativa na proteção da aplicação, eles devem continuar sendo usados, ainda que haja um aumento do uso da versão 2.0 do protocolo HTTP. 

 

Quais são os tipos de headers HTTP?

Vamos listar a seguir, os tipos de headers HTTP, que compõem as respostas a requisições, contribuindo para a segurança da aplicação a partir da implementação de alguns importantes controles

 

Header X-XSS-Protection

Entre os headers HTTP, este é o responsável por informar aos navegadores mais modernos que eles precisam aplicar filtros de proteção contra ataques XSS ou Cross Site Scripting

Alguns navegadores muito utilizados, como o Google Chrome e o Internet Explorer já possuem recursos que atuam no sentido de filtrar o conteúdo das páginas acessadas, evitando os ataques XSS. 

 

 

Header X-Content-Type-Options

O Header X-Content-Type-Options é mais um dos diferentes tipos de headers HTTP. Sua função é evitar a interpretação do conteúdo da página pelos navegadores (sniffing).

Isso é importante para driblar possíveis códigos maliciosos, bloqueando sua execução. 

Como exemplo da aplicação desse header, podemos citar os casos em que se faz o upload  de um arquivo de texto que contém o código javascript e o navegador interpreta e executa esse código mesmo se tratando apenas de um arquivo de texto.

 

Header HTTP Strict-Transport-Security

O terceiro entre os tipos de headers HTTP funciona no sentido de forçar a aplicação a usar o protocolo de comunicação segura SSL/TLS

Essa atuação impede que a aplicação possua conteúdo misto, ou seja, que ela transmita conteúdos em HTTP. 

Isso significa que as páginas da aplicação não vão poder transmitir nem consumir recursos de páginas que façam uso do protocolo HTTP sem criptografia. 

O Header HTTP Strict-Transport-Security também faz uma checagem das características do certificado SSL, impedindo os ataques do tipo Man in the Middle (MitM). 

Só é possível implementar esse header se a totalidade da aplicação estiver utilizando SSL/TLS.

 

Header X-Frame-Options

Esse header HTTP impede a renderização pelo navegador de conteúdos externos em objetos DOM (Document Object Model ou Modelo de Objeto de Documentos). 

A não permissão da exibição desses conteúdos protege a aplicação contra os ataques do tipo Clickjacking.

 

Header Content Security Policy (CSP)

Chegamos ao último dos headers HTTP. A função do Header Content Security Policy é aplicar políticas que vão validar a renderização da página.

A consequência dessa validação é a proteção contra os ataques de injeção de conteúdo, como o Cross Site Scripting (XSS).

São várias as políticas que integram esse header e, por isso, é importante estudá-las de maneira individual para que não haja prejuízo ao funcionamento das aplicações.

 

Como configurar os headers HTTP?

Os Headers HTTP podem ser implementados de duas formas: pela própria aplicação ou diretamente no servidor web. 

É mais recomendável, porém, que eles sejam implementados a partir de configurações no servidor de aplicação e não via código. 

Cada header HTTP conta com sua própria política. Veja os exemplos: 

 

X-XSS-Protection

  • 1: habilita a proteção; 
  • mode: define o bloqueio.

 

X-Content-Type-Options

nosniff: informa que o browser não deve analisar o conteúdo.

 

HTTP Strict-Transport-Security (HSTS)

  • max-age: tempo que o navegador deverá guardar a informação de que o site somente pode ser acessado usando HTTPS. Esse tempo é medido em segundos;
  • includeSubDomains: quando especificado, a regra também será aplicada aos subdomínios;
  • Preload: especificação extra inserida pelo Google.

 

X-Frame-Options

  • DENY: não carrega objetos externos;
  • SAMEORIGIN: só carrega objetos da mesma url; 
  • ALLOW-FROM: pode definir uma url para carregar objetos externos.

 

Content Security Policy (CSP)

  • Como esse header possui várias políticas, é preciso fazer um estudo para a definição da implementação de uma política adequada. 

A configuração correta de cada um dos headers HTTP é fundamental para o atingimento de sua meta de auxílio na segurança das aplicações web, já que sem esse cuidado a sua finalidade fica comprometida. 

 

Relação dos Headers HTTP com a segurança das aplicações

Segurança é um assunto primordial quando se pensa em qualquer contexto de comunicação digital.

Como vimos, os headers HTTP promovem importantes controles que não garantem por si só a segurança total da aplicação, mas oferecem uma considerável camada de proteção contra os tipos mais comuns de ataques. 

Alguns exemplos de ataques que a correta configuração dos Headers HTTP pode mitigar, como vimos em tópicos anteriores, são o XSS, code injectio e clickjacking.

Essa tarefa é bem executada porque esses cabeçalhos funcionam como orientadores dos navegadores quanto ao comportamento que eles devem adotar durante a navegação.

O recurso, portanto, precisa ser visto como uma camada extra de proteção, não como algo que pode se responsabilizar solitariamente pela segurança das aplicações. 

É importante ter sempre em mente que segurança digital é um assunto complexo e que tanto os ciberataques quanto os recursos para neutralizá-los se modificam a cada dia.

Por isso, é importante contar com uma estrutura de segurança e não com apenas um recurso. Assim, a implementação dos Headers HTTP funciona de forma complementar a outras soluções que devem ser empregadas.

Se o seu objetivo é a gestão de vulnerabilidades das suas aplicações, você pode recorrer, aliado aos headers HTTP, ao Insider, scanner de vulnerabilidades que possibilita a correção das fragilidades e brechas dos sistemas antes que hackers possam explorá-las. Teste nossa ferramenta clicando aqui.

 

Receba novidades:







    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *