OWASP Top 10 Explicado com Exemplos Práticos

Security2026-09-11TryQuickToolBox

Todos os anos, milhares de aplicações web são comprometidas devido às mesmas falhas de segurança recorrentes. O OWASP Top 10 é um documento de conscientização padrão que lista os riscos de segurança mais críticos para aplicações web. Neste artigo, vamos percorrer cada risco, mostrar um exemplo prático e explicar como mitigá-lo. Se você é desenvolvedor, engenheiro DevOps ou entusiasta de segurança, entender esses riscos é essencial para construir sistemas seguros.

1. Broken Access Control

Broken access control ocorre quando usuários podem agir fora de suas permissões pretendidas. Por exemplo, um usuário pode acessar os dados de outro usuário alterando um parâmetro de URL.

Exemplo: Uma aplicação usa /api/user/123 para buscar dados do usuário. Se não houver verificação de que o usuário logado é de fato o usuário 123, um atacante pode alterar o ID para /api/user/124 e visualizar o perfil de outra pessoa.

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

2. Falhas Criptográficas

Anteriormente conhecido como "Exposição de Dados Sensíveis", esse risco envolve falhar em proteger dados sensíveis em trânsito ou em repouso.

Exemplo: Armazenar senhas em texto simples ou usar algoritmos de hash fracos como MD5.

Mitigação: Use criptografia forte (ex.: AES-256) para dados em repouso, TLS 1.2+ para dados em trânsito e hashing de senha forte (bcrypt, Argon2).

3. Injeção

Falhas de injeção, como injeção SQL, NoSQL, OS e LDAP, 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 constrói uma consulta SQL como:

SELECT * FROM users WHERE username = '$username' AND password = '$password';

Se um atacante inserir ' OR '1'='1 como nome de usuário, ele pode contornar a autenticação.

Mitigação: Use consultas parametrizadas ou prepared statements. Escape caracteres especiais e valide a entrada.

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.

Mitigação: Modelagem de ameaças durante o design, padrões de design seguro e arquiteturas de referência.

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.

Exemplo: Deixar as credenciais de administrador padrão em um CMS ou expor listagens de diretórios.

Mitigação: Reforce as configurações, remova recursos não utilizados e automatize verificações de configuração.

6. Componentes Vulneráveis e Desatualizados

Usar bibliotecas, frameworks ou softwares com vulnerabilidades conhecidas.

Exemplo: Executar uma versão antiga de uma biblioteca JavaScript com uma vulnerabilidade XSS conhecida.

Mitigação: Atualize dependências regularmente, use ferramentas como npm audit ou OWASP Dependency-Check e remova dependências não utilizadas.

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

Fraquezas na autenticação e no gerenciamento de sessão.

Exemplo: Permitir senhas fracas, não limitar tentativas de login ou expor IDs de sessão em URLs.

Mitigação: Implemente autenticação multifator, aplique políticas de senha forte e use gerenciamento de sessão seguro.

8. Falhas de Integridade de Software e Dados

Código e infraestrutura que não protegem contra violações de integridade.

Exemplo: Usar CDNs não confiáveis para scripts sem Subresource Integrity (SRI).

Mitigação: Use SRI, verifique assinaturas e garanta que os pipelines de CI/CD sejam seguros.

9. Falhas de Logging e Monitoramento de Segurança

Logging e monitoramento insuficientes permitem que atacantes persistam sem serem detectados.

Exemplo: Não registrar tentativas de login falhas, de modo que ataques de força bruta passem despercebidos.

Mitigação: Registre eventos relevantes para segurança, monitore logs e configure alertas para atividades suspeitas.

10. Server-Side Request Forgery (SSRF)

SSRF ocorre quando um atacante pode fazer o servidor realizar requisições a recursos internos.

Exemplo: Um recurso de webhook que busca uma URL fornecida pelo usuário. Um atacante poderia fornecer http://169.254.169.254/latest/meta-data/ para acessar metadados da nuvem.

Mitigação: Valide e sanitize URLs, use allowlists e restrinja o tráfego de saída.

Tabela Comparativa

RiscoExemploMitigação
Broken Access ControlAcessar dados de outro usuário via IDORVerificações de permissão no lado do servidor
Falhas CriptográficasArmazenar senhas em texto simplesUse hashing forte e TLS
InjeçãoInjeção SQL via formulário de loginConsultas parametrizadas
Design InseguroPerguntas de redefinição de senha fracasModelagem de ameaças
Configuração Incorreta de SegurançaCredenciais de administrador padrãoReforce as configurações
Componentes VulneráveisBiblioteca antiga com falha XSSAtualizações regulares
Falhas de AutenticaçãoSem limitação de taxa no loginMFA e limitação de taxa
Falhas de IntegridadeScripts de CDN não confiáveisSubresource Integrity
Falhas de LoggingSem logs para logins falhosLogging centralizado e alertas
SSRFBuscar metadados internosAllowlists de URL

Como Começar

  1. Avalie: Execute scanners automatizados e revisões manuais contra o OWASP Top 10.
  2. Priorize: Corrija os problemas mais críticos primeiro (ex.: injeção, broken access control).
  3. Treine: Eduque desenvolvedores sobre práticas de codificação segura.
  4. Monitore: Implemente logging e alertas para eventos de segurança.
  5. Itere: Atualize dependências regularmente e re-teste.

FAQ

O que é o OWASP Top 10?

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

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

Ele é atualizado aproximadamente a cada três ou quatro anos, com a versão mais recente lançada em 2021. No entanto, o OWASP fornece orientações e atualizações contínuas.

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

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

Para analisar rapidamente seus logs do Nginx em busca de sinais de ataques como injeção SQL ou XSS, experimente nosso Nginx Log Analyzer. Ele ajuda você a identificar padrões suspeitos e proteger seu servidor web.