Requisitos Não funcionais Segurança - dsm-cefet-rj/trabalho-integrado-2020-1-grupo-5 GitHub Wiki
SEGURANÇA
OWASP - Open Web Application Security Project
O OWASP é um projeto de comunidade de segurança gratuita e aberta, que fornece uma riqueza absoluta de conhecimentos, ferramentas para ajudar qualquer pessoa envolvida nos processos de criação, desenvolvimento, testes, implementação e suporte de uma aplicação web a garantir que a segurança seja constituída desde o início e que o produto final seja tão seguro quanto possível.
Broken Authentication - Vulnerabilidades de autenticação de usuário
Definição
Processos inválidos de autenticação, implementações impŕoprias e falhas nas funções de implementação podem comprometer as informação de credenciais da aplicação. Essas falhas também podem levar a ataques cibernéticos como credential stuffing e ataques automáticos de força bruta.
Propostas de melhoria
- Autenticação Multifator (MFA)
- Regra paras senhas (Ex.: Sensor de força da senha)
- Metodologia de “Esqueci minha senha” bem estruturada (Ex: Enviar e-mail para verificar se foi o usuário que requisitou a troca de senha)
- Incorporar API para autenticação (ex: Google OAuth)
Sensitive data exposure - Exposição de dados sensíveis
Definição
A exposição de dados sensíveis de uma aplicação web é causado devido a um desenvolvimento fraco em relação aos protocolos de segurança e proteção. Atenção aos usos de APIS, a incompatibilidade pode levar a uma não intencional decodificação dos dados guardados.
Propostas de melhoria
- Periodicamente verificar que a versão dos algoritmos de encriptação estão atualizados.
Boas práticas
- Desabilitar o auto-preenchimento de formulários que podem pegar dados do usuário.
Broken Access Control - Problemas no controle de acesso e identificação dos usuários
Definição
Restrições ou limitações insuficientes na autenticação de usuários pode levar ao acesso não-autorizado de dados e funções da aplicação. Com esse problema, é possível que algum usuário consiga alterar qualquer funcionalidade ou informação da aplicação.
Propostas de melhoria
- Desenvolver uma política para cada usuário. (Ex.: AWS IAM)
- Bloquear o acesso a funções específicas da aplicação.
Boas práticas
- Nunca permitir que todos os usuários tenham acesso livre a tudo.
Using componentes with known vulnerabilities - Usar componentes com suas próprias vulnerabilidades
Definição
Usar bibliotecas, componentes, módulos, APIs, entre outros, que tenham vulnerabilidades. Ao usar esses elementos, as suas próprias vulnerabilidades são adicionadas a aplicação que pode levar a um conjunto de vulnerabilidades ou até mesmo quebrar as implementações de segurança já feitas.
Propostas de melhoria
- Saber bem quais falhas de segurança cada um dos elementos utilizados tem e como desenvolver uma implementação de segurança para contorná-las.
Boas práticas
- Não incorporar componentes e dependências que tenham falhas de segurança na aplicação antes de saber criar novas implementações de segurança para contorná-las.
Componentes da aplicação com vulnerabilidades
- React 16.4.1 ou inferior O problema de segurança permite que o invasor acione uma vulnerabilidade Cross-Site Scripting(XSS), que teria um output que permitiria o atacante injetar uma marcação arbitrária.
- MongoDB 4.0.11 ou inferior Um usuário ou programa do MS Windows o qual pode criar um arquivo de configuração Open SSL em um local fixo pode atacar usuários conectados ao MongoDB que estejam rodando os programas de Utils.