OWASP Top 10: principais vulnerabilidades web
TL;DR
O OWASP Top 10 lista as categorias de vulnerabilidades mais críticas em aplicações web. Conhecer cada uma — Broken Access Control, Cryptographic Failures, Injection, Insecure Design, Security Misconfiguration, etc. — é o mínimo para qualquer time de desenvolvimento ou segurança.
O OWASP Top 10 é, há mais de 20 anos, a referência mais reconhecida em segurança de aplicações web. Não é um checklist exaustivo — é um radar de prioridade. Se sua aplicação ainda falha em itens do Top 10, problemas mais sofisticados são luxo.
A01 — Broken Access Control
Disparou para o primeiro lugar nas últimas edições. Inclui IDOR, escalada de privilégio, bypass de role, exposição de funcionalidades administrativas. Solução: negar por padrão, autorizar por objeto, registrar tentativas de violação, testar exaustivamente em pentest.
A02 — Cryptographic Failures
Dados sensíveis em trânsito ou repouso sem criptografia, uso de algoritmos quebrados (MD5, SHA-1, RC4), chaves hardcoded, gerenciamento de chaves precário, falta de TLS, certificados auto-assinados. Atinge especialmente fintechs e e-commerces.
A03 — Injection
SQL Injection, NoSQL Injection, OS Command Injection, LDAP Injection, ORM injection, SSTI. A regra é simples e quase sempre violada: nunca concatene input de usuário em uma query ou comando. Use prepared statements, parametrização, ORMs com bind.
A04 — Insecure Design
Categoria nova e crítica. Cobre falhas de design que nenhum patch resolve sem repensar a arquitetura. Exemplos: fluxo de recuperação de senha que vaza informação se conta existe; cupons sem validação de uso único; carrinho com preço calculado no cliente. A defesa começa em threat modeling.
A05 — Security Misconfiguration
Configurações default em servidores, headers de segurança ausentes (CSP, HSTS, X-Content-Type-Options), CORS aberto, error verbosity em produção, debug habilitado, S3 buckets públicos, banners de versão expostos. Cheatsheet: hardening automatizado via IaC e checagens em CI/CD.
A06 — Vulnerable and Outdated Components
Bibliotecas com CVEs conhecidos, frameworks fora de suporte, imagens Docker antigas. Solução é mais processo do que técnica: SBOM, scanners de dependência (Trivy, Snyk, Dependabot), política de patching, observabilidade de versões em produção.
A07 — Identification and Authentication Failures
Senhas fracas aceitas, ausência de MFA, brute-force sem rate limit, session fixation, tokens previsíveis, falhas em recuperação. Boas práticas: exigir senhas longas (não complexas), MFA por padrão para administrativos, sessões com timeout, lockout temporário após tentativas falhas.
A08 — Software and Data Integrity Failures
Pipelines de CI/CD sem verificação de integridade, dependências vindas de fontes não confiáveis, deserialização insegura, atualizações via canais não autenticados. Solução: assinaturas em artefatos, SLSA, supply chain hardening.
A09 — Security Logging and Monitoring Failures
Sem logs de eventos críticos, sem monitoramento, sem alertas. O atacante fica meses dentro do ambiente porque ninguém estava olhando. Defesa: logging estruturado, SIEM ou XDR, alertas para tentativas de autenticação anômalas, integração com SOC 24/7.
A10 — Server-Side Request Forgery (SSRF)
Aplicação que aceita URLs do usuário e faz requisições para elas — usado para acessar metadados de cloud (AWS metadata service), redes internas, serviços não expostos. Defesa: validar e filtrar destinos (allowlist), proibir IPs privados, separar redes.
Como aplicar o OWASP Top 10 no dia a dia
- Threat modeling em cada release relevante
- SAST/DAST/SCA em pipeline (não só relatório anual)
- Pentest anual com foco no Top 10 + Top 25 CWE
- Treinamento contínuo de developers
- Padrões de código seguros embutidos no framework da empresa
Conclusão
O OWASP Top 10 não é tudo, mas é o mínimo. Cada empresa que constrói software deveria conseguir explicar, item por item, como mitiga cada categoria. Se a resposta for "não sei", você acabou de descobrir o próximo trabalho do time de segurança.