Segurança da informação no Front-end
Front-end é a parte do software que o usuário utiliza para interagir de forma visual com o sistema, basicamente é a tela, onde o usuário visualiza, interage e manipula dados de forma amigável. Explicando de forma simplificada, Front-end é o desenvolvimento da parte do software que o usuário tem contato direto. O foco, em grande partes das vezes, é a usabilidade e, seu objetivo, recolher os dados inseridos nos campos presentes na tela para o código do Back-end realizar as funções previstas dentro do sistema. Importante reforçar: o Front-end não é apenas a página inicial do site mas, sim, qualquer tipo de interface ao usuário desenvolvida por meio de linguagens de programação.
Desta maneira, é importante promover um ambiente seguro para o usuário navegar e utilizar. Existem muitos tipos de ataques voltados as páginas iniciais de sites ou interfaces de softwares, como ataques coordenados de acessos para sobrecarregar servidores utilizados em sites ou ataques que imitam as interfaces utilizadas para enganar os usuários e pegar seus dados. Principalmente em interfaces que os usuários inserem dados, muitas vezes sensíveis, as empresas devem promover um sistema seguro cumprindo a Lei Geral de Proteção de Dados (LGPD).
Para garantir a segurança da informação no módulo Gestão do Ponto, do sistema Gestão de Pessoas | HCM, realize as seguintes configurações:
Existem dois servidores disponíveis para instalação do Front-end: Node e Nginx. A principal diferença entre os servidores é que Nginx permite adicionar propriedades de segurança que o Node não suporta. Para saber como instalar os servidores, acesse o Manual da Tecnologia.
Como configurar o Front-end para segurança da informação:
No arquivo config.js:
- O cabeçalho de resposta HTTP Strict-Transport-Security, geralmente abreviado como HSTS, permite que um site informe aos navegadores que ele deve ser acessado apenas por HTTPS, em vez de usar HTTP;
- X-Frame-Options: essa configuração quando definida como deny, não permite que o site seja aberto dentro de um <iframe></iframe>;
- X-Xss-Protection: essa configuração quando habilitada, filtra o Cross-site scripting (XSS). Assim, quando o navegador identifica que é realizado um ataque XSS, ele não é mais renderizado;
- Content-Security-Policy: quando habilitado essa configuração irá aceitar fontes JavaScript apenas de sua origem ajudando a mitigar ataques XSS.
config.useXFrameOptions=deny;
config.strictTransportSecurity={'max-age':
{'days': 30}
,'includeSubdomains':true};
config.XssProtection=true;
config.cspPolicy=true;
No arquivo <diretório instalação frontend>\conf\nginx.conf faça as configurações de acordo com este modelo:
add_header X-Frame-Options "ALLOW-FROM https://platform.senior.com.br/";
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "script-src 'self'";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "same-origin";
ssl_protocols TLSv1.2;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_prefer_server_ciphers on;
Importante
As configurações de segurança podem ser alteradas conforme a necessidade de cada usuário.
Adicione essas propriedades também no Back-end da aplicação. Para isso, acesse a Central de Configurações Senior > Chaves e adicione:
Nome | Valor |
---|---|
com.senior.gestaoponto.xssprotection | 1; mode=block |
com.senior.gestaoponto.strictransportsecurity | max-age=31536000; includeSubdomains |
com.senior.gestaoponto.xframeoptions | allow-from https://platform.senior.com.br/' |
com.senior.gestaoponto.contentsecurepolicy | script-src 'self' |
com.senior.gestaoponto.xcontenttypeoptions | nosniff |
com.senior.gestaoponto.referrerpolicy | same-origin |
Desabilitar versões inseguras de Transport Layer Security (TLS) e Secure Sockets Layer (SSL)
- Abra o prompt de comando;
- Acesse a pasta bin do GlassFish. Exemplo: C:\glassfish3\bin;
- Execute os comandos abaixo de maneira separada. Após e execução de cada comando será solicitado o usuário e senha do GlassFish e retornará uma mensagem de sucesso. No GlassFish 4 todos os comandos funcionam e no GlassFish 3, apenas o primeiro:
-
asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.tls-enabled=false
asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.tls11-enabled=false
asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.tls12-enabled=true
asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.ssl3-enabled=false
Importante
O GlassFish, por padrão, o listener http-listener-2 é responsável por monitor a porta HTTPS e é ele quem deve ser alterado.
Ir no painel de administração do GlassFish em Configurations > server-config > HTTP Service > HTTP Listener > http-listtener2 > SSL e configurar:
- Em Select Commom Cipher Suites, manter o campo vazio;
- Em Selected Ephemeral Diffie-Hellman Cipher Suites, adicionar as ciphers abaixo:
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- Em Selected 40 bit and 56 bit Cipher Suites, manter o campo vazio;
- Em Selected ECC Cipher Suites adicionar as ciphers abaixo:
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- Reiniciar o GlassFish e repetir o processo para todos os domínios.
Importante
Para mais configurações de instalação da interface do módulo Gestão do Ponto, acesse o Manual da Tecnologia.
Veja também: |