Á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. 

...

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:

...

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

1. Editar o arquivo de configuração: 

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

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

  • ServerSignature Off
  • ServerTokens Prod

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

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

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

Image Removed

...

id2
labelRemover por completo a informação

...

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

Nota
Card
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

Nota

É necessário reiniciar o Apache para que as configurações realizadas tenham efeito.

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:

É 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:

more_clear_headers ‘X-
*’;

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

É necessário reiniciar o Nginx para que as configurações realizadas tenham efeito.
Bloco de código
location / {
	...
	more_clear_headers ‘Server’;
	

Image Removed

Esta opção limpa mais opções do cabeçalho HTTP. Neste caso irá remover a informação ‘Server’.

Image Removed

Card
id3
labelRemover qualquer informação dos cabeçalhos
Bloco de código
Nota
Powered-By’;
	...
}

3. Reiniciar o Nginx.

Esta configuração limpa mais informações do cabeçalho HTTP. Neste caso irá remover 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 URLAcompanhe os passos a seguir:

Deck of Cards
effectDuration0.5
historyfalse
idNLB
effectTypefade
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 Modified

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

Image Modified

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

Acompanhe os passos a seguir:

true
Card
default
id1
labelPasso 1

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

Card
id2
labelPasso 2

Visualizar variáveis do servidor:

Card
id3
labelPasso 3

 Adicionar variável:

Card
id4
labelPasso 4

Adicione a varável RESPONSE_SERVER:

Card
id5
labelPasso 5

Adicione a variável RESPONSE_X-POWERED-BY:

Card
id6
labelPasso 6

Adicione uma nova regra de saída:

Card
id7
labelPasso 7

Em regras de saída escolha regra em branco:

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.

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.

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:

Card
id11
labelPasso 11

Ao final teremos duas regras de saída:

Card
id12
labelResultado

O resultado esperado aparecerá nos cabeçalhos HTTP:

Image Modified

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.