
🦞 Correctif de durcissement de sécurité pour Clawdbot/Moltbot. Détecte et corrige automatiquement les passerelles exposées.
Renforcement de la sécurité pour les installations Clawdbot/Moltbot. Détecte et corrige les passerelles exposées.
Détecter et corriger les passerelles Clawdbot/Moltbot exposées
Problème • Fonctionnalités • Démarrage rapide • Docker • CLI • Ce qui est corrigé • Développement
900+ instances Clawdbot/Moltbot sont actuellement exposées sur internet (visibles sur Shodan, port 18789) sans aucune authentification. Cela permet à n'importe qui de :
Le problème n'est pas un bug — c'est une mauvaise configuration.
Les utilisateurs qui modifient gateway.bind en 0.0.0.0 ou utilisent Docker avec -p 18789:18789 sans authentification appropriée sont totalement exposés.
ClawdGuard corrige cela.
cargo install clawdguard
# Run
clawdguard
# Clone repository
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Build (first time takes ~2 min)
cargo build --release
# Run
./target/release/clawdguard
# Clone repository
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Build image (~3-5 min first time)
docker build --no-cache -t clawdguard .
# Run (mount your config directory)
docker run -v ~/.moltbot:/root/.moltbot clawdguard
# Or for legacy Clawdbot:
docker run -v ~/.clawdbot:/root/.clawdbot clawdguard
clawdguard
C'est tout ! ClawdGuard va :
ClawdGuard génère un jeton sécurisé. Sauvegardez-le !
╭────────────────────────────────────────────────────────────────────╮
│ ⚠️ IMPORTANT : Sauvegardez votre nouveau jeton de passerelle ! │
│ │
│ clwd_a8f2k9x3m1p7v4q2b6n8... │
│ │
│ Vous en aurez besoin pour vous connecter depuis l'interface de │
│ contrôle ou la CLI. │
╰────────────────────────────────────────────────────────────────────╯
Documentation Docker complète pour ceux qui n'ont pas Rust installé.
# 1. Clone repository
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# 2. Build image (~3-5 min first time)
docker build --no-cache -t clawdguard .
# 3. Run scan (mount your config directory)
# For Moltbot (newer):
docker run -v ~/.moltbot:/root/.moltbot clawdguard
# For Clawdbot (legacy):
docker run -v ~/.clawdbot:/root/.clawdbot clawdguard
# With verbose mode
docker run -v ~/.moltbot:/root/.moltbot clawdguard --verbose
# Scan only (no fixes)
docker run -v ~/.moltbot:/root/.moltbot clawdguard --scan-only
# Auto mode (no prompts)
docker run -v ~/.moltbot:/root/.moltbot clawdguard --auto
# Show help
docker run clawdguard --help
Syntaxe plus simple avec docker-compose :
# Run with docker-compose
docker-compose run clawdguard
# With verbose
docker-compose run clawdguard --verbose
# Scan only
docker-compose run clawdguard --scan-only
# Auto mode
docker-compose run clawdguard --auto
| Montage | Objectif |
|---|---|
~/.moltbot:/root/.moltbot | Votre répertoire de configuration Moltbot (plus récent) |
~/.clawdbot:/root/.clawdbot | Votre répertoire de configuration Clawdbot (legacy) |
./results:/app/results | Sauvegarder les résultats localement |
# Créer un alias pour une utilisation plus simple (utilisez votre répertoire de config)
alias clawdguard='docker run -v ~/.moltbot:/root/.moltbot clawdguard'
# Or for legacy Clawdbot:
alias clawdguard='docker run -v ~/.clawdbot:/root/.clawdbot clawdguard'
# Ensuite, exécutez simplement :
clawdguard
clawdguard --scan-only
clawdguard --verbose
clawdguard [OPTIONS]
OPTIONS :
--scan-only Analyser uniquement les problèmes, ne pas appliquer de correctifs
--auto Appliquer tous les correctifs sans demander de confirmation
--backup-dir <DIR> Répertoire personnalisé pour les fichiers de sauvegarde
--skip-firewall Ignorer l'ajout de règles de pare-feu
--skip-restart Ignorer le redémarrage du service de passerelle
--token <TOKEN> Utiliser un jeton spécifique au lieu d'en générer un
-v, --verbose Afficher les détails
--json Afficher les résultats au format JSON (pour les scripts)
-h, --help Afficher l'aide
-V, --version Afficher la version
# Utilisation de base - analyse, correction, vérification
clawdguard
# Analyser uniquement (ne rien corriger)
clawdguard --scan-only
# Tout corriger automatiquement (sans invites)
clawdguard --auto
# Utiliser votre propre jeton
clawdguard --token "my-secure-token-here"
# Sortie verbeuse pour dépannage
clawdguard --verbose
# Sortie JSON pour scripts
clawdguard --json
# Combiner les options
clawdguard --auto --skip-firewall --verbose
# Répertoire de sauvegarde personnalisé
clawdguard --backup-dir /tmp/backups
ClawdGuard calcule un score de risque de 0 à 10 :
| Score | Niveau | Signification |
|---|---|---|
| 0-3 | 🟢 FAIBLE | Problèmes mineurs ou déjà sécurisé |
| 4-6 | 🟡 MOYEN | Quelques préoccupations de sécurité |
| 7-10 | 🔴 CRITIQUE | Exposé à internet, corriger immédiatement |
Calcul du score de risque :
🦞 ClawdGuard
Renforcement de la sécurité pour Clawdbot/Moltbot
v1.0.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Appuyez sur Ctrl+C pour annuler à tout moment
[1/4] 🔍 Détection de l'installation...
✓ Configuration : ~/.clawdbot/clawdbot.json
✓ Service : bot.molt.gateway (en cours d'exécution, PID 1234)
✓ Port 18789 actif
[2/4] ⚠️ Analyse des risques de sécurité...
╭──────────────────┬─────────────────────────┬──────────╮
│ Problème │ Valeur actuelle │ Sévérité │
├──────────────────┼─────────────────────────┼──────────┤
│ Liaison de │ 0.0.0.0 │ CRITIQUE │
│ passerelle │ │ │
│ Authentification │ none │ CRITIQUE │
│ Diffusion mDNS │ full │ MOYEN │
╰──────────────────┴─────────────────────────┴──────────╯
Score de risque : 9/10 🔴 CRITIQUE
⚠ Cela modifiera votre configuration pour corriger les problèmes de sécurité.
ℹ Une sauvegarde sera créée avant toute modification.
Continuer avec les correctifs ? [o/N] : o
[3/4] 🔧 Application des correctifs...
✓ Sauvegarde : ~/.clawdbot/clawdbot.json.backup.20260128_143022
✓ Définition de gateway.bind = "loopback" (était : "0.0.0.0")
✓ Définition de gateway.auth.mode = "token" (était : "none")
✓ Définition de gateway.auth.token = <généré>
✓ Permissions des fichiers corrigées (600)
Jeton généré : clwd_a8f2k9x3m1p7v4q2b6n8...
[4/4] ✅ Vérification des correctifs...
✓ Service de passerelle redémarré
✓ Port 18789 plus accessible de l'extérieur
✓ Passerelle répond sur localhost
✓ Authentification maintenant requise
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
╭────────────────────────────────────────────────────────────────────╮
│ │
│ 🎉 SUCCÈS ! Votre Clawdbot/Moltbot est maintenant sécurisé. │
│ │
╰────────────────────────────────────────────────────────────────────╯
clawdguard --json
{"status": "fixed", "token": "clwd_a8f2k9x3m1p7v4q2b6n8...", "backup": "~/.clawdbot/clawdbot.json.backup.20260128_143022"}
Appuyez sur Ctrl+C à tout moment pendant l'analyse pour arrêter en toute sécurité.
[2/4] ⚠️ Analyse des risques de sécurité...
^C
⚠ Interrompu ! Sortie...
Aucune modification n'est effectuée tant que vous n'avez pas confirmé, donc l'interruption est toujours sans danger.
# Ajoutez à votre profil shell (~/.bashrc, ~/.zshrc, etc.)
export CLAWDBOT_GATEWAY_TOKEN="clwd_votre_jeton_ici"
Si vous avez besoin d'un accès à distance, utilisez l'une de ces méthodes sécurisées :
| Méthode | Commande |
|---|---|
| Tailscale (Recommandé) | tailscale serve --bg 18789 |
| Tunnel SSH | ssh -L 18789:localhost:18789 votre-serveur |
| Tunnel Cloudflare |
Ne modifiez jamais gateway.bind en 0.0.0.0 et n'exposez pas le port directement.
Assurez-vous que :
~/.moltbot/ ou ~/.clawdbot/)~/.moltbot/moltbot.json ou ~/.clawdbot/clawdbot.jsonEssayez manuellement :
clawdbot gateway restart
# or
moltbot gateway restart
clwd_)Assurez-vous que votre répertoire de configuration est lisible :
# Pour Moltbot (plus récent)
chmod 755 ~/.moltbot
chmod 644 ~/.moltbot/moltbot.json
# Pour Clawdbot (legacy)
chmod 755 ~/.clawdbot
chmod 644 ~/.clawdbot/clawdbot.json
| Plateforme | Statut | Gestionnaire de services |
|---|---|---|
| macOS | ✅ Complet | launchd |
| Linux | ✅ Complet | systemd (utilisateur) |
| Windows | ⚠️ WSL2 | Exécuter dans WSL2 |
┌─────────────────────────────────────────────────────────────────┐
│ ClawdGuard v1.0 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ DÉTECTER │ → │ ANALYSER │ → │ CORRIGER │ → │ VÉRIFIER │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ Trouver config Vérifier risques Corriger config Confirmer │
│ Trouver service Évaluer danger Générer jeton Tester port │
│ Trouver process Lister problèmes Corriger perms Redémarrer │
│ │
└─────────────────────────────────────────────────────────────────┘
clawdguard/
├── Cargo.toml # Dépendances
├── Dockerfile # Construction Docker
├── docker-compose.yml # Docker compose
├── .dockerignore
├── README.md
├── LICENSE
├── .gitignore
├── assets/
│ └── screenshot.png # Capture d'écran pour README
├── src/
│ ├── main.rs # Point d'entrée CLI
│ ├── lib.rs # Racine de la bibliothèque
│ ├── detect/ # Détection de l'installation
│ │ ├── mod.rs
│ │ ├── config.rs # Détection du fichier de configuration
│ │ ├── process.rs # Détection du processus
│ │ └── service.rs # Détection du service (launchd/systemd)
│ ├── analyze/ # Analyse de sécurité
│ │ ├── mod.rs
│ │ ├── config_risk.rs
│ │ ├── network.rs # Vérification de l'exposition du port
│ │ └── permissions.rs
│ ├── patch/ # Correction de la configuration
│ │ ├── mod.rs
│ │ ├── config.rs
│ │ ├── firewall.rs
│ │ └── token.rs # Génération de jeton sécurisé
│ ├── verify/ # Vérification des correctifs
│ │ ├── mod.rs
│ │ ├── port_check.rs
│ │ └── service.rs
│ └── output/
│ ├── mod.rs
│ └── printer.rs # Sortie CLI colorée
└── tests/
└── integration.rs
Option A : Natif (Rust)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)Option B : Docker
Natif :
# Clone repository
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Build debug (faster compile)
cargo build
# Build release (optimized)
cargo build --release
Docker :
# Clone repository
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Build image
docker build --no-cache -t clawdguard .
# Run all tests
cargo test
# Run with output
cargo test -- --nocapture
# Format code
cargo fmt
# Run linter
cargo clippy
# Check without building
cargo check
Les contributions sont les bienvenues ! Veuillez :
git checkout -b feature/amelioration)cargo test)cargo clippy)cargo fmt)git commit -m 'Ajouter une amélioration')git push origin feature/amelioration)Idées de contributions :
Cet outil est à des fins de sécurité uniquement.
Les auteurs ne sont pas responsables d'une mauvaise utilisation de cet outil.
Licence MIT - voir LICENSE pour les détails.
Restez en sécurité ! 🦞🔐
| Risque | Impact |
|---|
| Accéder aux clés API | Voler les identifiants OpenAI, Anthropic, etc. |
| Exécuter des commandes | Exécuter des commandes shell arbitraires sur votre machine |
| Contrôler le navigateur | Prendre le contrôle de votre session de navigation |
| Lire les e-mails | Accéder à Gmail, calendrier, contacts |
| Lire les discussions | Voir tout l'historique de vos conversations |
| Détourner le bot | Envoyer des messages en votre nom |
| Commande | Description |
|---|
docker build --no-cache -t clawdguard . | Construire l'image |
docker run clawdguard --help | Afficher l'aide |
docker run -v ... clawdguard | Lancer l'analyse |
docker run -v ... clawdguard --scan-only | Analyser uniquement |
docker run -v ... clawdguard --auto | Correction automatique |
docker run -v ... clawdguard --verbose | Mode verbeux |
docker-compose run clawdguard | Exécuter avec compose |
| Réglage | Avant (Non sécurisé) | Après (Sécurisé) |
|---|
gateway.bind | "0.0.0.0" / "lan" / "all" | "loopback" |
gateway.auth.mode | "none" / manquant | "token" |
gateway.auth.token | manquant | Jeton sécurisé généré |
discovery.mdns.mode | "full" | "minimal" |
| Permissions des fichiers | 644 / 755 | 600 |
cloudflared tunnel --url http://localhost:18789 |