Publicar em

Owasp Top 10: Guia Completo para Testes de Segurança em Aplicações Web

Autor
  • avatar
    Nome
    Kevin Diego
    Twitter

Introdução ao Owasp Top 10

O Owasp Top 10 é uma lista de as dez principais vulnerabilidades de segurança em aplicações web, mantida pela Open Web Application Security Project (OWASP). Esta lista é amplamente reconhecida na indústria de segurança da informação e serve como um guia essencial para desenvolvedores, testadores de segurança e profissionais de TI.

A01:2021 – Broken Access Control

Acontece quando os controles de acesso não são implementados corretamente, permitindo que usuários não autorizados acessem recursos ou funcionalidades restritas. Exemplos incluem:

Accesso a URLs não autorizadas Modificação de IDs de objetos Elevação de privilégios de usuário

exemplo: Idoors - Uma aplicação web que permite que usuários comuns acessem áreas administrativas simplesmente alterando a URL. Modificação de permissões - Um usuário comum consegue modificar suas permissões para obter acesso a funcionalidades administrativas.

A02:2021 – Cryptographic Failures

Ocorre quando os mecanismos de criptografia são implementados incorretamente ou não são utilizados adequadamente, resultando em dados sensíveis expostos ou manipulados. Exemplos incluem:

Uso de algoritmos fracos de criptografia Armazenamento de senhas em texto plano Falta de proteção contra ataques man-in-the-middle

exemplo: Armazenamento inseguro de senhas - Uma aplicação armazena senhas de usuários em texto plano no banco de dados, tornando-as vulneráveis a ataques. Uso de SSL/TLS inadequado - Uma aplicação utiliza uma versão desatualizada do SSL/TLS, permitindo que atacantes interceptem comunicações sensíveis.

A03:2021 – Injection

Acontece quando dados não confiáveis são enviados para um interpretador como parte de um comando ou consulta, permitindo que um atacante execute comandos maliciosos.

Exemplos incluem: Injeção SQL Injeção de comandos do sistema operacional

exemplo: Injeção SQL - Um atacante consegue manipular uma consulta SQL para acessar dados confidenciais ou modificar o banco de dados. Injeção de comandos - Um atacante consegue executar comandos do sistema operacional através de uma vulnerabilidade de injeção em um formulário web. Cross-Site Scripting (XSS) - Um atacante injeta scripts maliciosos em páginas web visualizadas por outros usuários, permitindo roubo de cookies ou redirecionamento para sites maliciosos.

A04:2021 – Insecure Design

Acontece quando os requisitos de segurança não são considerados durante o design da aplicação, resultando em arquiteturas vulneráveis.

Exemplos incluem: Falta de validação de entrada Falta de autenticação e autorização adequadas

exemplo: Falta de validação de entrada

  • Uma aplicação não valida corretamente os dados de entrada do usuário, permitindo ataques de injeção ou XSS.
  • Falta de autenticação e autorização adequadas
  • Uma aplicação não implementa controles de autenticação e autorização, permitindo que usuários não autorizados acessem recursos restritos.
  • Sistemas que não validam numero de tentativas de login, permitindo ataques de força bruta.

A05:2021 – Security Misconfiguration

Acontece quando a configuração de segurança da aplicação está incorreta ou insegura, permitindo que atacantes explorem falhas de configuração. Exemplos incluem:

Configurações padrão inseguras Exposição de informações sensíveis

exemplo: Configurações padrão inseguras - Uma aplicação é implantada com configurações padrão que são conhecidas por atacantes, permitindo acesso não autorizado. Exposição de informações sensíveis - Uma aplicação expõe informações sensíveis, como mensagens de erro detalhadas, que podem ser exploradas por atacantes.

A06:2021 – Vulnerable and Outdated Components

Acontece quando a aplicação utiliza componentes (bibliotecas, frameworks, sistemas operacionais) desatualizados ou com vulnerabilidades conhecidas. Exemplos incluem:

Componentes desatualizados Vulnerabilidades conhecidas em bibliotecas

exemplo: Componentes desatualizados - Uma aplicação utiliza uma versão desatualizada de um framework web que contém vulnerabilidades conhecidas. Vulnerabilidades conhecidas em bibliotecas - Uma aplicação utiliza uma biblioteca que possui uma vulnerabilidade de segurança conhecida e não foi atualizada.

A07:2021 – Identification and Authentication Failures

Acontece quando os mecanismos de identificação e autenticação da aplicação estão implementados incorretamente ou são fracos, permitindo que atacantes explorem falhas de autenticação.

Exemplos incluem:

Mecanismos de autenticação fracos Falta de proteção contra ataques de força bruta

exemplo: Mecanismos de autenticação fracos

  • Uma aplicação utiliza senhas fracas ou previsíveis, facilitando ataques de força bruta.
  • Falta de proteção contra ataques de força bruta
  • Uma aplicação não implementa mecanismos para limitar o número de tentativas de login, permitindo que atacantes realizem ataques de força bruta sem restrições.

A08:2021 – Software and Data Integrity Failures

Acontece quando a integridade do software e dos dados é comprometida, permitindo que atacantes modifiquem ou substituam componentes do sistema. Exemplos incluem: Falta de verificação de integridade

exemplo: Falta de verificação de integridade - Uma aplicação não verifica a integridade dos componentes do sistema, permitindo que atacantes substituam arquivos críticos por versões maliciosas.

A09:2021 – Security Logging and Monitoring Failures

Acontece quando os logs e monitoramentos de segurança da aplicação estão ausentes, incorretos ou insuficientes, impedindo a detecção e resposta a eventos de segurança.

Exemplos incluem: Falta de logs de segurança Monitoramento inadequado

exemplo: Falta de logs de segurança - Uma aplicação não registra eventos de segurança importantes, dificultando a detecção de ataques. Monitoramento inadequado - Uma aplicação não possui monitoramento adequado para detectar atividades suspeitas ou anômalas.

A10:2021 – Server-Side Request Forgery (SSRF)

Acontece quando a aplicação faz solicitações HTTP para recursos internos ou externos sem validação adequada, permitindo que atacantes manipulem essas solicitações.

Exemplos incluem: Solicitações para recursos internos Manipulação de URLs

exemplo: Solicitações para recursos internos - Uma aplicação permite que usuários façam solicitações para recursos internos da rede, expondo serviços sensíveis. Manipulação de URLs - Uma aplicação não valida corretamente as URLs fornecidas pelos usuários, permitindo que atacantes redirecionem solicitações para destinos maliciosos.

Conclusão

O Owasp Top 10 é uma ferramenta essencial para entender e mitigar as principais vulnerabilidades em aplicações web. Ao seguir as melhores práticas de segurança e realizar testes de segurança regulares, desenvolvedores e profissionais de TI podem proteger suas aplicações contra ameaças comuns e garantir a segurança dos dados dos usuários.