| name | revisao-owasp |
| description | Revisa código backend em busca de vulnerabilidades do OWASP Top 10. Use quando: código de endpoint foi escrito, autenticação foi implementada, validações foram adicionadas, ou antes de considerar qualquer feature como completa. Aplicável a qualquer linguagem. |
| user-invocable | true |
Revisão de Segurança OWASP Top 10
Quando Usar
- Após implementar qualquer endpoint público
- Após configurar autenticação ou autorização
- Após implementar queries ao banco de dados
- Antes de marcar qualquer funcionalidade de backend como concluída
Procedimento
Passo 1 — Identificar o escopo
Leia os arquivos de controllers, services e repositórios relevantes antes de iniciar a revisão.
Passo 2 — Executar checklist por categoria
Percorra cada categoria abaixo e documente os achados com arquivo e linha.
A01 — Broken Access Control
Padrão seguro:
const order = await orderRepository.findById(orderId);
if (order.userId !== req.user.id) throw new ForbiddenError();
A02 — Cryptographic Failures
Padrão seguro:
const hashedPassword = await bcrypt.hash(password, 12);
const hashedPassword = crypto.createHash('md5').update(password).digest('hex');
A03 — Injection (SQL, NoSQL, Command)
Padrão seguro:
const user = await db.query('SELECT * FROM users WHERE email = $1', [email]);
const user = await db.query(`SELECT * FROM users WHERE email = '${email}'`);
A04 — Insecure Design
A05 — Security Misconfiguration
Headers obrigatórios:
Content-Security-Policy
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000
A06 — Vulnerable and Outdated Components
A07 — Identification and Authentication Failures
A08 — Software and Data Integrity Failures
A09 — Security Logging and Monitoring Failures
A10 — Server-Side Request Forgery (SSRF)
Passo 3 — Classificar achados
| Severidade | Critério |
|---|
| Crítica | Permite acesso a dados de outros usuários, RCE, bypass de autenticação |
| Alta | Expõe dados sensíveis, permite SSRF, injeção possível |
| Média | Configuração insegura, falta de rate limit, logs inadequados |
| Baixa | Headers ausentes, mensagens de erro verbosas |
Passo 4 — Corrigir imediatamente
Toda vulnerabilidade Crítica ou Alta deve ser corrigida antes de reportar conclusão ao orquestrador. Vulnerabilidades Média e Baixa devem ser documentadas como pendências.
Output Esperado
- Lista de vulnerabilidades encontradas com arquivo, linha e severidade
- Código corrigido para achados Críticos e Altos
- Lista de pendências para achados Médios e Baixos
- Confirmação de que os itens do checklist foram revisados