🛡️ Principios de Seguranca
Skills operam com privilegios significativos - podem executar comandos, ler/escrever arquivos e acessar APIs. Seguranca nao e opcional.
🔐 Principios Fundamentais
- 1. Menor Privilegio: Solicite apenas as permissoes necessarias
- 2. Defesa em Profundidade: Multiplas camadas de protecao
- 3. Fail-Safe: Em caso de erro, va para estado seguro
- 4. Transparencia: Deixe claro o que a skill faz
- 5. Auditabilidade: Acoes devem ser rastreaveis
📊 Riscos de Skills Mal Projetadas
- Vazamento de dados: Skills podem ler arquivos sensiveis
- Execucao maliciosa: Comandos destrutivos ou malware
- Escalacao de privilegio: Acesso alem do necessario
- Exfiltracao: Envio de dados para terceiros
⚠️ Lembre-se
Uma skill de terceiros pode conter codigo malicioso. Sempre revise skills antes de instalar, especialmente se pedem permissoes amplas como Bash(*).
🔧 Sistema de allowed-tools
O campo allowed-tools no frontmatter controla quais tools a skill pode usar. E a principal forma de limitar permissoes.
Sintaxe de allowed-tools
---
name: minha-skill
allowed-tools: Tool1, Tool2(param:valor), Tool3(*)
---
# Exemplos de patterns:
Read # Tool sem restricao
Bash(git:*) # Bash apenas para comandos git
Bash(npm:install) # Bash apenas para npm install
Write(*.md) # Write apenas para arquivos .md
mcp__github__* # Todas as tools do MCP github
✓ Permissoes Restritas (Recomendado)
allowed-tools:
Read,
Bash(git:status),
Bash(git:log)
Apenas leitura e comandos git especificos
✗ Permissoes Amplas (Perigoso)
allowed-tools:
Bash(*),
Write(*),
Edit(*)
Pode executar QUALQUER comando
💡 Dica de Seguranca
Se sua skill nao precisa escrever arquivos, nao inclua Write/Edit. Se so precisa de git, restrinja Bash apenas a comandos git. Cada tool nao listada e uma tool que nao pode ser abusada.
📁 Controle de Acesso a Arquivos
Alem de tools, e importante controlar quais arquivos a skill pode acessar. Isso previne vazamento de dados sensiveis.
📋 Arquivos Sensiveis Comuns
Credenciais
- •
.env- variaveis de ambiente - •
*.pem,*.key- chaves privadas - •
credentials.json- APIs - •
~/.ssh/*- chaves SSH
Dados Pessoais
- •
~/.aws/credentials - •
~/.gitconfigcom tokens - •
~/.npmrccom tokens - • Browser cookies/passwords
Especificar Paths Permitidos
## Restricoes
Esta skill deve operar APENAS em:
- /projeto/src/
- /projeto/tests/
NAO acesse: /, ~/, /etc/, .env
Usar .gitignore como Guia
Se esta no .gitignore, provavelmente nao deve ser acessado pela skill
Validar Antes de Ler
## Antes de ler arquivos
1. Verifique se path esta dentro do projeto
2. NAO leia arquivos .env, .pem, credentials
3. Confirme com usuario se necessario
🏖️ Sandboxing e Isolamento
Sandboxing limita o ambiente onde a skill opera, prevenindo que erros ou acoes maliciosas afetem o sistema.
🐳 Container/Docker
Isolamento completo do sistema
- • Filesystem isolado
- • Network controlada
- • Recursos limitados
- • Facil de destruir/recriar
📁 Diretorio Temporario
Operacoes em /tmp isolado
- • Criar:
mktemp -d - • Operar dentro do dir
- • Limpar ao finalizar
- • Nao afeta projeto real
👤 Usuario Restrito
Rodar como user sem privilegios
- • Sem acesso root
- • Home directory limitado
- • Sem sudo
- • Permissoes minimas
🔒 Modo Dry-Run
Simular sem executar
- • Mostrar o que faria
- • Usuario confirma
- • Entao executa de fato
- • Bom para acoes destrutivas
📋 Implementando Dry-Run
## Modo de Operacao
Para acoes destrutivas (delete, overwrite, format):
1. SEMPRE mostrar preview primeiro:
"Vou deletar os seguintes arquivos:
- /tmp/file1.txt
- /tmp/file2.txt
Confirma? (s/n)"
2. Aguardar confirmacao explicita
3. So entao executar a acao
4. Reportar resultado
⏱️ Limites e Rate Limiting
Skills devem ter limites claros para evitar loops infinitos, consumo excessivo de recursos ou abuso de APIs.
📊 Tipos de Limites
Por Execucao
- • Max arquivos processados: 100
- • Max linhas por arquivo: 10000
- • Timeout de comando: 60s
- • Max iteracoes de loop: 50
Por Sessao
- • Max API calls: 100/hora
- • Max dados transferidos: 10MB
- • Max arquivos criados: 50
- • Max comandos Bash: 200
Definindo Limites na Skill
## Limites de Seguranca
Esta skill opera com os seguintes limites:
### Processamento
- Maximo 100 arquivos por operacao
- Arquivos maiores que 1MB serao ignorados
- Timeout de 30 segundos por comando
### API Externa
- Maximo 10 requests por minuto
- Retry com backoff exponencial (max 3x)
- Falha silenciosa apos limite
### Output
- Maximo 500 linhas de resposta
- Truncar com "[... N linhas omitidas]"
✓ Protecoes
- ✓ Timeout em todo comando Bash
- ✓ Contador de iteracoes em loops
- ✓ Validacao de tamanho de input
✗ Riscos
- ✗ Loops sem condicao de saida
- ✗ Processar arquivos de qualquer tamanho
- ✗ APIs sem rate limiting
📋 Auditoria e Logging
Skills devem ser auditaveis. Isso significa registrar acoes importantes para posterior analise e debugging.
📝 O que Logar
- • Acoes destrutivas: Deletes, overwrites, reformats
- • Acessos sensiveis: Arquivos de config, credenciais
- • Chamadas externas: APIs, webhooks, network
- • Erros: Falhas, excecoes, timeouts
- • Decisoes: Por que uma acao foi tomada
Formato de Log Sugerido
[2026-01-20 14:32:15] INFO Skill 'code-analyzer' iniciada
[2026-01-20 14:32:16] INFO Lendo arquivos em /projeto/src (23 arquivos)
[2026-01-20 14:32:18] WARN Arquivo grande ignorado: bundle.js (2.3MB)
[2026-01-20 14:32:20] INFO Analise completa: 5 issues encontrados
[2026-01-20 14:32:21] ACTION Escrevendo report.md
[2026-01-20 14:32:21] INFO Skill finalizada com sucesso
💡 Dica de Implementacao
Instrua a skill a reportar acoes importantes no output. Isso cria um log natural da sessao que o usuario pode revisar.
Checklist de Seguranca
- ☐ allowed-tools minimas
- ☐ Paths restritos documentados
- ☐ Timeouts configurados
- ☐ Limites de processamento
- ☐ Confirmacao para destrutivos
- ☐ Acoes logadas claramente
🚀 Proximo Passo
Com seguranca dominada, o proximo modulo ensina Debugging e Logging - como identificar e resolver problemas em skills.
📚 Resumo do Modulo
Proximo Modulo:
1.6 - Debugging e Logging