| name | security-check |
| description | Auditoria de segurança Security by Design. Use quando o usuário pedir "audite a segurança", "security review", "verifique vulnerabilidades", ou antes de subir feature pra produção. Cobre OWASP Top 10, gestão de secrets, AuthN/AuthZ, supply chain e logs. |
| allowed-tools | Read, Grep, Glob, Bash |
Security Check — Security by Design
Auditoria pragmática de segurança. Evita teatro: foca em ameaças reais para a stack
do projeto (Python/Flask, Next.js/TS, GCP/Cloudflare/Supabase).
Modo de operação
- Comece perguntando (ou inferindo) o superfície de ataque: API pública? Login? Pagamentos? Upload?
- Rode o checklist priorizado (ameaças mais prováveis primeiro).
- Classifique findings como CRÍTICO (bloqueia deploy), ALTO, MÉDIO, INFO.
- Para cada finding: descreva ameaça → impacto → fix concreto.
Checklist priorizado
🔥 CRÍTICO — sempre verificar
Secrets management
Injeção (SQLi, XSS, Command Injection)
AuthN/AuthZ
🟠 ALTO
Inputs e validação
Sessões e cookies
File upload / Storage
🟡 MÉDIO
Supply chain
Logs e observabilidade
Infra (GCP/Cloudflare)
🔵 INFO
Output esperado
## Security Audit — <projeto/feature>
### Resumo executivo
- Findings críticos: N
- Findings altos: N
- Findings médios: N
- Status: ✅ OK PRA DEPLOY | ⚠️ DEPLOY COM RESSALVAS | 🛑 NÃO FAZER DEPLOY
### Findings
#### 🔥 CRÍTICO-01: <título curto>
**Onde:** `path/file.py:42`
**Ameaça:** <atacante consegue X>
**Impacto:** <dano concreto: vazamento de Y, escalada de privilégio, etc>
**Fix:**
```python
# antes
query = f"SELECT * FROM users WHERE id = {user_id}"
# depois
query = "SELECT * FROM users WHERE id = %s"
cursor.execute(query, (user_id,))
(repetir por finding)
Próximos passos
- <ação imediata>
- <ação backlog>
## O que NÃO fazer
- Não recomende solução genérica ("use HTTPS") — verifique se já está aplicada.
- Não infle severidade. CRÍTICO é o que **realmente bloqueia deploy**.
- Não duplique o que SAST/DAST tools já pegariam — foque em logic flaws e config.
- Não pergunte demais antes de começar. Faça a varredura inicial e refine depois.