Simplificando os cabeçalhos HTTP de segurança com o gerenciamento de tráfego da edgeNEXUS: X-Content-Type-Options

flightpath http header in action

 

Algo que aparece com frequência nos testes de penetração de segurança que todos nós temos que suportar (infelizmente, por um bom motivo) é a falta ou a inconsistência no fornecimento do cabeçalho HTTP X-Content-Type-Options nas respostas do servidor Web. Isso pode ser irritante, mas quanto mais seguro for nosso site e seus visitantes, melhor.

Para que serve esse cabeçalho, afinal? É simples: o Chrome e o Internet Explorer têm um recurso chamado “MIME-Sniffing” que é ativado por padrão e detecta o tipo de conteúdo encontrado em uma resposta do servidor da Web. Isso é usado para exibir melhor uma página da Web, mesmo que o servidor da Web tenha errado em alguma coisa ou que a página esteja mal escrita e tenha especificado um tipo de conteúdo incorreto.

Por exemplo, um site pode enviar uma resposta informando que o conteúdo incluído é texto, por meio do cabeçalho Content-Type e um valor de text/plain. O navegador detectará que se trata, na verdade, de um PDF e o exibirá corretamente. Caso contrário, ele poderá tentar renderizá-lo como texto, o que resultará em uma página manchada ou ilegível. Para alguns desenvolvedores de navegadores, essa página bonita é melhor do que estar em conformidade com os padrões.

Não parece muito ruim? Bem, qualquer software que você possa empregar em seu navegador para impedir o download, a exibição ou a execução de determinados tipos de conteúdo pode ser potencialmente contornado por esse recurso. Há muitos motivos para você querer bloquear executáveis, arquivos zip, arquivos do Word e similares. No Windows, ainda é possível “possuir” um computador com apenas uma imagem GIF.

Qualquer software que usemos para nos proteger contra essas ameaças, bloqueando esse conteúdo, só pode inspecionar o valor do cabeçalho Content-Type e agir adequadamente com base nesse valor. O fato de o navegador fazer algo completamente diferente do que seria esperado não ajuda e representa um risco.

A vantagem de usar um balanceador de carga é que você só precisa fazer isso em um único lugar para implantá-lo em todos os nossos servidores. Não precisamos depender de desenvolvedores ou de reconfigurações do Apache. No balanceador de carga edgeNEXUS, basta importar um modelo de configuração jetPACK e atribuir uma regra de tráfego flightPATH ao(s) serviço(s) virtual(is) que desejamos proteger.

A regra só adiciona o cabeçalho se ele não existir, portanto, funcionará mesmo quando nossos servidores da Web já o inserirem ou o inserirem somente em páginas específicas. Essa regra deve fazer parte da configuração padrão do Virtual Service – você não tem nada a perder, seja qual for o site, embora, é claro, seja sempre recomendável fazer testes. Você pode fazer o download do jetPACK no site do Github da edgeNEXUS aqui.

Essa é uma das muitas regras do flightPATH que desenvolvemos e que você pode implantar para aumentar a segurança do seu site e de seus usuários. Para saber mais sobre cabeçalhos HTTP relacionados à segurança, confira estes artigos:

 

A vantagem de usar um balanceador de carga é que você só precisa fazer isso em um único lugar para implantá-lo em todos os nossos servidores. Não precisamos depender de desenvolvedores ou de reconfigurações do Apache.

About Donna Toomey