Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: repaginação e inclusão da criptografia do viewstate

Índice

...

Índice
excludeÍ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

...

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

    par

    para 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
languagexml
<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.

        <add key=”StackTraceVisible” value=”False” />

...

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
languagexml
<compilation  debug

...

="false" />

...

Por padrão, vem desabilitado no Corpore.Net, mas habilitado no FrameHTML.

Referência

...

: https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/aspnet/development/disable-debugging-application

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

    <security>
     <requestFiltering removeServerHeader
    • Bloco de código
      languagexml
      <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
      languagexml
      <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
      languagexml
      <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
languagexml
<pages validateRequest="true" [...] viewStateEncryptionMode="Always" />

Referência: https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.page.viewstateencryptionmode?view=netframework-4.8

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

...

https://stackoverflow.com/questions/1442863/how-can-i-set-the-secure-flag-on-an-asp-net-session-cookie

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

...