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

  1. Threat modeling em cada release relevante
  2. SAST/DAST/SCA em pipeline (não só relatório anual)
  3. Pentest anual com foco no Top 10 + Top 25 CWE
  4. Treinamento contínuo de developers
  5. 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.