Índice
O objetivo desta documentação é auxiliar os nossos clientes na parametrização para aumentar o nível de segurança do MeuRH, realizando configurações que impeçam possíveis ataquesMeu RH. Através de Pentest realizado internamente e pelos nossos clientes, chegamos em uma orientação que deve ser seguida para aumentar o nível de segurança do ambiente exposto na internet.
Descrição | Documentação |
Habilitar a utilização de Token da aplicação .(Recomendado) | RH - RM - Meu RH - Utilizar token para o Meu RH |
Utilizar um certificado SSL válido .(Recomendado) | RH - RM - Meu RH - Usando certificado SSL |
É recomendado que os protocolos criptográficos considerados inseguros detectados na aplicação - TLSv1.0 e TLSv1.1 - sejam desativados, fazendo uso apenas dos protocolos mais seguros TLSv1.2 e TLSv1.3 (Recomendado) | https://thesecmaster.com/how-to-disable-tls-1-0-and-tls-1-1-on-windows-server/ |
Configurar bloqueio de usuário ao inserir senha incorreta no login .(Recomendado) | CONFIGURAÇÃO DE BLOQUEIO POR ERRO AO LOGAR NO SISTEMA - Linha RM - TDN |
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 Porém para aumentar a segurança e fazer com que as informações trafeguem criptografadas e com ainda mais segurança, sugerimos que habilitem o SSL no HOST. (Opcional) |
...
Ao realizar a integração com o TOTVS Identity deverá utilizar o MFA (Recomendado) | |
Ao realizar a integração com o Azure AD deverá utilizar o MFA (Recomendado) | |
É recomendado que as cifras inseguras sejam desabilitadas no ativo, permitindo somente o uso de cifras criptográficas seguras que conseguem garantir a confidencialidade no tráfego dos dados, impedindo assim que ataques de interceptação possam capturar e quebrar as cifras utilizadas. (Recomendado) |
...
Para realizar as configurações abaixo será necessário acessar o arquivo web.config da pasta FrameHTML.
Os invasores podem abusar da funcionalidade HTTP TRACE para Com o Verb TRACE habilitado, é possível obter acesso a informações em cabeçalhos HTTP, como cookies e dados de autenticação.
...
Informações |
---|
O elemento compilation pode ser localizado no nó <system.web> |
...
Atributo | Valores possíveis | Descrição | Referência |
---|---|---|---|
X-Content-Type-Options | nosniff | Para evitar o sniffing do tipo MIME, você pode adicionar o cabeçalho X-Content-Type-Options. | X-Content-Type-Options - HTTP | MDN |
X-Xss-Protection | 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. | |
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. | X-Frame-Options - HTTP | MDN |
Cache-Control | public private no-cache no-store max-age | A diretiva Cache-Control é usada para especificar como os caches devem se comportar ao armazenar uma resposta HTTP e como os navegadores devem tratar essa resposta | Cache-Control - HTTP | MDN |
Strict-Transport-Security | maxage=tempoEmSegundos includeSubDomains preload | É um mecanismo de política que ajuda a proteger sites contra ataques man-in-the-middle, como ataques de downgrade de protocolo e sequestro de cookies. | Segurança de Transporte Estrita - HTTP | MDN |
Cross-Origin-Embedder-Policy | require-corp unsafe-none | O cabeçalho de resposta HTTP Cross-Origin-Embedder-Policy é incluído pelo servidor para impedir que um documento acesse recursos entre origens que não o permitem explicitamente. | Cross-Origin-Embedder-Policy - HTTP | MDN |
Cross-Origin-Resource-Policy | same-origin same-site cross-origin | Cross-Origin Resource Policy é uma política definida pelo cabeçalho HTTP Cross-Origin-Resource-Policy que permite que sites e aplicativos optem pela proteção contra determinadas solicitações de outras origens. | Política de Recursos entre Origens (CORP) - HTTP | MDN |
Cross-Origin-Opener-Policy | same-origin same-origin-allow-popups unsafe-none | É um cabeçalho de segurança que controla como uma janela ou aba pode interagir com outras abas ou janelas em diferentes origens. Isso ajuda a proteger contra ataques de abertura de origem cruzada (Cross-Origin Window Opener Abuse), garantindo que janelas ou abas só possam ser abertas por scripts em seu próprio contexto de origem. | Cross-Origin-Opener-Policy - HTTP | MDN |
Permissions-Policy | camera microphone geolocation fullscreen | A diretiva Permissions-Policy é um cabeçalho de segurança que permite que um site controle quais recursos e APIs estão disponíveis para uso no navegador. Isso ajuda a proteger a privacidade dos usuários, limitando o acesso a recursos sensíveis apenas a sites confiáveis. | Permissions-Policy - HTTP | MDN |
Referrer-Policy | no-referrer no-referrer-when-downgrade origin origin-when-cross-origin same-origin strict-origin strict-origin-when-cross-origin | A diretiva Referrer-Policy é um cabeçalho de segurança que controla como o cabeçalho Referer é incluído nas requisições HTTP. O cabeçalho Referer informa ao servidor de destino de onde veio o usuário, o que pode ser útil para fins de análise, mas também pode expor informações sensíveis, como URLs completas. | Referrer-Policy - HTTP | MDN |
Content Security Policy (CSP) | default-src script-src style-src (Obrigatório incluir 'unsafe-inline' e 'unsafe-eval') img-src font-src frame-src frame-ancestors | A diretiva Content-Security-Policy (CSP) é um cabeçalho de segurança importante que ajuda a mitigar os riscos de ataques como XSS (Cross-Site Scripting) e outros tipos de ataques baseados em injeção de código. Ela permite que os desenvolvedores controlem quais recursos são carregados em uma página web e de onde eles podem ser carregados. | Content Security Policy (CSP) - HTTP | MDN |
Utilize o security headers para avaliar a configuração dos seus cabeçalhos.
Bloco de código | ||
---|---|---|
| ||
<httpProtocol> <customHeaders> <add name="X-Content-Type-Options" value="nosniff" /> <add name="X-Xss-Protection" value="1; mode=block" /> <add name="X-Frame-Options" value="SAMEORIGIN" /> <add name="Cache-Control" value="no-store" /> <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" /> <add name="Cross-Origin-Embedder-Policy" value="require-corp" /> <add name="Cross-Origin-Resource-Policy" value="same-origin" /> <add name="Cross-Origin-Opener-Policy" value="same-origin" /> <add name="Permissions-Policy" value="camera=(self), microphone=(self), geolocation=(self), fullscreen=(self)" /> <add name="Referrer-Policy" value="no-referrer-when-downgrade" /> <add name="Content-Security-Policy" value= " default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://code.jquery.com; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com https://www.googletagmanager.com; img-src 'self' data: https://api.tiles.mapbox.com https://c.tile.openstreetmap.org https://a.tile.openstreetmap.org https://b.tile.openstreetmap.org https://api.qrserver.com https://chart.googleapis.com; connect-src 'self' data: https://api.tiles.mapbox.com https://api.qrserver.com </customHeaders> </httpProtocol>https://chart.googleapis.com https://nominatim.openstreetmap.org; frame-ancestors 'self'; object-src 'none'; base-uri 'self'; "/> </customHeaders> </httpProtocol> |
Informações | ||
---|---|---|
| ||
As configuração mencionadas acima são apenas uma sugestão de parametrização, pois dependerá da configuração do ambiente de cada cliente. Os atributos 'unsafe-inline' e 'unsafe-eval' na diretiva script-src são obrigatórios de devido a exigência do funcionamento da aplicação, |
Informações |
---|
O elemento HttpProtocol deve ser incluído no nó <system.webServer> |
...
...
Referência: How to delete IIS custom headers like X-Powered-By: ASP.NET from response? - Stack Overflow
Informações |
---|
O elemento HttpProtocol deve ser incluído no nó <system.webServer> |
...
...
Bloco de código | ||
---|---|---|
| ||
<httpRuntime targetFramework="4.8" enableVersionHeader="false" /> |
Referência: Remove header information from responses sent by your website
Informações |
---|
O elemento HttpRuntime pode ser localizado no nó <system.web> |
...
Referência: Remove header information from responses sent by your website
Essa configuração é recomendada para reduzir o nível de detalhamento de mensagens exibidas para o usuário.
Bloco de código | ||
---|---|---|
| ||
<add key="StackTraceVisible" value="false" /> |
Referência: Improper Error Handling | OWASP Foundation
Informações |
---|
A key StackTraceVisible deve ser incluída no nó <appSettings> |
...
É recomendado que os cookies sejam transitados via HTTPS e que as mensagens de erro sejam apresentadas para o usuário de forma mais amigável.
Bloco de código | ||
---|---|---|
| ||
<customErrors mode="On" />
<httpCookies httpOnlyCookies="true" requireSSL="true" /> |
Informações |
---|
As tags mencionadas acima devem ser incluídas no nó <system.Web> |
Para desabilitar o swagger, deverá seguir o procedimento abaixo, segue a documentação completa em APIs de Framework - Módulo Serviços Globais#1-APIsdeFrameworkeswagger
05. CONFIGURAÇÕES DE REDE
Informações | ||
---|---|---|
| ||
Todas as informações sugeridas acima foram checadas e testadas em um ambiente controlado com o apoio do nosso time de segurança e com resultados de Pentests executados internamente ou externamente pelos nossos clientes. No entanto, é recomendado que as configurações sejam realizadas inicialmente em um ambiente de testehomologação, devido à variedade e complexidade das configurações e especificidades dos servidores de cada cliente. |