
🦞 Patch de fortalecimento de segurança para Clawdbot/Moltbot. Detecta e corrige gateways expostos automaticamente.
Mais de 900 instâncias Clawdbot/Moltbot estão atualmente expostas na internet (visíveis no Shodan, porta 18789) sem qualquer autenticação. Isso permite que qualquer pessoa:
| Risco | Impacto |
|---|---|
| Acessar chaves de API | Roubar credenciais OpenAI, Anthropic e outras |
| Executar comandos | Executar comandos arbitrários no shell da sua máquina |
| Controlar o navegador | Assumir o controle da sua sessão de navegação |
| Ler e-mails | Acessar Gmail, calendário, contatos |
| Ler chats | Ver todo o histórico de conversas |
| Sequestrar o bot | Enviar mensagens em seu nome |
O problema não é um bug — é má configuração. Usuários que alteram gateway.bind para 0.0.0.0 ou usam Docker com -p 18789:18789 sem autenticação adequada ficam totalmente expostos.
ClawdGuard corrige isso.
cargo install clawdguard
# Executar
clawdguard
# Clonar repositório
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Compilar (primeira vez leva ~2 min)
cargo build --release
# Executar
./target/release/clawdguard
# Clonar repositório
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Construir imagem (~3-5 min na primeira vez)
docker build --no-cache -t clawdguard .
# Executar (montar seu diretório de configuração)
docker run -v ~/.moltbot:/root/.moltbot clawdguard
# Ou para Clawdbot legado:
docker run -v ~/.clawdbot:/root/.clawdbot clawdguard
clawdguard
Pronto! ClawdGuard irá:
ClawdGuard gera um token seguro. Salve-o!
╭────────────────────────────────────────────────────────────────────╮
│ ⚠️ IMPORTANTE: Salve seu novo token do gateway! │
│ │
│ clwd_a8f2k9x3m1p7v4q2b6n8... │
│ │
│ Você precisará dele para conectar pela UI de Controle ou CLI. │
╰────────────────────────────────────────────────────────────────────╯
Documentação completa do Docker para quem não tem Rust instalado.
# 1. Clonar repositório
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# 2. Construir imagem (~3-5 min na primeira vez)
docker build --no-cache -t clawdguard .
# 3. Executar varredura (montar seu diretório de configuração)
# Para Moltbot (mais recente):
docker run -v ~/.moltbot:/root/.moltbot clawdguard
# Para Clawdbot (legado):
docker run -v ~/.clawdbot:/root/.clawdbot clawdguard
# Com modo verboso
docker run -v ~/.moltbot:/root/.moltbot clawdguard --verbose
# Apenas varredura (sem correções)
docker run -v ~/.moltbot:/root/.moltbot clawdguard --scan-only
# Modo automático (sem perguntas)
docker run -v ~/.moltbot:/root/.moltbot clawdguard --auto
# Mostrar ajuda
docker run clawdguard --help
Sintaxe mais simples usando docker-compose:
# Executar com docker-compose
docker-compose run clawdguard
# Com verbose
docker-compose run clawdguard --verbose
# Apenas varredura
docker-compose run clawdguard --scan-only
# Modo automático
docker-compose run clawdguard --auto
| Comando | Descrição |
|---|---|
docker build --no-cache -t clawdguard . | Construir imagem |
docker run clawdguard --help | Mostrar ajuda |
docker run -v ... clawdguard | Executar varredura |
docker run -v ... clawdguard --scan-only | Apenas varredura |
docker run -v ... clawdguard --auto | Correção automática |
docker run -v ... clawdguard --verbose | Modo verboso |
docker-compose run clawdguard | Executar com compose |
| Montagem | Propósito |
|---|---|
~/.moltbot:/root/.moltbot | Seu diretório de config Moltbot (mais recente) |
~/.clawdbot:/root/.clawdbot | Seu diretório de config Clawdbot (legado) |
./results:/app/results | Salvar resultados localmente |
# Criar alias para uso mais fácil (use seu diretório de config)
alias clawdguard='docker run -v ~/.moltbot:/root/.moltbot clawdguard'
# Ou para Clawdbot legado:
alias clawdguard='docker run -v ~/.clawdbot:/root/.clawdbot clawdguard'
# Depois é só executar:
clawdguard
clawdguard --scan-only
clawdguard --verbose
clawdguard [OPÇÕES]
OPÇÕES:
--scan-only Apenas varrer em busca de problemas, não aplicar correções
--auto Aplicar todas as correções sem perguntas de confirmação
--backup-dir <DIR> Diretório personalizado para arquivos de backup
--skip-firewall Pular adição de regras de firewall
--skip-restart Pular reinicialização do serviço gateway
--token <TOKEN> Usar um token específico em vez de gerar um
-v, --verbose Mostrar saída detalhada
--json Produzir saída como JSON (para scripts)
-h, --help Exibir ajuda
-V, --version Exibir versão
# Uso básico - varrer, corrigir, verificar
clawdguard
# Apenas varrer (não corrigir nada)
clawdguard --scan-only
# Corrigir tudo automaticamente (sem perguntas)
clawdguard --auto
# Usar seu próprio token
clawdguard --token "meu-token-seguro-aqui"
# Saída verbosa para solução de problemas
clawdguard --verbose
# Saída JSON para scripts
clawdguard --json
# Combinar opções
clawdguard --auto --skip-firewall --verbose
# Diretório de backup personalizado
clawdguard --backup-dir /tmp/backups
| Configuração | Antes (Inseguro) | Depois (Seguro) |
|---|---|---|
gateway.bind | "0.0.0.0" / "lan" / "all" | "loopback" |
gateway.auth.mode | "none" / ausente | "token" |
gateway.auth.token | ausente | Token seguro gerado |
discovery.mdns.mode | "full" | "minimal" |
| Permissões de arquivo | 644 / 755 | 600 |
ClawdGuard calcula uma pontuação de risco de 0 a 10:
| Pontuação | Nível | Significado |
|---|---|---|
| 0-3 | 🟢 BAIXO | Problemas menores ou já seguro |
| 4-6 | 🟡 MÉDIO | Algumas preocupações de segurança |
| 7-10 | 🔴 CRÍTICO | Exposto à internet, corrija imediatamente |
Cálculo da Pontuação de Risco:
🦞 ClawdGuard
Endurecimento de segurança para Clawdbot/Moltbot
v1.0.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Pressione Ctrl+C para cancelar a qualquer momento
[1/4] 🔍 Detectando instalação...
✓ Config: ~/.clawdbot/clawdbot.json
✓ Serviço: bot.molt.gateway (em execução, PID 1234)
✓ Porta 18789 está ativa
[2/4] ⚠️ Analisando riscos de segurança...
╭──────────────────┬─────────────────────────┬──────────╮
│ Problema │ Valor Atual │ Gravidade │
├──────────────────┼─────────────────────────┼──────────┤
│ Bind do Gateway │ 0.0.0.0 │ CRÍTICO │
│ Autenticação │ none │ CRÍTICO │
│ Broadcast mDNS │ full │ MÉDIO │
╰──────────────────┴─────────────────────────┴──────────╯
Pontuação de Risco: 9/10 🔴 CRÍTICO
⚠ Isso modificará sua configuração para corrigir problemas de segurança.
ℹ Um backup será criado antes de qualquer alteração.
Prosseguir com as correções? [s/N]: s
[3/4] 🔧 Aplicando correções...
✓ Backup: ~/.clawdbot/clawdbot.json.backup.20260128_143022
✓ Definido gateway.bind = "loopback" (era: "0.0.0.0")
✓ Definido gateway.auth.mode = "token" (era: "none")
✓ Definido gateway.auth.token = <gerado>
✓ Permissões de arquivo corrigidas (600)
Token Gerado: clwd_a8f2k9x3m1p7v4q2b6n8...
[4/4] ✅ Verificando correções...
✓ Serviço gateway reiniciado
✓ Porta 18789 não está mais acessível externamente
✓ Gateway respondendo em localhost
✓ Autenticação agora é exigida
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
╭────────────────────────────────────────────────────────────────────╮
│ │
│ 🎉 SUCESSO! Seu Clawdbot/Moltbot agora está seguro. │
│ │
╰────────────────────────────────────────────────────────────────────╯
clawdguard --json
{"status": "fixed", "token": "clwd_a8f2k9x3m1p7v4q2b6n8...", "backup": "~/.clawdbot/clawdbot.json.backup.20260128_143022"}
Pressione Ctrl+C a qualquer momento durante a varredura para parar com segurança.
[2/4] ⚠️ Analisando riscos de segurança...
^C
⚠ Interrompido! Saindo...
Nenhuma alteração é feita até que você confirme, portanto interromper é sempre seguro.
# Adicione ao seu perfil de shell (~/.bashrc, ~/.zshrc, etc.)
export CLAWDBOT_GATEWAY_TOKEN="clwd_seu_token_aqui"
Se precisar de acesso remoto, use um destes métodos seguros:
| Método | Comando |
|---|---|
| Tailscale (Recomendado) | tailscale serve --bg 18789 |
| Túnel SSH | ssh -L 18789:localhost:18789 seu-servidor |
| Túnel Cloudflare | cloudflared tunnel --url http://localhost:18789 |
Nunca altere gateway.bind de volta para 0.0.0.0 ou exponha a porta diretamente.
Certifique-se de que:
~/.moltbot/ ou ~/.clawdbot/)~/.moltbot/moltbot.json ou ~/.clawdbot/clawdbot.jsonTente manualmente:
clawdbot gateway restart
# ou
moltbot gateway restart
clwd_)Certifique-se de que seu diretório de configuração está legível:
# Para Moltbot (mais recente)
chmod 755 ~/.moltbot
chmod 644 ~/.moltbot/moltbot.json
# Para Clawdbot (legado)
chmod 755 ~/.clawdbot
chmod 644 ~/.clawdbot/clawdbot.json
| Plataforma | Status | Gerenciador de Serviços |
|---|---|---|
| macOS | ✅ Completo | launchd |
| Linux | ✅ Completo | systemd (usuário) |
| Windows | ⚠️ WSL2 | Executar dentro do WSL2 |
┌─────────────────────────────────────────────────────────────────┐
│ ClawdGuard v1.0 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ DETECTAR│ → │ ANALISAR│ → │ CORRIGIR│ → │ VERIFICAR│ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ Encontrar config Verificar riscos Corrigir config Confirmar │
│ Encontrar serviço Pontuar perigo Gerar token seguro │
│ Encontrar processo Listar problemas Corrigir perms Testar │
│ porta │
│ │
└─────────────────────────────────────────────────────────────────┘
clawdguard/
├── Cargo.toml # Dependências
├── Dockerfile # Construção Docker
├── docker-compose.yml # Docker compose
├── .dockerignore
├── README.md
├── LICENSE
├── .gitignore
├── assets/
│ └── screenshot.png # Screenshot para o README
├── src/
│ ├── main.rs # Ponto de entrada CLI
│ ├── lib.rs # Raiz da biblioteca
│ ├── detect/ # Detecção de instalação
│ │ ├── mod.rs
│ │ ├── config.rs # Detecção de arquivo de configuração
│ │ ├── process.rs # Detecção de processo
│ │ └── service.rs # Detecção de serviço (launchd/systemd)
│ ├── analyze/ # Análise de segurança
│ │ ├── mod.rs
│ │ ├── config_risk.rs
│ │ ├── network.rs # Verificação de exposição de porta
│ │ └── permissions.rs
│ ├── patch/ # Aplicação de patches na configuração
│ │ ├── mod.rs
│ │ ├── config.rs
│ │ ├── firewall.rs
│ │ └── token.rs # Geração de token seguro
│ ├── verify/ # Verificação de correções
│ │ ├── mod.rs
│ │ ├── port_check.rs
│ │ └── service.rs
│ └── output/
│ ├── mod.rs
│ └── printer.rs # Saída CLI colorida
└── tests/
└── integration.rs
Opção A: Nativo (Rust)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)Opção B: Docker
Nativo:
# Clonar repositório
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Compilar debug (compilação mais rápida)
cargo build
# Compilar release (otimizado)
cargo build --release
Docker:
# Clonar repositório
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Construir imagem
docker build --no-cache -t clawdguard .
# Executar todos os testes
cargo test
# Executar com saída
cargo test -- --nocapture
# Formatar código
cargo fmt
# Executar linter
cargo clippy
# Verificar sem compilar
cargo check
Contribuições são bem-vindas! Por favor:
git checkout -b feature/melhoria)cargo test)cargo clippy)cargo fmt)git commit -m 'Adiciona melhoria')git push origin feature/melhoria)Ideias para contribuições:
Esta ferramenta é para fins de segurança apenas.
Os autores não são responsáveis pelo uso indevido desta ferramenta.
Licença MIT - veja LICENSE para detalhes.
Mantenha-se seguro! 🦞🔐