Histórico da Página
Índice
...
Índice | ||
---|---|---|
|
Introdução
...
O RM é desenvolvido baseado nos princípios fundamentais de segurança abordados pelo OWASP(Open Web Application Security Project). Porem existem configurações que permitem ajustar o nível de segurança da aplicação.
As configurações referentes ao item "Portal Corpore.Net e Web API" podem ser feitas automaticamente pelo instalador "TOTVS RM Portal". As demais configurações devem ser feitas manuais.
Abaixo falaremos um pouco de cada uma dessas configurações.
Portal
...
Robots.txt e Indexação em Buscadores/Rastreadores
Documentação: Robots.txt e Indexação em Buscadores/Rastreadores (caso este arquivo não exista em seu Default Web Site no IIS nosso instalador irá adicioná-lo se optar em habilitar a segurança no portal);
SSL no IIS
Para garantir que a comunicação com o portal seja segura, habilite o SSL para a sua aplicação no IIS. Isso é recomendado principalmente quando o portal é exposto em uma DMZ ou servidor com acesso via rede pública:
...
...
Para isso é necessário adquirir um certificado através de uma autoridade certificadora confiável e seguir as documentações. Para mais informações acesse:
...
https://en.wikipedia.org/wiki/SSL
...
https://www.digicert.com/ssl-certificate-installation-microsoft-iis-7.htm
...
https://www.digicert.com/ssl-certificate-installation-microsoft-iis-8.htm
Reduzir o nível de detalhamento de mensagens exibidas
parpara o usuário
:
...
Para isso basta inserir a tag abaixo dentro da sessão AppSettings do web.config do portal Corpore.Net.
...
Bloco de código | ||
---|---|---|
| ||
<add key=”StackTraceVisible” value=”False” /> |
...
Nota |
---|
A partir das versões 12.1.2310, 12.1.2306.144, 12.1.2302.201 e 12.1.2209.268, a tag StackTraceVisible é definida como false por padrão. |
...
Para mais detalhes veja:
...
https://www.owasp.org/index.php/Improper_Error_Handling
Desabilitar o Debug: "ASP.NET DEBUG Method Enabled"
No web.config, no nó <system.web>:
Bloco de código | ||
---|---|---|
| ||
<compilation debug="false" /> |
Por padrão, vem desabilitado no Corpore.Net, mas habilitado no FrameHTML.
Como fazer para remover do cabeçalhos de resposta HTTP dos seguintes itens
:Server
Esse cabeçalho de resposta pode ser removido com uma configuração no arquivo web.config, no nó <system.webServer> adicione:Bloco de código language xml <security>
<requestFiltering removeServerHeader ="true" />
</security>
X-Powered-By
Esse cabeçalho de resposta pode ser removido com uma configuração no arquivo web.config, no nó <system.webServer> adicione:
Bloco de código language xml <httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
X-AspNet-Version
Esse cabeçalho de resposta pode ser removido com uma configuração no arquivo web.config, no nó <system.web> adicione:
Bloco de código language xml <httpRuntime enableVersionHeader="false" />
Criptografar o ViewState
O ViewState, caso não esteja criptografado, pode abrir brechas para roubo de informações sensíveis.
Para criptografá-lo, no web.config, no nó <system.web>, adicionar a opção viewStateEncryptionMode="Always" ao final da tag pages:
Bloco de código | ||
---|---|---|
| ||
<pages validateRequest="true" [...] viewStateEncryptionMode="Always" /> |
Ativar a flag “Secure” para os cookies de sessão
.
Importante para garantir que os cookies, responsáveis por armazenar alguns dados de autenticação (não inclui usuário e senha) e outras informações, seja transportado em segurança. Basta seguir os passos listados no link abaixo:
...
Habilitar HSTS na aplicação
.
Isso garante que sua comunicação será feita com segurança, ou seja, utilizando o SSL. Para mais informações acesse:
https://www.poppastring.com/blog/UsingHTTPStrictTransportSecurityInIIS.aspx
Definir HttpOnlyCookies como true
A configuração HttpOnlyCookies definida como true ajuda a atenuar as ameaças de scripts entre sites que pode resultar em roubo de cookies.
https://msdn.microsoft.com/library/ms228262%28v=vs.100%29.aspx
Remover a permissão de listar os artefatos do ambiente diretamento no
IIS.IIS
https://docs.microsoft.com/en-us/iis/configuration/system.webserver/directorybrowse
Comunicação Portal / RM.exe com o HOST
...
- A comunicação com o HOST já é feita com segurança e os dados não são trafegados em “plain text” por padrão. Porem para aumentar a segurança e fazer que as informações trafeguem criptografadas e com ainda mais segurança, sugerimos que habilitem o SSL no HOST. Para isso sigam a documentação abaixo:
http://tdn.totvs.com.br/display/LRM/Habilitar+SSL+no+Host
OBS.: A documentaçãoa cima contempla como aumentar a segurança também dos Web Services providos pelo HOST.
...
Portal Corpore.Net e Web API
...
- Para garantir que a comunicação com o portal Web Api seja mais segura, foram adicionadas na sessão systemsessão system.webServer >> httpProtocol >> customHeaders, três novas entradas que poderam ser customizadas pelo usuário, são elas:
Nº | Nome da entrada | Valor padrão | Valores Possíveis | Descrição |
---|---|---|---|---|
1 | X-Content-Type-Options | nosniff | nosniff | Para evitar o sniffing do tipo MIME, você pode adicionar o cabeçalho X-Content-Type-Options. Isso torna mais difícil para os hackers adivinharem o tipo certo de mime, inspecionando o conteúdo. |
2 | X-Xss-Protection | 0; mode=block | 0 1 0; mode=block | O X-Xss-Protection é um recurso implementado no navegador mais moderno, que interrompe o carregamento da página quando um ataque de script entre sites é detectado. |
3 | X-Frame-Options | -- | X-Frame-Options: DENY X-Frame-Options: SAMEORIGIN X-Frame-Options: ALLOW-FROM https://example.com/ | O cabeçalho X-Frame-Options garante que os hackers não criem iframe para o seu site, a fim de induzi-lo a clicar em links que você nunca quis. Se você estiver usando a ASP.NET MVC 5 ou mais recente, esse cabeçalho será adicionado automaticamente. |
Configurações feitas pelo Instalador RM
Para que o instalador inclua essas tags, é necessário clicar em 'Sim' no assistente de instalação quando for solicitada permissão para habilitar a segurança.
As tags de configuração a seguir são aplicadas As 3 tags de configurações acima, quando aplicadas automaticamente durante a instalação do RM Portal, e são definidas com os seguintes valores:
- X-Frame-Options = SAMEORIGINAspNet-Version
- Valor:
null
- Descrição: Oculta a versão do ASP.NET, prevenindo a exploração de vulnerabilidades conhecidas dessa versão específica.
- Valor:
- X-Content-Type-Options = nosniff
- Valor:
nosniff
- Descrição: Previne que o navegador tente inferir o tipo de conteúdo do arquivo, o que ajuda a evitar ataques de tipo MIME.
- Valor:
- X-PoweredBy
- Valor:
null
- Descrição: Remove a informação sobre a tecnologia usada no servidor, dificultando a identificação e exploração de possíveis vulnerabilidades específicas da tecnologia.
- Valor:
- X-Xss-Protection = 1
- Valor:
1; mode=block
- Descrição: Habilita a proteção contra ataques XSS (Cross-Site Scripting) no navegador e bloqueia a página quando um ataque é detectado.
- Valor:
...
Passo a passo para configuração manual dos headers:
- Acessar o Gerenciador do IIS (Internet Information Services):
- Abra o Gerenciador do IIS no servidor onde o portal está hospedado.
- Selecionar o Site ou Aplicação:
- Na árvore de conexões à esquerda, selecione o site ou aplicação onde você deseja adicionar os headers.
- Abrir a Opção "HTTP Response Headers":
- No painel central, clique duas vezes na opção "HTTP Response Headers".
- Adicionar Cada Header:
- Para cada header listado acima:
- Clique em "Add..." no painel à direita.
- No campo "Name", insira o nome do header (por exemplo,
Cache-Control
). - No campo "Value", insira o valor correspondente (por exemplo,
no-store
). - Clique em "OK" para salvar.
- Verificar Configuração:
- Após adicionar todos os headers, verifique se eles aparecem corretamente na lista conforme a imagem fornecida
...
- .