SkillProgramaçãoDiagnostica
Análise de Variantes de Vulnerabilidade
A partir de uma vulnerabilidade confirmada, encontra suas variantes no código — o mesmo padrão de bug em outros arquivos — por meio de busca e análise. Use após corrigir uma falha de segurança para caçar os irmãos dela.
Ações
PerfilDev
ProfundidadeAlta
IdiomaInglês (skill original)
Objetivo
Em uma frase.
Para cada vulnerabilidade confirmada, encontrar seus irmãos: o mesmo padrão de bug repetido em locais diferentes. A maioria das classes de bug aparece várias vezes em um código, e corrigir apenas a instância encontrada deixa o resto explorável. A análise de variantes caça o padrão, não a instância, e termina codificando uma regra de detecção em CI para impedir a reintrodução.
Aplicação
Quando
faz sentido.
Usar
- Após corrigir um bug de segurança, para encontrar instâncias gêmeas
- Após receber uma divulgação de vulnerabilidade (disclosure)
- Em caças periódicas por classes de bug já conhecidas
Não usar
- Em uma revisão de segurança geral de PR (use reviewing-security)
- Na modelagem de ameaças inicial (use applying-stride-threat-analysis)
- Ao corrigir um único bug confirmado (use uma skill de remediação direta; a análise de variantes vem depois)
Prompt
Instruções
para a IA.
### 1 — Destilar o padrão
Reduza o bug encontrado ao seu padrão abstrato, por exemplo: "input do usuário concatenado em SQL sem parametrização", "caminho de arquivo unido a input do usuário sem normalização" ou "JSON não confiável desserializado sem schema".
### 2 — Buscar variações
Para cada padrão, desenhe buscas. Use grep/regex para padrões simples e busca semântica (preferível) com CodeQL para análise cross-language ou Semgrep para correspondência de padrões. O "find usages" da IDE ajuda a enumerar callsites.
### 3 e 4 — Filtrar falsos positivos e corrigir
Para cada match, verifique manualmente se é de fato o padrão, se o input é realmente não confiável e se não há sanitização upstream. Cada variante confirmada recebe a mesma correção da original.
### 5 — Regra de detecção
Codifique o padrão como uma regra Semgrep ou CodeQL que roda em CI, prevenindo a reintrodução. Considere as categorias de variante: mesmo arquivo, mesmo módulo, módulo diferente e até codebase diferente quando vários repositórios compartilham arquitetura. Evite os anti-padrões: corrigir só a instância divulgada, ou criar um padrão estreito demais (não pega variantes) ou amplo demais (volume enorme de falsos positivos).
Reduza o bug encontrado ao seu padrão abstrato, por exemplo: "input do usuário concatenado em SQL sem parametrização", "caminho de arquivo unido a input do usuário sem normalização" ou "JSON não confiável desserializado sem schema".
### 2 — Buscar variações
Para cada padrão, desenhe buscas. Use grep/regex para padrões simples e busca semântica (preferível) com CodeQL para análise cross-language ou Semgrep para correspondência de padrões. O "find usages" da IDE ajuda a enumerar callsites.
### 3 e 4 — Filtrar falsos positivos e corrigir
Para cada match, verifique manualmente se é de fato o padrão, se o input é realmente não confiável e se não há sanitização upstream. Cada variante confirmada recebe a mesma correção da original.
### 5 — Regra de detecção
Codifique o padrão como uma regra Semgrep ou CodeQL que roda em CI, prevenindo a reintrodução. Considere as categorias de variante: mesmo arquivo, mesmo módulo, módulo diferente e até codebase diferente quando vários repositórios compartilham arquitetura. Evite os anti-padrões: corrigir só a instância divulgada, ou criar um padrão estreito demais (não pega variantes) ou amplo demais (volume enorme de falsos positivos).
Constelação
Onde
ela vive.
Bundles que incluem
Execução
Como usar
com IA.
- 01Copie a skill (botão "Copiar skill para IA", no topo): o texto copiado já é a skill completa, não um resumo.
- 02Abra o Claude ou Claude Code e cole — a IA recebe todas as instruções e fica pronta para a tarefa.
- 03Prefere usar como arquivo reutilizável? Baixe o .zip e coloque o
SKILL.mdem.claude/skills/(Claude Code) ou anexe o arquivo no Claude (claude.ai).