
🦞 Патч усиления безопасности для Clawdbot/Moltbot. Автоматически обнаруживает и исправляет открытые шлюзы.
Усиление безопасности для установок Clawdbot/Moltbot. Обнаруживает и исправляет открытые шлюзы.
Обнаружение и исправление открытых шлюзов Clawdbot/Moltbot
Проблема • • • • • •
Более 900 экземпляров Clawdbot/Moltbot в настоящее время открыты в интернете (видны на Shodan, порт 18789) без какой-либо аутентификации. Это позволяет любому:
| Риск | Воздействие |
|---|---|
| Доступ к API-ключам | Украсть учётные данные OpenAI, Anthropic и другие |
| Выполнять команды | Запускать произвольные shell-команды на вашем компьютере |
| Управлять браузером | Захватить вашу сессию браузера |
| Читать электронную почту | Получить доступ к Gmail, календарю, контактам |
| Читать чаты | Просматривать всю историю разговоров |
| Перехватить бота | Отправлять сообщения от вашего имени |
Проблема не в ошибке — это неправильная конфигурация. Пользователи, которые меняют gateway.bind на 0.0.0.0 или используют Docker с -p 18789:18789 без надлежащей аутентификации, полностью открыты.
ClawdGuard это исправляет.
cargo install clawdguard
# Запуск
clawdguard
# Клонировать репозиторий
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Сборка (первый раз ~2 мин)
cargo build --release
# Запуск
./target/release/clawdguard
# Клонировать репозиторий
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Сборка образа (~3-5 мин первый раз)
docker build --no-cache -t clawdguard .
# Запуск (подключите вашу директорию конфигурации)
docker run -v ~/.moltbot:/root/.moltbot clawdguard
# Или для старой версии Clawdbot:
docker run -v ~/.clawdbot:/root/.clawdbot clawdguard
clawdguard
Вот и всё! ClawdGuard:
ClawdGuard генерирует безопасный токен. Сохраните его!
╭────────────────────────────────────────────────────────────────────╮
│ ⚠️ ВАЖНО: Сохраните ваш новый токен шлюза! │
│ │
│ clwd_a8f2k9x3m1p7v4q2b6n8... │
│ │
│ Он понадобится для подключения через Control UI или CLI. │
╰────────────────────────────────────────────────────────────────────╯
Полная документация по Docker для тех, у кого нет установленного Rust.
# 1. Клонировать репозиторий
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# 2. Сборка образа (~3-5 мин первый раз)
docker build --no-cache -t clawdguard .
# 3. Запуск сканирования (подключите директорию конфигурации)
# Для Moltbot (новее):
docker run -v ~/.moltbot:/root/.moltbot clawdguard
# Для Clawdbot (старая версия):
docker run -v ~/.clawdbot:/root/.clawdbot clawdguard
# С подробным режимом
docker run -v ~/.moltbot:/root/.moltbot clawdguard --verbose
# Только сканирование (без исправлений)
docker run -v ~/.moltbot:/root/.moltbot clawdguard --scan-only
# Автоматический режим (без запросов)
docker run -v ~/.moltbot:/root/.moltbot clawdguard --auto
# Показать справку
docker run clawdguard --help
Упрощённый синтаксис с помощью docker-compose:
# Запуск с docker-compose
docker-compose run clawdguard
# С подробным выводом
docker-compose run clawdguard --verbose
# Только сканирование
docker-compose run clawdguard --scan-only
# Автоматический режим
docker-compose run clawdguard --auto
| Команда | Описание |
|---|---|
docker build --no-cache -t clawdguard . | Сборка образа |
docker run clawdguard --help | Показать справку |
docker run -v ... clawdguard | Запуск сканирования |
docker run -v ... clawdguard --scan-only | Только сканирование |
docker run -v ... clawdguard --auto | Автоматическое исправление |
docker run -v ... clawdguard --verbose | Подробный режим |
docker-compose run clawdguard | Запуск через compose |
| Том | Назначение |
|---|---|
~/.moltbot:/root/.moltbot | Директория конфигурации Moltbot (новее) |
~/.clawdbot:/root/.clawdbot | Директория конфигурации Clawdbot (старая) |
./results:/app/results | Сохранение результатов локально |
# Создать алиас для удобства (укажите свою директорию конфигурации)
alias clawdguard='docker run -v ~/.moltbot:/root/.moltbot clawdguard'
# Или для старой версии Clawdbot:
alias clawdguard='docker run -v ~/.clawdbot:/root/.clawdbot clawdguard'
# Затем просто запускайте:
clawdguard
clawdguard --scan-only
clawdguard --verbose
clawdguard [ОПЦИИ]
ОПЦИИ:
--scan-only Только сканирование проблем, без применения исправлений
--auto Применить все исправления без запросов подтверждения
--backup-dir <DIR> Пользовательская директория для файлов резервных копий
--skip-firewall Пропустить добавление правил брандмауэра
--skip-restart Пропустить перезапуск службы шлюза
--token <TOKEN> Использовать указанный токен вместо генерации нового
-v, --verbose Показать подробный вывод
--json Вывод результатов в формате JSON (для скриптов)
-h, --help Вывод справки
-V, --version Вывод версии
# Базовое использование — сканирование, исправление, проверка
clawdguard
# Только сканирование (ничего не исправлять)
clawdguard --scan-only
# Исправить всё автоматически (без запросов)
clawdguard --auto
# Использовать свой токен
clawdguard --token "my-secure-token-here"
# Подробный вывод для устранения неполадок
clawdguard --verbose
# Вывод JSON для скриптов
clawdguard --json
# Комбинирование опций
clawdguard --auto --skip-firewall --verbose
# Пользовательская директория резервных копий
clawdguard --backup-dir /tmp/backups
| Параметр | До (Небезопасно) | После (Безопасно) |
|---|---|---|
gateway.bind | "0.0.0.0" / "lan" / "all" | "loopback" |
gateway.auth.mode | "none" / отсутствует | "token" |
gateway.auth.token | отсутствует | Сгенерированный безопасный токен |
discovery.mdns.mode | "full" | "minimal" |
| Права доступа к файлам | 644 / 755 | 600 |
ClawdGuard рассчитывает оценку риска от 0 до 10:
| Оценка | Уровень | Значение |
|---|---|---|
| 0-3 | 🟢 НИЗКИЙ | Незначительные проблемы или уже безопасно |
| 4-6 | 🟡 СРЕДНИЙ | Некоторые проблемы безопасности |
| 7-10 | 🔴 КРИТИЧЕСКИЙ | Открыт для интернета, немедленно исправить |
Расчёт оценки риска:
🦞 ClawdGuard
Security hardening for Clawdbot/Moltbot
v1.0.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Press Ctrl+C to cancel at any time
[1/4] 🔍 Detecting installation...
✓ Config: ~/.clawdbot/clawdbot.json
✓ Service: bot.molt.gateway (running, PID 1234)
✓ Port 18789 is active
[2/4] ⚠️ Analyzing security risks...
╭──────────────────┬─────────────────────────┬──────────╮
│ Issue │ Current Value │ Severity │
├──────────────────┼─────────────────────────┼──────────┤
│ Gateway Bind │ 0.0.0.0 │ CRITICAL │
│ Authentication │ none │ CRITICAL │
│ mDNS Broadcast │ full │ MEDIUM │
╰──────────────────┴─────────────────────────┴──────────╯
Risk Score: 9/10 🔴 CRITICAL
⚠ This will modify your configuration to fix security issues.
ℹ A backup will be created before any changes.
Proceed with fixes? [y/N]: y
[3/4] 🔧 Applying fixes...
✓ Backup: ~/.clawdbot/clawdbot.json.backup.20260128_143022
✓ Set gateway.bind = "loopback" (was: "0.0.0.0")
✓ Set gateway.auth.mode = "token" (was: "none")
✓ Set gateway.auth.token = <generated>
✓ Fixed file permissions (600)
Generated Token: clwd_a8f2k9x3m1p7v4q2b6n8...
[4/4] ✅ Verifying fixes...
✓ Gateway service restarted
✓ Port 18789 no longer reachable externally
✓ Gateway responding on localhost
✓ Authentication is now required
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
╭────────────────────────────────────────────────────────────────────╮
│ │
│ 🎉 SUCCESS! Your Clawdbot/Moltbot is now secure. │
│ │
╰────────────────────────────────────────────────────────────────────╯
clawdguard --json
{"status": "fixed", "token": "clwd_a8f2k9x3m1p7v4q2b6n8...", "backup": "~/.clawdbot/clawdbot.json.backup.20260128_143022"}
Нажмите Ctrl+C в любое время во время сканирования для безопасной остановки.
[2/4] ⚠️ Analyzing security risks...
^C
⚠ Interrupted! Exiting...
Изменения не вносятся до вашего подтверждения, поэтому прерывание всегда безопасно.
# Добавьте в ваш профиль оболочки (~/.bashrc, ~/.zshrc и т.д.)
export CLAWDBOT_GATEWAY_TOKEN="clwd_your_token_here"
Если вам нужен удалённый доступ, используйте один из этих безопасных методов:
| Метод | Команда |
|---|---|
| Tailscale (рекомендуется) | tailscale serve --bg 18789 |
| SSH-туннель | ssh -L 18789:localhost:18789 your-server |
| Туннель Cloudflare | cloudflared tunnel --url http://localhost:18789 |
Никогда не меняйте gateway.bind обратно на 0.0.0.0 и не открывайте порт напрямую.
Убедитесь, что:
~/.moltbot/ или ~/.clawdbot/)~/.moltbot/moltbot.json или ~/.clawdbot/clawdbot.jsonПопробуйте вручную:
clawdbot gateway restart
# или
moltbot gateway restart
clwd_)Убедитесь, что ваша директория конфигурации доступна для чтения:
# Для Moltbot (новее)
chmod 755 ~/.moltbot
chmod 644 ~/.moltbot/moltbot.json
# Для Clawdbot (старая версия)
chmod 755 ~/.clawdbot
chmod 644 ~/.clawdbot/clawdbot.json
| Платформа | Статус | Менеджер служб |
|---|---|---|
| macOS | ✅ Полная | launchd |
| Linux | ✅ Полная | systemd (пользовательский) |
| Windows | ⚠️ WSL2 | Запуск внутри WSL2 |
┌─────────────────────────────────────────────────────────────────┐
│ ClawdGuard v1.0 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ DETECT │ → │ ANALYZE │ → │ PATCH │ → │ VERIFY │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ Find config Check risks Fix config Confirm safe │
│ Find service Score danger Gen token Test port │
│ Find process List issues Fix perms Restart svc │
│ │
└─────────────────────────────────────────────────────────────────┘
clawdguard/
├── Cargo.toml # Зависимости
├── Dockerfile # Сборка Docker
├── docker-compose.yml # Docker Compose
├── .dockerignore
├── README.md
├── LICENSE
├── .gitignore
├── assets/
│ └── screenshot.png # Скриншот для README
├── src/
│ ├── main.rs # Точка входа CLI
│ ├── lib.rs # Корень библиотеки
│ ├── detect/ # Обнаружение установки
│ │ ├── mod.rs
│ │ ├── config.rs # Обнаружение файлов конфигурации
│ │ ├── process.rs # Обнаружение процессов
│ │ └── service.rs # Обнаружение служб (launchd/systemd)
│ ├── analyze/ # Анализ безопасности
│ │ ├── mod.rs
│ │ ├── config_risk.rs
│ │ ├── network.rs # Проверка открытости порта
│ │ └── permissions.rs
│ ├── patch/ # Патчинг конфигурации
│ │ ├── mod.rs
│ │ ├── config.rs
│ │ ├── firewall.rs
│ │ └── token.rs # Генерация безопасного токена
│ ├── verify/ # Проверка исправлений
│ │ ├── mod.rs
│ │ ├── port_check.rs
│ │ └── service.rs
│ └── output/
│ ├── mod.rs
│ └── printer.rs # Цветной вывод CLI
└── tests/
└── integration.rs
Вариант A: Нативно (Rust)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)Вариант B: Docker
Нативно:
# Клонировать репозиторий
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Сборка debug (быстрее компиляция)
cargo build
# Сборка release (оптимизировано)
cargo build --release
Docker:
# Клонировать репозиторий
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# Сборка образа
docker build --no-cache -t clawdguard .
# Запустить все тесты
cargo test
# Запускать с выводом
cargo test -- --nocapture
# Форматирование кода
cargo fmt
# Запуск линтера
cargo clippy
# Проверка без сборки
cargo check
Приветствуются вклады! Пожалуйста:
git checkout -b feature/improvement)cargo test)cargo clippy)cargo fmt)git commit -m 'Add improvement')git push origin feature/improvement)Идеи для вклада:
Этот инструмент предназначен только для целей безопасности.
Авторы не несут ответственности за неправильное использование этого инструмента.
Лицензия MIT — см. LICENSE для подробностей.
Оставайтесь в безопасности! 🦞🔐