OWASP Top 10 — Visão Geral
Aula 1 de 6
OWASP Top 10 — 2021
A classificação de 2021 introduziu mudanças significativas, incluindo a fusão de categorias e a adição de novas classes de risco.
A01:2021 — Broken Access Control
Falhas de controle de acesso permitem que usuários ajam fora de suas permissões pretendidas.
- IDOR (Insecure Direct Object References)
- Path traversal
- Privilege escalation (vertical e horizontal)
- CORS misconfiguration
- Force browsing
A02:2021 — Cryptographic Failures
Proteção inadequada de dados sensíveis em trânsito ou em repouso.
- Dados não criptografados
- Algoritmos fracos (MD5, SHA1, RC4)
- Certificados expirados
- HTTP sem TLS
- Senhas armazenadas em texto claro
A03:2021 — Injection
Injeção de código malicioso em interpretadores.
- SQL Injection
- NoSQL injection
- OS Command Injection
- LDAP Injection
- XSS (movido para cá no 2021)
A04:2021 — Insecure Design
Falhas no design da aplicação, antes mesmo da implementação.
- Ausência de threat modeling
- Rate limiting insuficiente
- Falta de validação no design
- Missing security controls
A05:2021 — Security Misconfiguration
Configurações inseguras em servidores, aplicações e cloud.
- Default credentials
- Directory listing habilitado
- Verbose error messages
- Serviços desnecessários expostos
- Cloud storage público
A06:2021 — Vulnerable and Outdated Components
Uso de bibliotecas e frameworks com vulnerabilidades conhecidas.
- Log4Shell (CVE-2021-44228)
- Dependências desatualizadas
- SBOM ausente
- SCM desatualizadas
A07:2021 — Identification and Authentication Failures
Falhas em mecanismos de autenticação e gerenciamento de identidade.
- Credential stuffing
- Senhas fracas
- Session fixation
- JWT attacks (alg:none, token theft)
- Falta de MFA
A08:2021 — Software and Data Integrity Failures
Falhas relacionadas a atualizações e dados não verificados.
- Supply chain attacks
- CI/CD pipeline inseguro
- Deserialization insegura
- Atualizações não assinadas
A09:2021 — Security Logging and Monitoring Failures
Falta de log, monitoramento e resposta a incidentes.
- Logs sem dados críticos
- Monitoramento ausente
- Falta de alertas
- Resposta a incidentes não documentada
A10:2021 — Server-Side Request Forgery (SSRF)
Aplicação faz requisições a URLs fornecidas pelo usuário sem validação.
- Cloud metadata (169.254.169.254)
- Internal network scanning
- File:// protocol abuse
- Blind SSRF
OWASP ASVS (Application Security Verification Standard)
ASVS define níveis de verificação de segurança:
Nível 1 — Verificação automatizada (todos os apps)
→ Testes básicos: SQLi, XSS, CSRF, auth
→ Ferramentas: ZAP, Burp Scanner, Semgrep
Nível 2 — Verificação manual (apps sensíveis)
→ Revisão de código, teste de lógica
→ Threat modeling, architecture review
Nível 3 — Verificação aprofundada (apps críticos)
→ Testes de penetração completos
→ Análise de binários, fuzzing
OWASP ZAP (Zed Attack Proxy)
# Iniciar ZAP via CLI
zap.sh -daemon -port 8081
# Modo headless (útil para CI/CD)
zap.sh -daemon -config api.key=12345
# Spider automático
zap-cli spider http://alvo.com
zap-cli active-scan http://alvo.com
zap-cli alerts
# Scan automatizado
zap-cli quick-scan -s xss,sqli http://alvo.com
# Gerar relatório
zap-cli report -o relatorio.html -f html
Threat Modeling
STRIDE (Microsoft)
| Categoria | Ameaça | Exemplo |
|---|---|---|
| Spoofing | Falsificação de identidade | Roubo de sessão, JWT forjado |
| Tampering | Modificação não autorizada | SQLi, MITM |
| Repudiation | Negar ação | Falta de logs |
| Information Disclosure | Vazamento de dados | Directory listing, error verbose |
| Denial of Service | Indisponibilidade | DDoS, resource exhaustion |
| Elevation of Privilege | Escalamento | IDOR, path traversal |
DREAD (Risk Rating)
| Fator | Descrição |
|---|---|
| Damage Potential | Impacto do ataque |
| Reproducibility | Facilidade de reprodução |
| Exploitability | Dificuldade de explorar |
| Affected Users | Número de usuários afetados |
| Discoverability | Facilidade de encontrar a vulnerabilidade |
OWASP Cheat Sheets
Recursos essenciais:
- SQL Injection Prevention Cheat Sheet
- XSS Prevention Cheat Sheet
- CSRF Prevention Cheat Sheet
- Authentication Cheat Sheet
- Input Validation Cheat Sheet
- REST Security Cheat Sheet
- Docker Security Cheat Sheet
Lab: Iniciando com ZAP
# 1. Baixar e instalar OWASP ZAP
# https://www.zaproxy.org/download/
# 2. Iniciar ZAP em modo daemon
zap.sh -daemon -port 8081
# 3. Configurar proxy no navegador (127.0.0.1:8081)
# 4. Navegar no site alvo pelo navegador proxy
# 5. Executar spider
zap-cli spider http://testphp.vulnweb.com
zap-cli active-scan http://testphp.vulnweb.com
zap-cli alerts
OWASP Top 10 é o ponto de partida para segurança web. Entenda cada categoria, não apenas o nome. STRIDE ajuda a pensar em ameaças durante o design. ZAP é a ferramenta gratuita mais importante para DAST.