| name | security-secrets |
| description | Proteção de secrets - Nunca exponha credenciais em logs, terminal ou git |
| version | 1.0.0 |
| category | security |
| triggers | ["secret","secrets","env","environment",".env","api key","credential","password","token","auth","segurança","security"] |
| tools | [] |
| author | liquid-ai |
| based_on | varlock-claude-skill |
Security Secrets - Proteção de Credenciais
Esta skill garante que secrets e credenciais NUNCA apareçam em sessões do Claude, terminais, logs ou commits git.
Regra Fundamental
NUNCA exponha, exiba, logue ou commite secrets. JAMAIS.
O Que São Secrets?
| Tipo | Exemplos | Risco |
|---|
| API Keys | GOOGLE_AI_API_KEY, STRIPE_SECRET_KEY | Acesso não autorizado |
| Database | DATABASE_URL, connection strings | Data breach |
| Auth Tokens | JWT secrets, OAuth tokens | Impersonation |
| Passwords | Senhas de serviços, admin passwords | Comprometimento total |
| Private Keys | SSH keys, SSL certificates | Acesso a sistemas |
| Webhooks | URLs com tokens embutidos | Execução de ações |
Regras de Proteção (NÃO NEGOCIÁVEIS)
1. NUNCA Exibir Valores
echo $DATABASE_URL
cat .env
printenv | grep API
echo "DATABASE_URL está configurado: $([ -n "$DATABASE_URL" ] && echo 'sim' || echo 'não')"
2. NUNCA Logar Secrets
console.log('API Key:', process.env.API_KEY);
console.log('Config:', JSON.stringify(config));
console.log('API Key configurada:', !!process.env.API_KEY);
console.log('Config keys:', Object.keys(config));
3. NUNCA Commitar Secrets
# .gitignore OBRIGATÓRIO
.env
.env.*
*.pem
*.key
secrets/
credentials.json
4. NUNCA Incluir em Prompts
❌ PROIBIDO: "Minha API key é sk-abc123..."
✅ CORRETO: "Preciso configurar a API key do Stripe"
Arquivos Sensíveis - NUNCA LER/EXIBIR
| Arquivo | Motivo |
|---|
.env | Variáveis de ambiente |
.env.local | Overrides locais |
.env.production | Secrets de produção |
credentials.json | Google Cloud credentials |
*.pem, *.key | Chaves privadas |
secrets.yaml | Kubernetes secrets |
docker-compose.override.yml | Pode conter secrets |
Detecção de Vazamentos
Padrões Suspeitos
# API Keys
(sk|pk)[-_][a-zA-Z0-9]{20,}
AKIA[0-9A-Z]{16}
ghp_[a-zA-Z0-9]{36}
# Connection Strings
(postgres|mysql|mongodb):\/\/[^:]+:[^@]+@
# Tokens
eyJ[a-zA-Z0-9-_]+\.eyJ[a-zA-Z0-9-_]+
# Generic Secrets
(password|secret|token|key)\s*[:=]\s*['\"][^'\"]+['\"]
Se Detectar Vazamento
- PARE IMEDIATAMENTE
- NÃO EXIBA o valor encontrado
- ALERTE o usuário: "Detectei um possível secret no arquivo X. Não vou exibi-lo."
- SUGIRA rotação das credenciais
Como Trabalhar com Secrets
Verificar Existência (Sem Expor)
const hasApiKey = !!process.env.API_KEY;
const envVars = ['API_KEY', 'DB_URL', 'JWT_SECRET'];
const missing = envVars.filter(v => !process.env[v]);
if (missing.length > 0) {
console.log('Variáveis faltando:', missing.join(', '));
}
Mascarar em Logs
function maskSecret(value: string): string {
if (!value || value.length < 8) return '***';
return value.slice(0, 4) + '...' + value.slice(-4);
}
console.log('API Key:', maskSecret(process.env.API_KEY));
Configurar Ambiente
cp .env.example .env
echo "Edite .env e adicione suas credenciais"
[ -f .env ] && echo ".env configurado" || echo "Crie o arquivo .env"
Checklist de Segurança
Antes de Commitar
Antes de Compartilhar Código
Em Code Review
Respostas Padrão
Quando Pedirem para Exibir Secret
"Não posso exibir o valor de secrets por segurança. Posso verificar se a variável está configurada ou ajudar a configurá-la de forma segura."
Quando Encontrar Secret em Código
"Detectei uma possível credencial hardcoded em [arquivo:linha]. Recomendo:
- Mover para variável de ambiente
- Adicionar arquivo ao .gitignore
- Rotacionar a credencial se já foi commitada"
Quando Secret Vazar
"⚠️ ALERTA: Este secret pode ter sido exposto. Ações imediatas:
- Rotacione a credencial AGORA
- Verifique logs de acesso
- Revise histórico do git
- Considere usar git-filter-repo para limpar histórico"
Ferramentas Recomendadas
| Ferramenta | Uso |
|---|
git-secrets | Previne commits com secrets |
truffleHog | Escaneia histórico git |
detect-secrets | Pre-commit hook |
dotenv-vault | Criptografia de .env |
Esta skill ativa AUTOMATICAMENTE quando:
- Código menciona variáveis de ambiente
- Arquivos .env são referenciados
- Discussão sobre API keys ou credenciais
- Configuração de serviços externos