Microsoft Azure

[Microsoft Azure] Removendo HTTP Response Header de WebApp, ApiApp e IIS


Opa, tudo bom?

Ainda escrevendo sobre segurança, umas das perguntas que mais vejo por ai é “Como posso remover o header do Web App, Api App e IIS?”, antes de mais nada, para colocar todos na mesma página, toda requisição para o servidor web tem um cabeçalho com algumas informações importantes, que podem ser utéis para uma pessoa mal intencionada, abaixo um exemplo de um cabeçalho:

Na imagem acima conseguimos descobrir a versão do web server e qual a plataforma está sendo executada, informações que podem nortear um invasor na procura de um exploit conhecido ou algo do gênero.

O que vamos fazer é remover esse “banner” de toda requisição que for feita para o web server, isso não vai impedir que a aplicação seja explorada por uma determinada vulnarebilidade, porém é uma boa prática que podemos adotar para todas nossas aplicações, sejam elas hospedadas em Web App, Api App e/ou IIS.

Para remover  a versão do web server, utilizaremos o URL Rewrite, no Web App e ApiAppi esse módulo está implementado nativamente, porém para o IIS convencional é necessário instalar o URL Rewrite através do Web Platform Installer.

Vamos ao que interessa. 🙂

Acesse o WebApp ou ApiApp, clique em App Service Editor e em seguida Go.

No web.config dentro da tag <system.Webserver> acrescente o código abaixo:

<rewrite>
			<outboundRules>
				<rule name="Remove versão Servidor - WebApp/ApiApp/IIS">
      				<match serverVariable="RESPONSE_Server" pattern=".*" />
      				<action type="Rewrite" />
    			</rule>
				<rule name="Remove X-Powered-By">
					<match serverVariable="RESPONSE_X-POWERED-BY" pattern=".*" />
					<action type="Rewrite" />
				</rule>	
			</outboundRules>		
		</rewrite>

Reforçando que qualquer configuração que for executada dentro do App Service Editor, o arquivo que estiver sendo modificado será automaticamente salvo, ou seja, quando isso acontecer o site será reiniciado, cuidado ao fazer a configuração em ambiente produtivo, pois qualquer erro de sintaxe pode e vai deixar a aplicação indisponível. Recomendo que qualquer “change” seja executada dentro de uma janela acordada entre empresa e cliente.

Analisando a requisição após a configuração obtemos o seguinte resultado:

O resultado para Server e X-Powered-By está em branco, exatamente como esperavamos. Os testes para visualizar o cabeçalho da requisição foram executados a partir do curl, porém pode ser testados através do Inspect do Chrome (F12), Fiddler, e/ou outras ferramentas.

Até a próxima!

Microsoft Azure
[Microsoft Azure] Auditoria de criação de objetos por e-mail – Parte01
Microsoft Azure
[Microsoft Azure] Auditoria de criação de objetos por e-mail – Parte02
Microsoft Azure
[Microsoft Azure] Auditoria de criação de objetos por e-mail – Parte03
There are currently no comments.

XPTO-WPC-MONITOR-TAG