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:
- Um cabeçalho de segurança HTTP para combater o “Clickjacking” – Como melhorar a segurança do seu site com o cabeçalho de opções X-Frame
- Como proteger o tráfego HTTP e proteger os usuários com o cabeçalho HTTP Strict Transport Security
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.