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

...

Acompanhe os passos a seguir:

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

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

Apache

Image Added

Card
id2
labelNginx

Image Added

Se desejar
Card
id23
labelRemover por completo a informação
NLB

 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 SecServerSignature " ", adicionar o texto desejado, exemplo:

  • SecServerSignature Fluig

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

Image Modified

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’;
	more_clear_headers ‘X-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 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.