OWASP Top 10 (2025) Referência de riscos
10 controles, organizados por grupo, com resumo em português.
Documento de conscientização que apresenta as categorias de riscos mais relevantes em aplicações web. Ajuda equipes a entender as vulnerabilidades mais importantes, mas não deve ser usado isoladamente como framework completo de compliance ou metodologia detalhada de auditoria. O Top 10 indica o que pode dar errado; o OWASP ASVS ajuda a verificar quais controles implementar. Esta é a edição 2025, que traz duas categorias novas (cadeia de suprimentos e tratamento de erros) e consolidou o SSRF no A01.
Fonte oficial · A cor indica o perfil em que cada controle entra: Básico Intermediário Avançado.
Riscos oficiais do OWASP Top 10 2025 (material aberto, CC). Descrições em português pela InfoCuestaSec. Para avaliações técnicas e homologação, use o OWASP ASVS, com requisitos verificáveis organizados por níveis. Divisão em perfis é didática.
top10 OWASP Top 10 (2025)
-
A01
Broken Access Control — falhas de controle de acesso (usuário faz o que não deveria); inclui SSRF. Acontece quando usuários conseguem acessar dados ou funções além do permitido — ver contas alheias, alterar registros, virar admin. Segue como risco nº 1 e, no Top 10:2025, passou a incluir o SSRF; garanta que cada ação verifique a permissão no servidor, nunca só na tela. Exemplo: Um usuário troca o id=123 por id=124 na URL do pedido e passa a ver a nota fiscal de outro cliente — o servidor devolveu o dado sem conferir de quem era.Básico
-
A02
Security Misconfiguration — configuração de segurança incorreta ou padrão. Configurações inseguras ou de fábrica: serviços expostos, permissões abertas, erros detalhados, recursos desnecessários ligados. Subiu para a 2ª posição em 2025 — endureça e revise as configurações de todo o ambiente. Exemplo: O painel admin continua exposto na internet com a senha padrão admin/admin, e as telas de erro mostram o caminho dos arquivos e a versão do banco.Básico
-
A03
Software Supply Chain Failures — falhas na cadeia de suprimentos de software (dependências, build, CI/CD, distribuição). Vai muito além de usar biblioteca desatualizada: cobre todo o processo de construir, distribuir e atualizar software — dependências, ferramentas, pipeline de CI/CD e canal de update. Mantenha inventário de componentes (SBOM), verifique integridade e proteja o acesso ao pipeline. Exemplo: O worm Shai-Hulud (2025) se espalhou sozinho pelo npm: infectou mais de 500 versões de pacotes usando scripts de post-install para roubar credenciais e se propagar para outros pacotes com os tokens furtados.Intermediário
-
A04
Cryptographic Failures — falhas de criptografia/proteção de dados sensíveis. Falta ou uso errado de criptografia expõe dados sensíveis (senhas, cartões, dados pessoais) em trânsito ou em repouso. Use HTTPS/TLS, algoritmos fortes e nunca guarde senha em texto claro. Exemplo: O site aceita login em HTTP puro e guarda as senhas em MD5; quando o banco vaza, as senhas originais são recuperadas em minutos com uma tabela pronta.Básico
-
A05
Injection — injeção (SQL, comandos, etc.) por entrada não validada. Entrada não validada é interpretada como comando (SQL, NoSQL, sistema operacional), permitindo roubar ou destruir dados. Previna com consultas parametrizadas e validação/escape das entradas. Exemplo: O campo de busca monta a consulta concatenando texto: alguém digita ' OR '1'='1 e a aplicação devolve a tabela inteira de clientes.Básico
-
A06
Insecure Design — design inseguro (falta de threat modeling e de padrões seguros). Falhas que nascem na concepção do sistema, não no código — faltou pensar em segurança desde o design (threat modeling, padrões seguros). Nenhuma implementação bem feita conserta um design inseguro. Exemplo: O fluxo de 'esqueci minha senha' usa pergunta secreta ('nome do seu cachorro') que se descobre nas redes sociais — o código está correto, o desenho é que é inseguro.Intermediário
-
A07
Authentication Failures — falhas de autenticação e de gestão de sessão. Falhas no login e na sessão — senhas fracas, força bruta, sessões que não expiram, falta de MFA. Permitem que atacantes assumam contas de usuários. Exemplo: O login não limita tentativas nem exige MFA; um script testa milhares de senhas vazadas de outros sites até entrar (credential stuffing).Básico
-
A08
Software or Data Integrity Failures — falhas de integridade de software ou de dados. Confiar em código, atualizações ou dados sem verificar a integridade. Enquanto o A03 trata da cadeia de suprimentos como processo, aqui o foco é a verificação de integridade em si — assine e valide o que você executa e desserializa. Exemplo: O pipeline de CI baixa um script de build de uma URL sem verificar assinatura — quem controlar aquele endereço passa a executar código em produção.Avançado
-
A09
Security Logging and Alerting Failures — falhas de registro e de alerta de segurança. Sem registros e alertas adequados, ataques passam despercebidos e a resposta chega tarde. Em 2025 o nome passou a destacar o alerta: não basta registrar, é preciso detectar e avisar. Registre eventos de segurança, proteja os logs e configure alertas. Exemplo: Um atacante testa senhas por semanas e ninguém percebe: o sistema não registra falha de login nem dispara alerta, e a invasão só aparece quando o cliente reclama.Intermediário
-
A10
Mishandling of Exceptional Conditions — tratamento inadequado de erros e condições excepcionais (fail-open). Categoria nova em 2025: o sistema lida mal com o inesperado — exceção não tratada, erro que vaza detalhes internos, transação que falha no meio sem rollback e, o pior caso, o fail-open (falhou, então liberou). Trate o erro na origem, feche em estado seguro e reverta por completo o que deu errado. Exemplo: Uma transferência em várias etapas falha no meio e não faz rollback completo: a conta é debitada sem o crédito correspondente, e quem descobre a corrida passa a repetir o débito de propósito.Avançado