Introdução ao OWASP Top 10
O OWASP Top 10 é um documento essencial para desenvolvedores e profissionais de segurança, destacando as ameaças mais críticas para aplicações web.
$ Perda de dados sensíveis
$ Comprometimento de sistemas
$ Impacto financeiro e reputacional
$ Melhor proteção para usuários
$ Conformidade com regulamentações
$ Redução de custos com segurança
As 10 Vulnerabilidades
Controle de Acesso Quebrado
Descrição
Falhas que permitem que usuários acessem recursos ou executem ações não autorizadas, ultrapassando suas permissões designadas.
Exemplos
# Acessando dados de outro usuário
POST /api/change-role HTTP/1.1
{"user_id": 456, "role": "admin"}
Mitigação
- Implementar controle de acesso baseado em funções (RBAC)
- Validar permissões em cada requisição
- Limitar acesso a endpoints sensíveis
- Implementar padrão "Negar por padrão"
function checkPermission(req, res, next) {
if (req.user.role !== 'admin') {
return res.status(403).send('Acesso negado');
}
next();
}
Falhas Criptográficas
Descrição
Proteção inadequada de dados sensíveis devido a más práticas criptográficas, como algoritmos fracos ou implementação incorreta.
Exemplos
INSERT INTO users VALUES (1, 'admin', 'senha123');
# Uso de algoritmo de hash fraco
password = md5('senha123');
Mitigação
- Usar algoritmos modernos (Argon2, bcrypt, PBKDF2)
- Implementar HTTPS em todas as páginas
- Gerenciar chaves de forma segura (HSM, KMS)
- Não armazenar dados desnecessários
const bcrypt = require('bcrypt');
const saltRounds = 12;
const hash = await bcrypt.hash('senha123', saltRounds);
const match = await bcrypt.compare('senha123', hash);
Ferramentas Recomendadas
OWASP ZAP
Scanner automatizado de vulnerabilidades em aplicações web
Burp Suite
Plataforma para testes de segurança em aplicações web
ESLint Security
Plugin para identificar problemas de segurança em código JavaScript
Evolução do OWASP Top 10
| 2021 | 2017 | Mudanças |
|---|---|---|
| A01: Controle de Acesso | A5: Controle de Acesso | ▲ 4 posições |
| A02: Falhas Criptográficas | A3: Exposição de Dados Sensíveis | Nova categorização |
| A03: Injeção | A1: Injeção | ▬ Mantida |
| A04: Design Inseguro | Novo | Nova categoria |