Olá, querido (a) aluno(a)!
Continuando o estudo sobre o OWASP Top 10 (Este é o segundo artigo sobre o tema!)
As vulnerabilidades de segurança em aplicações web são uma ameaça constante que pode comprometer a integridade, confidencialidade e disponibilidade dos dados. O OWASP Top 10 2021 é uma valiosa referência que identifica as principais vulnerabilidades em aplicações web e fornece orientações sobre como preveni-las. Neste artigo, focaremos em três das principais vulnerabilidades destacadas no OWASP Top 10 2021: A01 – Quebra de Controle de Acesso, A02 – Falhas Criptográficas e A03 – Injeção.
A01:2021 – Quebra de Controle de Acesso
Como Prevenir
A quebra de controle de acesso é uma vulnerabilidade crítica que pode permitir que usuários não autorizados acessem recursos ou funcionalidades restritas. Aqui estão algumas medidas para prevenir essa vulnerabilidade:
- Código Confiável: Certifique-se de que o controle de acesso seja implementado no código do lado do servidor ou em APIs sem servidor, onde os invasores não podem modificar as verificações de controle de acesso.
- Negar por Padrão: Exceto para recursos públicos, a política de controle de acesso deve ser negar por padrão, ou seja, o acesso é negado a menos que especificamente permitido.
- Reutilização de Mecanismos: Implemente mecanismos de controle de acesso uma vez e reutilize-os em todo o aplicativo. Isso reduz a complexidade e melhora a consistência.
- Controle de Acesso ao Modelo: Os controles de acesso devem impor a propriedade do registro, garantindo que um usuário só possa acessar o que lhe pertence.
- Requisitos de Negócios: Os requisitos de limite de negócios devem ser impostos por modelos de domínio, garantindo que a lógica de acesso atenda às necessidades da empresa.
- Desativação de Listagem de Diretórios: Evite a listagem de diretórios no servidor da web e remova metadados e arquivos de backup das raízes da web.
- Registro de Falhas: Registre falhas de controle de acesso e alerte os administradores quando necessário, permitindo uma resposta rápida a tentativas de exploração.
- Limite de Taxa: Implemente limites de taxa para acessos à API e controladores para reduzir os danos causados por ferramentas de ataque automatizado.
- Identificadores de Sessão: Os identificadores de sessão com estado devem ser invalidados no servidor após o logout. Tokens JWT sem estado devem ter vida curta para reduzir as janelas de oportunidade para invasores.
A02:2021 – Falhas Criptográficas
Como Prevenir
- Falhas criptográficas podem resultar na exposição de dados confidenciais. Aqui estão medidas para prevenir essa vulnerabilidade:
- Classificação de Dados: Identifique quais dados são confidenciais de acordo com as leis de privacidade, requisitos regulamentares ou necessidades de negócios.
- Minimize o Armazenamento: Evite armazenar dados confidenciais desnecessariamente. Descarte-os o mais rápido possível ou utilize técnicas como tokenização ou truncamento.
- Criptografia: Certifique-se de criptografar todos os dados confidenciais armazenados.
- Algoritmos Fortes: Utilize algoritmos, protocolos e senhas criptográficas fortes e atualizados. Implemente um gerenciamento de senhas adequado.
- Dados em Trânsito: Criptografe todos os dados em trânsito com protocolos seguros, como TLS. Aplique diretivas como HTTP Strict Transport Security (HSTS).
- Cache Seguro: Desative o armazenamento em cache para respostas que contenham dados confidenciais.
- Controles Adequados: Aplique os controles de segurança necessários de acordo com a classificação de dados.
- Evite Protocolos Legados: Não use protocolos legados, como FTP e SMTP, para transportar dados confidenciais.
- Hash Seguro: Armazene senhas usando funções de hash adaptáveis e saltadas com um fator de trabalho.
- Aleatoriedade Criptográfica: Garanta que a aleatoriedade criptográfica seja usada quando apropriado e não seja previsível.
A03:2021 – Injeção
Como Prevenir
- Prevenir a injeção de código é fundamental para evitar ataques. Aqui estão algumas práticas para prevenir essa vulnerabilidade:
- Separação de Dados e Comandos: Mantenha os dados separados dos comandos e consultas.
- APIs Seguras: Utilize APIs seguras que evitem o uso do interpretador e forneçam uma interface parametrizada.
- Validação de Entrada: Realize validação de entrada do lado do servidor para evitar a execução de comandos maliciosos.
- Escape de Caracteres: Em consultas dinâmicas residuais, escape caracteres especiais usando a sintaxe de escape apropriada.
- Limitação de Consultas: Use LIMIT e outros controles em consultas para evitar a divulgação em massa de registros em caso de injeção de SQL.
Vamos ver como essa teoria poderá vir ou já vieram em questões de concurso?
1) Questão autoral
De acordo com as recomendações do OWASP Top 10 2021, a negação por padrão é uma abordagem recomendada para a política de controle de acesso, onde o acesso é negado a menos que seja especificamente permitido.
Gabarito: Certo.
Comentário: O princípio da negação por padrão é uma abordagem recomendada para políticas de controle de acesso, onde todos os acessos são negados por padrão, e somente as exceções especificamente permitidas têm acesso. Essa abordagem ajuda a reforçar a segurança, garantindo que apenas usuários autorizados tenham acesso a recursos específicos. Portanto, de acordo com as recomendações do OWASP Top 10 2021, a afirmação é correta.
2) Questão autoral
De acordo com as medidas recomendadas para prevenir falhas criptográficas e proteger dados confidenciais, qual das seguintes ações NÃO é apropriada?
A) Classificar os dados processados, armazenados ou transmitidos por um aplicativo para identificar quais são confidenciais.
B) Minimizar o armazenamento de dados confidenciais, mantendo-os o máximo de tempo possível, mesmo que não sejam necessários.
C) Utilizar algoritmos, protocolos e senhas criptográficas fortes e atualizados.
D) Criptografar todos os dados em trânsito com protocolos seguros, como TLS.
E) Desativar o armazenamento em cache para respostas que contenham dados confidenciais.
Gabarito: B
Comentário:
A medida de minimizar o armazenamento de dados confidenciais é importante para a segurança de dados, pois quanto menos tempo os dados confidenciais forem mantidos, menor será o risco de exposição em caso de violação. Portanto, manter dados confidenciais o máximo de tempo possível, mesmo que não sejam necessários, é uma prática inadequada e pode aumentar o risco de falhas criptográficas e exposição de dados. As outras opções (A, C, D e E) são medidas apropriadas para prevenir falhas criptográficas e proteger dados confidenciais.
Então é isso!
Bons estudos e até o nosso próximo artigo.
Prof. Jósis Alves
Analista de TI no Supremo Tribunal Federal
Clique nos links abaixo:
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente: