Segurança e boas práticas do Microsoft IIS
- fernando freitas do vale
- 17 de ago. de 2020
- 3 min de leitura
Atualizado: 1 de set. de 2020

Olá povo lindo!
O IIS é o servidor Web disponível no Windows Server, sua versão atual no Windows Server 2019 é a 10.0
Quando falamos de segurança Web existem diversos fatores, e um muito importante é a aplicação de boas práticas no seu servidor Web.
1 - Determinar a versão do Net Framework
O Net Framework é a plataforma onde a Microsoft executa suas aplicações, isso também inclui o IIS, principalmente o GUI.
Ao longo do tempo diversas vulnerabilidades são encontradas e corrigidas pela Microsoft e parceiros, e com isso lançado pacotes de atualização. É extremamente importante que seu SO esteja com todas as Security Updates aplicadas.
Para determinar sua versão do Framework abra o regedit e verifique a seguinte chave:
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
Observe as chaves "Version" e "Release"

Tem como verificar esses valores pelo CMD com o comando (O valor pelo CMD é hexadecimal na Release"):
reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Version
reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Release

Com a versão veremos agora na tabela no seguinte link:
Esse link tem todas as informações necessárias a respeito de versionamento de Net Framework, verifique suas indicações quanto a versões legadas e afins.
O Net Framework é atualizado dentro da mesma versão através do Windows Update, caso precise de um upgrade 4.7 para 4.8 por exemplo, utilize o instalador.
2 - SSL\TLS
Não vou me aprofundar no conceito desses termos, porém devemos entender que somente por trafegar utilizando essas tecnologias não significa necessariamente segurança total. Para aumentarmos essa segurança precisamos fazer alguns ajustes.
Existe um software chamado IISCrypto que serve para fazer os ajustes de SSL e TLS, aqui iremos abordar esse software e a alteração manual.
Após o download e execução tem a seguinte tela:

Como pode ver temos todos os protocolos ativados. No próprio software existe a opção "Best Practices", após clicar nele vai aparecer o aviso que só será alterado após o "Apply".
Além do que é definido no "best pratice" chamo a atenção para os protocolos TLS 1.0 e TLS 1.1, que são cada vez menos recomendados.

Pensando em segurança a melhor opção:

Quais opções que serão aplicadas dependerá do seu ambiente e das suas aplicações, pois nem todas as aplicações são compatíveis com 1.2 e as que são podem requerer configurações adicionais. Feito isso, clique em Apply e reboot.
Para verificar as mudanças no regedit:
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

3 - Configurações no IIS
Vamos partir agora para configurações que são realizadas dentro do IIS, ou seja, podem ser configuradas a nível de Servidor (serão aplicadas para todas as aplicações) ou a nível de Site ( que aplica em um site específico). Como queremos garantir a segurança do ambiente como um todo as configurações serão realizadas a nível de Servidor.
3.1 Verbs
Como não vamos aprofundar nos conceitos, Track e Trace são HTTP Verbs que propiciam uma falha de segurança, a partir do 10.0 ambos são bloqueados porém em versões anteriores como 8.5 existe o TRACE habilitado.
Para garantir que não está implementado execute:
Abra o CMD ou o Powershell
Digite telnet localhost 80
Digite cada linha abaixo digitando enter no final de cada uma, não será mostrado nada no console enquanto você digita.
TRACE / HTTP/1.1
Host: websitedomain.com
HostA: Hello
4. Tecle Enter duas vezes
O mesmo exemplo serve para o TRACK, substitua a primeira linha para TRACK / HTTP/1.1

Caso como garantia queira configurar um "Deny" nesses protocolos segue documentação:
No mesmo local que seriam adicionados Track e Trace vamos adicionar o "Deny" para "Options"
Abre o "Request Filtering"

Em seguida vá na aba "Http Verbs"

No painel a direita clique em "Deny Verb"

Em seguida insira:
Name: Options
Clique em OK


3.2 HTTP Response Headers
Resumindo o X-Frame-Options é um mecanismo de segurança contra ataques.
No IIS Manager abra o "HTTP Response Headers"

No painel direito clique em "add"

Em seguida insira as seguintes informações:
Nome: X-Frame-Options
Value: SAMEORIGIN
clique em ok

Outros cabeçalhos a serem incluídos:
Name: X-XSS-Protection
Value: 1; mode=block
Name: X-Content-Type-Options
Value: nosniff
Name: Acces-Control-Allow-Headers
Value: Content-Type
Name: Access-Control-Allow-Origin
Value: *

Essas são algumas configurações que podem ser realizadas.
Lembrando, NUNCA siga um tutorial sem entender o que ele está fazendo, se tem dúvidas, pesquise e/ou pergunte, estou aqui para ajudar.
Aproveitem o conteúdo.
Enjoy!!!!
Comments