Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

O objetivo deste guia é alertar quanto ao problema de expor informações confidenciais e/ou sensíveis nos cabeçalhos HTTP, bem como apresentar o procedimento para ocultar essas informações nos balanceadores de carga homologados para uso no TOTVS Fluig Plataforma.

...

A aplicação retorna informações confidenciais e/ou sensíveis nos cabeçalhos HTTP que podem ser aproveitadas em tentativas de invasão. Um aspecto importante do desenvolvimento de aplicações seguras é evitar o vazamento de informações: cabeçalhos HTTP podem fornecer a um atacante o conhecimento sobre o funcionamento interno de uma aplicação. 

Image Removed

Como ocultar as informações

Para evitar essa exposição, sugerimos realizar o tratamento de informações de saída. O procedimento para ocultar as informações depende do load balancer utilizado no ambiente: Apache, Nginx ou Microsoft NLB.

Apache

Acompanhe os passos a seguir:

Deck of Cards
effectDuration0.5
historyfalse
idapachebalanceadores
effectTypefade
Card
defaulttrue
id1
labelNão mostrar a versãoApache

Image Added

Card
id2
labelNginx

Image Added

1. Editar o arquivo de configuração: /etc/apache2/conf-available/security.conf

2. Alterar os dois parâmetros:

  • ServerSignature Off
  • ServerTokens Prod

Com esta alteração, o servidor não mostra mais a versão:

Image Removed

Se desejar
Card
id2
labelRemover por completo a informação
3
labelNLB

 Image Added


Como ocultar as informações

Para evitar essa exposição, sugerimos realizar o tratamento de informações de saída. O procedimento para ocultar as informações depende do load balancer utilizado no ambiente: Apache, Nginx ou Microsoft NLB.

Apache

...

Para remover por completo a informação

...

, acompanhe os passos a seguir:

1. Instalar o módulo mod- security.

Bloco de código
sudo apt install libapache2-mod-security2

2. Adicionar o módulo do Apache.

Bloco de código
sudo a2enmod security2

3. Editar o arquivo de configuração de segurança:

Bloco de código
sudo vim /etc/apache2/conf-available/security.conf

4. Adicionar a opção:

  • SecServerSignature " "

5. Reiniciar o Apache.

Com isso, a opção Server passa a não apresentar nenhuma informação:

Image Removed

card
Nota
id3
labelAlterar o conteúdo para qualquer informação

É possível alterar o conteúdo para qualquer informação

, seguindo o procedimento anterior. Porém, em

. Em vez de adicionar SecServerSignature " ", adicionar o texto desejado, exemplo:

  • SecServerSignature Fluig

Com isso, a opção Server passa a apresentar:

Image Modified

Nginx

Acompanhe os passos a seguir:

...

effectDuration0.5
historyfalse
idnginx
effectTypefade
Card
defaulttrue
id1
labelNão mostrar a versão

1. Editar o arquivo de configuração onde está a diretiva HTTP.

Image Removed

2. Certificar-se de que a opção server_tokens off esteja ativada conforme abaixo:

Image Removed

Com esta configuração passará a não apresentar a versão do servidor:

Image Removed

...

id2
labelRemover por completo a informação

5. Alterar os dois parâmetros para ocultar a informação do Server:

  • ServerSignature Off
  • ServerTokens Prod

6. Incluir os dois parâmetros para ocultar a informação do X-Powered-By:

  • Header always unset "X-Powered-By"
  • Header unset "X-Powered-By"

7. Reiniciar o Apache.

Com isso, a opção Server passa a não apresentar nenhuma informação:

Image Added


Nginx

...

Para remover por completo a informação, acompanhe os passos a seguir:

...

1. Instalar o módulo ngx_headers_more. A instalação depende de cada sistema operacional. No Debian basta executar o comando abaixo:

Bloco de código
titleDebian
apt install libnginx-mod-http-headers-more-filter

2. Editar o arquivo de configuração onde está configurado o proxy reverso e adicionar as opções abaixo na sessão location:

Bloco de código
location / {
	...
	more_clear_headers ‘Server’;
	
a opção
more_clear_headers
na sessão location:

Image Removed

Esta opção limpa mais opções
 ‘X-Powered-By’;
	...
}

3. Reiniciar o Nginx.

Esta configuração limpa mais informações do cabeçalho HTTP. Neste caso irá remover

...

Image Removed

as informações Server e X-Powered-By.

Image Added


Microsoft NLB

...

Nesse caso, a solução é um pouco diferente, sendo necessário incluir regras de saída utilizando a reescrita de URL. Acompanhe os passos a seguir:

Deck of Cards
effectDuration0.5
historyfalse
idNLB
effectTypefade
Card
defaulttrue
id0
labelConceito

Existem várias configurações de balanceamento de carga e proxy reverso. Diante disto será necessário avaliar cada caso para identificar o melhor local para configuração. O ideal é criar a regra no servidor de saída que geralmente será o proxy reverso. Caso exista apenas o balanceamento de carga sem o proxy reverso será necessário criar a regra em cada servidor IIS que faz parte do cluster.

Image Added

Neste caso deverá configurar nos dois servidores pois não existe um servidor único com proxy reverso.

Image Added

Já neste segundo caso basta configurar uma regra de saída no servidor proxy reverso.

Card
id1
labelPasso 1

Para realizar a configuração é necessário criar uma regra de saída na opção URL Rewrite do site.

Image Added

Card
id2
labelPasso 2

Visualizar variáveis do servidor:

Image Added

Card
id3
labelPasso 3

 Adicionar variável:

Image Added

Card
id4
labelPasso 4

Adicione a varável RESPONSE_SERVER:

Image Added

Card
id5
labelPasso 5

Adicione a variável RESPONSE_X-POWERED-BY:

Image Added

Card
id6
labelPasso 6

Adicione uma nova regra de saída:

Image Added

Card
id7
labelPasso 7

Em regras de saída escolha regra em branco:

Image Added

Card
id8
labelPasso 8

Escolha um nome para a regra, em correspondência escolha a opção variável e no nome da varável preencha com RESPONSE_SERVER conforme cadastrado anteriormente.

Image Added

Card
id9
labelPasso 9

A ação deve ser reescrita e o valor deve ser deixado em branco por padrão. Caso escreva algum outro valor este será apresentado no cabeçalho HTTP.

Acione Aplicar.

Image Added

Card
id10
labelPasso 10

Para o cabeçalho X-Powered-By deverá seguir os mesmos passos trocando apenas o nome da varável para RESPONSE_X-POWERED-BY:

Image Added

Card
id11
labelPasso 11

Ao final teremos duas regras de saída:

Image Added

Card
id12
labelResultado

O resultado esperado aparecerá nos cabeçalhos HTTP:

Image Added

A regra do cabeçalho Server foi criada pois pode ou não aparecer dependendo da forma que está configurado os serviços de proxy reverso e balanceamento de carga.

Card
id3
labelRemover qualquer informação dos cabeçalhos

É possível remover qualquer informação dos cabeçalhos utilizando a opção. Inclusive é possível utilizar o caractere coringa ‘*’ para limpar várias opções. Exemplo:

Bloco de código
more_clear_headers ‘X-*’;

A configuração acima irá remover todos os cabeçalhos que começam com ‘X- ‘.

...