OWASP Top 10 Explicado com Exemplos Práticos

Security2026-10-03TryQuickToolBox

Como desenvolvedor web, você provavelmente já ouviu falar do OWASP Top 10 — a lista dos riscos de segurança mais críticos em aplicações web. Mas você sabe como esses riscos se manifestam em código real? Neste artigo, vamos percorrer cada um dos OWASP Top 10 (edição 2021) com exemplos práticos e defesas concretas. Ao final, você será capaz de identificar e corrigir essas vulnerabilidades em seus próprios projetos.

1. Controle de Acesso Quebrado

O controle de acesso quebrado ocorre quando usuários podem agir fora das permissões pretendidas. Por exemplo, um usuário pode acessar dados de outro usuário alterando um parâmetro de URL.

Exemplo: Uma aplicação web busca dados do usuário via /api/users/123. Se não houver verificação de que o usuário logado é o 123, um atacante pode simplesmente alterar o ID para acessar dados de outros.

Defesa: Implemente verificações adequadas de autorização em cada requisição. Use controle de acesso baseado em funções (RBAC) e valide permissões no lado do servidor.

2. Falhas Criptográficas

Esta categoria (anteriormente "Exposição de Dados Sensíveis") abrange falhas relacionadas à criptografia, como transmitir dados em texto claro ou usar algoritmos fracos.

Exemplo: Armazenar senhas com MD5 ou SHA-1 sem salt. Atacantes podem facilmente quebrar esses hashes.

Defesa: Use algoritmos de hash fortes e adaptativos como bcrypt, scrypt ou Argon2. Sempre force HTTPS.

3. Injeção

Falhas de injeção, como SQL, NoSQL, OS e LDAP injection, ocorrem quando dados não confiáveis são enviados a um interpretador como parte de um comando ou consulta.

Exemplo: Um formulário de login que concatena a entrada do usuário em uma consulta SQL:

SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'

Um atacante poderia inserir ' OR '1'='1 para contornar a autenticação.

Defesa: Use consultas parametrizadas ou prepared statements. Nunca concatene a entrada do usuário em consultas.

4. Design Inseguro

Design inseguro refere-se a falhas na arquitetura e no design de uma aplicação, não apenas a bugs de implementação.

Exemplo: Um recurso de redefinição de senha que usa perguntas de segurança com respostas facilmente adivinháveis, ou que não possui limitação de taxa.

Defesa: Faça modelagem de ameaças durante o design, use padrões de design seguros e implemente limitação de taxa e bloqueio de conta.

5. Configuração Incorreta de Segurança

Isso inclui contas padrão, páginas não utilizadas, falhas não corrigidas, arquivos e diretórios desprotegidos, entre outros.

Exemplo: Deixar a listagem de diretórios habilitada em um servidor Nginx, expondo arquivos sensíveis.

Defesa: Reforce suas configurações: desabilite a listagem de diretórios, remova contas padrão, mantenha o software atualizado e use cabeçalhos de segurança.

6. Componentes Vulneráveis e Desatualizados

Usar componentes com vulnerabilidades conhecidas pode comprometer toda a sua aplicação.

Exemplo: Usar uma versão antiga de uma biblioteca JavaScript como lodash com uma vulnerabilidade conhecida de poluição de protótipo.

Defesa: Escaneie dependências regularmente (por exemplo, com npm audit, OWASP Dependency-Check) e atualize-as.

7. Falhas de Identificação e Autenticação

Essas falhas permitem que atacantes comprometam senhas, chaves ou tokens de sessão, ou explorem outras falhas de implementação para assumir as identidades de outros usuários.

Exemplo: Permitir senhas fracas como "123456" ou não implementar autenticação multifator (MFA).

Defesa: Imponha políticas de senhas fortes, implemente MFA e use gerenciamento de sessão seguro.

8. Falhas de Integridade de Software e Dados

Esta categoria foca em fazer suposições sobre atualizações de software, dados críticos e pipelines de CI/CD sem verificar a integridade.

Exemplo: Baixar e executar binários de fontes não confiáveis sem verificar assinaturas.

Defesa: Use assinaturas digitais, verifique checksums e proteja seu pipeline de CI/CD.

9. Falhas de Logging e Monitoramento de Segurança

Logging e monitoramento insuficientes permitem que atacantes persistam, se movam lateralmente e mantenham acesso.

Exemplo: Não registrar tentativas de login falhas, tornando ataques de força bruta indetectáveis.

Defesa: Registre eventos relevantes de segurança, configure alertas para atividades suspeitas e revise os logs regularmente.

10. Server-Side Request Forgery (SSRF)

Falhas de SSRF ocorrem quando uma aplicação web busca um recurso remoto sem validar a URL fornecida pelo usuário.

Exemplo: Um recurso de webhook que busca uma URL fornecida pelo usuário. Um atacante poderia fazer o servidor requisitar recursos internos como http://169.254.169.254/latest/meta-data/ na AWS.

Defesa: Valide e sanitize URLs, use listas de permissões e restrinja o tráfego de saída.

Passos Práticos para Mitigar o OWASP Top 10

  1. Implemente controle de acesso: Imponha verificações de autorização em cada requisição, no lado do servidor.
  2. Use criptografia segura: Faça hash de senhas com bcrypt/Argon2, force HTTPS.
  3. Previna injeção: Use consultas parametrizadas e escape a saída.
  4. Projete com segurança: Faça modelagem de ameaças, use padrões seguros e limite a taxa.
  5. Reforce configurações: Desabilite recursos não utilizados, mantenha o software atualizado, defina cabeçalhos de segurança.
  6. Gerencie dependências: Escaneie e atualize componentes regularmente.
  7. Fortaleça a autenticação: Imponha senhas fortes, implemente MFA.
  8. Verifique a integridade: Use assinaturas e CI/CD seguro.
  9. Registre e monitore: Registre eventos de segurança, configure alertas.
  10. Previna SSRF: Valide URLs, use listas de permissões, restrinja o tráfego de saída.

FAQ

O que é o OWASP Top 10?

O OWASP Top 10 é uma lista atualizada regularmente dos riscos de segurança mais críticos em aplicações web, publicada pelo Open Web Application Security Project (OWASP). Serve como uma linha de base para desenvolvedores protegerem suas aplicações.

Com que frequência o OWASP Top 10 é atualizado?

É atualizado aproximadamente a cada três a quatro anos. A versão mais recente é de 2021, com a anterior de 2017.

Posso confiar apenas no OWASP Top 10 para segurança?

Não, é um ponto de partida. Você também deve considerar outros recursos como o OWASP Application Security Verification Standard (ASVS) e realizar testes de segurança regulares.

Quer analisar rapidamente seus logs do Nginx em busca de atividades suspeitas? Experimente nosso Analisador de Logs do Nginx para identificar possíveis ataques e monitorar a segurança do seu servidor web.